Gegevensbanken(E)ER naar relationeel       schema   Prof. Erik Duval en Katrien Verbert               2011 - 2012         ...
http://www.slideshare.net/erik.duval2
•   (E)ER schema afbeelden op relationele model?    •   entiteitstypes        (regulier, zwak)    •   relatietypes        ...
Fname         Minit     Lname                                                                         Number              ...
EMPLOYEE Fname, Minit, Lname, Ssn, Bdate, Address,Sex, SalaryDEPARTMENT Dname, DnumberPROJECT Pname, Pnumber, Plocation   ...
1. voor elk regulier entiteitstype E: •   maak relatie R •   met alle enkelvoudige attributen van E •   kies één van sleut...
DEPENDENT Essn, Dependent_Name, Sex, Bdate, Relationship                       6
stap 2. voor elk zwak entiteitstype W: •   maak een relatie R •   met alle enkelvoudige attributen van W •   en als verwij...
DEPARTMENT Dname, Dnumber, Mgr_ssn, Mgr_start_date                   7
stap 3. voor elk binair 1:1 relatietype R: • S en T relaties voor deelnemende entiteitstypes van R • neem primaire sleutel...
EMPLOYEE  Fname, Minit, Lname, Ssn, Bdate, Address, Sex, Salary,  Super_ssn, DnoPROJECT Pname, Pnumber, Plocation, Dnum   ...
stap 4. voor elk binair 1:N relatietype R:     • S relatie die entiteitstype van N-kant voorstelt     • voeg in S primaire...
WORKS_ON Essn, Pno, Hours        9
stap 5. voor elk binair N:M relatietype R: • maak nieuwe relatie S • met verwijssleutels primaire sleutels van deelnemende...
DEPT_LOCATIONS Dnumber, Dlocation        10
stap 6. voor elk meerwaardig attribuut A: •   creëer een relatie R •   met attribuut dat overeenkomt met A •   + verwijssl...
11
12
Stap 7: voor elk n-air relatietype R (n>2) : • maak nieuwe relatie S • met verwijssleutels: primaire sleutels van deelneme...
Stap 7: voor elk n-air relatietype R (n>2) : • maak nieuwe relatie S • met verwijssleutels: primaire sleutels van deelneme...
Stap 7: voor elk n-air relatietype R (n>2) : • maak nieuwe relatie S • met verwijssleutels: primaire sleutels van deelneme...
ER model                                relationeel model•   entiteitstype                       •   “entiteits” relatie• ...
14
Stap 8: behandeling van super/subklasse-relaties                              14
Stap 8: behandeling van super/subklasse-relaties• Elke specialisatie met m subklassen { S1, S2,..., Sm }    en superklasse...
Stap 8: behandeling van super/subklasse-relaties• Elke specialisatie met m subklassen { S1, S2,..., Sm }    en superklasse...
15
16
• Optie 8B    • maak voor elke subklasse Si een relatie Li          met attr(Li) = { attr(Si) } ∪ { k, a1, ..., an }      ...
• Optie 8B    • maak voor elke subklasse Si een relatie Li          met attr(Li) = { attr(Si) } ∪ { k, a1, ..., an }      ...
• Optie 8B    • maak voor elke subklasse Si een relatie Li          met attr(Li) = { attr(Si) } ∪ { k, a1, ..., an }      ...
17
• Optie 8C: één relatie L   attr(L) = { k,a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) } ∪ { t } en   PK(L) = k        ...
• Optie 8C: één relatie L   attr(L) = { k,a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) } ∪ { t } en   PK(L) = k• waarbi...
• Optie 8C: één relatie L   attr(L) = { k,a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) } ∪ { t } en   PK(L) = k• waarbi...
• Optie 8C: één relatie L   attr(L) = { k,a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) } ∪ { t } en   PK(L) = k• waarbi...
18
• Optie 8D: één relatie L   met attr(L) = { k, a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) }   ∪ { t1, t2, ..., tm } e...
• Optie 8D: één relatie L   met attr(L) = { k, a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) }   ∪ { t1, t2, ..., tm } e...
• Optie 8D: één relatie L   met attr(L) = { k, a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) }   ∪ { t1, t2, ..., tm } e...
• Optie 8D: één relatie L   met attr(L) = { k, a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) }   ∪ { t1, t2, ..., tm } e...
• Optie 8D: één relatie L   met attr(L) = { k, a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) }   ∪ { t1, t2, ..., tm } e...
Vragen...?    19
Upcoming SlideShare
Loading in...5
×

(E)ER naar relationeel schema


