Datenbanken - Angry Criminals

Werbung
Datenbanken
Thomas Thobe
Datenbanken
1.
Einführung in die Datenorganisation
1-1
Datenbanken
Thomas Thobe
Warum eine Datenbank ?
1-2
Thomas Thobe
Datenbanken
Datenbanken
Persistenz
dauerhafte Speicherung von
(strukturierten) Daten zur Überwindung
zeitlicher und räumlicher Distanz
1-3
Thomas Thobe
Datenbanken
Datenbanken
Datenunabhängigkeit der Anwendung
einfache Handhabung der Daten, ohne
die systemtechnische Speicherung zu
kennen
1-4
Thomas Thobe
Datenbanken
Datenbanken
Offenheit der Daten für neue
Anwendungen
die Daten sind anwendungsneutral
gespeichert und enthalten alle für ihre
Nutzung erforderlichen Informationen
(z.B. Datentyp, Wertebereich,
Konsistenzregeln)
1-5
Thomas Thobe
Datenbanken
Datenbankmodelle:
hierarchisch: Die Datenobjekte stehen in
verdrahteten Eltern-Kind-Beziehungen
zueinander.
netzwerkartig: Die Datenobjekte werden
miteinander in Netzen verdrahtet.
1-6
Thomas Thobe
Datenbanken
Datenbankmodelle:
relational: Die Datenobjekte stehen in
flachen Tabellen, Beziehungen ergeben
sich aus Werten der Tabellenspalten.
objektorientiert: Die Datenobjekte werden
miteinander verdrahtet, sind gegebenenfalls miteinander verwandt und können
vom System immer eindeutig identifiziert
werden.
1-7
Thomas Thobe
Datenbanken
Es existiert eine Vielzahl von Misch- und
Nebenformen, wie zum Beispiel das
objektrelationale Modell.
1-8
Datenbanken
Thomas Thobe
Mittlerweile gibt es neben den relationalen
Modellen auch andere Speicherformen für
Datenbanken. Immer populärer werden
objektorientierte Datenbanken und XMLDatenbanken (dokumentenorientierten
Datenbanken NoSQL). Aber auch weitere
NoSQL(2x)-Datenbanken sind auf dem
Vormarsch.....
Thomas Thobe
9
1-9
Datenbanken
Thomas Thobe
Etwa seit 2001 ist aufgrund mangelnder
Skalierbarkeit relationaler Datenbanken die
Bedeutung der NoSQL-Systeme gewachsen!
Bekannte Implementierungen sind Riak,
Apache Cassandra, CouchDB, MongoDB und
Redis!
Thomas Thobe
10
1 - 10
Datenbanken
Thomas Thobe
Relativ neu ist auch SQLite. Dies ist eine
Programmbibliothek, die ein relationales
Datenbanksystem enthält. SQLite unterstützt
einen Großteil der im SQL-92-Standard
festgelegten SQL-Sprachbefehle. Eingesetzt
wird SQLite unter anderem in Betriebssystemen für Mobiltelefone, wie Symbian OS
oder Android. Außerdem nutzt der Browser
Mozilla Firefox seit Version 3 SQLite –
beispielsweise für Lesezeichen und Cookies!
Thomas Thobe
11
1 - 11
Datenbanken
Thomas Thobe
Letzten Endes aber sind relationale Datenbanksysteme immer noch die, welche die
höchste Datensicherheit, Konsistens und
Verfügbarkeit garantieren!!
 siehe ORACLE !!!
