![Page 1: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/1.jpg)
1
Rückblick
• Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell)– ENTITY-TYPES
– RELATIONSHIP-TYPES (1:N / N:M / 1:1)
– Generalisierungshierarchie
• SQL-Anweisungen Überblick– CREATE TABLE
– CREATE DOMAIN [AS] Datentyp [CHECK]
– SELECT ... FROM ... WHERE ...
– UPDATE, INSERT INTO, DELETE FROM,
– Datentypen, Vergleichsoperatoren, Aggregationsfunktionen
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 2: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/2.jpg)
2
Offene Fragen
schreibweise Datentyp Date:
• Date'1995-06-22'
• Hochkomma: '
• Bei Strings: ' ' wird Gross-Kleinschreibung unterschieden,
• ansonsten (Schlüsselwörter, Tabellennamen, Attributnamen) wird Gross-Kleinschreibung nicht unterschieden .
• INSERT INTO : Zuweisung erfolgt über Position; bei Textfeldern müssen die Werte in Hochkomma eingefasst werden.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 3: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/3.jpg)
3
Ausblick heute
• Relationale Algebra (theoretische Basis)
• SQL detaillierter / systematischer / vollständiger– CREATE TABLE
– SELECT ... FROM ... WHERE ...
• JOIN (Verbund)
• NULL-Werte 3wertige Logik / Semantik
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 4: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/4.jpg)
Relationale Algebra
(Relationenalgebra)
![Page 5: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/5.jpg)
5
Relationale Algebra
Die relationale Algebra (Relationenalgebra)
bildet den formalen Rahmen für die
relationalen Datenbanksprachen.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 6: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/6.jpg)
6
Relationale Algebra
Relationale Datenbanksprachen, die die Operationen der Relationenalgebra sinngemäss umsetzen, heissen
relational vollständige Sprachen.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 7: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/7.jpg)
7
Relationale Algebra
Die relationale Algebra (Relationenalgebra) setzt Relationen (Tabellen) in der
ersten Normalform voraus.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 8: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/8.jpg)
8
Relationale Algebra
Man unterscheidet:
• Mengenorientierte Operatoren
• Relationenorientierte Operatoren
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 9: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/9.jpg)
9
Relationale Algebra
Alle Operatoren der Relationenalgebra
bilden eine oder zwei Tabellen auf eine neue Tabelle ab.
Tabelle1 Tabelle2
Tabelle1, Tabelle2 Tabelle3
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 10: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/10.jpg)
10
Relationale Algebra
Mengenorientierte Operatoren:
• Vereinigung R S
• Durchschnitt R S
• Differenz R \ S
• Kartesisches Produkt R x S
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 11: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/11.jpg)
11
Relationale Algebra
Vorraussetzung für die Anwendung der mengenorientierten OperatorenR S, R S, R \ S
ist das Verträglichkeitskriterium
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 12: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/12.jpg)
12
Verträglichkeitskriterium
Die in die Operationen (R S, R S, R \ S) involvierten Tabellen R und S weisen die gleiche Anzahl Attribute auf und die Domänen / Datenformate der korres-pondierenden Attribute sind identisch.Die Ergebnistabelle hat dann auch die gleiche Anzahl Attribute mit den gleichen Domänen.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 13: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/13.jpg)
13
Relationale Algebra
Ansonsten können die Operatoren der Relationenalgebra weitgehend ohne Einschränkung miteinander kombiniert werden.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 14: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/14.jpg)
14
Mengenorientierte Operatoren
R
S
R S
R
S
R
S
R S
R \ S
R
S
R x S
Kartesisches Produkt:={(x,y): R(x) S(y)}
{t| t R or t S} {t| t R and t S} {t| t R and t S}
Vereinigung Duchschnitt Differenz
![Page 15: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/15.jpg)
15
Relationale AlgebraVereinigung (R S):• Die Vereinigungstabelle enthält alle
Datensätze, die in R oder in S enthalten sind.
• Da es sich um die mengentheoretische Vereinigung handelt, werden Duplikate dabei eliminiert.
• Zur Anwendung der Vereinigung müssen R und S gleiche Stelligkeit und verträgliche Domänen haben.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 16: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/16.jpg)
16
Relationale AlgebraDurchschnitt (R S):• Die Durchschnittstabelle von R und S
enthält alle Datensätze (Tupel), die in R und in S enthalten sind.
• Alle Datensätze (Tupel) sind nur einmal enthalten.
• Zur Anwendung des Durchschnitts müssen R und S gleiche Stelligkeit und verträgliche Domänen haben.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 17: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/17.jpg)
17
Relationale AlgebraDifferenz (R \ S):• Die Ergebnistabelle der Differenzoperation
zwischen R und S enthält alle Datensätze (Tupel) , die in R und nicht in S enthalten sind.
• Zur Anwendung des Durchschnitts müssen R und S gleiche Stelligkeit und verträgliche Domänen haben.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 18: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/18.jpg)
18
Relationale AlgebraKartesisches Produkt (R S):• Das Kartesische Produktes R S zwischen
R und S ist die Menge aller möglichen Kombinationen (x,y), die sich aus den Tupeln x aus R und y aus S bilden lassen.
• Zur Anwendung des Kartesischen Produktes muss das Verträglichkeitskriterium nicht gelten, d.h. die Attribute der beteiligten Relationen müssen nicht gleiche Stelligkeit und verträgliche Domänen haben.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 19: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/19.jpg)
19
Relationale AlgebraKartesisches Produkt: R x S
Beispiel
Gegeben seien die Relationen
R = {(1,Julia), (2,Michael)}
und
S = {(1,Julia), (3,Toni)}
R x S = {(1,Julia,1,Julia), (1,Julia,3,Toni), (2, Michael, 1,Julia), (2,Michael,
3,Toni)}Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 20: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/20.jpg)
20
Beispieltabelle
M# Name Strasse Ort A#-Unt
M1 Meier Lindstrasse Liestal A3
M7 Huber Mattenweg Basel A5
M19 Schweizer Hauptstrasse Zürich A6
M4 Becker Wasserweg Liestal A6
Mitarbeiter
![Page 21: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/21.jpg)
21
Beispieltabelle
M# Name Strasse Ort
M1 Meier Lindstrasse Liestal
M7 Huber Mattenweg Basel
M19 Schweizer Hauptstrasse Zürich
Sportclub
![Page 22: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/22.jpg)
22
Beispieltabelle
M# Mitglied Strasse Ort
M4 Becker Wasserweg Liestal
M7 Huber Mattenweg Basel
Fotoclub
![Page 23: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/23.jpg)
23
Beispieltabelle
M# Name Strasse Ort
M1 Meier Lindstrasse Liestal
M7 Huber Mattenweg Basel
M19 Schweizer Hauptstrasse Zürich
M4 Becker Wasserweg Liestal
Clubmitglieder = Sportclub Fotoclub
![Page 24: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/24.jpg)
24
Beispieltabelle
M# Name Strasse Ort
M7 Huber Mattenweg Basel
Clubmitglieder = Sportclub Fotoclub
![Page 25: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/25.jpg)
25
Beispieltabelle
M# Name Strasse Ort
M1 Meier Lindstrasse Liestal
M19 Schweizer Hauptstrasse Zürich
Clubmitglieder = Sportclub \ Fotoclub
![Page 26: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/26.jpg)
26
Relationale AlgebraRelationenorientierte Operatoren:• Projektion der Tabelle R auf eine Menge von
Merkmalen M: M (R)
• Selektion von Zeilen aus einer Tabelle R mittels einer Formel F: F (R)
• Verbund zweier Tabellen R und S durch Prädikat P: R |X|P S
• Division der Tabelle R durch die Teiltabelle S: R S
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 27: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/27.jpg)
27
Relationenorientierte Operatoren
R
S
Verbund von R und S durch Prädikat P
R |X|P S
M (R)
R
R
R
F (R)
Projektionvon R auf M
Selektionvon R mittels F
![Page 28: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/28.jpg)
28
Relationenorientierte Operatoren
R
Divison der Tabelle Rdurch die Teiltabelle S
R S
S
![Page 29: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/29.jpg)
29
Relationale Algebra
Projektion: Wir setzen hier voraus, daß M eine
Teilmenge aller Attribute von R (A1,..., An)
ist.
Die Projektion entsteht aus R durch Weglassen aller Attribute von R, die nicht in M aufgeführt sind. Dabei auftretende Duplikate (Datensätze) müssen entfernt werden.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 30: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/30.jpg)
30
Relationale Algebra
Projektion:
Beispiel
R = {(42,18,Maria), (99,42,Max), (42,30,Maria)}
Projektion(R,1.Stelle, 3.Stelle) = {(42,Maria), (99, Max)}
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 31: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/31.jpg)
31
Beispiel - Projektion
Ort
Liestal
Basel
Zürich
Ort (Mitarbeiter)
![Page 32: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/32.jpg)
32
Beispiel 2 Projektion
A#-Unt Name
A3 Meier
A5 Huber
A6 Schweizer
A6 Becker
A#-Unt,Name (Mitarbeiter)
![Page 33: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/33.jpg)
33
BeispieltabelleKartesisches Produkt:Wettkampfpaarungen: (Sportclub \ Fotoclub) x Fotoclub
MitgliedM# M#Name Strasse StrasseOrt Ort
M1M1M19M19
M4M7M4M7
MeierMeierSchweizerSchweizer
LindstrasseLindstrasseHauptstrasseHauptstrasse
LiestalLiestalZürichZürich
BeckerHuberBeckerHuber
WasserwegMattenwegWasserwegMattenweg
LiestalBaselLiestalBasel
![Page 34: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/34.jpg)
34
Relationale AlgebraDivision: R S
Setzt voraus, dass S in R enthalten ist!!!
R S berechnet eine Teiltabelle R´von R mit der Eigenschaft, dass R´ x S R.
R´muss dabei maximal sein.
R´ enthält genau die Attribute von R, die nicht in S vorkommen.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 35: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/35.jpg)
35
M# PROJ#
M1M1M1M2M2M4M4
P1P2P4P1P2P2P4
PROJ#
P2P4
M#
M1M4
RTabelle der den Projekten zugeordneten Mitarbeiter
Beispiel Division
SR´
Mitarbeiter, die gleichzeitig an ProjektenP2 und P4 arbeiten
R´´= R´ x S
![Page 36: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/36.jpg)
36
Beispiel Verbund: Ausgangstabellen
M# UntOrtStrasseNameM19M1M7M4
SchweizerMeierHuberBecker
HauptstrasseLindstrasseMattenwegWasserweg
ZürichLiestalBaselLiestal
A6A3A5A6
Mitarbeiter
A# BezeichnungA3A5A6
InformatikPersonalFinanz
Abteilung
![Page 37: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/37.jpg)
37
Beispiel Verbund
M# UntOrtStrasseNameM19M1M7M4
SchweizerMeierHuberBecker
HauptstrasseLindstrasseMattenwegWasserweg
ZürichLiestalBaselLiestal
A6A3A5A6
Mitarbeiter ||Unt=A# Abteilung
A# BezeichnungA6A3A5A6
FinanzInformatikPersonalFinanz
![Page 38: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/38.jpg)
38
Verbund
Es gilt folgende Formel:
R ||P S = P R S
Dies bedeutet, dass der Verbund von R und S mittels P durch das Kartesische Produkt von R und S plus anschliessender Selektion mittels P definiert werden kann.
![Page 39: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/39.jpg)
39
Relationale Algebra• Vereinigung• Differenz• Kartesisches Produkt• Projektion• Selektion
sind die kleinst mögliche Menge von Operatoren der Relationenalgebra. Alle anderen können dadurch definiert werden.
Beispiel: R S := R \ (R \ S)
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 40: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/40.jpg)
SQL DDL
![Page 41: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/41.jpg)
41
SQL DDL
CREATE TABLEALTER TABLEDROP TABLE
CREATE DOMAINALTER DOMAINDROP DOMAIN
CREATE VIEWDROP VIEW
CREATE INDEXALTER INDEXDROP INDEX
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
Konzeptuelle Ebene
Konzeptuelle Ebene / SQL 92
Externe Ebene
Interne Ebene
![Page 42: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/42.jpg)
42
CREATE TABLE
Allgemein:
CREATE TABLE table_name(spaltendefinitionsliste[,tabellenintegritätsregelliste]);
spaltendefinition ::=spaltenname typangabe [default-Klausel]
[spaltenintegritätsregelliste]
tabellenintegritätsregel ::=
check-klausel | primary_key-klausel |
unique-klausel | foreign-key-klausel
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 43: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/43.jpg)
43
CREATE TABLE
Der Tabellenname muss innerhalb der Datenbank eindeutig sein!
Innerhalb einer Tabellendefinition müssen die Attributnamen ebenfalls eindeutig sein!
Integritätsregeln können als Spalten- oder als Tabellenintegritätsregeln formuliert werden.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 44: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/44.jpg)
44
DDL CREATE TABLE
Mögliche Integritätsregeln:• Primärschlüssel
• weitere Schlüssel (Schlüsselkandidaten)
• Fremdschlüssel mit Bezugstabelle
• Einschränkungen für die Wertebereiche der Spalten
• Verbot von Nullmarken in Spalten
• Spaltenübergreifende Integritätsbedingungen
• tabellenübergreifende Integritätsbedingungen
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 45: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/45.jpg)
45
Spaltendefinition
Allgemein:
spaltendefinition ::=spaltenname typangabe [default-Klausel]
[spaltenintegritätsregelliste]
„typangabe“ ist ein Datentyp oder eine in der Datenbank definierte Domäne.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 46: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/46.jpg)
46
Spaltendefinition
DEFAULT-Klausel:default-klausel ::=
DEFAULT NULL | DEFAULT systemvariable | DEFAULT literal
NULL: Standardmässig wird eine Nullmarke eingesetzt.
Mögliche Systemvariable:
CURRENT_USER, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP
literal ist eine explizite Angabe des DEFAULT-Werts. Sie muss zu der Datentypdefinition bzw. der Domäne der Spalte passen.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 47: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/47.jpg)
47
Spaltendefinition
DEFAULT-Klausel (Beispiel):
CREATE TABLE vorschlag (
vorschlagsnr INTEGER NOT NULL,
mitarbeitername CHAR(30) DEFAULT CURRENT_USER,
datum DATE DEFAULT CURRENT_DATE,
art vorschlagsart DEFAULT ‘informatik‘,
vorschlag VARCHAR(200)
);
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 48: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/48.jpg)
48
Spaltendefinition
Domain-Definition
CREATE DOMAIN vorschlagsart AS char(30)
CHECK (VALUE IN ('informatik'‚ 'mathematik'));
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 49: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/49.jpg)
49
Spaltendefinition
Spaltenintegritätsregel (Beispiel):
CREATE TABLE vorschlag (
vorschlagsnr INTEGER NOT NULL,
mitarbeitername CHAR(30) DEFAULT CURRENT_USER,
datum DATE DEFAULT CURRENT_DATE,
art vorschlagsart DEFAULT ‘informatik‘,
vorschlag VARCHAR(200)
);
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 50: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/50.jpg)
50
Spaltendefinition
Spaltenintegritätsregel (Beispiel):CREATE TABLE Kunde (kundennr INTEGER NOT NULL,status CHAR(1) NOT NULL
CHECK (status IN (‘W‘, ‘G‘, ‘S‘)),Name CHAR(30) NOT NULL,zahlungsart CHAR(1) NOT NULL DEFAULT ‘N‘
CHECK (zahlungsart IN (‘R‘, ‘B‘, ‘N‘,‘V‘,‘K‘)),Ort CHAR (39) NOT NULL,PRIMARY KEY (kundennr));
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 51: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/51.jpg)
51
Spalten- Tabellenintegrität
Falls sich eine Tabellenintegritätsregel nur auf eine Spalte (ein Attribut) bezieht unterscheidet sie sich inhaltlich (semantisch) und von der Form her nicht von der sinngleichen Spaltenintegritätsregel.
Der Unterschied ergibt sich nur aus der Position in der DELETE TABLE Anweisung.
Um spaltenübergreifende Integritätsregeln zu formulieren muss eine Tabellenintegritätsregel verwendet werden.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 52: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/52.jpg)
52
Spalten- Tabellenintegrität
Bei jeder Datenänderung wird sichergestellt, dass die in den Integritätsregeln formulierten Bedingungen nicht den Wert false annehmen können.
Der Wert unknown der dreiwertigen Logik, der durch NULL-Marken repräsentiert wird, ist allerdings zulässig
CHECK (liefermenge <= bestellmenge)
wird akzeptiert für liefermenge IS NULL
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 53: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/53.jpg)
53
Tabellenintegritätsregel
CHECK-Klausel (allgemeine Form):
CHECK (bedingung)• „bedingung“ ist analog der WHERE-Klausel in der
SELECT-Anweisung definiert.
• Dabei sind auch Unterabfragen zulässig, die sich auf andere Tabellen in der gleichen DB beziehen.
• Bei jeder Datenänderung wird sichergestellt, dass „bedingung“ nicht den Wert „false“ annimmt, „unknown“ ist hingegen erlaubt.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 54: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/54.jpg)
54
Tabellenintegritätsregel
CHECK-Klausel (Beispiel):CREATE TABLE Kunde (kundennr INTEGER NOT NULL,status CHAR(1) NOT NULL,Name CHAR(30) NOT NULL,zahlungsart CHAR(1) NOT NULL DEFAULT
‘N',Ort CHAR (39) NOT NULL,CHECK (status IN (‘W‘, ‘G‘, ‘S‘)),CHECK (zahlungsart IN (‘R‘, ‘B‘, ‘N‘,‘V‘,‘K‘)));
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 55: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/55.jpg)
55
Tabellenintegritätsregel
PRIMARY KEY-Klausel (allgemeine Form):
PRIMARY KEY (spaltenliste)
Die PRIMARY KEY-Klausel ist nicht verbindlicher Bestandteil der CREATE TABLE-Anweisung.
Jede Relation muss allerdings einen Primary Key haben.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 56: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/56.jpg)
56
Tabellenintegritätsregel
CHECK-Klausel ermöglicht:
• weitere Festlegungen bezüglich der erlaubten Spaltenwerte
• die Formulierung spaltenübergreifender Integritätsbedingungen
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 57: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/57.jpg)
57
Tabellenintegritätsregel
CHECK-Klausel (Beispiel):
CREATE TABLE bestellung (
kundennr INTEGER NOT NULL,
liefermenge INTEGER,
bestellmenge INTEGER,
CHECK (liefermenge <= bestellmenge)
);
Es ist zulässig, dass eines der beiden Attribute einen Nullwert hat.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 58: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/58.jpg)
58
Tabellenintegritätsregel
PRIMARY KEY-Klausel (Beispiel 1):
CREATE TABLE bestellung (
kundennr INTEGER NOT NULL,
liefermenge INTEGER,
bestellmenge INTEGER,
CHECK (liefermenge <= bestellmenge),
PRIMARY KEY (kundennr)
);
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 59: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/59.jpg)
59
Tabellenintegritätsregel
PRIMARY KEY-Klausel (Beispiel 1):
CREATE TABLE bestellung (
kundennr INTEGER,
liefermenge INTEGER,
bestellmenge INTEGER,
CHECK (liefermenge <= bestellmenge),
PRIMARY KEY (kundennr)
);
Auf die Angabe „NOT NULL“ kann verzichtet werden:
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 60: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/60.jpg)
60
Tabellenintegritätsregel
PRIMARY KEY-Klausel (Beispiel 2):
Bei einspaltigem Primärschlüssel ist auch folgende Festlegung möglich:
CREATE TABLE bestellung (
kundennr INTEGER PRIMARY KEY,
liefermenge INTEGER,
bestellmenge INTEGER,
CHECK (liefermenge <= bestellmenge)
);
Der Schlüssel bezieht sich dennoch auf die ganze Tabelle!
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 61: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/61.jpg)
61
Tabellenintegritätsregel
Beispiel:CREATE TABLE Kunde (kundennr INTEGER NOT NULL,status CHAR(1) NOT NULL,Name CHAR(30) NOT NULL,zahlungsart CHAR(1) NOT NULL DEFAULT
‘N',Ort CHAR (39) NOT NULL,CHECK (status IN (‘W‘, ‘G‘, ‘S‘)),CHECK (zahlungsart IN (‘R‘, ‘B‘, ‘N‘,‘V‘,‘K‘)),PRIMARY KEY (kundennr));Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 62: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/62.jpg)
62
Tabellenintegritätsregel
FOREIGN KEY-Klausel (allgemeine Form):
foreign_key-klausel ::=
FOREIGN KEY (spaltenliste)REFERENCES tabellenname [(spaltenliste)][ON DELETE änderungsaktion]ON UPDATE änderungsaktion]
Unterstützung der referentiellen Integrität!!!
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 63: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/63.jpg)
63
Tabellenintegritätsregel
FOREIGN KEY-Klausel (Beispiel):CREATE TABLE bestellung (bestellnr INTEGER NOT NULL,kundennr INTEGER NOT NULL,bestelldatum DATE NOT NULL,lieferdatum DATE,rechnungsbetrag MONEY,PRIMARY KEY (bestellnr),FOREIGN KEY (kundennr) REFERENCES Kunde);
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 64: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/64.jpg)
64
Tabellenintegritätsregel
FOREIGN KEY-Klausel (Beispiel-Kurzform):CREATE TABLE bestellung (bestellnr INTEGER NOT NULL,kundennr INTEGER NOT NULL
FOREIGN KEY REFERENCES Kunde,bestelldatum DATE NOT NULL,lieferdatum DATE,rechnungsbetrag MONEY,PRIMARY KEY (bestellnr));
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 65: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/65.jpg)
65
FOREIGN KEY-Klausel
Aktionsregeln für referentielle Integrität:änderungsaktion ::=
NO ACTION | CASCADE | SET NULL | SET DEFAULT
Änderung am Primärschlüssel können – verboten werden (NO ACTION)– an Fremdschlüssel weitergeben werden (CASCADE)– Fremdschlüsselwert auf Null setzen (SET NULL)– Fremdschlüsselwert auf Defaultwert setzen (SET DEFAULT)
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 66: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/66.jpg)
66
FOREIGN KEY-Klausel
NO ACTION
Jegliche Änderung an den referenzierten Schlüsselwerten ist untersagt, wenn es korrespondierende Fremdschlüsselwerte gibt.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 67: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/67.jpg)
67
FOREIGN KEY-Klausel
CASCADE
Die per Fremdschlüsselwert korrespondierenden Zeilen in der abhängigen Tabelle werden entsprechend manipuliert, wenn der Schlüsselwert gelöscht oder geändert wird. Wird z.B. ein Kunde gelöscht, werden auch die zugehörigen Bestellungen gelöscht.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 68: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/68.jpg)
68
FOREIGN KEY-Klausel
SET NULL
Korrespondierende Fremdschlüsselwerte werden auf NULL gesetzt, wenn der referentielle Schlüssel manipuliert wird.
Dies setzt voraus, dass für die Fremdschlüsselwerte Nullmarken zugelassen sind.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 69: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/69.jpg)
69
FOREIGN KEY-Klausel
SET DEFAULT
Alle entsprechenden Fremdschlüsselwerte werden auf den bei der Tabellendefinition mit der DEFAULT-Klausel definierten Default-Wert gesetzt, wenn der Primärschlüssel verändert wird.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 70: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/70.jpg)
70
Tabellenintegritätsregel
FOREIGN KEY-Klausel (Beispiel 2):CREATE TABLE position (bestellnr INTEGER NOT NULL,artikelnr INTEGER NOT NULL,bestellmenge INTEGER NOT NULL,liefermenge INTEGER,gesamtpreis MONEY,PRIMARY KEY (bestellnr, artikelnr),FOREIGN KEY (bestellnr) REFERENCES bestellungON UPDATE CASCADEON DELETE CASCADE);
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 71: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/71.jpg)
71
Tabellenintegritätsregel
FOREIGN KEY-Klausel (Beispiel 3):
Bei vorliegen der Regel (in der Tabelle „bestellung“) FOREIGN KEY (kundennr) REFERENCES kunde
wird DROP TABLE kunde
nicht ausgeführt.
DROP TABLE kunde CASCADElöscht die ganze Integritätsdefinition aus der Tabelle „bestellung“.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 72: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/72.jpg)
72
Tabellenintegritätsregel
UNIQUE-Klausel (allgemeine Form):
unique-klausel ::=
UNIQUE(spaltenliste)
dient dazu, Schlüsselkandidaten zu verwalten
Schlüsselkandidaten dürfen wie Primärschlüssel nicht mehrfach vorkommen.
NULL-Werte sind allerdings erlaubt, d.h. sie werden nicht automatisch ausgeschlossen.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 73: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/73.jpg)
73
Tabellenintegritätsregel
UNIQUE-Klausel (Beispiel):CREATE TABLE Kunde (kundennr INTEGER NOT NULL,status CHAR(1) NOT NULL,Name CHAR(30) NOT NULL,zahlungsart CHAR(1) NOT NULL DEFAULT ‘N',Ort CHAR (39) NOT NULL,debitoren_kontonr INTEGER NOT NULL,UNIQUE (debitoren_kontonr),PRIMARY KEY (kundennr));
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 74: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/74.jpg)
74
Tabellenintegritätsregel
UNIQUE-Klausel (Beispiel 2):CREATE TABLE Kunde (kundennr INTEGER NOT NULL,...debitoren_kontonr INTEGER NOT NULL UNIQUE,PRIMARY KEY (kundennr));
UNIQUE kann bei einspaltigem Kandidatenschlüssel auch in Kurzform als Bestandteil der Spaltendefinition verwendet werden
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 75: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/75.jpg)
75
tabellenübergreifende Integritätsregeln
ASSERTION-Statement
CREATE ASSERTION assertion-nameCHECK (bedingung) [attributliste]
„bedingung“ formuliert die Bedingung, die nicht verletzt werden darf
Ist in vielen DBMS noch nicht realisiert.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 76: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/76.jpg)
76
tabellenübergreifende Integritätsregeln
ASSERTION-Statement (Beispiel): CREATE ASSERTION kunde_zahlartCHECK (NOT EXISTS (
SELECT * FROM kunde kWHERE zahlungsart =‘B‘ AND NOT EXISTS(
SELECT * FROM girokonto gWHERE g.kundennr = k.kundennr
)));
Zahlungsart =„B“ nur dann, wenn Bankkonto bekannt!
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 77: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/77.jpg)
77
ALTER TABLE
Schema-Evolution in SQL2: ALTER TABLE <relation> DROP COLUMN <attribute>;
ALTER TABLE <relation> ADD COLUMN <attribute> <domain>;
Keines der vorhandenen Applikationsprogramme sollte dadurch beeinträchtigt werden, es sei denn, es verwendet das zu löschende Attribut.
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 78: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/78.jpg)
78
CAST-Funktion zur Typkonversion
Allgemein:CAST (Skalarer Ausdruck AS [datentyp | domäne])
Beispiel:
CAST(‘344‘ AS INTEGER)
Die Zeichenfolge ‘344‘ wird in die Zahl 344 umgeformt. (erfolgt i.a. Fall nur, wenn es möglich ist.)
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 79: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/79.jpg)
79
Übungsaufgabe
Schemadefinition
Vertriebsdatenbank
(Web-Shop)
in SQL
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 80: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/80.jpg)
80
Produkt Bestellung Kunde
Lieferant
Spediteur Mitarbeiter
Kategorie
Offerte
liefert beschreibt
liefertaus
Posten bestellt
bearbeitetofferiert
PNr BNr KuNr
LNr KaNr
SNr MNr ONrbearbeitet
Offerte
n m n 1
n
1
n
1
n
1
n
1
1 n
1
n
Anzahl BDatumPreis
LPreisLDATUM
OPosten
n
mAnzahlPreis
![Page 81: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/81.jpg)
81
Tabellen Vertriebsdatenbank
Kunde(KuNr, Name, Adresse, Rabatt)Produkt(PNr, P-Name, KaNr, LNr, Preis, LPreis)Bestellung(BNr,KuNr,MNr,SNr,Bestelldatum,
Lieferdatum)Lieferant(LNr,Name, Adresse)Kategorie(KaNr,Name)Spediteur(SNr, Name, Adresse)Mitarbeiter(MNr,Name, Adresse)Offerte(Onr, KuNr, MNr)Posten(PNr,BNr,Anzahl)Oposten(PNr,ONr,Anzahl,Preis)
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
![Page 82: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/82.jpg)
82
Lösungsbeispiel 1
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
CREATE TABLE Kunde (
KuNr integer PRIMARY KEY,
Name char(20) NOT NULL,
Adresse char(50),
Rabatt Decimal(3,1)
);
![Page 83: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/83.jpg)
83
Lösungsbeispiel 2
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
CREATE TABLE Bestellung (BNr integer PRIMARY KEY,KuNr integer NOT NULL,MNr integer,SNr integer,Bestelldatum Date DEFAULT CURRENT_DATE,Lieferdatum Date,FOREIGN KEY (KuNr) REFERENCES Kunde ON DELETE NO
ACTION ON UPDATE CASCADE,FOREIGN KEY (MNr) REFERENCES Mitarbeiter ON DELETE
SET NULL ON UPDATE CASCADE,FOREIGN KEY (SNr) REFERENCES Spediteur ON DELETE
SET NULL ON UPDATE CASCADE);
![Page 84: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/84.jpg)
84
Lösungsbeispiel 3
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
CREATE TABLE Posten (
BNr integer,
PNr integer,
Anzahl integer NOT NULL,
PRIMARY KEY (BNr, PNr),
FOREIGN KEY (BNr) REFERENCES Bestellung ON DELETE CASCADE ON UPDATE CASCADE,
FOREIGN KEY (PNr) REFERENCES Produkt ON DELETE NO ACTION ON UPDATE CASCADE
);
![Page 85: 1 Rückblick Abbildung E/R-Modell auf Relationales Modell (Tabellenmodell) –ENTITY-TYPES –RELATIONSHIP-TYPES (1:N / N:M / 1:1) –Generalisierungshierarchie](https://reader035.vdocuments.us/reader035/viewer/2022070310/55204d6149795902118b57b8/html5/thumbnails/85.jpg)
85
Aufgabe Bibliothek
Prof. Dr. Fabian Glasen, Datenbanken, Februar 2002
• Modellieren Sie eine Bibliothek (Bücher/ Ausleihe / Autoren / Benutzer (Ausleihende) / Vormerkungen) im E/R-Modell (möglichst redundanzfrei).Folgendes sollte dabei berücksichtigt werden:
• Ein Buch kann mehrere Autoren haben.• Ein Buch kann in verschiedenen Auflagen vorliegen.• Jede Auflage eines Buches kann in mehreren Exemplaren in
der Bibliothek vorhanden sein.• Bücher sollten nach explizit zugeordneten Schlagworten
gesucht werden können.• Übersetzen Sie das E/R-Modell möglichst redundanzfrei ins
relationale Modell (Datenbankschema in Tabellenform) • Geben Sie alle SQL-Kommandos an, die zur Anlage der
Tabellen notwendig sind (inklusive aller sinnvollen Integritätsregeln).