SlideShare a Scribd company logo
Gegevensbanken
relationeel model
Prof. Erik Duval
2010 - 2011


                   1
http://www.slideshare.net/erik.duval




2
inleiding
•   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
een relatie R
op de verzamelingen V1 , ...Vn
is een deelverzameling van de productverzameling V1×...× Vn :
R ⊆ V1 × ... × Vn

                                        KLEUR       MAAT



                                 rood                      S




                                 geel
                                                           M




                                 groen
                                                           L

                             5
voorgesteld door tabel




                         6
7
8
9
•   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
(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
< (Leeftijd, 4), (Lengte, 104), (Gewicht, 17) >
of	

   < (Leeftijd, Lengte, Gewicht), (4, 104, 17) >
of	

   (4, 104, 17)




                                 12
• 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
• éé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
• 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
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
company
Fname         Minit     Lname                                                                      Number
                                    Salary                                                  Name
             Name                              N      WORKS_FOR             1                            Locations
 Sex                  Address

Ssn                                                            StartDate
              EMPLOYEE                                                                      DEPARTMENT

                                                                           1
Bdate                                          1                                                   1
                                                           MANAGES
                                                                               Hours         CONTROLS
supervisor                  supervisee
                                                      1
                                                                N
        1                       N                                                                  N
             SUPERVISES                                              WORKS_ON          M
                                                    HAS_DEP.
                                                                                             PROJECT

                                                           N
                                                                                     Name                   Location
                                                   DEPENDENT

                                                                                                Number
                           Name
                                                                      Relationship
                                         Sex         BirthDate

                                                          18
19
20
• 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
• 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
Beperkingen
• 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
• 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
• 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
• 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
• 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
• domeinbeperkingen
   • vb. uurloon > 0
   • vb. leeftijd > 23   uurloon > minimum_uurloon
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
•   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
Aanpassen
•   tupel toevoegen
•   tupel weglaten
•   tupel wijzigen


•   integriteit moet gecontroleerd worden!




                       35
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
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
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
Vragen...?

    39

More Related Content

PDF
20130214 les gb2
KEY
Mapping EER to Relational Model
KEY
(E)ER naar relationeel schema

PDF
Entiteit Relatie Model
KEY
Entiteit-Relatie Model
PDF
FIT methodiek
PDF
Kennis delen ... en nu echt
PDF
201010 duval
20130214 les gb2
Mapping EER to Relational Model
(E)ER naar relationeel schema

Entiteit Relatie Model
Entiteit-Relatie Model
FIT methodiek
Kennis delen ... en nu echt
201010 duval

Viewers also liked (7)

PDF
Capita Selecta Les 2
PDF
Open Leren in de Praktijk
KEY
Who are we?
PDF
InfoVis1415: slides sessie 2, 16 Feb 2015
PDF
Learning from our students
PDF
CHI: paper prototyping
PDF
Student peer review
Capita Selecta Les 2
Open Leren in de Praktijk
Who are we?
InfoVis1415: slides sessie 2, 16 Feb 2015
Learning from our students
CHI: paper prototyping
Student peer review
Ad

Similar to Relationeel Model (16)

PDF
20130212 les gb1
KEY
Relationeel Model
KEY
Relationeel Model
PDF
SQL - deel 1
PDF
SQL deel 2
PDF
Neo4J, what else?
PDF
20130221 GB les 3
PDF
relationele algebra en relationele calculus
PDF
Normalisatie - deel 2
PDF
Neo4 j, what else?
PPTX
Databanken
PPT
Les12-01-Data-Sources
PDF
20130305 GB les 5
PDF
Relationele algebra
PDF
Functionele afhankelijkheden en normalisatie
20130212 les gb1
Relationeel Model
Relationeel Model
SQL - deel 1
SQL deel 2
Neo4J, what else?
20130221 GB les 3
relationele algebra en relationele calculus
Normalisatie - deel 2
Neo4 j, what else?
Databanken
Les12-01-Data-Sources
20130305 GB les 5
Relationele algebra
Functionele afhankelijkheden en normalisatie
Ad

More from Erik Duval (20)

PDF
eCloud newspapers
PDF
InfoVis1415: slides sessie 12, 18 mei 2015
PDF
InfoVis1415: slides sessie 11, 11 mei 2015
PDF
InfoVis1415: slides sessie 10, 4 mei 2015
PDF
Evaluation
 of information visualisation
PDF
InfoVis1415: slides sessie 9, 27 april 2015
PDF
Social Media and Science a wedding made in Heaven...
 or in Hell?
PDF
Information visualisation: 
Data ink design principles
PDF
InfoVis1415: slides sessie 8, 20 april 2015
PDF
A short history (and even shorter future)
 of information visualisation
PDF
InfoVis1415: slides sessie 7, 30 March 2015
PDF
InfoVis1415: slides sessie 6, 23 March 2015
PDF
History of Human Computer Interaction
PDF
InfoVis1415: slides sessie 5, 9 March 2015
PDF
InfoVis1415: slides sessie 4, 2 March 2015
PDF
InfoVis1415: slides sessie 3, 23 Feb 2015
PDF
Technology that makes HUMANS smarter
PDF
InfoVis1415: slides sessie 1, 10 Feb 2015
PDF
201502010 pen ocw_les1_erik
PDF
Inleiding Human Computer Interaction
eCloud newspapers
InfoVis1415: slides sessie 12, 18 mei 2015
InfoVis1415: slides sessie 11, 11 mei 2015
InfoVis1415: slides sessie 10, 4 mei 2015
Evaluation
 of information visualisation
InfoVis1415: slides sessie 9, 27 april 2015
Social Media and Science a wedding made in Heaven...
 or in Hell?
Information visualisation: 
Data ink design principles
InfoVis1415: slides sessie 8, 20 april 2015
A short history (and even shorter future)
 of information visualisation
InfoVis1415: slides sessie 7, 30 March 2015
InfoVis1415: slides sessie 6, 23 March 2015
History of Human Computer Interaction
InfoVis1415: slides sessie 5, 9 March 2015
InfoVis1415: slides sessie 4, 2 March 2015
InfoVis1415: slides sessie 3, 23 Feb 2015
Technology that makes HUMANS smarter
InfoVis1415: slides sessie 1, 10 Feb 2015
201502010 pen ocw_les1_erik
Inleiding Human Computer Interaction

Relationeel Model

  • 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. een relatie R op de verzamelingen V1 , ...Vn is een deelverzameling van de productverzameling V1×...× Vn : R ⊆ V1 × ... × Vn KLEUR MAAT rood S geel M groen L 5
  • 7. 7
  • 8. 8
  • 9. 9
  • 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. (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. < (Leeftijd, 4), (Lengte, 104), (Gewicht, 17) > of < (Leeftijd, Lengte, Gewicht), (4, 104, 17) > of (4, 104, 17) 12
  • 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. • éé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. • 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. 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
  • 18. Fname Minit Lname Number Salary Name Name N WORKS_FOR 1 Locations Sex Address Ssn StartDate EMPLOYEE DEPARTMENT 1 Bdate 1 1 MANAGES Hours CONTROLS supervisor 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
  • 20. 20
  • 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. • 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
  • 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. • 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
  • 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. • 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. • 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
  • 31. • domeinbeperkingen • vb. uurloon > 0 • vb. leeftijd > 23 uurloon > minimum_uurloon
  • 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. 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
  • 35. tupel toevoegen • tupel weglaten • tupel wijzigen • integriteit moet gecontroleerd worden! 35
  • 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. 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. 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