Thomas Thobe
12
1 - 12
Thomas Thobe
Datenbanken
Datenbanken
Ausfallsicherheit
Reparatur von Datenbeständen nach Systemfehlern, Rollback und Logfilesegmente
Mehrbenutzerbetrieb
gleichzeitiges Benutzen einer gemeinsamen
Datenbasis durch verschieden Anwendungen
(Anwender) mittels geeigneter Synchronisation
der Zugriffsreihenfolge und Vermeidung
wechselseitiger Beeinflussung
1 - 13
Thomas Thobe
Datenbanken
Datenbanken
Integritätssicherung
Wenn die Daten nur von einem Prozeß
verändert werden dürfen, sind sie immer
authentisch
Assoziativität
Die assoziative Suche nach Daten ist
automatisch gegeben.
1 - 14
Thomas Thobe
Datenbanken
Datenbanken
Redundanzfreiheit
keine Wiederholung von
Speicherinhalten für unterschiedliche
Anwendungen
1 - 15
Thomas Thobe
Datenbanken
Datenbankbegriffe
Entity
Eine Entität ist eine strukturiertes
Datenobjekt, welches Eigenschaften besitzt,
die durch Attribute beschrieben werden.
Beispiel: Angestellte einer Firma !
1 - 16
Thomas Thobe
Datenbanken
Datenbankbegriffe
Entity
Vorsicht, wenn sich zu einer Entity eine
Ober-Entity finden lässt!
Diese strukturierten Datenobjekte haben
Beziehungen untereinander. Dies findet sich
wieder im:
1 - 17
Thomas Thobe
Datenbanken
Datenbankbegriffe
Entity-Relationship-Model (ER-Modell)
P.Chen spezifizierte 1976 ein Modell (s.o.),
welches häufig genutzt wird um
Informationsstrukturen der realen Welt auf
ein Schema abzubilden, das dann in die
Datenstrukturen transformiert wird. Das
ER-Modell ist damit ein Hilfsmittel für den
Datenbankentwickler die Datenstrukturen
zu erkennen, zu gruppieren und miteinander
in Beziehungen zu setzen.
1 - 18
Thomas Thobe
Datenbanken
Datenbankbegriffe
Entity-Relationship-Model (ER-Modell)
Beispiel: Mitarbeiter einer Firma betreut
Kunden ! (Tafel)
1 - 19
Thomas Thobe
Datenbanken
Aufgabe: Entwerfen Sie ein ER-Modell für
ein Mahnwesen :
Gehen Sie davon aus, dass ein Kunde eine Mahnung
erhält, wenn offene Posten zum Fälligkeitstag
nicht vollständig ausgeglichen sind!
1 - 20
Thomas Thobe
Datenbanken
Aufgabe: Entwerfen Sie ein ER-Modell für ein Mahnwesen :
Gehen Sie davon aus, dass ein Kunde eine Mahnung erhält, wenn
offene Posten zum Fälligkeitstag nicht vollständig ausgeglichen sind!
Kunde
1 - 21
Thomas Thobe
Datenbanken
Aufgabe: Entwerfen Sie ein ER-Modell für ein Mahnwesen :
Gehen Sie davon aus, dass ein Kunde eine Mahnung erhält, wenn
offene Posten zum Fälligkeitstag nicht vollständig ausgeglichen sind!
Kunde
Offene Posten
1 - 22
Thomas Thobe
Datenbanken
Aufgabe: Entwerfen Sie ein ER-Modell für ein Mahnwesen :
Gehen Sie davon aus, dass ein Kunde eine Mahnung erhält, wenn
offene Posten zum Fälligkeitstag nicht vollständig ausgeglichen sind!
Kunde
Offene Posten
Mahnung
1 - 23
Datenbanken
Thomas Thobe
Aufgabe: Entwerfen Sie ein ER-Modell für ein Mahnwesen :
Gehen Sie davon aus, dass ein Kunde eine Mahnung erhält, wenn
offene Posten zum Fälligkeitstag nicht vollständig ausgeglichen sind!
Kunde
hat
Offene Posten
Mahnung
1 - 24
Datenbanken
Thomas Thobe
Aufgabe: Entwerfen Sie ein ER-Modell für ein Mahnwesen :
Gehen Sie davon aus, dass ein Kunde eine Mahnung erhält, wenn
offene Posten zum Fälligkeitstag nicht vollständig ausgeglichen sind!
Kunde
hat
Offene Posten
führt zu
Mahnung
1 - 25
Datenbanken
Thomas Thobe
Aufgabe: Entwerfen Sie ein ER-Modell für ein Mahnwesen :
Gehen Sie davon aus, dass ein Kunde eine Mahnung erhält, wenn
offene Posten zum Fälligkeitstag nicht vollständig ausgeglichen sind!
Kunde
hat
Offene Posten
führt zu
erhält
Mahnung
1 - 26
Datenbanken
Thomas Thobe
Aufgabe: Entwerfen Sie ein ER-Modell für ein Mahnwesen :
Gehen Sie davon aus, dass ein Kunde eine Mahnung erhält, wenn
offene Posten zum Fälligkeitstag nicht vollständig ausgeglichen sind!
Etwas fehlt noch!!
Kunde
hat
Offene Posten
führt zu
erhält
Mahnung
1 - 27
Datenbanken
Thomas Thobe
Aufgabe: Entwerfen Sie ein ER-Modell für ein Mahnwesen :
Gehen Sie davon aus, dass ein Kunde eine Mahnung erhält, wenn
offene Posten zum Fälligkeitstag nicht vollständig ausgeglichen sind!
Kardinalitäten !
Kunde
hat
Offene Posten
führt zu
erhält
Mahnung
1 - 28
Datenbanken
Thomas Thobe
Aufgabe: Entwerfen Sie ein ER-Modell für ein Mahnwesen :
Gehen Sie davon aus, dass ein Kunde eine Mahnung erhält, wenn
offene Posten zum Fälligkeitstag nicht vollständig ausgeglichen sind!
Kardinalitäten !
Kunde
hat
n
Offene Posten
1
führt zu
erhält
Mahnung
1 - 29
Datenbanken
Thomas Thobe
Aufgabe: Entwerfen Sie ein ER-Modell für ein Mahnwesen :
Gehen Sie davon aus, dass ein Kunde eine Mahnung erhält, wenn
offene Posten zum Fälligkeitstag nicht vollständig ausgeglichen sind!
Kardinalitäten !
Kunde
hat
n
Offene Posten
1
1
führt zu
n
erhält
Mahnung
1 - 30
Datenbanken
Thomas Thobe
Aufgabe: Entwerfen Sie ein ER-Modell für ein Mahnwesen :
Gehen Sie davon aus, dass ein Kunde eine Mahnung erhält, wenn
offene Posten zum Fälligkeitstag nicht vollständig ausgeglichen sind!
Kardinalitäten !
Kunde
hat
n
Offene Posten
1
1
1
führt zu
n
erhält
n
Mahnung
1 - 31
Thomas Thobe
Datenbanken
Datenbankbegriffe

