SlideShare ist ein Scribd-Unternehmen logo
1 von 81
Downloaden Sie, um offline zu lesen
Gegevensbanken

Prof. E. Duval, Prof. B. Berendt, dr. Matthijs Van Leeuwen
2012 - 2013

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




      2
3
Elmasri & Navathe, Fundamentals of
Database Systems, Addison Wesley, 6th edition, 2011


goed genoeg voor zelfstudie ;-)


5de of 6de editie is OK
•   docenten
    •   Prof. Erik Duval, Prof. Bettina Berendt
        dr. Katrien Verbert Matthijs van Leeuwen
•   medewerkers
    •   Albrecht Zimmermann, Bo Gao, Celine Vens,
        Mathias Verbeke, Rula Sayaf, Tommy Messelis,
        Jo Devriendt, Angelika Kimmig
•   18 17 hoorcolleges
    •   video conferencing, om de beurt

                         5
oefenzitting
•   bereid voor: theorie!
•   verplicht (geen sancties)
•   niet zo maar van reeks veranderen
    •   laat weten als er een probleem is
•   “head count”
•   vragen: toledo
•   werkje: geen punten, model oplossing, groep van
    3, verplicht (geen sancties)
                            6
•   toledo: statistics tracking
    •   niet persoonlijk
    •   data mining - outlook lecture
•   vragen na einde hoorcolleges
    •   wij antwoorden zolang je vraagt ;-)




                           7
•   mondeling examen met schriftelijke oefeningen

•   focus

    •   concepten en methodes

    •   kennen en kunnen gebruiken

•   toepassingen

    •   ontwerpen van een gegevensbank

    •   queries
juni 2012




1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20
doelstellingen




     ?10
11
inhoud




  ?
  12
inhoud
•   gegevensmodel: (E)ER en relationeel
    •   en een beetje: OO, ERDBMS, netwerk, hierarchisch
•   ontwerp: (E)ER en relationeel
•   opslag: bestand, hashing, indexen, bomen, meerdimensionaal
•   implementatie: queries, transacties, concurrentie, herstel
•   geavanceerd: distributie, data warehouse, multimedia
    •   een beetje

                               13
Questions?
http://erikduval.wordpress.com/
           @ErikDuval




   Thanks!     14
wat is een
gegevensbank?
voorbeelden?
verschil met
variabelen in programma?
• programma-gegevens
 • korte levensduur: werkgeheugen
    variabelen, objecten
 • lange levensduur: persistent
    bestanden en gegevensbanken
• interpretatie gegevens
  gedefinieerd in programma
 • record, klasse, ...
                     18
?
?




    19
• Bestanden
 • elk programma definieert structuur
 • meerdere programma’s: redundantie of omzetten
• Gegevensbanken
 • data + metadata die structuur beschrijft
 • onafhankelijk van programma’s
Wat zou KU Leuven gegevensbank
over studenten bevatten?
•   ...
Gegevensbank
•   verzameling
      centraal beheerde, permanent opgeslagen gegevens
    die op elk tijdstip
    voor verschillende toepassingen beschikbaar moet zijn
•   behoeften
    •   alle gegevens van belang voor alle voorziene toepassingen
    •   elke toepassing ziet voor haar relevante gegevens
    •   verschillende toepassingen delen dezelfde gegevens
                               24
25
•   gegevensbanksysteem
    •   gegevensbank
        (gegevens zelf)
    •   gegevensbankbeheerssysteem
        (DataBase Management System)
•   DBMS
    •   creatie gegevensbankstructuur (schema)
    •   toevoegen, weglaten, wijzigen gegevens
    •   opvragen gegevens

                               26
gegevensmodellen?
•   hoog niveau: conceptuele modellen
    •   dicht bij gebruiker
    •   vb. entiteit-relatie model
•   tussenin: implementatiemodellen
    •   hoe worden gegevens en relaties voorgesteld
    •   nog steeds abstract
    •   vb. relationeel model
•   laag niveau: fysische modellen
    •   details van gegevensopslag, bestandsorganisatie
                                 28