2,355

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,355
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
46
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • (E)ER naar relationeel schema


    1. 1. Gegevensbanken(E)ER naar relationeel schema Prof. Erik Duval en Katrien Verbert 2011 - 2012 1
    2. 2. http://www.slideshare.net/erik.duval2
    3. 3. • (E)ER schema afbeelden op relationele model? • entiteitstypes (regulier, zwak) • relatietypes (binaire of hogere graad) • attributen (enkelvoudig, samengesteld, meerwaardig) • restricties• ER → relationeel• EER → relationeel 3
    4. 4. Fname Minit Lname Number Salary Name Name N WORKS_FOR 1 Locations Sex AddressSsn StartDate EMPLOYEE DEPARTMENT 1Bdate 1 1 MANAGES Hours CONTROLSsupervisor supervisee 1 N 1 N N SUPERVISES WORKS_ON M HAS_DEP. PROJECT N Name Location DEPENDENT Number Name Relationship Sex BirthDate 4
    5. 5. EMPLOYEE Fname, Minit, Lname, Ssn, Bdate, Address,Sex, SalaryDEPARTMENT Dname, DnumberPROJECT Pname, Pnumber, Plocation 5
    6. 6. 1. voor elk regulier entiteitstype E: • maak relatie R • met alle enkelvoudige attributen van E • kies één van sleutelattributen als primaire sleutel voor R EMPLOYEE Fname, Minit, Lname, Ssn, Bdate, Address, Sex, Salary DEPARTMENT Dname, Dnumber PROJECT Pname, Pnumber, Plocation 5
    7. 7. DEPENDENT Essn, Dependent_Name, Sex, Bdate, Relationship 6
    8. 8. stap 2. voor elk zwak entiteitstype W: • maak een relatie R • met alle enkelvoudige attributen van W • en als verwijssleutel de primaire sleutel van eigenaar DEPENDENT Essn, Dependent_Name, Sex, Bdate, Relationship 6
    9. 9. DEPARTMENT Dname, Dnumber, Mgr_ssn, Mgr_start_date 7
    10. 10. stap 3. voor elk binair 1:1 relatietype R: • S en T relaties voor deelnemende entiteitstypes van R • neem primaire sleutel van T op als verwijssleutel in S (of omgekeerd) - vermijd nul-waarden • neem ook enkelvoudige attributen op DEPARTMENT Dname, Dnumber, Mgr_ssn, Mgr_start_date 7
    11. 11. EMPLOYEE Fname, Minit, Lname, Ssn, Bdate, Address, Sex, Salary, Super_ssn, DnoPROJECT Pname, Pnumber, Plocation, Dnum 8
    12. 12. stap 4. voor elk binair 1:N relatietype R: • S relatie die entiteitstype van N-kant voorstelt • voeg in S primaire sleutel relatie aan 1-kant toe • neem ook enkelvoudige attributen opEMPLOYEE Fname, Minit, Lname, Ssn, Bdate, Address, Sex, Salary, Super_ssn, DnoPROJECT Pname, Pnumber, Plocation, Dnum 8
    13. 13. WORKS_ON Essn, Pno, Hours 9
    14. 14. stap 5. voor elk binair N:M relatietype R: • maak nieuwe relatie S • met verwijssleutels primaire sleutels van deelnemende relaties • met verwijssleutels samen als primaire sleutel • neem ook enkelvoudige attributen van R op WORKS_ON Essn, Pno, Hours 9
    15. 15. DEPT_LOCATIONS Dnumber, Dlocation 10
    16. 16. stap 6. voor elk meerwaardig attribuut A: • creëer een relatie R • met attribuut dat overeenkomt met A • + verwijssleutel: primaire sleutel K van bijhorende relatie • als primaire sleutel: A en K samen DEPT_LOCATIONS Dnumber, Dlocation 10
    17. 17. 11
    18. 18. 12
    19. 19. Stap 7: voor elk n-air relatietype R (n>2) : • maak nieuwe relatie S • met verwijssleutels: primaire sleutels van deelnemende entiteitstypes • met alle enkelvoudige attributen van R • met primaire sleutel: alle verwijssleutels samen 12
    20. 20. Stap 7: voor elk n-air relatietype R (n>2) : • maak nieuwe relatie S • met verwijssleutels: primaire sleutels van deelnemende entiteitstypes • met alle enkelvoudige attributen van R • met primaire sleutel: alle verwijssleutels samen 12
    21. 21. Stap 7: voor elk n-air relatietype R (n>2) : • maak nieuwe relatie S • met verwijssleutels: primaire sleutels van deelnemende entiteitstypes • met alle enkelvoudige attributen van R • met primaire sleutel: alle verwijssleutels samen 12
    22. 22. ER model relationeel model• entiteitstype • “entiteits” relatie• 1:1 of 1:N relationship type • verwijssleutel of relatie• M:N relationship type • relatie met 2 verwijssleutels• n-aire relationship type • relatie met n verwijssleutels• enkelvoudig attribuut • attribuut• samengesteld attribuut • verzameling attributen• meerwaardig attribuut • relatie of verwijssleutel• value set • domein• sleutel attribuut • primaire sleutel 13
    23. 23. 14
    24. 24. Stap 8: behandeling van super/subklasse-relaties 14
    25. 25. Stap 8: behandeling van super/subklasse-relaties• Elke specialisatie met m subklassen { S1, S2,..., Sm } en superklasse C met attributen { k, a1, ..., an } 14
    26. 26. Stap 8: behandeling van super/subklasse-relaties• Elke specialisatie met m subklassen { S1, S2,..., Sm } en superklasse C met attributen { k, a1, ..., an }• Optie 8A • maak relatie L voor C met attr(L) = { k, a1, ..., an } • en primaire sleutel PK(L) = k • en relaties Li voor elke subklasse Si met • attr(Li) = { k } ∪ { attr(Si) } • en PK(Li) = k 14
    27. 27. 15
    28. 28. 16
    29. 29. • Optie 8B • maak voor elke subklasse Si een relatie Li met attr(Li) = { attr(Si) } ∪ { k, a1, ..., an } en PK(Li) = k • werkt enkel correct voor disjuncte, totale specialisatie • niet totale specialisatie → verlies van gegevens (∉ Si) • niet disjuncte specialisatie → redundantie 16
    30. 30. • Optie 8B • maak voor elke subklasse Si een relatie Li met attr(Li) = { attr(Si) } ∪ { k, a1, ..., an } en PK(Li) = k • werkt enkel correct voor disjuncte, totale specialisatie • niet totale specialisatie → verlies van gegevens (∉ Si) • niet disjuncte specialisatie → redundantie 16
    31. 31. • Optie 8B • maak voor elke subklasse Si een relatie Li met attr(Li) = { attr(Si) } ∪ { k, a1, ..., an } en PK(Li) = k • werkt enkel correct voor disjuncte, totale specialisatie • niet totale specialisatie → verlies van gegevens (∉ Si) • niet disjuncte specialisatie → redundantie 16
    32. 32. 17
    33. 33. • Optie 8C: één relatie L attr(L) = { k,a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) } ∪ { t } en PK(L) = k 17
    34. 34. • Optie 8C: één relatie L attr(L) = { k,a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) } ∪ { t } en PK(L) = k• waarbij t duidt aan tot welke subklasse elk tupel behoort • weggelaten als specialisatie predikaatgedefinieerd • enkel voor disjuncte subklassen • veel verschillende attributen in subklassen: veel nul 17
    35. 35. • Optie 8C: één relatie L attr(L) = { k,a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) } ∪ { t } en PK(L) = k• waarbij t duidt aan tot welke subklasse elk tupel behoort • weggelaten als specialisatie predikaatgedefinieerd • enkel voor disjuncte subklassen • veel verschillende attributen in subklassen: veel nul 17
    36. 36. • Optie 8C: één relatie L attr(L) = { k,a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) } ∪ { t } en PK(L) = k• waarbij t duidt aan tot welke subklasse elk tupel behoort • weggelaten als specialisatie predikaatgedefinieerd • enkel voor disjuncte subklassen • veel verschillende attributen in subklassen: veel nul 17
    37. 37. 18
    38. 38. • Optie 8D: één relatie L met attr(L) = { k, a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) } ∪ { t1, t2, ..., tm } en PK(L) = k • ti, 1≤ i ≤ m is boolean die aangeeft of entiteit in Si zit 18
    39. 39. • Optie 8D: één relatie L met attr(L) = { k, a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) } ∪ { t1, t2, ..., tm } en PK(L) = k • ti, 1≤ i ≤ m is boolean die aangeeft of entiteit in Si zit• gebruikt voor overlappende subklassen 18
    40. 40. • Optie 8D: één relatie L met attr(L) = { k, a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) } ∪ { t1, t2, ..., tm } en PK(L) = k • ti, 1≤ i ≤ m is boolean die aangeeft of entiteit in Si zit• gebruikt voor overlappende subklassen• ook hier gevaar voor veel nulwaarden 18
    41. 41. • Optie 8D: één relatie L met attr(L) = { k, a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) } ∪ { t1, t2, ..., tm } en PK(L) = k • ti, 1≤ i ≤ m is boolean die aangeeft of entiteit in Si zit• gebruikt voor overlappende subklassen• ook hier gevaar voor veel nulwaarden 18
    42. 42. • Optie 8D: één relatie L met attr(L) = { k, a1, ..., an } ∪ { attr(S1) } ∪ ... ∪ { attr(Sm) } ∪ { t1, t2, ..., tm } en PK(L) = k • ti, 1≤ i ≤ m is boolean die aangeeft of entiteit in Si zit• gebruikt voor overlappende subklassen• ook hier gevaar voor veel nulwaarden 18
    43. 43. Vragen...? 19
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×