Relation
Eine Relation entspricht einem
Entitätstyp. Sie ist durch einen Namen
und eine Menge von Attributen
bestimmt, die miteinander in Beziehung
stehen. In SQL-Datenbanken wird eine
Relation als Tabelle bezeichnet.
1 - 32
Thomas Thobe
Datenbanken
Datenbankbegriffe

Attribute
Ein Attribut beschreibt eine bestimmte
Eigenschaft der Relation. Attribute
dürfen nicht zusammengesetzt sein
oder Mehrfachwerte annehmen. Wenn
ein Attribut keinen Wert besitzt, erhält
es den künstlichen Wert NULL. Ein
Attribut repräsentiert ein Datenfeld.
1 - 33
Thomas Thobe
Datenbanken
Datenbankbegriffe

Tupel
Ein Tupel entspricht einer Entität. Der
Grad eines Tupels gibt die Anzahl der
Attribute an. In einer Relation dürfen
keine doppelten Tupel enthalten sein.
Konzeptionell entspricht ein Tupel
einem Datensatz.
1 - 34
Thomas Thobe
Datenbanken
Datenbankbegriffe

Primärschlüssel
Ein Primärschlüssel dient zur
eindeutigen Identifikation eines Tupels.
Er kann aus einem oder mehreren
Attributen bestehen. Keines der
Schlüsselattribute darf den Wert NULL
annehmen.
1 - 35
Thomas Thobe
Datenbanken
Datenbankbegriffe

Fremdschlüssel
Ein Fremdschlüssel in einer Relation
stellt die Beziehung zu einer anderen
Relation her. Er ist ein Attribut oder
eine Attributkombination, das oder
die in einer anderen Relation als
Primärschlüssel dient.
1 - 36
Thomas Thobe
Datenbanken
Datenbankbegriffe