schema & instantie?
•   Gegevensbankschema = beschrijving van een gegevensbank
    •   Bepaalde eigenschappen van de gegevensbank
    •   vb. welke entiteiten er zijn, welke attributen ze hebben
•   Instantie van een gegevensbank
    •   Gegevens in de gegevensbank op 1 welbepaald ogenblik
•   andere benamingen:
    •   schema = intentie,
    •   instantie = extensie
•   schema blijft constant over de tijd, instantie niet
                                 30
schema




  31
instantie



32
3-schema
architectuur
(ANSI/SPARC, 1975)
•   Doel
    •   scheiden gebruikerstoepassingen en fysische gegevensbank
•   niveau’s
    •   intern: fysische opslagstructuur, toegangspaden
    •   conceptueel : implementatiemodel
    •   extern (gebruikersviews): hoe gebruikers gegevens zien	


•   DBMS vertaalt: extern → conceptueel → intern niveau
•   3 niveaus in meeste DBMS'en niet volledig gescheiden

                                35
Gegevens-onafhankelijkheid

 •   logisch: conceptueel schema verandert
     maar externe schema’s niet
     •   vb?
 •   fysisch: intern schema verandert,
     maar conceptueel niet
     •   vb?


                         36
ontwerp van een
gegevensbank

         38
•       analyse: behoeften? gegevens?
•       conceptueel ontwerp: hoog-niveau gegevensmodel
    •     gegevenstypes, relaties, beperkingen, operaties
•       transformatie naar implementatiemodel
    •     conceptueel schema volgens model van DBMS
•       fysisch ontwerp
    •     intern schema volgens model van DBMS

                              39
•       entiteiten 	

 	

        ∈ entiteitstype
•       relaties 	

 	

 	

      ∈ relatietype

•       attributen: waarden 	

   ∈ domein


•       sleutel
    •        identificator v.e. entiteitstype / relatietype
    •        waarde van sleutel bepaalt eenduidig de entiteit / relatie



                                         40
voorbeeld:
bedrijf

             41
ontwerp van ER schema

identificeer
•     entiteitstypes
•     attributen van elk entiteitstype
•     sleutelattributen




                                 42
Fname          Minit           Lname
                                                                        Number

                                         Salary               Name
               Name                                                              Locations
 Sex                       Address



Ssn              EMPLOYEE                                     DEPARTMENT




Bdate




                                                                     PROJECT
                 DEPENDENT



                                                       Name                       Location
Name
                                        Relationship
         Sex            Birthdate                                      Number

                                               43
sleutel

•       attribuut waarvan de waarden verschillen
    •      voor elke verschillende entiteit
    •      in elke mogelijke instantie
•       soms combinatie van attributen
•       soms meer dan één sleutel



                                         44
relatie

•       relatietype = verzameling verbanden (relaties)
                      over entiteitstypes E1, ..., En
•       graad = aantal betrokken entiteitstypes
    •      binair, ternair, ...
•       1 entiteitstype meerdere keren: recursief relatietype
    •      vb. SUPERVISION
•       entiteitstype speelt rol in een relatie


                                        45
46
47
ontwerp van ER schema
identificeer
•       entiteitstypes en attributen van elk entiteitstype
    •      sleutelattributen
•       relatietypes en attributen van elk relatietype
    •      connectiviteit en deelnamebeperkingen
•       eventuele afgeleide attributen in entiteitstypes
    •      vb: aantal werknemers in een departement

                                   48
Fname    Minit      Lname                                                                   Number
                             Salary                                                 Name
        Name                                    WORKS_FOR                                            Locations
 Sex             Address


Ssn                                                   StartDate
         EMPLOYEE                                                                   DEPARTMENT


Bdate
                                                   MANAGES
                                                                     Hours           CONTROLS



                                                           WORKS_ON
         SUPERVISES
                                             HAS_DEP.
                                                                                     PROJECT



                                                                             Name                     Location
                                            DEPENDENT

                                                                                           Number

                      Name
                                                              Relationship
                                      Sex      BirthDate


                                                 49
