hc1 - data mondeling Flashcards
model
vereenvoudigde weergave van de werkelijkheid
doel van een model
communicatie, afstemming en beperken van complexiteit door abstractie
gegevensbeheer
het afbeelden van de werkelijkheid in computerbestanden
entiteiten
tastbare dingen die je wil gaan opslaan (bijv. een boom). Je kan ze nog niet direct in een database zetten.
2 soorten entiteiten
abstracte entiteit en concrete entiteit
abstracte entiteit
het abstracte begrip (boom). wordt beschreven als entiteitstype met tussen haakjes de attributen: boom(soort, hoogte, leeftijd)
concrete entiteit
= instantie
(een hele specifieke boom: soort plantaan, hoogte 4,78 meter, leeftijd 18 jaar)
attributen
kenmerken of eigenschappen (bijv. de hoogte van een boom). Kan je wel direct in een database zetten.
waarde
hoort bij het attribuut (bijv. hoogte = 4,78 meter)
relatie
altijd tussen entiteiten (student volgt een vak)
wat is de tabelnaam?
objecttype = entiteit
wat zijn de tabelkoppen?
attributen
wat staat er in de overige regels van een tabel?
objecten / records
wat staat er in een cell van een tabel?
een waarde
wat is het doel van database modelleren?
effectief en efficiënt opslaan van gegevens die nodig zijn voor een bepaalde taak
bottum-up methode betekenis
normaliseer bestaande data om zo een efficiëntere data-structuur te krijgen
stappenplan van bottum-up methode
- inventarisatie
- selectie
- normalisatie
inventarisatie (eerste fase bottum-up methode)
brainstormen met opdrachtgever (welke gegevens zijn van belang, gesprekken met medewerkers, papieren administratie)
ruim denken (later schrappen is beter dan vooraf vergeten)
selectie (tweede fase bottum-up methode). waar worden keuzes op gebaseerd?
Het draait om essentie.
Keuzes worden gebaseerd op - relevantie
- beschikbaarheid
- wetgeving
- hoeveelheid ruimte voor opslag
- hoeveelheid werk.
wat is het resultaat na de selectie fase van bottum-up methode?
een platte tabel = nulde normaalvorm
- geen structuur
- kolommen voor de attributen
- regels voor de objecten
wat is de betekenis van normalisatie? (derde fase van bottum-up methode)
databasemodel efficiënter maken zonder dataverlies.
wat zijn anomalies en welke 3 soorten heb je?
eigenaardigheden die een database kan hebben.
- update anomalie
- insert anomalie
- delete anomalie
update anomalie
je verandert iets in de tabel (update), bijvoorbeeld een naam van een vak. als gevolg ga je van 2 naar 3 vakken
insert anomalie
je voegt een extra rij toe (nieuwe docent), maar je moet nog een vakje leeglaten (omdat je bijv. nog niet weet welk vak een nieuwe docent gaat geven)
delete anomalie
je verwijdert iets (als je bijv. een vak wilt verwijderen, verwijder je die hele regel, dus ook de gegevens van die docent (als de docent alleen dat vak geeft)
wat zijn de 4 eisen van eerste normaalvorm?
- ieder attribuut is atomair n bevat dus hoogstens 1 waarde (in elke cel mag niet meer dan 1 gegeven staan)
- geen attribuut wordt herhaald
- de tabelstructuur verandert niet in de tijd
- er zijn geen volledige identieke regels
wat is een functionele afhankelijkheid (vorm)?
A1, A2, …, An -> B1, B2, … Bm
Wanneer heeft een tabel een functionele afhankelijkheid?
Als jij de waardes weet die horen bij de attributen voor de pijl, dan ligt daarmee vast wat de waardes zijn die horen bij de attributen na de pijl.
voorbeelden functionele afhankelijkheden
(vak, module) > docent (er is maar 1 moduleverantwoordelijke)
docent > academie (een docent werkt voor slechts 1 academie)
(vak, module) > (docent, academie)
Superkey =
Als je een functionele afhankelijkheid hebt, waarbij alle attributen uit de tabel worden genoemd, dan noem je het gedeelte voor de pijl de superkey
is elke candidate key een superkey en andersom?
elke candidate key is een superkey (de kleinste), maar je kan ook superkeys hebben die groter zijn dan de candidate key (dus niet elke superkey is een candidate key)
Candidate key =
de kleinste combinatie van haakjes (verzameling van attributen) die ook een superkey is
primary key =
de meest logische candidate key
partial key =
elke deelverzameling van candidate keys. dus als een candidate key bestaat uit meerdere attributen, dan is elk van de losse attributen én elke combinatie daarvan, een partial key.
wat zijn de superkeys bij deze functionele afhankelijkheid?
(vak, module) > (docent, academie)
- (vak, module)
- (vak, module, docent)
- (vak, module, academie)
- (vak, module, docent, academie)
wat is de candidate key bij deze functionele afhankelijkheid?
(vak, module) > (docent, academie)
(vak, module)
wat is de primary key bij deze functionele afhankelijkheid?
(vak, module) > (docent, academie)
(vak, module)
wat zijn de partial keys bij deze functionele afhankelijkheid?
(vak, module) > (docent, academie)
- vak
- module
twee soorten afhankelijkheden
partiële afhankelijkheid
transieve afhankelijkheid
wat is een partiële afhankelijkheid?
een functionele afhankelijkheid, waarbij de attributen voor de pijl partieel keys zijn
wat is een transieve afhankelijkheid? + voorbeeld
krijg je door functionele afhankelijkheden te combineren
(vak, module) > docent
combineren met
docent > academie
geeft
(vak, module) > academie)
Wat zijn de 2 eisen voor tweede normaalvorm?
- het voldoet aan de eerste normaalvorm
- er zijn geen partiële afhankelijkheden
Je hebt een 1NF tabel met onderstaande partiële afhanklijkheid. Hoe zet je deze in 2NF?
Naam > (Adres, Plaats, Bloedgroep, Huisarts, Adres arts, Tel.nr. arts)
Je gaat de 1NF tabel splitsen in 2 tabellen.
- Alle attributen die in de partiële afhankelijkheid staan zet je in 1 tabel.
- In tabel 2 zet je alle overige attributen (in dit geval bezoekdatum en kosten) en de attributen die bij de partiële afhankelijkheid voor de pijl staan (in dit geval naam)
2 eisen derde normaalvorm
- het voldoet aan de tweede normaalvorm
- alle niet-sleutel attributen hangen niet meer af van andere niet-sleutel attributen
(er zit dus nog een functionele afhankelijkheid zonder de key in één van de tabellen van de 2NF).
Tabel naar derde normaalvorm zetten.
In het voorbeeld kan de volgende functionele afhankelijkheid nog eruit worden gehaald:
huisarts > (adres arts, tel.nr. arts)
Hoeveel tabellen heb je nu? (je had er in 2e normaalvorm 2)
3
huisarts > adres arts, tel.nr, arts
naam > adres, plaats, bloedgroep, huisarts
naam, bezoekdatum > kosten
2 eisen Boyce-Codd normaalvorm (BCNF)
- het voldoet aan de derde normaalvorm
- voor elke functionele afhankelijkheid geldt dat het gedeelte voor de pijl een candidate key (dus zo kort mogelijk) is (3NF is bijna altijd BCNF)
staan onderstaande 3 tabellen (3NF) ook al in BCNF?
huisarts > adres arts, tel.nr, arts
naam > adres, plaats, bloedgroep, huisarts
naam, bezoekdatum > kosten
Ja
huisarts is een primary key
naam is een primary key
naam, bezoekdatum is een primary key
welke normaalvormen zijn er?
nulde normaalvorm
eerste normaalvorm
tweede normaalvorm
derde normaalvorm
boyce-codd normaalvorm