Databases I Van EER naar relationeel definitieve versie 2002 Databases I Van EER naar relationeel Martin Caminada / Wiebren de Jonge Vrije Universiteit, Amsterdam
Overzicht
Voorbeeld ER-diagram (fig 3.15)
Relationeel schema diagram (fig 7.5) Merk op: dit is op zich niet volledig want bijvoorbeeld geen domeinen
Mapping regular entities voor regular (non-weak, non-subclass) entities E: maak een tabel die alle simple attributes (+ de components van eventuele composite attributes) bevat laat eventuele multivalued attributes nog even achterwege kies één van de keys van E als primary key
Weak entities voor weak entities E: maak een tabel die alle simple attributes (+ components van eventuele composite attributes) bevat, alsmede de attributes van de primary key van de owner(s) laat eventuele multivalued attributes nog even achterwege kies als primary key de combinatie van: de attributen van de partial key de attributen van de primary key van (iedere) owner definieer voor iedere owner een foreign key naar deze owner Weak entity kan meerdere partial keys hebben (oproepnummer, datum+tijd van sollicitatie) Foreign key bestaat uit de attributen die je al hebt toegevoegd (want het zijn attributen die overeenkomen met de PK(s) van de owner(s)) Er moet per se een FK gedefinieerd worden (want weak entity is existance dependent)
MGRSSN is ook een key!!! (boek geeft echter alleen primary key, en dit zullen wij dan ook maar volgen…)
Mapping binaire 1:1 relationships voor binaire 1:1 relationships: kies één van de participerende entities (zeg: E1) liefst met totale participatie voeg in de tabel van deze entity (zeg: R1) het volgende toe: een foreign key naar de tabel van de andere entiteit eventuele attributen van de relationship Multivalued attributen van relationship nog even achterwege laten (komt later pas)
Mapping binaire 1:N relationships voor binaire 1:N relationships: voeg in de tabel aan de N-kant het volgende toe: een foreign key naar de tabel aan de 1-kant eventuele attributen van de relationship
Binaire N:M relationships voor binaire N:M relationships: maak een tabel (R) met daarin: foreign keys naar de tables aan de N- en de M-kant eventuele attributen van de relationship de primary key van R bestaat uit de attributen van de foreign keys
Mapping n-aire relationships (bv ternair) voor n-aire relationships (n > 2): maak een tabel (R) met daarin: een foreign key naar iedere in de relationship participerende entity/tabel eventuele attributen van de relationship de primary key van R bestaat uit de attributen van de foreign keys (minus foreign keys naar tables met een cardinaliteit van 1)
Mapping multivalued attributes voor multivalued attributes: maak voor ieder multi-valued attribute (A) een aparte tabel (R) met daarin: het single-valued attribuut corresponderend met A een foreign key (F) naar de tabel van de entity waarin A voorkomt de primary key van R bestaat uit de attributen van F en A
Mapping subclass entities voor iedere subclass entity (Sub) van een superclass entity (Super): maak een tabel met daarin: de local attributes (single-valued) van Sub een foreign key naar Super de primary key van Sub bestaat uit de attributes van de foreign key naar Super
Volgorde uitvoeren stappen 1. definieer tabellen voor: a. reguliere entiteiten (boek: step 1) b. subclass entiteiten (boek: step 8a) c. zwakke entiteiten (boek: step 2) 2. voeg aan de tabellen van de entiteiten extra attributen toe voor: a. binaire 1:1 relationships (boek: step 3) b. binaire 1:N relationships (boek: step 4) 3. voeg extra tabellen toe voor: a. binaire N:M relationships (boek: step 5) b. n-aire relationships, n>2 (boek: step 7) 4. voeg extra tabellen toe voor multivalued attributen (boek: step 6)
Thuis nalezen: 9.1 9.2 (t/m “option 8a”) voorbereiden: 7.4 7.5 huiswerk: opgave 18