Samenvatting Gegevensbanken I 2010
-
Upload
frederik-pena -
Category
Documents
-
view
89 -
download
3
Transcript of Samenvatting Gegevensbanken I 2010
Samenvatting Communicatievaardigheden I 1
Samenvatting Gegevensbanken I 2009-2010 K. Vanneuville Door Filip Vanhoorelbeke – Schachtentemmer Technica 2010-2011
Opmerking: merendeel van de samenvatting is gebasseerd op de pdf/slides die te vinden zijn op Dokeos. Deze samenvatting is dus een
bundeling van de slides en is zodoende een meer gestructureerde en bondige versie dewelke beter te bestuderen valt.
Hoofdstuk 1: Inleiding in de werking van databases
Waarom een database? - Heeft tot doel mensen en organisaties te helpen dingen bij te houden
- Data wordt opgeslagen in tabellen -> zoals in spreadsheet
- Elke rij in een tabel bevat gegevens over een specifieke instantie
- Een database omvat gegevens en relaties
Database produceert informatie - Data = opgeslagen cijfers of feiten
- Informatie = kennis afgeleid van gegevens
- Databases slaan gegevens op, maar op een manier die het mogelijk maakt informatie te
produceren
Componenten van een database systeem
Applicaties, de DBMS en SQL - Applicaties: computerprogramma’s
- DBMS: Database Management System: creëert, verwerkt en beheert databases
- SQL: Structured Query Language: standaard database-taal
Applicaties:
- Maken en verwerken formulieren
Samenvatting Communicatievaardigheden I 2
- Maken en versturen queries
- Produceren van rapporten
- Uitvoeren van de toepassingslogica
- Besturen van de toepassing
DBMS:
- Creatie db, tabellen en ondersteunde structuren
- Lezen en bewerken databasegegevens
- Onderhouden databasestructuren
- Vastleggen regels
- Controleren currency
- Security
- Backup en recovery
Database Een database is een zichzelf beschrijvende verzameling van gerelateerde records (tabellen)
Componenten:
- Gebruikersgegevens
- Metadata: gegevens over structuur db
- Indexes en andere structuren om prestatie te verbeteren
- Opgeslagen procedures: modules opgeslagen in db
- Triggers: programma dat uitgevoerd wordt als bepaalde gegevensactiviteit optreedt
- Application metadata: gegevens die toepassingen – elementen zoals formulieren en
rapporten beschrijven.
Database ontwerp - Op basis van bestaande gegevens:
o Analyseer spreadsheets en andere gegevenstabellen
o Extraheer gegevens uit andere databases
o Gebruik principes van normaliseren
- Nieuwe systemen ontwikkelen:
o Maak datamodel op basis van app-eisen
o Zet datamodel om in databaseontwerp
- Databases herontwerpen
Het Relationeel Model: - Codd -> gebaseerd op relationele algebra
Objectgeoriënteerde DBMS (OODBMS): - Doel: objectgeoriënteerde programmeerobjecten in een database opslaan zonder
transformatie naar relationeel formaat
- Nadeel: hoge kosten
Recente geschiedenis: - Internet database
- XML en database integratie
Samenvatting Communicatievaardigheden I 3
Hoofdstuk 2: SQL
Hoofdstuk 3 & 4: Het Relationele Model en Normalisatie
Normalisatiestappen van Codd: - 1NF: Eerste normaalvorm
- 2NF: Tweede normaalvorm
- 3NF: Derde normaalvorm
- BCNF: Boyce Codd-normaalvorm
- 4NF: Vierde normaalvorm
Relaties Een Relationeel DBMS product slaat data op in de vorm van relaties, een soort tabel.
Een relatie is een twee-dimensionale tabel dat de volgende karakteristieken heeft:
- Rijen bevatten gegevens over één entiteit
- Kolommen bevatten gegevens over attributen van de entiteit
- Cellen van de tabel bevatten enkelvoudige gegevens
- Alle items in een kolom zijn van dezelfde soort
- Elke kolom heeft een unieke naam
- De volgorde van de kolommen is van geen belang
- De volgorde van de rijen is van geen belang
- Er mogen geen identieke rijen voorkomen
Hoewel niet alle tabellen relaties zijn, zijn de termen tabel en relatie uitwisselbaar:
- Tabel/rij/kolom = Bestand/record/veld = relatie/tuple/attribuut
Gegevens: - Elementaire gegevens
- Samengestelde gegevens
- Procesgegevens
Instantie of voorkomen (occurence): - Verzameling van waarden voor 1 tupel
- Wordt geïdentificeerd door een waarde van een sleutel
Sleutels: - Sleutel:
Elementair gegeven of kleinste combinatie van elementaire gegevens die een record
occurence uniek identificeren en altijd een waarde heeft.
- Kandidaatsleutel:
Een relatie heeft één primary key, de andere sleutels worden kandidaatsleutels genoemd.
Samenvatting Communicatievaardigheden I 4
- Primaire Sleutel:
Een unieke sleutel die precies één rij identificeert:
o Voor het representeren van rijen in een tabel
o Organiseren van table storage
o Genereert indexen
- Vreemde sleutels (foreign keys):
Deze zorgt er voor dat als gegevens in een record verwijzen naar gegevens in een andere
record, er alleen verwezen kan worden naar werkelijk bestaande gegevens.
Functionele afhankelijkheid - Functionele afhankelijkheid: wanneer de waarde van een (of verzameling) attribuut, de
waarde van een tweede (of verzameling) attribuut bepaalt
- Determinant: attribuut aan linkerzijde van de functionele afhankelijkheid (A->B):
o OrderNummer -> KlantNummer
o (OrderNummer, ItemNummer, Aantal) -> Prijs
- Een primary key is altijd een determinant maar een determinant is niet noodzakelijk een
primary key
Problemen bij niet-genormaliseerde tabellen - Informatie wordt meerdere keren herhaald:
o Plaatsverlies
o Integriteit niet gegarandeerd
o Wijzigingen -> programmeren
- Bij creatie nieuwe klant: dummy waarden (NULL)
- Bij verwijderen informatie ook nuttige gegevens die worden verwijderd
Normalisatie - Elemineert wijzigingsanomalieën:
o Verwijderanomalie: verwijderen gegevens ene entiteit betekent onopzettelijk
verwijderen van gegegevens van andere entiteit
o Invoeganomalie: invoegen van gegevens over een entiteit kan pas als gegevens over
een andere entiteit eerst worden ingevoegd
o Updateanomalie: zelfde wijziging op meerdere plaatsen
- Anomalieën wegwerken door relaties op te delen in relaties elk met hun eigen thema
- Splitsen van relaties -> referentiële integriteitsvoorwaarden
- Normaalvormen: Klassen met relaties en technieken ter voorkoming van anomalieën
Stappenplan:
- Voorafgaande activiteiten:
o Opsplitsen van samengestelde gegevens in elementaire gegevens
o Verwijderen van procesgegevens indien deze gegevens kunnen berekend worden
adh van beschikbare informatie:
- 1NF:
o Definitie: Een relatie is in 1NF indien al haar attributen atomisch zijn (= er zijn geen
herhalende deelverzamelingen)
Samenvatting Communicatievaardigheden I 5
o Werkwijze: Kies de sleutel zodat er geen herhalende deelverzamelingen zijn
- 2NF:
o Definitie: Een relatie is in 2NF, indien ze in 1NF is en elk attribuut functioneel
afhankelijk van de volledige sleutel.
o Werkwijze:
Verwijder de attributen die functioneel afhankelijk zijn van slechts een
gedeelte van de sleutel
Geef de attributen aan die niet functioneel afhankelijk zijn van de volledige
sleutel
Vorm een aparte groep van ieder deel van de sleutel waarvan attributen
afhankelijk zijn.
Neem in iedere groep de attributen met het bijhorende sleuteldeel op
Verwijder deze attributen uit de oorspronkelijke groep
- 3NF:
o Definitie: Een relatie is in 3NF als ze in 2NF is en geen transitieve afhankelijkheden
kent
o Werkwijze:
Geef de attributen aan die functioneel afhankelijk zijn van een andere
attribuut die geen kandidaatsleutel is
Vorm een aparte groep voor ieder attribuut of combinatie van attributen,
waarvan andere attributen functioneel afhankelijk zijn
Neem in iedere groep de attributen met de bijbehorende sleutel op
Verwijder de attributen van de nieuwe groep(en) uit de oorspronkelijke
groep
- BCNF:
o Verbetering van de derde normaalvorm
o Een tabel is in de BCNF:
Als de tabel in 3NF is EN
Als alle determinanten een kandidaatsleutel zijn
o De BCNF refereert naar situaties waarbij kandidaatsleutels elkaar overlappen
o Werkwijze:
Identificeer elke FA
Identificeer elke kandidaatsleutel
Is er een functionele afhankelijkheid die een determinant heeft die geen
kandidaatsleutel heeft, dan:
A: verplaats de kolommen van deze functionele afhankelijkheid naar
een nieuwe relatie
B: maak de determinant van deze FA tot de primaire sleutel van de
nieuwe relatie
C: laat een kopie van de determinant in de originele relatie staan als
een externe sleutel
D: maak een referntial integrity-voorwaarde die de originele en de
nieuwe relatie aan elkaar koppelt
Herhaal stap 3 tot elke determinant van elke relatie een kandidaatsleutel is.
Samenvatting Communicatievaardigheden I 6
Opmerking: zijn er in stap 3 meer van dergelijke FA’s dan begin je met die
welke de meeste kolommen heeft
- 4NF:
o Definitie: een tabel is in 4NF:
Als de tabel reeds in BCNF is EN
Als de tabel geen meerwaardige afhankelijkheid bevat
o Multivalued dependency:
Een attribuuttype C is meerwaardig afhankelijk van A indien voor elke
waarde van A geldt dat bij elke waarde van B dezelfde verzamling van
waarden van C bestaat
Relaties Synthetiseren
Eén-op-één relaties tussen attributen:
- Attributen met een één-op-één relatie moeten minstens in één tabel samen voorkomen
- Noem deze relatie R en de attributen A en B:
o A of B moet sleutel van R zijn
o Attribuut kan worden toegevoegd aan R als het FA is van A of B
o Attribuut dat niet FA is van A of B kan niet aan R toegevoegd worden
o A en B moeten beide voorkomen in R, maar horen niet samen in andere relaties voor
te komen
o A of B moeten consequent worden gebruikt om het attributenpaar in andere relaties
dan R te vertegenwoordigen
Veel-op-één relaties tussen attributen
- Attributen met een veel-op-één relatie mogen in dezelfde relatie voorkomen
Samenvatting Communicatievaardigheden I 7
- Veronderstel dat C D bepaalt in tabel S:
o C moet sleutel van S zijn
o Een attribuut mag aan S worden toegevoegd worden als het FA is van C
o Attribuut niet bepaald door C mag niet aan S toegevoegd worden
Veel-op-veel relaties tussen attributen
- Attributen met een veel-op-veel relatie mogen in dezelfde relatie voorkomen
- Veronderstel dat attributen E en F beide in relatie T voorkomen:
o Sleutel van T moet (E,F) zijn
o Een attribuut mag aan T worden toegevoegd worden als het door (E,F) wordt
bepaald
o Een attribuut mag niet aan T worden toegeoegd als het niet door (E,F) wordt bepaald
o Als door toevoeging van een nieuw attribuut, G, de sleutel wordt uitgebreid tot
(E,F,G), wordt het onderwerp van de relatie gewijzigd:
Ofwel behoort G niet tot T ofwel moet de naam van T worden gewijzigd aan
het nieuwe ontwerp
Gedenormaliseerde ontwerpen - Een gedenormaliseerd ontwerp is beter als een genormaliseerd ontwerp onnatturlijk,
onhandig of niet-performant is.
Samenvatting Communicatievaardigheden I 8
Hoofdstuk 5: Entity-Relation-Diagram
Het datamodel - Een datamodel is een bouwplan, of een blauwdruk voor een database-ontwerp
- Een datamodel is algemener, abstracter dan het database-ontwerp
- Datamodel gemakkelijker te wijzigen dan een database-ontwerp
Drie Schema Model: - Framework dat een beschrijving weergeeft over de rol en het doel van
gegevensmodellering
- Externe schema of view: representative van hoe gebruikers de database zien
- Conceptueel schema:
o Logische weergave van de database, die een beschrijving bevat van alle gegevens en
relaties in de database
o Onafhankelijk van een specifieke manier voor het opslaan van gegevens
o Meestal zijn meerdere externe schema’s gebaseerd op één conceptueel schema
- Intern schema:
o Representatie van het conceptueel schema zoals fysisch opgeslagen voor een
bepaald product
o Een conceptueel schema kan gerepresenteerd worden door verschillende interne
schema’s
E-R Model - Entity-Relationship model is een verzameling ideeën en grafische symbolen die gebruikt
worden om een conceptueel schema aan te maken
- Vier versies:
o Origineel E-R model
o Uitgebreide E-R model: + kraaienpoten
o Information Engineering
o Unified Modeling Language
Attributen - Eigenschappen die de kenmerken van de entiteit beschrijven
- Alle instanties van eenzelfde entiteit klasse hebben dezelfde attributen
o Samengestelde attributen: bestaat uit een groep attributen
o Meerwaardige attributen: attributen met meer dan één mogelijke waarde
Identifiers - Identifiers: attributen die entiteit-instanties benoemen of identificeren
- De identifier van een entiteit-instantie bestaat uit één of meer attributen van de entiteit
- Samengestelde identifiers: identifiers die bestaan uit twee of meerdere attributen
- Identifiers in datamodel worden sleutels in database-ontwerp:
o Entiteiten hebben identifiers
o Tabellen of relaties hebben sleutels
Samenvatting Communicatievaardigheden I 9
Relaties - Entiteiten kunnen met elkaar in verband worden gebracht dmv relaties:
o Relatieklassen: relaties tussen entiteitklassen
o Relatie-instanties (relaties): relaties tussen entiteitsinstanties
- Bij een relatieklassen zijn twee of meerdere entiteitklassen betrokken
Graad van een relatie - Graad van een relatie is het aantal entiteitklassen betrokken bij de relatie:
o Relaties van graad 2 komen dikwijls voor en worden binaire relaties genoemd
o Relaties van graad 3 noemt men tertiaire relaties
Entiteiten en tabellen - Het principiële verschil tussen entiteit en tabel is dat je een relatie tussen entiteiten kunt
uitdrukken zonder foreign keys te gebruiken
- In eerste stadio gemakkelijker om met entiteiten te werken wanneer relaties nog in
ontwikkeling of veranderlijk zijn
Kardinaliteit - Kardinaliteit: ‘aantal’ en is een getal
- Maximumkardinaliteit: geeft het maximum aantal instanties die kunnen betrokken zijn in een
relatie:
o 1:1
o 1:N
o N:M
- Minimumkardinaliteit is het minimaal aantal van instanties die moeten deelnemen aan de
relatie
Parent en child entiteiten - In 1:N relatie:
o Parent: Entiteit aan de 1 zijde
o Child: Entiteit aan de N zijde
HEEFT-EEN relatie - Elk entiteitvoorkomen heeft een relatie met een andere entiteitvoorkomen:
o Een Werknemer heeft één of meerdere computers
o Een Computer heeft een toegewezen werknemer (één dus)
Minimumkardinaliteit - Is het minimum aantal entiteitvoorkomen die moeten deelnemen aan de relatie
- Het minimum zal over het algemeen 0 of 1 zijn:
o 0: deelname aan relatie is optioneel -> O
o 1: deelname is verplicht -> |
M-M Relatie (verplicht tot verplicht) Bv:
- Een WERKNEMER moet in het bezit zijn van één BADGE
Samenvatting Communicatievaardigheden I 10
- Een BADGE moet behoren to één WERKNEMER
O-O Relatie (optioneel tot optioneel) - Een WERKNEMER mag één of meerdere COMPUTERS hebben
- Een COMPUTER mag behoren tot één WERKNEMER
O-M Relatie (optioneel tot verplicht) - Een WERKNEMER mag één of meerdere VAARDIGHEDEN hebben
- Een VAARDIGHEID moet behoren tot één of meerdere WERKNEMERs
Recursieve Relatie - Zijn relaties tussen entiteiten van eenzelfde klasse
Zwakke Entiteiten - Zijn logisch afhankelijk van andere entiteiten
- Ze zijn voor hun bestaan in de db afhankelijk van een ander type entiteit (sterke entiteiten)
- ID-afhankelijke entiteit: de identifier van de ene entiteit bevat de identifier van de andere
entiteit
Subtype Entiteiten - Is een entiteit die een speciaal geval representeert van een andere entiteit, het supertype
genoemd
- Wordt ook een IS-EEN relatie genoemd
- Entiteiten mt een IS-EEN relatie moeten dezelfde identifier hebben
E-R varianten voor datamodellering Zie slides hoofdstuk 5 (33-43)
Samenvatting Communicatievaardigheden I 11
Hoofdstuk 6 : Ontwerp van een relationele databank - Relationele databank model bevat enkel genormaliseerde relaties
- Foreign keys
o Samenhang tussen gegevens
o Verwijzen naar primaire sleutels van relaties
- Relationele databank
o Uitvoeren normalisatiestappen
o Toepassing omzettingsregels ER-model
Regel 1: Gewone entiteiten - Gewone entiteit: relatie creëren
- Samengestelde attributen opsplitsen in enkelvoudige attributen
- Relatie bevat alle enkelvoudige attributen
- Eén van de attributen (of combinatie) wordt primaire sleutel:
o Indien nodig unieke identificatie toevoegen
- Voorbeeld:
o MEDEWERKERS(WerknemerNr, Naam, Adres)
o Tabel MEDEWERKERS met kolommen:
WerknemerNr
Naam
Straat
PostNummer
Gemeente
o Sleutel: WerknemerNr (UNIEK!)
Regel 2: 1-1 relaties - De sleutel van een relatie wordt als vreemde sleutel opgenomen in de andere relatie
- In welke relatie is onbelanrijk
- Oplossing zoeken waarbij NULL waarden worden vermeden!
- Voorbeeld: (1)
Samenvatting Communicatievaardigheden I 12
o Vreemde sleutel:
PlaatNummer bij WERKNEMER ?
WerknemerNR bij BEDRIJFSWAGEN?
- Voorbeeld: (2):
o WERKNEMERS(WerknemerNr, Naam, Straat, Gemeente)
o BEDRIJFWAGEN(PlaatNr, Merk, ) WerknemerNr
- OF:
o WERKNEMERS(WerknemerNr, Naam, Straat, Gemeente, ) PlaatNr
o BEDRIJFSWAGEN(PlaatNr, Merk)
Regel 3: 1-N relaties - De sleutel van de entiteit langs de 1-kant van de relatie wordt als vreemde sleutel
opgenomen in de entiteit langs de N-kant
- Voorbeeld:
o KLANTEN(KlantNr, Naam, Straat, PostNr, Gemeente)
o FACTUREN(Factuurnr, Factuurdatum, Factuurbedrag, ) Klantnr
Regel 4: ID-afhankelijke relaties - Een ID-afhankelijke relatie representeert men door de primary key van de parent relatie
toe te voegen aan de child relatie
- De nieuwe foreignkey attribuut wordt een deel van de childs samengestelde primary key
- Voorbeeld:
o GEBOUWEN(gebouwnr, gebouwnaam, straat, postcode, gemeente)
o APPARTEMENTEN(gebouwnr, appartementnr, grootte, aantalKamers)
Regel 5: N-M relaties - Voor elke binaire N-M relatie moet een nieuwe relatie gemaakt worden
- De primaire sleutel van de nieuwe relatie bestaat uit de primaire sleutels van de 2
entiteiten van de N-M relatie
- Voorbeeld:
o STUDENT-CURSUSSEN(Studennr, cursusnr)
o PuntenSTUDENT-CURSUSSEN(Studenr, cursusnr, )
Regel 6: Recursieve (unaire) N-M relaties - Voor een unair N-M verband wordt een nieuwe relatie aangemaakt
- De primaire sleutel is tweemaal de primaire sleutel van de entiteit naar waar wordt
verwezen
- Voorbeeld:
o PRODUCTEN(Productnr, Omschrijving)
o SAMENSTELLINGEN(Productnr1, Productnr2)
o ELKE KOLOM MOET EEN UNIEKE NAAM HEBBEN!
Regel 7: Unaire 1-N relaties - Voor een unaire 1-N relatie wordt een vreemde sleutel toegevoegd aan de relatie
- Deze vreemde sleutel duidt de rol aan binnen de relatie
- Voorbeeld:
Samenvatting Communicatievaardigheden I 13
o WERKNEMERS(Werknemernr, naam, adres, ) baas
Regel 8: Super- en subtypes: 1ste mogelijkheid - Voor elk subtype en supertype wordt een relatie gecreëerd
- Supertype bevat alle overkoepelende attributen
- Subtype bevat enkel de specifieke attributen voor het subtype
- Primaire sleutel van supertype wordt overgenomen in elk subtype
- Supertype kan worden aangevuld met een attribuut dat verwijst naar het subtype waartoe
de entiteit behoort
- -> nadeel: eigenschappen van een entiteitvoorkomen is verspreid over meerdere tabellen
- Voorbeeld:
o LEZERS(Lezersnr, privé-adres, ) categorie
o STUDENTEN(Lezersnr, kotadres)
o DOCENTEN(Lezersnr, bureel)
o EXTERNEN(Lezersnr, bedrijf-adres)
- Super- en subtypes: 1ste mogelijkheid:
o Supertype en subtypes in 1 tabel
o Nadeel: veel NULL-waarden voor specifieke kolommen
o Interessant als:
Subtypen niet veel specifieke eigenschappen hebben
Entiteitvoorkomen in meerdere subtypes kan voorkomen
Voorbeeld:
LEZERS(lezersnr, privé-adres, kotadres, bureel, bedrijfsadres)
Categorie?
Regel 9: Meerwaardige attributen - Steeds afzonderlijke relatie creëeren
- In nieuwe relatie komen alle attributen die deel uitmaken van de meerwaardige attributen
- In de primaire sleutel van de nieuwe relatie komt zeker de primaire sleutel van de
oorspronkelijke relatie
- Voorbeeld:
o Entiteit WERKNEMER
Attribuut Diploma = meerwaardig attribuut (aangezien een werknemer dus
meerdere diploma’s kan hebben)
o WERKNEMERS(Werknemernr, naam, straat, postnr, gemeente)
o DIPLOMAS(Werknemernr, Diploma)
Bepalen van primaire sleutel - DBMS: primaire sleutel om tabel te indexeren
- Primaire sleutel:
o Kort
o Bij voorkeur numeriek
o Wordt zelden gewijzigd
- Surrogaat sleutel: geen betekenis voor gebruiker
Samenvatting Communicatievaardigheden I 14
Bepalen van beperkingen - Def. Tabel: attribuut verplicht?
o JA: -> NOT NULL
o NEE: -> NULL
- Verbanden tussen tabellen door opnemen van vreemde sleutel in tabel
o Vreemde sleutel = primaire sleutel in andere tabel
o Zo niet: referentiële integriteit geschonden!
- Referentiële integriteit van databank bewaren bij alle mogelijke bewerkingen
Parent tabel:
Bewerking Activiteit
Toevoegen van een rij Toevoegen van een rij is geen probleem
Update van een primaire sleutel Update is niet toegestaan indien er child elementen zijn
Delete van een rij Delte is niet toegestaan indien er childelementen zijn. Uitzondering: multi-valued attributes
Child tabel:
Bewerking Activiteit
Toevoegen van een rij Toevoegen van een rij is niet toegestaan indien de primaire sleutel in de parent tabel niet bestaat
Update van een vreemde sleutel Update is niet toegestaan indien de nieuwe vreemde sleutel niet overeenkomt met een bestaande primaire sleutel
Delete van een rij Delete is altijd toegestaan