beperkingen op relatietypes
•   connectiviteit ("cardinality ratio")
    •       voor binaire relatietypes: 1:1, 1:n, m:n
        •       vb. werknemer behoort bij precies één departement
    •       ternaire, ... relatietypes: meer mogelijkheden
•   deelnamebeperking
    •       totale / partiële deelname
        •       vb. moet iedereen bij een departement behoren?
    •       voor binaire relatietypes: T-T, T-P, P-P
    •       totale deelname = "bestaansafhankelijkheid"
                                         50
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
                                                                          WORKS_ON          M
              SUPERVISES
                                                        HAS_DEP.
                                                                                                  PROJECT

                                                               N

                                                                                          Name                     Location
                                                       DEPENDENT

                                                                                                        Number

                           Name
                                                                           Relationship
                                             Sex          BirthDate


                                                              51
zwakke entiteitstypes
•   zonder eigen sleutel
•   identificatie via entiteit van ander entiteitstype
•   identificerende entiteit = "eigenaar", identificerende relatie
•   steeds totale deelname in identificerende relatie
•   partiële sleutel
    •     identificeert entiteit binnen entiteiten met zelfde eigenaar
    •     partiële sleutel = "discriminator"
•   vb : DEPENDENT

                                      52
– ENTITEIT :
   •   enkelvoud (bv. PERSOON, niet PERSONEN)
– RELATIE :
   •   vervoegd werkwoord
– Attribuut
– Sleutelattribuut
– rolnaam




                                  53
54
55
alternatieve notatie

(min,max) annotatie bij rol

hoe vaak kan een entiteit die rol spelen in een relatie?
                 min = 0 → partieel
                 min > 0 → totaal




                                      56
Fname    Minit      Lname                                                                               Number
                                   Salary                                                            Name
             Name                                            WORKS_FOR               (4,N)                            Locations
     Sex              Address
                                             (1,1)

     Ssn                                                            StartDate
              EMPLOYEE                                                                               DEPARTMENT
                                       (0,1)
                                                                                  (1,1)                          (0,N)
    Bdate
                                                                MANAGES
                           (0,1)                                                   hours
     (0,N)                                                                                            CONTROLS
                                supervisee                      (1,N)
supervisor
                                                  (0,N)                                                          (1,1)
                                                                           WORKS_ON          (1,N)
              SUPERVISES
                                                          HAS_DEP.
                                                                                                      PROJECT

                                                                   (1,1)
                                                                                           Name                          Location
                                                     DEPENDENT

                                                                                                            Number

                           Name
                                                                            Relationship
                                            Sex             BirthDate


                                                              57
niet-binaire relaties

•       vb. van ternaire relatie: SUPPLY
    •      leverancier levert onderdelen voor project
    •      SUPPLIER, PART en PROJECT in relatie SUPPLY
•       connectiviteit en deelnamebeperking
    •      ingewikkelder, met (min, max) notatie
•       is ternaire relatie ook via binaire relaties voor te stellen?


                                       58
Quantity
SuppNo                                                      ProjNo



           (0,N)                        (1,N)
SUPPLIER           SUPPLIES_FOR                          PROJECT



                             (0,N)


                                                PartNo
                      PART




                       59
een ternair relatietype vervangen door drie binaire relatietypes?




                                                  PARTICIPATES


         SuppNo                                                                      ProjNo

                                                              Quantity


        SUPPLIER                (0,N)                                            PROJECT
                                                                         (1,N)

                                                 SUPPLIES_FOR



                                                              (0,N)



     CAN_SUPPLY                                        PART                       USES




                                                          PartNo



                                                     60
Vragen...?

    61
OO vs ER



   ?
EER

•   subklasse/superklasse
•   specialisatie/generalisatie
•   categorieën
•   overerving van attributen




                            63
specialisatie

•       vb: verschillende soorten werknemers:
    •      SECRETARY
    •      ENGINEER
    •      MANAGER
    •      TECHNICIAN
    •      ...
•       zijn subklassen van de superklasse EMPLOYEE

                             64
65
66
•       specialisatie
    •       op basis van een predikaat: predikaatgedefinieerd
    •       op basis van een attribuut: attribuutgedefinieerd
    •       op basis van andere kenmerken: gebruikergedefinieerd