Fremdschlüssel
Fremdschlüssel dürfen den Wert
NULL annehmen. Wenn ein
Fremdschlüssel einen Wert enthält,
muß er auch in der Relation enthalten
sein, auf die sich der Fremdschlüssel
bezieht.
1 - 37
Datenbanken
Thomas Thobe
Sportartikel GmbH
Sportartikel GmbH
1 - 38
Datenbanken
Thomas Thobe
Sportartikel GmbH
Kunde
Produkt
Auftrag
Lager
1 - 39
Datenbanken
Thomas Thobe
Ort
Status
PLZ
Adresse
Strasse
Sportartikel GmbH
Firma
Kunde
Produkt
Auftrag
Lager
1 - 40
Datenbanken
Thomas Thobe
Ort
Status
PLZ
Adresse
Strasse
Firma
Sportartikel GmbH
Preis
Bezeichnung
Kunde
Produkt
Auftrag
Lager
1 - 41
Datenbanken
Thomas Thobe
Ort
Status
ANummer
PLZ
Adresse
Strasse
Firma
Sportartikel GmbH
Preis
Bezeichnung
Kunde
Produkt
Auftrag
Lager
LDatum
1 - 42
Datenbanken
Thomas Thobe
Ort
Status
ANummer
PLZ
Adresse
Strasse
Firma
Sportartikel GmbH
Preis
Bezeichnung
Kunde
Produkt
Auftrag
Lager
LDatum
Ort
Strasse
1 - 43
Datenbanken
Thomas Thobe
Ort
Status
KNr
ANummer
PLZ
Adresse
Strasse
Firma
Sportartikel GmbH
Preis
Bezeichnung
Kunde
Produkt
Auftrag
Lager
LDatum
Ort
PNr
Strasse
1 - 44
Datenbanken
Thomas Thobe
Ort
Status
KNr
PLZ
Adresse
Strasse
Firma
Sportartikel GmbH
Preis
Kunde
Bezeichnung
PNr
Produkt
erteilt
lagern
bestellt
Lager
Auftrag
ANummer
LDatum
Ort
Strasse
1 - 45
Datenbanken
Thomas Thobe
Ort
Status
KNr
PLZ
Adresse
Strasse
Firma
Sportartikel GmbH
Preis
Kunde
Bezeichnung
PNr
Produkt
1
erteilt
lagern
bestellt
m
Lager
Auftrag
ANummer
LDatum
Ort
Strasse
1 - 46
Datenbanken
Thomas Thobe
Ort
Status
KNr
PLZ
Adresse
Strasse
Firma
Sportartikel GmbH
Preis
Kunde
Bezeichnung
PNr
Produkt
1
m
erteilt
lagern
bestellt
1
m
Lager
Auftrag
ANummer
LDatum
Ort
Strasse
1 - 47
Datenbanken
Thomas Thobe
Ort
Status
KNr
PLZ
Strasse
Adresse
Firma
Sportartikel GmbH
Preis
Kunde
Bezeichnung
PNr
Produkt
1
m
erteilt
m
lagern
bestellt
1
m
n
Lager
Auftrag
ANummer
LDatum
Ort
Strasse
1 - 48
Datenbanken
Thomas Thobe
Ort
Status
KNr
PLZ
Strasse
Adresse
Sportartikel GmbH
Preis
Firma
Kunde
Bezeichnung
PNr
Produkt
1
m
m
Menge
erteilt
lagern
bestellt
1
m
n
Preis
Lager
Auftrag
ANummer
LDatum
Ort
Strasse
1 - 49
Datenbanken
Thomas Thobe
Sportartikel GmbH
Preis
Produkt
Bezeichnung
PNr
m
Menge
bestellt
n
Preis
Auftrag
ANummer
LDatum
1 - 50
Datenbanken
Thomas Thobe
Sportartikel GmbH
Preis
Produkt
Menge
Bezeichnung
PNr
Preis
Auftragspos
Auftrag
ANummer
LDatum
1 - 51
Datenbanken
Thomas Thobe
Sportartikel GmbH
Preis
Produkt
Bezeichnung
PNr
enthält
Auftragspos
enthält
Auftrag
ANummer
LDatum
1 - 52
Datenbanken
Thomas Thobe
Sportartikel GmbH
Preis
1
m
Produkt
Bezeichnung
PNr
enthält
Auftragspos
enthält
Auftrag
ANummer
LDatum
1 - 53
Datenbanken
Thomas Thobe
Sportartikel GmbH
Preis
1
m
n
1
Produkt
Bezeichnung
PNr
enthält
Auftragspos
enthält
Auftrag
ANummer
LDatum
1 - 54
Datenbanken
Thomas Thobe
Sportartikel GmbH
Preis
Produkt
Menge
Bezeichnung
PNr
Preis
Auftragspos
Auftrag
ANummer
ANummer
PNr
LDatum
1 - 55
Datenbanken
Thomas Thobe
Entity Relationship
Model
Kunde
1
Produkt
1
m
enthält
erteilt
m
enthält
m
Auftrag
1
Auftragspos
n
lagern
1
Lager
1 - 56
Datenbanken
Thomas Thobe
Das relationale Datenmodell
Entity Relationship Modell
relationales Datenmodell
Das Semantische Datenmodell (ERM) wird auf das relationale Schema
abgebildet. Grundregel: Jede Entität (auch Beziehungsentität) wird in
eine Relation überführt (Gegenstands- und Beziehungsrelation)
Entität (Datenobjekt)
Relationship (Beziehung)
Attribut
Gegenstandsrelation
ggf. Beziehungsrelation
Felder
1 - 57
Datenbanken
Thomas Thobe
ERM - RDM
Student
(n)
belegt
(1)
Mtnr
Name
SemGr
Adresse
Vorlesung
Vorlnr
Fach
Semester
Raum
Zeit
Student ( Mtnr, Name, SemGr, Adresse)
Fach ( Vorlnr, Fach, Semester, Raum, Zeit)
Belegung (Mtnr, Vorlnr)
1 - 58
Datenbanken
Thomas Thobe
Relationales Datenmodell oder Relationenmodell:
Primärschlüssel
Fremdschlüssel
Attribut 1
Attribut 2
Attribut 3
Attribut 4
Primärschlüssel
Attribut 1
Attribut 2
Attribut 3
Attribut 4
Fremdschlüssel
Primärschlüssel
Fremdschlüssel
Attribut 1
Attribut 2
Attribut 3
Attribut 4
1 - 59
Thomas Thobe
Datenbanken
Datenbanken
 Relationen und Kardinalitäten
