Garten - Daten – Was ist das? Wer braucht das?prg2/SS2018/folien/teil2/2... · Dr. Karsten Tolle...
Transcript of Garten - Daten – Was ist das? Wer braucht das?prg2/SS2018/folien/teil2/2... · Dr. Karsten Tolle...
Daten – Bank
2. Vorlesung
Dr. Karsten Tolle – PRG2 – SS 2018
Dr. Karsten Tolle – PRG2 – SS 2018 2
Letzte Vorlesung
• Grundbegriffe
• SQL
– create table
– insert
– select
Dr. Karsten Tolle – PRG2 – SS 2018 3
Heute Übersicht
• Modellierung (ER-Diagramme)– Entitäten und Entity-Typen
– Beziehungen und Beziehungstypen
– Attribute• für Entitäten(Typen) und Beziehungen(Typen)
• einfacher oder zusammengesetzter Schlüssel
– Kardinalitäten
– Generalisierung
– Business Rules
• … ein wenig mehr zu SQL
Dr. Karsten Tolle – PRG2 – SS 2018 4
Erstellung einer Datenbank:Erster Schritt …
• Was sind die Anforderungen?
• Was sind die Ziele?
• Ist bekannt was gespeichert werden soll?
Design des Datenmodells
Dr. Karsten Tolle – PRG2 – SS 2018 5
Design
Engineering und Kunst
Dr. Karsten Tolle – PRG2 – SS 2018 6
Entity-Relationship-Modell(ER-Modell)
• Siehe auch: C. Maria Keet: A formal comparison of
conceptual datamodeling languages(http://ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/Vol-
337/paper3.pdf)
Picture by: Frank Roeing
Dr. Karsten Tolle – PRG2 – SS 2018 7
ER-ModellZiel: Abbildung der Wirklichkeit auf Strukturebene!
Beispiel:
– Instanzebene
– Strukturebene
trainiert
werden trainiert von
Manschaft Trainer
trainiert
werden trainiert von
Dr. Karsten Tolle – PRG2 – SS 2018 8
ER-Modell
– Strukturebene
– bei uns (PRG-2, DB1)
Mannschaft Trainer
trainiert
wird trainiert von
Mannschaft Trainertrainiert
Dr. Karsten Tolle – PRG2 – SS 2018 9
• Otto Müller lebt in Frankfurt am Main, in der Robert-Mayer-Str. 11.
lebt_in
Person Haus lebt_in
Dr. Karsten Tolle – PRG2 – SS 2018 10
Achtung!
Im Alltag wird oft gesagt:
• Objekt (Entity) statt Objekttyp (Entity-Typ)
• Beziehung (Relation) statt Beziehungstyp (Relationship-Typ)
Dr. Karsten Tolle – PRG2 – SS 2018 11
(Objekt) Attribute
• Ein Objekttyp ist durch einen bestimmten Satz von Merkmalen (Attributen) gekennzeichnet.
• Jedes Merkmal kann Werte (values), das sind in der Umwelt beobachtbare oder messbare Größen, aus einem bestimmten Wertebereich (value set) annehmen.
• Beispiel:
Passagier
Name
Freigepäck
Status
Otto Müller20kgEconomy Class
Dr. Karsten Tolle – PRG2 – SS 2018 12
Schlüssel
Ein Schlüssel besteht aus einer Menge von Attributen, deren Werte eine Instanz (Entity) eines Objekttyps eindeutig bestimmt.
Person
Name
Personalausweis-
nummer
Name des
Vaters
Name
Person Geb.Datum
Geb.Ort
einfacher Schlüssel zusammengesetzter Schlüssel
Dr. Karsten Tolle – PRG2 – SS 2018 13
Prinzipien des digitalen Speicherns
Wenn möglich sollten vorhandene Identifizierungsmerkmale als Schlüssel wiederverwendet werden.
ISBN TITLE
3-12-517154-7
…
ISBN Nummer
Man muss aber auch mögliche Änderungen sinnvoll handhaben:ISBN 10 ISBN 13
Dr. Karsten Tolle – PRG2 – SS 2018 14
Mathematische Betrachtung
Ein Beziehungstyp zwischen zwei Objekttypen kann als eine mathematische Relation aufgefasst werden.
Person Stadt lebt_in S_Name
Population
Name
Geb_Datum
Instanz:Person = { p1, p2, p3 }Stadt = { c1, c2, c3 }lebt_in = { <p1,c1>, <p1,c3>, <p3,c3> }
Dr. Karsten Tolle – PRG2 – SS 2018 15
Min/Max Kardinalitäten
• min_card(Person, Lebt_in) = 1
• max_card(Person, Lebt_in) = 1
• min_card(Stadt, Lebt_in) = 0
• max_card(Stadt, Lebt_in) = n
Person Stadt lebt_in
(1,1) (0,n)
p1
p2
p3
c1
c2
c3
c4
Person, verbindlich
Stadt, optional
Bem.: Es gibt andere Notationen, z.B. wird manchmal nur max_card angegeben.
Es gilt immer: min_card <= max_card!
als Mengendiagramm
lebt_in = { <p1,c1>, <p2,c3>, <p3,c3> }
Dr. Karsten Tolle – PRG2 – SS 2018 16
KardinalitätenInstanz:Person = { p1, p2, p3 }Stadt = { c1, c2, c3 }lebt_in = { <p1,c1>, <p2,c2>, <p3,c3> }
p1
p2
p3
c1
c2
c3
Person
Stadt
p1
p2
p3
p4
c1
c2
c3
c4
c5
Person
Stadt
Instanz:Person = { p1, p2, p3, p4}Stadt = { c1, c2, c3, c4, c5 }lebt_in = { <p1,c1>, <p2,c1>, <p3,c3>, <p1, c4> }
Person Stadt lebt_in S_Name
Population
Name
Geb_Datum
(1,1) (1,1)
Person Stadt lebt_in S_Name
Population
Name
Geb_Datum
(0,n) (0,n)
Dr. Karsten Tolle – PRG2 – SS 2018 17
Übung 1
• Aussage:
– Mannschaften werden von mindestens einem Trainer trainiert.
Dr. Karsten Tolle – PRG2 – SS 2018 18
Mannschaften werden von mindestens
einem Trainer trainiert.
Mannschaft Trainertrainiert
Dr. Karsten Tolle – PRG2 – SS 2018 19
Mannschaften werden von mindestens
einem Trainer trainiert.
Mannschaft Trainertrainiert(1,n) (0,n)
Dr. Karsten Tolle – PRG2 – SS 2018 20
(Beziehungs) Attribute
Instanz:Passagier = { p1, p2, p3 }Flug = { c1, c2, c3 }bucht = { <p1,c1, „D2“>, <p2,c1, „D3“>}
p1
p2
p3
c1
c2
c3
c4
Passagier Flug
D2
D3
D1D2
Passagier Flugbucht
Sitz
Dr. Karsten Tolle – PRG2 – SS 2018 21
Übung 2 – ER-Diagr. für folgende Aussage erstellen
• Aussage:
– Bei einem Spiel spielen zwei Mannschaften an einem bestimmten Tag und Uhrzeit in einem Stadion gegeneinander.
Dr. Karsten Tolle – PRG2 – SS 2018 23
Die Uni …
Studenten können sich von Professoren über eine Vorlesung mündlich prüfen lassen.
Student Prof prüft Name
Gehalt
Name
Geb_Datum
Vorlesung
Alt. 1:
Student Prof prüft Name
Gehalt
Name
Geb_Datum
Vorlesung
Titel
SWS
Alt. 2:(N-näre Beziehung)
Dr. Karsten Tolle – PRG2 – SS 2018 24
Entity-Typ oder Attribut???
• Entities sind Klassen von Objekten der realen Welt und nehmen keine Werte an.
• Attribute dagegen sind beschreibende Eigenschaften und nehmen Werte an.
Möbelstück
Farbehat
Farbe
Möbelstück
Die Entscheidung ist abhängig vom Kontext (Situation/Anwendungsfall).
Farbe besteht
ausLack
(1,n) (1,n)
Nr. Name
IntensitätMenge
Name Preis
Dr. Karsten Tolle – PRG2 – SS 2018 25
Generalisierung
• Hierarchien für Objekttypen (entspricht Klassenhierarchie in OO)
Person
FrauMann
Dr. Karsten Tolle – PRG2 – SS 2018 26
… mit Mehrfachvererbung
Person
Student Mitarbeiter
Professor WiMi Tutor
Dr. Karsten Tolle – PRG2 – SS 2018 27
Übung 3
• Aussage:
– Eine Mannschaft besteht aus Spieler, die sich aufteilen in Verteidigung, Mittelfeld, Angriff oder Torhüter.
Dr. Karsten Tolle – PRG2 – SS 2018 28
Übung 3• Aussage:
– Eine Mannschaft besteht aus Spieler, die sich aufteilen in Verteidigung, Mittelfeld, Angriff oder Torhüter.
Mannschaft
Spieler
Torwart Verteidiger Mittelfeldspieler Stürmer
hat_TWhat_V hat_MS
hat_St
(0,n) (0,n) (0,n) (0,n)
(1,3)
(2,5)(2,5)
(2,5)
Über (0,n) würde erlaubt sein, dass die Spieler in beliebig vielen Mannschaften oder in keiner sein können.
Durch die Kardinalitäten an der Mannschaft würde in diesemBeispiel folgen, dass eine Mannschaft mindestens 7 Verbindungen zu Spielern besitzen würde. Was durch den Text oben gar nicht gefragt war … aber Vorsicht! Ein bestimmter Spieler kann in mehreren Entity-Typen/Klassen auftauchen. Im Extrem-Fall kann dies hier dazu führen, dass eine Mannschaftnur mit zwei Spielern verbunden ist!
Dr. Karsten Tolle – PRG2 – SS 2018 29
Professor Lehrveranst.
Ausbilder Seminar
hält
hälthält
hält
AB
C
D
E
A-D
B-D
B-E
B-C
A-E
A-C
Professor
Lehrveranst.
Ausbilder Seminar
lehrt Personal
besser so …
A
B
C D E
A-D
B-D
B-EB-C
A-EA-C
besser so …
Dr. Karsten Tolle – PRG2 – SS 2018 30
ER-Modell
• Vorteile– Unabhängig von Implementierungsdetails
– Grafische Darstellung (leicht zu lesen)
– …
• Nachteile– Abbildung des ER-Modells in das relationale Modell ist
nicht eindeutig nicht automatisch
– ER-Modell ist „statisch“
– …
Dr. Karsten Tolle – PRG2 – SS 2018 31
Ausdruckskraft
• Ein Angestellter einer Abteilung soll nicht mehr verdienen, als der entsprechende Abteilungsleiter.
Angesteller Abteilung
arbeitet_in
leitet
Gehalt
Benötigt zusätzliche Beschreibung, sogenannte Business Rules.
Ein Angestellter darf nicht mehr Gehalt bekommen als der Abteilungsleiter, zu dessen Abteilung der Angestellte gehört.
Ein Abteilungsleiter muss zu der Abteilung gehören, die er leitet.
Dr. Karsten Tolle – PRG2 – SS 2018 32
Business Rules (im weitesten Sinne) können angesehen werden als:
1. Die semantische Definition eines für Anwendungen relevanten Konzeptes, genauer, die semantische Definition
• eines Objektes,
• eines Attributes,
• einer Relation
des ER-Modells.
Für diesen Fall werden natürlich sprachliche Sätze verwendet, da es unmöglich ist hierfür eine präzise Syntax zu definieren.
2. Integritätsbedingungen für die Daten einer Anwendung (als zusätzliche Beschreibung der im ER-Modell enthaltenen Bedingungen oder zusätzliche Bedingungen).
3. Abgeleitete Bedingungen bzw. Folgerungen aus anderen Bedingungen(z.B. Brutto ist Summe aus Netto plus Steuer).
Dr. Karsten Tolle – PRG2 – SS 2018 33
ER Zusammenfassung
• Entitäten und Entity-Typen
• Beziehungen und Beziehungstypen
• Attribute• für Entitäten(Typen) und Beziehungen(Typen)
• einfacher oder zusammengesetzter Schlüssel
• Kardinalitäten
• Generalisierung
• Business Rules
Dr. Karsten Tolle – PRG2 – SS 2018 34
Zeitangaben
Datentyp „Nullwert“
DATETIME '0000-00-00 00:00:00'
DATE '0000-00-00'
TIMESTAMP '0000-00-00 00:00:00'
TIME '00:00:00'
YEAR 0000
Unterschied DATETIME und TIMESTAMP?
Was ist das mit dem Jahr ‘23‘ gemeint?
Dr. Karsten Tolle – PRG2 – SS 2018 35
Unterschiede der DBMSDatenbanksystem Datentyp Geltungsbereich Genauigkeit
MS-SQL Server 2005 datetime01.01.1753 bis 31.12.9999
3,33 Millisekunden
smalldatetime01.01.1900 bis 06.06.2079
1 Minute
MS-SQL Server 2008 date01.01.0001 bis 31.12.9999
1 Tag
time00:00:00.0000000 bis23:59:59.9999999
100 Nanosekunden
datetime01.01.0001 bis31.12.9999
3,33 Millisekunden
smalldatetime01.01.1900 bis 06.06.2079
1 Minute
Firebird DATE01.01.0100 bis 29.02.32768
1 Tag
TIME 00:00 bis 23:59.9999 6,67 Millisekunden
MySQL 5.x DATETIME01.01.1000 00:00:00 bis 31.12.9999 23:59:59
1 Sekunde
DATE01.01.1000 bis 31.12.9999
1 Tag
TIME–838:59:59 bis 838:59:59
1 Sekunde
YEAR 1901 bis 2055 1 Jahr
Quelle: http://de.wikibooks.org/wiki/Einf%C3%BChrung_in_SQL:_Datentypen
Dr. Karsten Tolle – PRG2 – SS 2018 36
Fließkomma-Zahlen
• Float – wenn Speicherplatz ein Problem ist!
• Double – genauer als Float
• Decimal – bis zu 65 Stellen
https://dev.mysql.com/doc/refman/5.8/en/problems-with-float.html
… man beachte die interne Zahlendarstellung!!!!!
Dr. Karsten Tolle – PRG2 – SS 2018 37
Textvergleiche - LIKE
Kunde ( KundenNr Name Vorname Straße Stadt )
select KundenNr
from Kunde
where Name like 'To%' and
Vorname not like '_arste%';
Bem.: % für beliebige Zeichenfolgen_ für genau ein Zeichen
Dr. Karsten Tolle – PRG2 – SS 2018 38
Sortierung – ORDER BY
Kunde ( KundenNr Name Vorname Straße Stadt )
select KundenNr
from Kunde
where Name like 'To%' ORDER BY KundenNr;
Syntax:ORDER BY {col_name | expr | position} [ACS | DESC]
Dr. Karsten Tolle – PRG2 – SS 2018 39
Begrenzung - LIMIT
Kunde ( KundenNr Name Vorname Straße Stadt )
select KundenNr
from Kunde
where Name like 'To%' LIMIT 10;
Syntax:LIMIT {[offset,] row_count | row_count OFFSET offset}
Dr. Karsten Tolle – PRG2 – SS 2018 40
Wie lauten die 10 KundenNr, welche von der Größe nach auf Platz 20 bis 29
liegen?
Kunde ( KundenNr Name Vorname Straße Stadt )
select KundenNr
from Kunde
where ??;
Syntax:LIMIT {[offset,] row_count | row_count OFFSET offset}
Dr. Karsten Tolle – PRG2 – SS 2018 41
Wie lauten die 10 KundenNr, welche von der Größe nach auf Platz 20 bis 29
liegen?
Kunde ( KundenNr Name Vorname Straße Stadt )
select KundenNr
from Kunde
where order by KundenNr asc limit 19,10;
Syntax:LIMIT {[offset,] row_count | row_count OFFSET offset}