20130212 les gb1
DESCRIPTION
TRANSCRIPT
1
Gegevensbanken
Prof. E. Duval, Prof. B. Berendt, dr. Matthijs Van Leeuwen2012 - 2013
http://www.slideshare.net/erik.duval
2
3
Elmasri & Navathe, Fundamentals ofDatabase Systems, Addison Wesley, 6th edition, 2011
goed genoeg voor zelfstudie ;-)
5de of 6de editie is OK
• docenten
• Prof. Erik Duval, Prof. Bettina Berendtdr. 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
juni 2012
?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
14Thanks!
Questions?http://erikduval.wordpress.com/
@ErikDuval
wat is een gegevensbank?
voorbeelden?
verschil metvariabelen in programma?
• programma-gegevens
• korte levensduur: werkgeheugenvariabelen, objecten
• lange levensduur: persistentbestanden en gegevensbanken
• interpretatie gegevensgedefinieerd 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 gegevensbankover studenten bevatten?
• ...
• verzameling centraal beheerde, permanent opgeslagen gegevensdie op elk tijdstipvoor 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
Gegevensbank
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 verandertmaar 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
identificeer
• entiteitstypes
• attributen van elk entiteitstype
• sleutelattributen
ontwerp van ER schema
42
43
EMPLOYEE
Sex
Name
Ssn
Fname Minit Lname
Address
Bdate
Salary
DEPARTMENT
Number
LocationsName
PROJECT
Name
Number
Location
DEPENDENT
Name
Sex BirthdateRelationship
• attribuut waarvan de waarden verschillen
• voor elke verschillende entiteit
• in elke mogelijke instantie
• soms combinatie van attributen
• soms meer dan één sleutel
sleutel
44
• 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
relatie
45
46
47
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
ontwerp van ER schema
48
49
EMPLOYEE
Sex
Name
Ssn
Fname Minit Lname
Address
Bdate
Salary
DEPARTMENT
Number
LocationsName
PROJECT
Name
Number
LocationDEPENDENT
Name
Sex BirthDateRelationship
WORKS_FOR
CONTROLS
MANAGES
StartDate
SUPERVISESHAS_DEP.
WORKS_ON
Hours
• 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"
beperkingen op relatietypes
50
51
EMPLOYEE
Sex
Name
Ssn
Fname Minit Lname
Address
Bdate
Salary
DEPARTMENT
Number
LocationsName
PROJECT
Name
Number
LocationDEPENDENT
Name
Sex BirthDateRelationship
WORKS_FOR
CONTROLS
MANAGES
StartDate
SUPERVISESHAS_DEP.
1N
11
1
N
supervisor supervisee1
N
1 NWORKS_ON
Hours
N
M
• 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
zwakke entiteitstypes
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 → partieelmin > 0 → totaal
56
57
EMPLOYEE
Sex
Name
Ssn
Fname Minit Lname
Address
Bdate
Salary
DEPARTMENT
Number
LocationsName
PROJECT
Name
Number
LocationDEPENDENT
Name
Sex BirthDateRelationship
WORKS_FOR
CONTROLS
MANAGES
StartDate
SUPERVISESHAS_DEP.
WORKS_ON
hours
(1,1)
(4,N)
(0,1)(1,1) (0,N)
(1,1)(1,N)
(1,N)
(1,1)
(0,N)supervisor
supervisee(0,N)
(0,1)
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
SUPPLIER
PART
PROJECTSUPPLIES_FOR(0,N)
(0,N)
(1,N)
SuppNo
PartNo
ProjNoQuantity
60
PART
(0,N)
PartNo
SUPPLIER PROJECT
SUPPLIES_FOR
(0,N) (1,N)
SuppNo ProjNo
Quantity
CAN_SUPPLY USES
PARTICIPATES
een ternair relatietype vervangen door drie binaire relatietypes?
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 attributenvan 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
• Klasse: verzameling entiteiten
• klasse S is subklasse van superklasse Ca.s.a. S ⊆ C
• Z={ S1, ..., Sn } specialisatie van superklasse (generalisatie) Ga.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
formeel
78
• subklasse S van C is predikaatgedefinieerd als predikaat p bestaat zodat S = C[p] = { e ∈ C | p(e)} ;anders gebruikergedefinieerd
• specialisatie Z is attribuutgedefinieerda.s.a. elke Si ∈ Z predikaatgedefinieerd is met predikaat A = cimet A een welbepaald attribuut en ci constantenalle ci verschillend ⇒ disjuncte specialisatie
• een categorie T is een deelverzameling vanunie van haar definiërende superklassen : T ⊆ D1 ∪ … ∪ Dn
• als predikaten pi in Di lidmaatschap van T aangeven: T=D1[p1] ∪ … ∪ Dn[pn]
formeel
79
Kleine wenk ...
Eerste vraag examen
81
Thanks!
Questions?
http://erikduval.wordpress.com/@ErikDuval