•       disjuncte of overlappende subklassen
    •       d / o in diagrammen
•       totale / partiële specialisatie
    •       totaal : 	

 elk object van superklasse moet tot een subklasse
            behoren (in diagram: dubbele lijn)


                                          67
68
69
generalisatie

•   omgekeerde van specialisatie
•   gemeenschappelijke uit verschillende entiteitstypes
•   algemener entiteitstype dat superklasse is
•   vb. CAR, TRUCK → VEHICLE
•   levert gewoonlijk een totale subklasse/superklasse relatie




                                   70
71
•       specialisatie-hiërarchie
    •       elke subklasse in één super/subklasse relatie
•       specialisatie-tralie
    •       subklasse in meerdere super/subklasse relaties
    •       = gemeenschappelijke (shared) subklasse
•       subklasse erft attributen
        van alle directe en indirecte superklassen



                                      72
73
74
ontwerpmethodes
•       top-down ontwerp
    •      begin met 1 entiteitstype
    •      specialiseer herhaaldelijk
•       bottom-up ontwerp
    •      begin met verscheidene entiteitstypes
    •      maak opeenvolgende generalisaties
•       in de praktijk
    •      meestal combinatie van beide

                                        75
categorie
•       subklasse met meerdere superklassen
    •      deelverzameling van unie van superklassen
    •      entiteit in subklasse behoort tot 1 superklasse
    •      selectieve overerving van attributen
•       Verschilt van gemeenschappelijke subklasse
    •      deelverzameling van doorsnede van superklassen
    •      entiteit in subklasse behoort tot elke superklasse
    •      overerving van alle attributen van de superklassen

                                     76
77
formeel
•       Klasse: verzameling entiteiten
•       klasse S is subklasse van superklasse C
        a.s.a. S ⊆ C
•       Z={ S1, ..., Sn } specialisatie van superklasse (generalisatie) G
        a.s.a. ∀ i : G / Si is een superklasse / subklasse relatie

    •      Z is totaal indien ∪ Si = G,
           anders partieel
    •      Z is disjunct 	

 als ∀ i , j : i ≠ j   Si ∩ Sj = ∅,
           anders overlappend
                                            78
formeel
•       subklasse S van C is predikaatgedefinieerd
        als predikaat p bestaat zodat S = C[p] = { e ∈ C | p(e)} ;
        anders gebruikergedefinieerd
•       specialisatie Z is attribuutgedefinieerd
        a.s.a. elke Si ∈ Z predikaatgedefinieerd is met predikaat A = ci
        met A een welbepaald attribuut en ci constanten
        alle ci verschillend disjuncte specialisatie

•       een categorie T is een deelverzameling van
        unie van haar definiërende superklassen : T ⊆ D1 ∪ … ∪ Dn
    •      als predikaten pi in Di lidmaatschap van T aangeven:
           T=D1[p1] ∪ … ∪ Dn[pn]
                                       79
Kleine wenk ...
Eerste vraag examen
Questions?
 http://erikduval.wordpress.com/
            @ErikDuval




   Thanks!      81

Weitere ähnliche Inhalte

Mehr von Erik Duval

eCloud newspapers
eCloud newspaperseCloud newspapers
eCloud newspapersErik Duval
 
InfoVis1415: slides sessie 12, 18 mei 2015
InfoVis1415: slides sessie 12, 18 mei 2015InfoVis1415: slides sessie 12, 18 mei 2015
InfoVis1415: slides sessie 12, 18 mei 2015Erik Duval
 
InfoVis1415: slides sessie 11, 11 mei 2015
InfoVis1415: slides sessie 11, 11 mei 2015InfoVis1415: slides sessie 11, 11 mei 2015
InfoVis1415: slides sessie 11, 11 mei 2015Erik Duval
 
InfoVis1415: slides sessie 10, 4 mei 2015
InfoVis1415: slides sessie 10, 4 mei 2015InfoVis1415: slides sessie 10, 4 mei 2015
InfoVis1415: slides sessie 10, 4 mei 2015Erik Duval
 
Evaluation
 of information visualisation
