Samenvatting Gegevensbanken I 2010

14
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

Transcript of Samenvatting Gegevensbanken I 2010

Page 1: 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

Page 2: Samenvatting Gegevensbanken I 2010

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

Page 3: Samenvatting Gegevensbanken I 2010

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.

Page 4: Samenvatting Gegevensbanken I 2010

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)

Page 5: Samenvatting Gegevensbanken I 2010

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.

Page 6: Samenvatting Gegevensbanken I 2010

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

Page 7: Samenvatting Gegevensbanken I 2010

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.

Page 8: Samenvatting Gegevensbanken I 2010

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

Page 9: Samenvatting Gegevensbanken I 2010

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

Page 10: Samenvatting Gegevensbanken I 2010

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)

Page 11: Samenvatting Gegevensbanken I 2010

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)

Page 12: Samenvatting Gegevensbanken I 2010

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:

Page 13: Samenvatting Gegevensbanken I 2010

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

Page 14: Samenvatting Gegevensbanken I 2010

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