Ein Fremdschlüssel in einer Relation stellt die Beziehung zu
einer anderen Relation her. Er ist ein Attribut oder eine
Attributkombination, das oder die in einer anderen Relation
als Primärschlüssel dient.

Beim Gang von dem ER-Modell zum Relationenmodell
muss man, um dem gerecht zu werden, sich die
Kardinalitäten, also die Beziehungsverhältnisse zwischen
den Relationen anschauen und eintragen.

Dann ist zu entscheiden, welche Schlüssel als
Fremdschlüssel wo eingetragen werden müssen, und ob
weitere Relationen geschaffen werden müssen
1 - 60
Thomas Thobe
Datenbanken
Ablauf der Datenbankerstellung:
A. ER-Modell erstellen
A.1
A.2
A.3
A.4
A.5
A.6
Entitäten bestimmen
Attribute der Entitäten vollständig erfassen
Beziehungen der Entitäten feststellen
Kardinalitäten bestimmen
n:m-Beziehungen auflösen
Normalisieren
B. Relationen-Modell erstellen
B.1
B.2
B.3
B.4
ER-Modell 1:1 in Relationen übertragen
Primärschlüssel festlegen
Fremdschlüssel festlegen und eintragen
Zugriffe auf alle Daten prüfen
1 - 61
Datenbanken
Thomas Thobe
Entity Relationship
Model
Kunde
1
Produkt
1
m
enthält
erteilt
m
enthält
m
Auftrag
1
Auftragspos
n
lagern
1
Lager
1 - 62
Datenbanken
Thomas Thobe
Relationales Datenmodell oder Relationenmodell:
Primärschlüssel
Fremdschlüssel
Attribut 1
Attribut 2
Attribut 3
Attribut 4
Primärschlüssel
Attribut 1
Attribut 2
Attribut 3
Attribut 4
Fremdschlüssel
Primärschlüssel
Fremdschlüssel
Attribut 1
Attribut 2
Attribut 3
Attribut 4
1 - 63
Thomas Thobe
Datenbanken
Auftrag I:
Erstellen Sie in Gruppen ein EntityRelationship-Model für eine Videothek.
1 - 64
Datenbanken
Thomas Thobe
Auftrag I:
Erstellen Sie in Gruppen eine Datenbank für eine
Videothek.
Dfghshdsfh
Fgdffgdfgd
Sagfasg
fydsfdsfds,s
dfköölöldöä
ldsfldsöäfläl
sfäsfslfflsfk
söklfdsfksfö
dsködskfsfls
ödsdfsfksd
fsadfdsfsdfd
sfsfdsfdsfsfs
dfsfsfsfsfsfs
dfsfsfsfsfsfs
vyxcvxcvxc
Sagfasg
Sagfasg
fydsfdsfds,s
dfköölöldöä
ldsfldsöäfläl
sfäsfslfflsfk
söklf
fydsfdsfds,s
dfköölöldöä
ldsfldsöäfläl
sfäsfslfflsfk
söklfd
1 - 65
Datenbanken
Thomas Thobe
Eine Videothek
Ein Kunde kommt in eine Videothek und leiht sich was aus.......
Was? Ein Produkt......
Zu welchem Preis ?
Wer verleiht ihm was?
Mitarbeiter.....
Preis........
1 - 66
Datenbanken
Thomas Thobe
Eine Videothek
Ein Kunde kommt in eine Videothek und leiht sich ein
Produkt aus !
1 - 67
Datenbanken
Thomas Thobe
Eine Videothek
Kunde
1 - 68
Datenbanken
Thomas Thobe
Eine Videothek
Kunde
Produkte
1 - 69
Datenbanken
Thomas Thobe
Eine Videothek
Kunde
leiht
Produkte
1 - 70
Datenbanken
Thomas Thobe
Eine Videothek
m
Kunde
n
leiht
Produkte
1 - 71
Datenbanken
Thomas Thobe
Eine Videothek
Produkte
Kunde
gehen
macht
Verleih
1 - 72
Datenbanken
Thomas Thobe
Eine Videothek
Produkte
Kunde
1
gehen
macht
m
Verleih
1 - 73
Datenbanken
Thomas Thobe
Eine Videothek
Produkte
Kunde
1
1
gehen
macht
m
n
Verleih
1 - 74
Datenbanken
Thomas Thobe
Eine Videothek
Kunden_ID
Name
Adresse
Tel.
Kunde_seit
Kunde_bis
Produkte
Kunde
1
1
gehen
macht
m
n
Verleih
1 - 75
Datenbanken
Thomas Thobe
Eine Videothek
Produkt_ID
Kunden_ID
Name
Adresse
Tel.
Kunde_seit
Kunde_bis
Produkte
Kunde
1
Pr_Name
Pr_Art
Pr_Preis
PR-Datum
1
gehen
macht
m
n
Verleih
1 - 76
Datenbanken
Thomas Thobe
Eine Videothek
Produkt_ID
Kunden_ID
Name
Adresse
Tel.
Kunde_seit
Kunde_bis
Produkte
Kunde
1
Pr_Name
Pr_Art
Pr_Preis
PR-Datum
1
gehen
macht
m
n
Verleih
Verleih_ID
Kunde_ID
Produkt_ID
Mitarbeiter
Verleih_von
Verleih_bis
1 - 77
Datenbanken
Thomas Thobe
Eine Videothek
Produkt_ID
Kunden_ID
Pr_Name
Pr_Art
Pr_Preis
PR-Datum
Name
Adresse
Tel.
Kunde_seit
Kunde_bis
Verleih_ID
Kunde_ID
Produkt_ID
Mitarbeiter
Verleih_von
Verleih_bis
1 - 78
Datenbanken
Thomas Thobe
Eine Videothek
Kunden_ID
Produkt_ID
Name
Adresse
Tel.
Kunde_seit
Kunde_bis
Pr_Name
Pr_Art
Pr_Preis
PR-Datum
Verleih_ID
Kunden_ID
Produkt_ID
Mitarbeiter
Verleih_von
Verleih_bis
1 - 79
Datenbanken
Thomas Thobe
Eine Videothek
Kunden_ID
Produkt_ID
Name
Adresse
Tel.
Kunde_seit
Kunde_bis
Pr_Name
Pr_Art
Pr_Preis
PR-Datum
Spielekonsole XBox ?
Verleih_ID
Kunden_ID
Produkt_ID
Mitarbeiter
Verleih_von
Verleih_bis
1 - 80
Datenbanken
Thomas Thobe
Eine Videothek
Kunden_ID
Produkt_ID
Name
Adresse
Tel.
Kunde_seit
Kunde_bis
Pr_Name
Pr_Art_Id
Pr_Preis
PR-Datum
Spielekonsole XBox ?
????????????????????
Verleih_ID
Kunden_ID
Produkt_ID
Mitarbeiter
Verleih_von
Verleih_bis
1 - 81
Datenbanken
Thomas Thobe
Eine Videothek
Kunden_ID
Produkt_ID
Name
Adresse
Tel.
Kunde_seit
Kunde_bis
Pr_Name
Pr_Art_Id
Pr_Art_Name
Pr_Preis
PR-Datum
????????????????
Verleih_ID
Kunden_ID
Produkt_ID
Mitarbeiter
Verleih_von
Verleih_bis
1 - 82
Datenbanken
Thomas Thobe
Eine Videothek
Kunden_ID
Produkt_ID
Name
Adresse
Tel.
Kunde_seit
Kunde_bis
Pr_Name
Pr_Art_Id
Pr_Art_Name
Pr_Preis
PR-Datum
????????????????
Verleih_ID
Kunden_ID
Produkt_ID
Mitarbeiter
Verleih_von
Verleih_bis
1 - 83
Thomas Thobe
Datenbanken
Datenbankbegriffe
Normalisierung
1 - 84
Thomas Thobe
Datenbanken
Datenbankbegriffe
Grundregel der Normalisierung
Dieselbe Information darf nur einmal in den Daten
vorkommen.
Die Normalisierung dient somit der Erstellung
redundanzarmer Datenbestände.
1 - 85
Thomas Thobe
Datenbanken
Datenbanken

