Relationeel Model

1,307 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,307
On SlideShare
0
From Embeds
0
Number of Embeds
256
Actions
Shares
0
Downloads
87
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Relationeel Model

  1. 1. Gegevensbankenrelationeel modelProf. Erik Duval2010 - 2011 1
  2. 2. http://www.slideshare.net/erik.duval2
  3. 3. inleiding
  4. 4. • 1962: Codasyl development committee, An information algebra’, CACM, 5, 4, apr 1962• 1963: J. McCarthy, A basis for a mathematical theory of computation, in Computer programming and formal systems, Brafford & Hirschberg, eds, North-Holland, 1963• 1968: D.L. Childs, Feasibility of a set-theoretical data- structure. A general structure based on a reconstituted definition of a relation, in Proc. IFIP congress 1968, North- Holland, 1968• 1970: E.F. Codd, A relational model of data for large scale shared data banks, CACM, 13, 6, jun 1970• … daarna: uitbreidingen, aanpassingen 4
  5. 5. een relatie Rop de verzamelingen V1 , ...Vnis een deelverzameling van de productverzameling V1×...× Vn :R ⊆ V1 × ... × Vn KLEUR MAAT rood S geel M groen L 5
  6. 6. voorgesteld door tabel 6
  7. 7. 7
  8. 8. 8
  9. 9. 9
  10. 10. • U = { A1, ..., An } : verzameling van alle attributen • globaal: attribuut kan in meerdere relaties voorkomen• DOM( Ai ) = verzameling alle mogelijke waarden van Ai • heeft een naam en een type • enkelvoudig : waarden zijn atomair • vb. Adres atomair we kunnen straatnaam niet isoleren• actief domein (= "populatie") van A in een GB: • verzameling alle attribuutwaarden op dat moment in GB 10
  11. 11. (n-)tupel over de attributen X = { A1, ..., An }• T = { (A1,w1), ..., (An,wn) } met elke wi ∈ DOM ( Ai ) of wi = null• korter genoteerd: < (A1, ..., An ), ( w1, ..., wn )> < w1, ..., wn > indien geen verwarring mogelijk• vb: < 5, "Karel Goossens", "Naamsestraat", "108", 3000, "Leuven" > 11
  12. 12. < (Leeftijd, 4), (Lengte, 104), (Gewicht, 17) >of < (Leeftijd, Lengte, Gewicht), (4, 104, 17) >of (4, 104, 17) 12
  13. 13. • instantie of extensie r van relatieschema R(A1,...,An) • eindige verzameling n-tupels over de attributen van R • r = { t1, t2, ... , tn } • r(R) ∈ DOM(A1) x ... x DOM(An)• eigenschappen van relaties: • tupels zijn niet geordend • attributen zijn niet geordend • behalve in notatie <w1, ..., wn> • elk tupel komt max. 1 keer voor in een relatie • tegenvoorbeeld: leeftijd, lengte en gewicht van kinderen 13
  14. 14. • één atomaire waarde per attribuut • geen meerwaardige attributen • geen samengestelde attributen • alternatief: genest relationeel model• Null-waarde kan betekenen: • attribuut is niet van toepassing • waarde is onbekend 14
  15. 15. • Relatieschema met graad n: R(A1, ..., An)• n-tupel van R : t = <w1, ..., wn> • componentwaarde wi = t [ Ai ] = t . Ai • deeltupel t [ Ai, Aj, ..., Ak ] = <wi,wj,...,wk> of t.(Ai,Aj, ...,Ak)• Q, R, S: relatienamen• q, r, s: instanties• t, u, v, w: tupels• Andere notatie voor attribuut A van relatie R: R.A 15
  16. 16. r={< 5, "Karel Goossens", "Naamsestraat", "108", 3000, "Leuven“ >,< 12, "Sofie Vandale", "Rijselstraat", "33", 8500, "Kortrijk“ >,< 34, "Frans Haerden", "Tiensestraat", "12", 3000, "Leuven” >}t = <5,"Karel Goossens","Naamsestraat","108", 3001,"Leuven“>t [ Nr , Naam ] = < 5, "Karel Goossens“ > 16
  17. 17. company
  18. 18. 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 18
  19. 19. 19
  20. 20. 20
  21. 21. • regulier entiteitstype → relatie met alle enkelvoudige attributen • kies sleutelattribuut(en)• zwak entiteitstype → relatie met alle enkelvoudige attributen • + verwijssleutel: primaire sleutel van eigenaarsentiteitstype• binair 1:1 relatietype • primaire sleutel van ene als verwijssleulel in andere relatie • ook eventuele enkelvoudige attributen• binair 1:N relatietype • aan N-kant primaire sleutel van 1-kant • ook eventuele enkelvoudige attributen 21
  22. 22. • binair N:M relatietype → relatie • beide sleutels als verwijssleutels en samen primaire sleutel • ook eventuele enkelvoudige attributen• meerwaardig attribuut → relatie met dat attribuut • als verwijssleutel de primaire sleutel van bijhorende relatie • primaire sleutel: combinatie van beide 22
  23. 23. Beperkingen
  24. 24. • Domeinrestricties • beperken de mogelijke waarden van attributen • vb: leeftijd: geheel postief getal, tussen 18 en 65• Sleutelrestricties • waarden van sleutels moeten uniek zijn• Algemene integriteitsrestricties 24
  25. 25. • relatieschema R(A1, ..., An), U = {A1, ..., An}• supersleutel K ⊆ U : • verzameling attributen die tupel van R ondubbelzinnig bepalen (in om het even welke extensie)• kandidaatsleutel K • supersleutel K zonder overtollige attributen (er bestaat geen supersleutel K ⊂ K)• samengestelde sleutel (meer dan 1 attribuut) enkelvoudige sleutel (1 attribuut)• primaire sleutel: gekozen uit kandidaatsleutels • andere kandidaatsleutels zijn alternatieve sleutels• conventie: primaire sleutel onderstrepen in schema
  26. 26. 26
  27. 27. • Integriteit = juistheid en volledigheid van GB• statica-regels: slaan op 1 toestand van GB • gelden in elke extensie• dynamica-regels: slaan op toestandsovergangen • gelden voor elke overgang van 1 extensie naar andere
  28. 28. • attribuut-restricties • 1 NV-eis: domein van een attribuuut is enkelvoudig• entiteit-restricties • tupel mag niet meer dan 1 keer voorkomen in extensie • tegenvoorbeeld: relatie R(Leeftijd, Lengte, Gewicht) • geen null-waarden in primaire sleutel• referentiële integriteit • Als tupel naar ander tupel verwijst, moet ander tupel bestaan • vb.VOLGT-relatie: geen nrs. van vakken die niet bestaan
  29. 29. • verzameling attributen FK van relatie R1 is verwijssleutel a.s.a. • attributen van FK hebben zelfde domein als primaire sleutelattributen PK van relatie R2 • elke waarde van FK in R1 komt voor als waarde van een tupel in R2 of is null • ∀ t1 ∈ R1 : t1[FK] is null of ∃ t2 ∈ R2 : t1[FK] = t2[PK]• verwijssleutel kan naar eigen relatie verwijzen • → recursieve relatie; bv. SUPERSSN (overste van werknemer is ook werknemer)
  30. 30. 30
  31. 31. • domeinbeperkingen • vb. uurloon > 0 • vb. leeftijd > 23 uurloon > minimum_uurloon
  32. 32. dynamica-regels• Autorisatieregels • mag deze gebruiker die actie uitvoeren?• Coördinatieregels • vb. NEGATIEF-SALDO: tupel toevoegen wanneer saldo<0• Precondities / postcondities • vb. geld afhalen van rekening kan enkel indien saldo > 0• Overgangsregels • beschrijven welke volgordes van extensies zijn toegestaan • vb. enkel loonsverhogingen, geen -verlagingen 32
  33. 33. • intra-relationele restricties • intern binnen 1 relatie • meestal gemakkelijker te controleren• inter-relationele restricties • verschillende relaties betrokken • vb. salaris werknemer < salaris overste• tendens • steeds meer soorten restricties automatisch laten controleren door DBMS 33
  34. 34. Aanpassen
  35. 35. • tupel toevoegen• tupel weglaten• tupel wijzigen• integriteit moet gecontroleerd worden! 35
  36. 36. toevoegen• INSERT <4,"Jan Caers",nul,nul,3000,"Leuven“> INTO STUDENT • Studentnr 5 ipv 4 uniciteit van sleutel geschonden • Studentnr nul regel sleutel niet nul geschonden• INSERT < 5, 6 > INTO VOLGT : • referentiële integriteit geschonden (cursus bestaat niet)• reactie van DBMS op niet-toegelaten toevoeging: • weigeren + reden voor weigering meedelen aan gebruiker 36
  37. 37. weglaten• vb. DELETE VAK TUPLE WITH Vaknr = 8• referentiële integriteit geschonden: er zijn VOLGT tupels die verwijzen naar dat vak• DBMS kan: • weglating weigeren • verwijzende tupels ook weglaten • verwijzende waarden aanpassen (bv. nul) • verschillend reageren in verschillende situaties • door gebruiker ingesteld 37
  38. 38. wijzigen• vb. MODIFY Titel OF VAK WITH Nr = 8 TO "Filosofie"• weer gevaar voor • referentiële integriteit, • uniciteit van sleutel, • ...• wijziging van attribuut dat geen primaire of verwijssleutel is • meestal geen probleem• wijziging primaire sleutel: weglaten + toevoegen• wijziging verwijssleutel: referentiële integriteit controleren 38
  39. 39. Vragen...? 39

×