Evaluation
 of information visualisationEvaluation
 of information visualisation
Evaluation
 of information visualisationErik Duval
 
InfoVis1415: slides sessie 9, 27 april 2015
InfoVis1415: slides sessie 9, 27 april 2015InfoVis1415: slides sessie 9, 27 april 2015
InfoVis1415: slides sessie 9, 27 april 2015Erik Duval
 
Social Media and Science a wedding made in Heaven...
 or in Hell?
Social Media and Science a wedding made in Heaven...
 or in Hell?Social Media and Science a wedding made in Heaven...
 or in Hell?
Social Media and Science a wedding made in Heaven...
 or in Hell?Erik Duval
 
Information visualisation: 
Data ink design principles
Information visualisation: 
Data ink design principlesInformation visualisation: 
Data ink design principles
Information visualisation: 
Data ink design principlesErik Duval
 
InfoVis1415: slides sessie 8, 20 april 2015
InfoVis1415: slides sessie 8, 20 april 2015InfoVis1415: slides sessie 8, 20 april 2015
InfoVis1415: slides sessie 8, 20 april 2015Erik Duval
 
A short history (and even shorter future)
 of information visualisation
A short history (and even shorter future)
 of information visualisationA short history (and even shorter future)
 of information visualisation
A short history (and even shorter future)
 of information visualisationErik Duval
 
InfoVis1415: slides sessie 7, 30 March 2015
InfoVis1415: slides sessie 7, 30 March 2015InfoVis1415: slides sessie 7, 30 March 2015
InfoVis1415: slides sessie 7, 30 March 2015Erik Duval
 
InfoVis1415: slides sessie 6, 23 March 2015
InfoVis1415: slides sessie 6, 23 March 2015InfoVis1415: slides sessie 6, 23 March 2015
InfoVis1415: slides sessie 6, 23 March 2015Erik Duval
 
History of Human Computer Interaction
History of Human Computer InteractionHistory of Human Computer Interaction
History of Human Computer InteractionErik Duval
 
InfoVis1415: slides sessie 5, 9 March 2015
InfoVis1415: slides sessie 5, 9 March 2015InfoVis1415: slides sessie 5, 9 March 2015
InfoVis1415: slides sessie 5, 9 March 2015Erik Duval
 
InfoVis1415: slides sessie 4, 2 March 2015
InfoVis1415: slides sessie 4, 2 March 2015InfoVis1415: slides sessie 4, 2 March 2015
InfoVis1415: slides sessie 4, 2 March 2015Erik Duval
 
InfoVis1415: slides sessie 3, 23 Feb 2015
InfoVis1415: slides sessie 3, 23 Feb 2015InfoVis1415: slides sessie 3, 23 Feb 2015
InfoVis1415: slides sessie 3, 23 Feb 2015Erik Duval
 
InfoVis1415: slides sessie 2, 16 Feb 2015
InfoVis1415: slides sessie 2, 16 Feb 2015InfoVis1415: slides sessie 2, 16 Feb 2015
InfoVis1415: slides sessie 2, 16 Feb 2015Erik Duval
 
Technology that makes HUMANS smarter
Technology that makes HUMANS smarterTechnology that makes HUMANS smarter
Technology that makes HUMANS smarterErik Duval
 
InfoVis1415: slides sessie 1, 10 Feb 2015
InfoVis1415: slides sessie 1, 10 Feb 2015InfoVis1415: slides sessie 1, 10 Feb 2015
InfoVis1415: slides sessie 1, 10 Feb 2015Erik Duval
 
201502010 pen ocw_les1_erik
201502010 pen ocw_les1_erik201502010 pen ocw_les1_erik
201502010 pen ocw_les1_erikErik Duval
 

Mehr von Erik Duval (20)

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

