You are on page 1of 14

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 1

Controleren currency .Vastleggen regels .Lezen en bewerken databasegegevens .Opgeslagen procedures: modules opgeslagen in db .Security . 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 2 Samenvatting Communicatievaardigheden I . tabellen en ondersteunde structuren .- Maken en versturen queries Produceren van rapporten Uitvoeren van de toepassingslogica Besturen van de toepassing DBMS: .Indexes en andere structuren om prestatie te verbeteren .Triggers: programma dat uitgevoerd wordt als bepaalde gegevensactiviteit optreedt .Onderhouden databasestructuren .Creatie db.Metadata: gegevens over structuur db .Gebruikersgegevens .Backup en recovery Database Een database is een zichzelf beschrijvende verzameling van gerelateerde records (tabellen) Componenten: .Application metadata: gegevens die toepassingen – elementen zoals formulieren en rapporten beschrijven.

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. de andere sleutels worden kandidaatsleutels genoemd. 3 - Samenvatting Communicatievaardigheden I .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. Kandidaatsleutel: Een relatie heeft één primary key.

er alleen verwezen kan worden naar werkelijk bestaande gegevens.1NF: o Definitie: Een relatie is in 1NF indien al haar attributen atomisch zijn (= er zijn geen herhalende deelverzamelingen) 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.Voorafgaande activiteiten: o Opsplitsen van samengestelde gegevens in elementaire gegevens o Verwijderen van procesgegevens indien deze gegevens kunnen berekend worden adh van beschikbare informatie: . 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: . de waarde van een tweede (of verzameling) attribuut bepaalt Determinant: attribuut aan linkerzijde van de functionele afhankelijkheid (A->B): o OrderNummer -> KlantNummer o (OrderNummer. Functionele afhankelijkheid Functionele afhankelijkheid: wanneer de waarde van een (of verzameling) attribuut.

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. 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. 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 - 3NF: o o - 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.- o 2NF: o o Werkwijze: Kies de sleutel zodat er geen herhalende deelverzamelingen zijn Definitie: Een relatie is in 2NF. Samenvatting Communicatievaardigheden I 5 . indien ze in 1NF is en elk attribuut functioneel afhankelijk van de volledige sleutel.  Neem in iedere groep de attributen met het bijhorende sleuteldeel op  Verwijder deze attributen uit de oorspronkelijke groep Definitie: Een relatie is in 3NF als ze in 2NF is en geen transitieve afhankelijkheden kent 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.

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 . 4NF: o Opmerking: zijn er in stap 3 meer van dergelijke FA’s dan begin je met die welke de meeste kolommen heeft o Definitie: een tabel is in 4NF:  Als de tabel reeds in BCNF is EN  Als de tabel geen meerwaardige afhankelijkheid bevat 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 .Attributen met een veel-op-één relatie mogen in dezelfde relatie voorkomen Samenvatting Communicatievaardigheden I 6 .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.

Veronderstel dat attributen E en F beide in relatie T voorkomen: o Sleutel van T moet (E.F.- 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 . G. Samenvatting Communicatievaardigheden I 7 .F) wordt bepaald o Als door toevoeging van een nieuw attribuut.G). de sleutel wordt uitgebreid tot (E. onhandig of niet-performant is.Attributen met een veel-op-veel relatie mogen in dezelfde relatie voorkomen .F) wordt bepaald o Een attribuut mag niet aan T worden toegeoegd als het niet door (E. 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.F) zijn o Een attribuut mag aan T worden toegevoegd worden als het door (E.

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.Hoofdstuk 5: Entity-Relation-Diagram Het datamodel Een datamodel is een bouwplan. 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 8 .

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 9 Samenvatting Communicatievaardigheden I .

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 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.

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 11 . Naam.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.

cursusnr. appartementnr. gebouwnaam. Naam. Gemeente. Naam. Factuurbedrag. Punten) 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. 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. Straat. 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. 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: 12 Samenvatting Communicatievaardigheden I . gemeente) o APPARTEMENTEN(gebouwnr. Straat. Gemeente) o FACTUREN(Factuurnr. postcode. PlaatNr) o BEDRIJFSWAGEN(PlaatNr. PostNr. Factuurdatum. Merk) o 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. straat. Naam. cursusnr) o STUDENT-CURSUSSEN(Studenr. Gemeente) o BEDRIJFWAGEN(PlaatNr. WerknemerNr) OF: o WERKNEMERS(WerknemerNr. Straat.- - Vreemde sleutel:  PlaatNummer bij WERKNEMER ?  WerknemerNR bij BEDRIJFSWAGEN? Voorbeeld: (2): o WERKNEMERS(WerknemerNr. grootte. Merk. Omschrijving) o SAMENSTELLINGEN(Productnr1.

bedrijf-adres) Super. kotadres) o DOCENTEN(Lezersnr.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. naam. 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. kotadres. straat. bureel) o EXTERNEN(Lezersnr. 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 13 . postnr. adres. 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. categorie) o STUDENTEN(Lezersnr. gemeente) o DIPLOMAS(Werknemernr. privé-adres. naam.o WERKNEMERS(Werknemernr. bureel.

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 Toevoegen van een rij Update van een primaire sleutel Delete van een rij Activiteit Toevoegen van een rij is geen probleem Update is niet toegestaan indien er child elementen zijn Delte is niet toegestaan indien er childelementen zijn. Uitzondering: multi-valued attributes Child tabel: Bewerking Toevoegen van een rij Update van een vreemde sleutel Delete van een rij Activiteit Toevoegen van een rij is niet toegestaan indien de primaire sleutel in de parent tabel niet bestaat Update is niet toegestaan indien de nieuwe vreemde sleutel niet overeenkomt met een bestaande primaire sleutel Delete is altijd toegestaan Samenvatting Communicatievaardigheden I 14 .Bepalen van beperkingen Def.