teil 5: einf¨uhrung in logisches designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfletzte...

38
5. Einf¨ uhrung in logisches Design 5-1 Teil 5: Einf¨ uhrung in logisches Design Literatur: Elmasri/Navathe:Fundamentals of Database Systems, 3. Auflage, 1999. Chapter 3, “Data Modeling Using the Entity-Relationship Model” Silberschatz/Korth/Sudarshan: Database System Concepts, 3. Auflage, Ch. 2, “Entity-Relationship Model”. Ramakrishnan: Database Management Systems, Mc-Graw Hill, 1998, Ch. 14, “Conceptual Design and the ER-Model” Kemper/Eickler: Datenbanksysteme, Ch. 2, Oldenbourg, 1997. Rauh/Stickel: Konzeptuelle Datenmodellierung, Teubner, 1997. Teorey: Database Modeling and Design, 3. Auflage, 1999. Barker: CASE*Method, Entity Relationship Modelling, Oracle/Addison-Wesley, 1990. Lipeck: Skript zur Vorlesung Datenbanksysteme, Univ. Hannover, 1996. S. Brass: Datenbanken I [ ¨ Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Upload: others

Post on 10-Mar-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-1

Teil 5: Einfuhrung inlogisches Design

Literatur:• Elmasri/Navathe:Fundamentals of Database Systems, 3. Auflage, 1999.

Chapter 3, “Data Modeling Using the Entity-Relationship Model”

• Silberschatz/Korth/Sudarshan: Database System Concepts, 3. Auflage,Ch. 2, “Entity-Relationship Model”.

• Ramakrishnan: Database Management Systems, Mc-Graw Hill, 1998,Ch. 14, “Conceptual Design and the ER-Model”

• Kemper/Eickler: Datenbanksysteme, Ch. 2, Oldenbourg, 1997.

• Rauh/Stickel: Konzeptuelle Datenmodellierung, Teubner, 1997.

• Teorey: Database Modeling and Design, 3. Auflage, 1999.

• Barker: CASE*Method, Entity Relationship Modelling, Oracle/Addison-Wesley, 1990.

• Lipeck: Skript zur Vorlesung Datenbanksysteme, Univ. Hannover, 1996.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 2: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-2

Lernziele

Nach diesem Kapitel sollten Sie folgendes konnen:

• Ein gegebenes Entity-Relationship-Diagramm in

das relationale Modell ubersetzen.

D.h. ein aquivalentes relationales Datenbank-Schema ermitteln (ein-schließlich Schlussel und Fremdschlussel).

• Erklaren welche Konstrukte (Kardinalitaten) nicht

direkt ubersetzt werden konnen.

• Typische Strukturen (wie viele-zu-viele-Beziehun-

gen) in relationalen Datenbank-Schemen wiederer-

kennen.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 3: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-3

Inhalt

1. Ziele des logischen Design

'

&

$

%2. Basis ER-Konstrukte

3. Schwache Entities

4. Eins-zu-Eins-Beziehungen

5. Letzte Schritte, Einschrankungen

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 4: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-4

Generelle Bemerkungen (1)

• Um ein relationales Schema zu entwickeln, entwirft

man zunachst ein ER-Diagramm, und transformiert

es dann in das relationale Modell, da das ER-Modell

� eine bessere Dokumentation der Beziehung zwi-

schen dem Schema und der realen Welt erlaubt.Z.B. Entity-Typen und Relationships kennzeichnet.

� eine nutzliche graphische Notation hat.

� Konstrukte wie Vererbung beinhalt, fur die es

keinen Gegenspieler im relationalen Modell gibt.Das schwierige konzeptionelle Design kann etwas erleichtert wer-den, wenn man zunachst die erweiterten Moglichkeiten verwendet.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 5: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-5

Generelle Bemerkungen (2)

• Fur ein gegebenes ER-Schema SE soll ein relatio-

nales Schema SR entwickelt werden, sodass es eine

eins-zu-eins-Ubertragung τ zwischen den Zustan-

den fur SE und SR gibt.D.h. fur jeden moglichen DB-Zustand bezogen auf SE gibt es genaueinen Zustand bezogen auf SR, und umgekehrt.

• Zustande, die im relationalen Schema moglich sind,

aber im ER-Schema bedeutungslos, mussen durch

Integritatsbedingungen ausgeschlossen werden.Z.B. konnen Relationships im ER-Modell nur zwischen bereits existie-renden Entities bestehen. Im relationalen Modell mussen “danglingZeiger” durch Fremdschlusselbedingungen ausgeschlossen werden.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 6: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-6

Generelle Bemerkungen (3)

• Zusatzlich muss es moglich sein, Anfragen bezogen

auf SE in Anfragen bezogen auf SR zu ubersetzen,

diese im relationalen System auszuwerten, und die

Antwort zuruckzuubersetzen.

• D.h. es muss moglich sein, die entworfene ER-Da-

tenbank durch die eigentlich implementierte rela-

tionale Datenbank zu simulieren.

Jede Schema-Ubersetzung sollte den Zusammenhang von Schemaele-menten erklaren, sodass, in unserem Fall, jede Anfrage an das ER-Schema auch an das relationale Schema gestellt werden kann.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 7: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-7

Inhalt

1. Ziele des logischen Design

2. Basis ER-Konstrukte

'

&

$

%3. Schwache Entities

4. Eins-zu-Eins-Beziehungen

5. Letzte Schritte, Einschrankungen

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 8: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-8

Beispiel

Customer�

��

��

��CustNo�

���Name

@@

@

f ��

��Phone(0, ∗)

HHHHHH

������ places

HHHH

HH

����

��

(1,1)

Order

��

��OrdNo

��� �

���Date

@@

@

(0, ∗)���

���

HHHHHH

for ������

HHHHHH

��

��Quantity

(0, ∗)Product

��

��ProdNo

��� �

���Price

@@

@

��

��Description

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 9: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-9

Schritt 1: Entities (1)

• Als erstes erstellt man fur jedes Entity eine Tabelle.

Der Name der Tabelle ist der Name des Entities.Alternativ kann die Pluralform verwendet werden.

• Die Spalten der Tabelle sind die Attribute des Enti-

ty-Typs.Optionale Attribute werden in Spalten ubersetzt, die Nullwerte erlau-ben.

• Der Primarschlussel der Tabelle ist auch der Pri-

marschlussel des Entity-Typs.Falls der Entity-Typ keinen Primarschlussel hat, wird ein kunstlicherSchlussel hinzugefugt.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 10: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-10

Schritt 1: Entities (2)

Customers

CustNo Name Phone10 Jones 624-940411 Smith

Orders

OrdNo Date200 2/15/00201 2/16/00

Products

ProdNo Description Price1 Apple 0.502 Kiwi 0.253 Orange 0.60

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 11: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-11

Schritt 2: Eins-Zu-Viele-Bez. (1)

• Hat eine Beziehung die maximale Kardinalitat 1 auf

einer Seite, so ist es eine 1-zu-viele Beziehung. Z.B.

ist “places” 1-zu-viele von “Customer” zu “Order”.

Hat es die maximale Kardinalitat 1 auf beiden Seiten, so ist es eigent-lich eine eins-zu-eins-Beziehung (siehe unten).

• In diesem Fall wird der Schlussel der ”eins”-Seite

(Customer) als Spalte zur “viele”-Seite (Order) zu-

gefugt.

• Diese Spalte wird ein Fremdschlussel, die die Zeile

des entsprechenden Entities referenziert.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 12: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-12

Schritt 2: Eins-Zu-Viele-Bez. (2)

• Ergebnis fur das Beispiel:

Orders(OrdNo, Date, CustNo→Customers)

Orders

OrdNo Date CustNo200 2/15/00 11201 2/16/00 11

Customers

CustNo Name Phone10 Jones 624-940411 Smith

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 13: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-13

Schritt 2: Eins-Zu-Viele-Bez. (3)

• Wenn die Minimum-Kardinalitat 1 ist (wie in diesem

Fall), so sind Nullwerte fur die Fremdschlusselspalte

nicht erlaubt.

• Sollte die Minimum-Kardinalitat 0 sein, so mussen

Nullwerte in der Fremdschlusselspalte erlaubt sein.

Der Wert in dieser Spalte ist Null fur die Entities, die nicht an derBeziehung teilnehmen.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 14: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-14

Schritt 2: Eins-Zu-Viele-Bez. (4)

• Der Beziehungsname kann in dem Spaltennamen

verwendet werden, z.B.

Orders(OrdNo, Date, placed_by→Customers)

• Das schließt naturliche Joins aus (verbindet Tabel-

len durch gleichnamige Spalten, vgl. Kap. 6), diese

Operation ist in SQL aber nicht wichtig (Stilfrage).

• Naturlich mussen alle Spalten einer Tabelle ein-

deutige Namen haben. Hat ein zugefugter Fremd-

schlussel den gleichen Namen wie eine vorhandene

Spalte, muss mindestens eine umbenannt werden.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 15: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-15

Schritt 2: Beziehungsattribute

• Beziehungen konnen Attribute haben, z.B.:

Student

����

���Stud ID

@@

@

. . .

(0, ∗)���

�����

HHHHHH

HH

borrowed ������

��

HHHHHH

HH

(0,1)

��

��Date

Book

��

��Book ID

���

@@

@

. . .

• Solche Attribute werden zusammen mit dem Zeiger

auf das bezogene Entity gespeichert.

Books(Book ID, ..., Stud IDo→Students, Dateo)

“Stud ID” und “Date” konnen Null sein, da nicht jedes Buch ausge-liehen wird, aber sie konnen nur zusammen Null oder nicht Null sein(→ CHECK-Constraint).

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 16: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-16

Schritt 2: Eine Variante

• Eins-zu-viele-Beziehungen mit Kardinalitat (0,1)

konnen in eine eigene Tabelle ubersetzt werden.

borrowed by(Book ID→Books, Stud ID→Students,

Date)

• Die Schlussel beider zugehoriger Entities und die

Beziehungsattribute werden in der Tabelle gespei-

chert. Das Schlusselattribut der Seite mit der (0,1)-

Kardinalitat wird Schlussel der Relation.

Jedes Buch kann zu einer Zeit nur ein Mal ausgeliehen werden.

• Dies funktioniert mit der (1,1)-Kardinalitat nicht.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 17: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-17

Schritt 3: Viele-Zu-Viele-Bez.(1)

• Eine Beziehung ist viele-zu-viele, wenn sie die maxi-

male Kardinalitat ∗ auf beiden Seiten hat (z.B.“for”).

• Viele-zu-viele-Beziehungen werden in eigene Tabel-

len ubersetzt.

• Die Spalten der Tabelle sind die Schlussel der teil-

nehmenden Entity-Typen, die zusammen den Schlussel

dieser Tabelle bilden.

• Diese Spalten sind zugleich auch Fremdschlussel,

die die Tabellen der Entity-Typen referenzieren.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 18: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-18

Schritt 3: Viele-Zu-Viele-Bez.(2)

• Beziehungsattribute werden als Spalten hinzuge-

fugt. Sie sind nicht Teil des Schlussels, z.B.

for(OrdNo→Orders, ProdNo→Products, Quantity)

• Man beachte, dass der Schlussel von “for” wirklich

aus “OrdNo” und “ProdNo” bestehen muss.

Da eine Bestellung mehrere Produkte beinhalten kann, kann “OrdNo”allein nicht Schlussel sein.Da das gleiche Produkt in verschiedenen Bestellungen auftreten kann,reicht auch “ProdNo” allein als Schlussel nicht aus.

• Tabellen konnen umbenannt werden. Z.B. ist

“Order_Details” ein besserer Name als “for”.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 19: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-19

Schritt 3: Viele-Zu-Viele-Bez.(3)

for

OrdNo ProdNo Quantity200 1 1200 2 1201 1 5

Orders

OrdNo Date CustNo200 2/15/00 11201 2/16/00 11

Products

ProdNo Description Price1 Apple 0.502 Kiwi 0.253 Orange 0.60

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 20: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-20

Schritt 3: Viele-Zu-Viele-Bez.(4)

• Eine andere Minimumkardinalitat als 0 bei einer

viele-zu-viele-Bez. kann nicht durch Standard-Cons-

traints des relationalen Modells spezifiziert werden.

• Z.B. macht es Sinn zu verlangen, dass jede Bestel-

lung mindestens ein Produkt enthalt. Dies wird aber

ein allgemeiner Constraint im relationalen Modell.

• Da dies fur die Gultigkeit des DB-Zustandes wichtig

ist, kann man die Kardinalitaten spezifizieren und

spater durch Anwendungsprogramme uberprufen.

Es kann nur in der CREATE TABLE -Anweisung nicht festgelegt werden.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 21: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-21

Zusammengesetzte Fremdschl.

Course

��

��CRN

��� �

���Title

@@

@

(1,1)���

������

HHHHHH

HHH

taught by ������

���

HHHHHH

HHH

(0, ∗)Instructor

��

��First

��� �

���Last

@@

@

• Ein zusammengesetzter Fremdschlussel wird ver-

wendet, um eine Tabelle mit einem zusammenge-

setzten Schlussel zu referenzieren.

Course(CRN, Title, (First, Last) → Instructor)

• Ware die Minimum-Kardinalitat 0, konnten “First”

und “Last” Null sein, aber nur zusammen.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 22: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-22

Inhalt

1. Ziele des logischen Design

2. Basis ER-Konstrukte

3. Schwache Entities

'

&

$

%4. Eins-zu-Eins-Beziehungen

5. Letzte Schritte, Einschrankungen

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 23: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-23

Schritt 1B:Schwache Entities (1)

Invoice

��

��Inv No

��� �

���Date

@@

@

(1, ∗)�

��

@@

@@

��

��

@@

@@

has��

��

@@

@@

��

��

@@

@@

Position

��

��Pos

• Wird ein schwaches Entity ubersetzt, mussen die

Schlussel des Master-Entity als Fremdschlussel zu-

gefugt werden.

Position(Inv No→ Invoice, Pos, . . . )

• Das implementiert automatisch die Beziehung.Eine solche Beziehung muss in Schritt 2 ignoriert werden. Es ist sinn-voll, hier “DELETE CASCADES” fur den Fremdschlussel zu spezifizieren.Man beachte, dass es im relationalen Modell keine ”gestrichelte Un-terstreichung” gibt.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 24: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-24

Schritt 1B:Schwache Entities (2)

Building

��

��Name

����

����

HHHHH

HHH

����

���

HHHHH

HH

contains �����

��

HHHH

HHH

�����

���

HHHH

HHHH

Room

��

��No

��

��

@@

@@

��

��

@@

@@

has��

��

@@

@@

��

��

@@

@@

Reservation

��

��Day

��

��Time

• Ist ein schwaches Entity selbst Master eines ande-

ren schwachen Entities, so wird das vererbte Schlus-

selattribut weitergereicht:Buildings(Name)Rooms(Name → Buildings, No)Reservations((Name, No) → Rooms, Day, Time)

• Ubung: Muss Name in Reservations als Fremdschlussel

deklariert werden, der Buildings referenziert?

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 25: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-25

Schritt 1B:Schwache Entities (3)

Cinema

��

��Name

��

���

@@

@@@

��

��

@@

@@

does��

��

@@

@@

��

���

@@

@@@

Showing��

��Time

��

���

@@

@@@

��

��

@@

@@

of ��

��

@@

@@

��

���

@@

@@@

Film

��

��Title

• Assoziationsentities vererben Schlusselattribute von

mehr als einer Quelle:

Cinemas(Name)Films(Title)Showings(Name→Cinemas, Title→Films, Time)

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 26: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-26

Inhalt

1. Ziele des logischen Design

2. Basis ER-Konstrukte

3. Schwache Entities

4. Eins-zu-Eins-Beziehungen

'

&

$

%5. Letzte Schritte, Einschrankungen

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 27: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-27

Schritt 4: Eins-zu-Eins-Bez. (1)

Department

��

��DName

(1,1)�

������

HHHHH

HH

lead by �����

��

HHHH

HHH

(0,1)Employee

��

��ID

• Eine Beziehung ist eins-zu-eins, wenn sie die maxi-

male Kardinalitat 1 auf beiden Seiten hat.

• Die Ubersetzung ist eigentlich die gleiche wie fur

eins-zu-viele-Beziehungen.

Aber es wird ein zusatzlicher Schlussel konstruiert, siehe unten.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 28: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-28

Schritt 4: Eins-zu-Eins-Bez. (2)

• In diesem Beispiel ist es besser, den Schlussel von

Employee in die Tabelle Department zu uberneh-

men, als umgekehrt, da das Department die Kardi-

nalitat (1,1) hat:

Department(DName, . . . , Head → Employee)

• So werden Nullwerte vermieden, und die Minimum-

kardinalitat 1 gewahrleistet.

Wurde man den Namen des Departments in die Employee-Tabelleaufnehmen, so konnte er Null sein. Zusatzlich ware ein allgemeinerConstraint erforderlich, um zu sichern, dass jedes Department einenLeiter (Head) hat.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 29: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-29

Schritt 4: Eins-zu-Eins-Bez. (3)

• “Head” ist nun auch Schlussel fur die Tabelle “De-

partment” (!), da ein Angestellter (Employee) ma-

ximal Leiter (Head) eines Departments sein kann.

• “Head” ist nur ein Alternativschlussel, nicht Teil

des Primarschlussels.

• Das sichert die maximale Kardinalitat 1 auf der

Employee-Seite.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 30: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-30

Schritt 4: Eins-zu-Eins-Bez. (4)

Man

��

��MName

HHHH �

���Born

(0,1)������������

PPPPPPPPPPPP

is married to ������������

PPPPPPPPPPPP

(0,1)Woman

�����

���Born

��

��WName

• Der Schlussel einer der beiden Tabellen wird als

(optionaler) Fremdschlussel in die andere Tabelle

ubernommen.Es ware aber falsch, beides zu tun (Redundanz).

• Oder man bildet eine eigene Tabelle (fur die Bez.).

Marriage(MName → Man, WName → Woman)

• Ubung: Was ist der/die Schlussel?

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 31: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-31

Schritt 4: Eins-zu-Eins-Bez. (5)

Customer

��

��SSN

��� �

���Name

@@

@

(1,1)�

��

@@

@@

has ��

��

@@

@@

(1,1)Card

��

��CardNo

��� �

���CreditLimit

@@

@

• Um die minimale Kardinalitat 1 auf beiden Seiten zu

gewahrleisten, mussen die Tabellen zu einer Tabelle

zusammengefasst werden.

CustomerCard(SSN, Name, CardNo, CreditLimit)

• SSN und CardNo sind beides Schlussel. Einer wird

als Primarschlussel ausgewahlt, der andere ist Al-

ternativschlussel.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 32: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-32

Inhalt

1. Ziele des logischen Design

2. Basis ER-Konstrukte

3. Schwache Entities

4. Eins-zu-Eins-Beziehungen

5. Letzte Schritte, Einschrankungen

'

&

$

%

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 33: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-33

Einschrankungen (1)

• Folgende Kardinalitaten konnen mit den oben ge-

nannten Methoden ubersetzt werden (wobei nur die

Standard-Constraints des relationalen Modells ver-

wendet werden):

E1(1,1)

��

��

@@

@@

@@

@@

��

��R

(0, ∗)E2

E1(0,1)

��

��

@@

@@

@@

@@

��

��R

(0, ∗)E2

E1(0, ∗)

��

��

@@

@@

@@

@@

��

��R

(0, ∗)E2

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 34: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-34

Einschrankungen (2)

• Zusatzlich konnen alle Arten von eins-zu-eins-Be-

ziehungen behandelt werden.

E1(1,1)

��

��

@@

@@

@@

@@

��

��R

(0,1)E2

E1(0,1)

��

��

@@

@@

@@

@@

��

��R

(0,1)E2

E1(1,1)

��

��

@@

@@

@@

@@

��

��R

(1,1)E2

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 35: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-35

Einschrankungen (3)

• Trifft auf eine Beziehung keiner dieser sechs Falle

zu, mussen allgemeine Constraints verwendet wer-

den, die implementiert werden, z.B. via

� Uberprufungen in Anwendungsprogrammen, die

zur Einfugung von Daten verwendet werden.

� Trigger, d.h. in der DB gespeicherte Prozeduren,

die automatisch, z.B. fur jedes eingefugte oder

modifizierte Tupel, ausgefuhrt werden.

� SQL-Anfragen, die von Zeit zu Zeit ausgefuhrt

werden, um Verletzungen von Constraints her-

auszufiltern.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 36: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-36

Einschrankungen (4)

• Speziell ist die Kardianlitat (1, ∗) manchmal sinn-

voll, z.B. sollte jede Bestellung mindestens ein Pro-

dukt umfassen:

Order

��

��No

(1, ∗)�

���

@@

@@

@@

@@

��

��for

(0, ∗)Product

��

��ID

• Die Minimumkardinalitat 1 kann in den aktuellen

DBMS nicht deklarativ gesichert werden.

Man verwendet stattdessen die gleiche Ubersetzung wie fur (0, ∗) undspezifiziert zusatzlich einen allgemeinen Constraint.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 37: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-37

Schritt 5: Uberprufung (1)

• Zum Schluss werden die erstellten Tabellen uber-

pruft, um festzustellen, ob sie Sinn machen.

• Z.B. kann man die Tabelle mit einigen Beispielzei-

len fullen.

• Ist ein korrektes ER-Schema korrekt in das relatio-

nale Modell ubersetzt, so erhalt man ein korrektes

relationales Schema.

• Trotzdem kann die von-Hand-Ubersetzung Fehler

mit sich bringen, und das ER-Schema kann ver-

steckte Fehler enthalten.

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004

Page 38: Teil 5: Einf¨uhrung in logisches Designusers.informatik.uni-halle.de/~brass/db04/d5_lodes.pdfLetzte Schritte, Einschr¨ankungen S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche]

5. Einfuhrung in logisches Design 5-38

Schritt 5: Uberprufung (2)

• Manchmal sind Tabellen redundant und konnen ge-

loscht werden.

• Man sollte ein letztes Mal uber die Umbenennung

von Tabellen und Attributen nachdenken.

• Wenn zwei Tabellen den gleichen Schlussel haben,

sollte man uberlegen sie zu verschmelzen (das be-

deutet aber nicht, dass man es immer tun muss!).

• Außerdem uberpruft man die erstellten Tabellen

auf relationale Normalform (z.B. 3NF, BCNF, 4NF)

(vgl. Kapitel 11).

S. Brass: Datenbanken I [Ubersetzung: K. Drese/S. Rosche] Univ. Halle, 2004