20130212 les gb1

  • 1. Gegevensbanken Prof. E. Duval, Prof. B. Berendt, dr. Matthijs Van Leeuwen 2012 - 2013 1
  • 3. 3
  • 4. Elmasri & Navathe, Fundamentals of Database Systems, Addison Wesley, 6th edition, 2011 goed genoeg voor zelfstudie ;-) 5de of 6de editie is OK
  • 5. docenten • Prof. Erik Duval, Prof. Bettina Berendt dr. Katrien Verbert Matthijs van Leeuwen • medewerkers • Albrecht Zimmermann, Bo Gao, Celine Vens, Mathias Verbeke, Rula Sayaf, Tommy Messelis, Jo Devriendt, Angelika Kimmig • 18 17 hoorcolleges • video conferencing, om de beurt 5
  • 6. oefenzitting • bereid voor: theorie! • verplicht (geen sancties) • niet zo maar van reeks veranderen • laat weten als er een probleem is • “head count” • vragen: toledo • werkje: geen punten, model oplossing, groep van 3, verplicht (geen sancties) 6
  • 7. toledo: statistics tracking • niet persoonlijk • data mining - outlook lecture • vragen na einde hoorcolleges • wij antwoorden zolang je vraagt ;-) 7
  • 8. mondeling examen met schriftelijke oefeningen • focus • concepten en methodes • kennen en kunnen gebruiken • toepassingen • ontwerpen van een gegevensbank • queries
  • 9. juni 2012 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
  • 11. 11
  • 12. inhoud ? 12
  • 13. inhoud • gegevensmodel: (E)ER en relationeel • en een beetje: OO, ERDBMS, netwerk, hierarchisch • ontwerp: (E)ER en relationeel • opslag: bestand, hashing, indexen, bomen, meerdimensionaal • implementatie: queries, transacties, concurrentie, herstel • geavanceerd: distributie, data warehouse, multimedia • een beetje 13
  • 18. • programma-gegevens • korte levensduur: werkgeheugen variabelen, objecten • lange levensduur: persistent bestanden en gegevensbanken • interpretatie gegevens gedefinieerd in programma • record, klasse, ... 18
  • 19. ? ? 19
  • 20. • Bestanden • elk programma definieert structuur • meerdere programma’s: redundantie of omzetten • Gegevensbanken • data + metadata die structuur beschrijft • onafhankelijk van programma’s
  • 21. Wat zou KU Leuven gegevensbank over studenten bevatten?
  • 22. ...
  • 23.
  • 24. Gegevensbank • verzameling centraal beheerde, permanent opgeslagen gegevens die op elk tijdstip voor verschillende toepassingen beschikbaar moet zijn • behoeften • alle gegevens van belang voor alle voorziene toepassingen • elke toepassing ziet voor haar relevante gegevens • verschillende toepassingen delen dezelfde gegevens 24
  • 25. 25
  • 26. gegevensbanksysteem • gegevensbank (gegevens zelf) • gegevensbankbeheerssysteem (DataBase Management System) • DBMS • creatie gegevensbankstructuur (schema) • toevoegen, weglaten, wijzigen gegevens • opvragen gegevens 26
  • 28. hoog niveau: conceptuele modellen • dicht bij gebruiker • vb. entiteit-relatie model • tussenin: implementatiemodellen • hoe worden gegevens en relaties voorgesteld • nog steeds abstract • vb. relationeel model • laag niveau: fysische modellen • details van gegevensopslag, bestandsorganisatie 28
  • 30. Gegevensbankschema = beschrijving van een gegevensbank • Bepaalde eigenschappen van de gegevensbank • vb. welke entiteiten er zijn, welke attributen ze hebben • Instantie van een gegevensbank • Gegevens in de gegevensbank op 1 welbepaald ogenblik • andere benamingen: • schema = intentie, • instantie = extensie • schema blijft constant over de tijd, instantie niet 30
  • 34.
  • 35. Doel • scheiden gebruikerstoepassingen en fysische gegevensbank • niveau’s • intern: fysische opslagstructuur, toegangspaden • conceptueel : implementatiemodel • extern (gebruikersviews): hoe gebruikers gegevens zien • DBMS vertaalt: extern → conceptueel → intern niveau • 3 niveaus in meeste DBMS'en niet volledig gescheiden 35
  • 36. Gegevens-onafhankelijkheid • logisch: conceptueel schema verandert maar externe schema’s niet • vb? • fysisch: intern schema verandert, maar conceptueel niet • vb? 36
  • 37.
  • 39. analyse: behoeften? gegevens? • conceptueel ontwerp: hoog-niveau gegevensmodel • gegevenstypes, relaties, beperkingen, operaties • transformatie naar implementatiemodel • conceptueel schema volgens model van DBMS • fysisch ontwerp • intern schema volgens model van DBMS 39
  • 40. entiteiten ∈ entiteitstype • relaties ∈ relatietype • attributen: waarden ∈ domein • sleutel • identificator v.e. entiteitstype / relatietype • waarde van sleutel bepaalt eenduidig de entiteit / relatie 40
  • 42. ontwerp van ER schema identificeer • entiteitstypes • attributen van elk entiteitstype • sleutelattributen 42
  • 43. Fname Minit Lname Number Salary Name Name Locations Sex Address Ssn EMPLOYEE DEPARTMENT Bdate PROJECT DEPENDENT Name Location Name Relationship Sex Birthdate Number 43
  • 44. sleutel • attribuut waarvan de waarden verschillen • voor elke verschillende entiteit • in elke mogelijke instantie • soms combinatie van attributen • soms meer dan één sleutel 44
  • 45. relatie • relatietype = verzameling verbanden (relaties) over entiteitstypes E1, ..., En • graad = aantal betrokken entiteitstypes • binair, ternair, ... • 1 entiteitstype meerdere keren: recursief relatietype • vb. SUPERVISION • entiteitstype speelt rol in een relatie 45
  • 46. 46
  • 47. 47
  • 48. ontwerp van ER schema identificeer • entiteitstypes en attributen van elk entiteitstype • sleutelattributen • relatietypes en attributen van elk relatietype • connectiviteit en deelnamebeperkingen • eventuele afgeleide attributen in entiteitstypes • vb: aantal werknemers in een departement 48
  • 49. Fname Minit Lname Number Salary Name Name WORKS_FOR Locations Sex Address Ssn StartDate EMPLOYEE DEPARTMENT Bdate MANAGES Hours CONTROLS WORKS_ON SUPERVISES HAS_DEP. PROJECT Name Location DEPENDENT Number Name Relationship Sex BirthDate 49
  • 50. beperkingen op relatietypes • connectiviteit ("cardinality ratio") • voor binaire relatietypes: 1:1, 1:n, m:n • vb. werknemer behoort bij precies één departement • ternaire, ... relatietypes: meer mogelijkheden • deelnamebeperking • totale / partiële deelname • vb. moet iedereen bij een departement behoren? • voor binaire relatietypes: T-T, T-P, P-P • totale deelname = "bestaansafhankelijkheid" 50
  • 51. 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 WORKS_ON M SUPERVISES HAS_DEP. PROJECT N Name Location DEPENDENT Number Name Relationship Sex BirthDate 51
  • 52. zwakke entiteitstypes • zonder eigen sleutel • identificatie via entiteit van ander entiteitstype • identificerende entiteit = "eigenaar", identificerende relatie • steeds totale deelname in identificerende relatie • partiële sleutel • identificeert entiteit binnen entiteiten met zelfde eigenaar • partiële sleutel = "discriminator" • vb : DEPENDENT 52
  • 53. – ENTITEIT : • enkelvoud (bv. PERSOON, niet PERSONEN) – RELATIE : • vervoegd werkwoord – Attribuut – Sleutelattribuut – rolnaam 53
  • 54. 54
  • 55. 55
  • 56. alternatieve notatie (min,max) annotatie bij rol hoe vaak kan een entiteit die rol spelen in een relatie? min = 0 → partieel min > 0 → totaal 56
  • 57. Fname Minit Lname Number Salary Name Name WORKS_FOR (4,N) Locations Sex Address (1,1) Ssn StartDate EMPLOYEE DEPARTMENT (0,1) (1,1) (0,N) Bdate MANAGES (0,1) hours (0,N) CONTROLS supervisee (1,N) supervisor (0,N) (1,1) WORKS_ON (1,N) SUPERVISES HAS_DEP. PROJECT (1,1) Name Location DEPENDENT Number Name Relationship Sex BirthDate 57
  • 58. niet-binaire relaties • vb. van ternaire relatie: SUPPLY • leverancier levert onderdelen voor project • SUPPLIER, PART en PROJECT in relatie SUPPLY • connectiviteit en deelnamebeperking • ingewikkelder, met (min, max) notatie • is ternaire relatie ook via binaire relaties voor te stellen? 58
  • 59. Quantity SuppNo ProjNo (0,N) (1,N) SUPPLIER SUPPLIES_FOR PROJECT (0,N) PartNo PART 59
  • 60. een ternair relatietype vervangen door drie binaire relatietypes? PARTICIPATES SuppNo ProjNo Quantity SUPPLIER (0,N) PROJECT (1,N) SUPPLIES_FOR (0,N) CAN_SUPPLY PART USES PartNo 60
  • 62. OO vs ER ?
  • 63. EER • subklasse/superklasse • specialisatie/generalisatie • categorieën • overerving van attributen 63
  • 64. specialisatie • vb: verschillende soorten werknemers: • SECRETARY • ENGINEER • MANAGER • TECHNICIAN • ... • zijn subklassen van de superklasse EMPLOYEE 64
  • 65. 65
  • 66. 66
  • 67. specialisatie • op basis van een predikaat: predikaatgedefinieerd • op basis van een attribuut: attribuutgedefinieerd • op basis van andere kenmerken: gebruikergedefinieerd • disjuncte of overlappende subklassen • d / o in diagrammen • totale / partiële specialisatie • totaal : elk object van superklasse moet tot een subklasse behoren (in diagram: dubbele lijn) 67
  • 68. 68
  • 69. 69
  • 70. generalisatie • omgekeerde van specialisatie • gemeenschappelijke uit verschillende entiteitstypes • algemener entiteitstype dat superklasse is • vb. CAR, TRUCK → VEHICLE • levert gewoonlijk een totale subklasse/superklasse relatie 70
  • 71. 71
  • 72. specialisatie-hiërarchie • elke subklasse in één super/subklasse relatie • specialisatie-tralie • subklasse in meerdere super/subklasse relaties • = gemeenschappelijke (shared) subklasse • subklasse erft attributen van alle directe en indirecte superklassen 72
  • 73. 73
  • 74. 74
  • 75. ontwerpmethodes • top-down ontwerp • begin met 1 entiteitstype • specialiseer herhaaldelijk • bottom-up ontwerp • begin met verscheidene entiteitstypes • maak opeenvolgende generalisaties • in de praktijk • meestal combinatie van beide 75
  • 76. categorie • subklasse met meerdere superklassen • deelverzameling van unie van superklassen • entiteit in subklasse behoort tot 1 superklasse • selectieve overerving van attributen • Verschilt van gemeenschappelijke subklasse • deelverzameling van doorsnede van superklassen • entiteit in subklasse behoort tot elke superklasse • overerving van alle attributen van de superklassen 76
  • 77. 77
  • 78. formeel • Klasse: verzameling entiteiten • klasse S is subklasse van superklasse C a.s.a. S ⊆ C • Z={ S1, ..., Sn } specialisatie van superklasse (generalisatie) G a.s.a. ∀ i : G / Si is een superklasse / subklasse relatie • Z is totaal indien ∪ Si = G, anders partieel • Z is disjunct als ∀ i , j : i ≠ j Si ∩ Sj = ∅, anders overlappend 78
  • 79. formeel • subklasse S van C is predikaatgedefinieerd als predikaat p bestaat zodat S = C[p] = { e ∈ C | p(e)} ; anders gebruikergedefinieerd • specialisatie Z is attribuutgedefinieerd a.s.a. elke Si ∈ Z predikaatgedefinieerd is met predikaat A = ci met A een welbepaald attribuut en ci constanten alle ci verschillend disjuncte specialisatie • een categorie T is een deelverzameling van unie van haar definiërende superklassen : T ⊆ D1 ∪ … ∪ Dn • als predikaten pi in Di lidmaatschap van T aangeven: T=D1[p1] ∪ … ∪ Dn[pn] 79
  • 80. Kleine wenk ... Eerste vraag examen