20130212 les gb1

Post on 08-Sep-2014

5.079 views 2 download

Tags:

description

 

Transcript of 20130212 les gb1

1

Gegevensbanken

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

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