Normalisierung

Normalisierung kann als Regelwerk verstanden werden,
Datenstrukturen zu erstellen, die keine logischen Fehler
enthalten. Dabei ist in der Theorie eine Führung bis zur 6.
Normalform möglich, aber in den seltensten Fällen sinnvoll.
Viele „zu weit“ normalisierten Datenbanken sind von
„praxisnahen“ Entwickler bereits „zurück“ normalisiert
worden.

Ein Normalisierung bis zur dritten Normalform ist aber
unerläßlich.
1 - 86
Thomas Thobe
Datenbanken
1. Normalisierung:
Ein Relationstyp ist in der 1.Normalform, wenn alle
Attribute maximal einen Wert haben. oder
Die Wertebereiche der Merkmale sind atomar (es gibt
keine zusammengesetzten Werte) oder
Die erste Normalform fordert, dass alle Attribute einer
Entität/Entity in atomarer Form auftreten.
1 - 87
Thomas Thobe
Datenbanken
2. Normalisierung:
Ein Relationstyp ist in der 2.Normalform, wenn er in
der 1. ist und jedes Attribut vom gesamten Primärschlüssel abhängt oder
1.NF + Nichschlüsselmerkmale sind von allen Schlüsselmerkmalen voll funktional abhängig oder
Relationen befinden sich in der zweiten Normalform,
wenn sie sich in der ersten Normalform befinden und
kein Attribut existiert, dass nicht zum Schlüssel gehört
und nur von einem Teil des Schlüssels voll funktional
abhängig ist.
1 - 88
Thomas Thobe
Datenbanken
3. Normalisierung:
Die 3.Normalform ist erfüllt, wenn die 2. Normalform
erfüllt ist und die Nicht-Schlüssel-Attribute funktional
unabhängig voneinander sind oder
2.NF + kein Nichschlüsselmerkmal ist von irgend einem
Schlüssel transitiv (über Umwege) abhängig oder
Die dritte Normalform fordert, dass sich eine Relation
in der zweiten Normalform befindet und alle Attribute,
die nicht zum Schlüssel gehören nur vom Schlüssel abhängig sind. Mit anderen Worten, es darf keine Abhängigkeiten zwischen den Attributen geben.
1 - 89
Thomas Thobe
Datenbanken
Normalisierung an einem Beispiel:
Normalisierung an einem Beispiel:
Normalisierungsbeispiel
1 - 90
Datenbanken
Thomas Thobe
Eine Videothek
Kunden_ID
Produkt_ID
Name
Adresse
Tel.
Kunde_seit
Kunde_bis
Pr_Name
Pr_Art_Id
Pr_Art_Name
Pr_Preis
PR-Datum
????????????????
Verleih_ID
Kunden_ID
Produkt_ID
Mitarbeiter
Verleih_von
Verleih_bis
1 - 91
Datenbanken
Thomas Thobe
Eine Videothek
1.NF
Kunden_ID
Produkt_ID
Name
Adresse
Tel.
Kunde_seit
Kunde_bis
Pr_Name
Pr_Art_Id
Pr_Art_Name
Pr_Preis
PR-Datum
????????????????
Verleih_ID
Kunden_ID
Produkt_ID
Mitarbeiter
Verleih_von
Verleih_bis
1 - 92
Datenbanken
Thomas Thobe
Eine Videothek
1.NF
Kunden_ID
Produkt_ID
Name
Adresse
Tel.
Kunde_seit
Kunde_bis
Pr_Name
Pr_Art_Id
Pr_Art_Name
Pr_Preis
PR-Datum
????????????????
Verleih_ID
Kunden_ID
Produkt_ID
Mitarbeiter
Verleih_von
Verleih_bis
2.NF
oder
3.NF
1 - 93
Datenbanken
Thomas Thobe
Eine Videothek
1.NF
Kunden_ID
Produkt_ID
Name
Adresse
Tel.
Kunde_seit
Kunde_bis
Pr_Name
Pr_Art_Id
Pr_Art_Name
Pr_Preis
PR-Datum
3.NF
????????????????
Verleih_ID
Kunden_ID
Produkt_ID
Mitarbeiter
Verleih_von
Verleih_bis
2.NF
oder
3.NF
1 - 94
Datenbanken
Thomas Thobe
Eine Videothek
Kunden_ID
Name
Plz
Ort
Strasse
Tel.
Kunde_seit
Kunde_bis
Produkt_ID
Pr_Art_ID
Pr_Name
Pr_Art_ID
Pr_Preis
Pr-Datum
Pr_Art_Name
Verleih_ID
Kunden_ID
Produkt_ID
Verleih_von
Verleih_bis
1 - 95
Datenbanken
Thomas Thobe
Eine Videothek
Kunden_ID
Name
Plz
Ort
Strasse
Tel.
Kunde_seit
Kunde_bis
Produkt_ID
Pr_Art_ID
Pr_Name
Pr_Art_ID
Pr_Preis_ID
Pr-Datum
Pr_Art_Name
Pr_Preis_ID
Verleih_ID
Pr_Preis
Kunden_ID
Produkt_ID
Verleih_von
Verleih_bis
1 - 96
Datenbanken
Thomas Thobe
Eine Videothek
PLZ
Kunden_ID
Ort
Name
Plz
Strasse
Tel.
Kunde_seit
Kunde_bis
Produkt_ID
Pr_Art_ID
Pr_Name
Pr_Art_ID
Pr_Preis_ID
Pr-Datum
Pr_Art_Name
Pr_Preis_ID
Verleih_ID
Pr_Preis
Kunden_ID
Produkt_ID
Verleih_von
Verleih_bis
1 - 97
Datenbanken
Thomas Thobe
Eine Videothek
Ein Kunde kommt in eine Videothek und leiht sich was aus.......
Was? Ein Produkt......
Zu welchem Preis ?
Wer verleiht ihm was?
Mitarbeiter.....
Preis........
1 - 98
Datenbanken
Thomas Thobe
Eine Videothek
PLZ
Kunden_ID
Ort
Name
Plz
Strasse
Tel.
Kunde_seit
Kunde_bis
Mitarb_ID
Name
Vorname
PLZ
Strasse
Prov
Mitarb_seit
Mitarb_bis
Produkt_ID
Pr_Art_ID
Pr_Name
Pr_Art_ID
Pr_Preis_ID
Pr-Datum
Pr_Art_Name
Pr_Preis_ID
Verleih_ID
Pr_Preis
Kunden_ID
Produkt_ID
Verleih_von
Verleih_bis
1 - 99
Datenbanken
Thomas Thobe
Eine Videothek
PLZ
Kunden_ID
Ort
Name
Plz
Strasse
Tel.
Kunde_seit
Kunde_bis
Mitarb_ID
Name
Vorname
PLZ
Strasse
Prov
Mitarb_seit
Mitarb_bis
Produkt_ID
Pr_Art_ID
Pr_Name
Pr_Art_ID
Pr_Preis_ID
Pr-Datum
Pr_Art_Name
Pr_Preis_ID
Verleih_ID
Pr_Preis
Kunden_ID
Produkt_ID
Mitarb_ID
Verleih_von
Verleih_bis
1 - 100
Datenbanken
Thomas Thobe
Eine Videothek
PLZ P
Kunden_ID P
Ort
Name
Plz
Strasse
Tel.
Kunde_seit
Kunde_bis
Produkt_ID P
Pr_Art_ID P
Pr_Name
Pr_Art_ID F
Pr_Preis_ID F
Pr-Datum
Pr_Art_Name
Mitarb_ID P
Name
Vorname
PLZ
Strasse
Prov
Mitarb_seit
Mitarb_bis
Pr_Preis_ID P
Pr_Preis
Verleih_ID P
Kunden_ID F
Produkt_ID F
Mitarb_ID F
Verleih_von
Verleih_bis
Rechnung?
Bestellung?
Lager?
Offene Posten?
1 - 101
Thomas Thobe
Datenbanken
Exkurs:
Referentielle Integrität
1 - 102
Thomas Thobe
Datenbanken
Exkurs:
Referentielle Integrität
1. Man kann keinen Datensatz aus einer Relation
löschen, wenn er noch als Fremdschlüssel-Datensatz in
einer anderen Relation vorhanden ist!
1 - 103
Datenbanken
Thomas Thobe
Exkurs:
Referentielle Integrität
1. Man kann keinen Datensatz aus einer Relation
löschen, wenn er noch als Fremdschlüssel-Datensatz in
einer anderen Relation vorhanden ist!
Mitarb_ID
Name
Vorname
PLZ
Strasse
Prov
Mitarb_seit
Mitarb_bis
Verleih_ID
Kunden_ID
Produkt_ID
Mitarb_ID
Verleih_von
Verleih_bis
1 - 104
Thomas Thobe
Datenbanken
Exkurs:
Referentielle Integrität
2. Man kann keinen Datensatz mit einem Fremdschlüssel
anlegen, wenn der Fremdschlüssel noch nicht als
Primärschlüsseldatensatz existiert
1 - 105
Thomas Thobe
Datenbanken
Exkurs:
Kunden_ID
Referentielle Integrität
2. Man kann keinen Datensatz mit
einem Fremdschlüssel anlegen,
wenn der Fremdschlüssel
noch nicht als
Primärschlüsseldatensatz existiert
Name
Plz
Strasse
Tel.
Kunde_seit
Kunde_bis
Verleih_ID
Kunden_ID
Produkt_ID
Mitarb_ID
Verleih_von
Verleih_bis
1 - 106
Herunterladen