Relationele databases: regels

Maat: px
Weergave met pagina beginnen:

Download "Relationele databases: regels"

Transcriptie

1 Leereenheid Relationele databases: regels Leereenheid Relationele databases: regels I N T R O D U C T I E De vorige leereenheid ging over goede en slechte relationele structuren. Een goede structuur heeft als kenmerken: geen herhalende groeen geen ongecontroleerde redundantie standaardisatie van gegevens wordt afgedwongen waar dat gewenst is elke soort ding in de bijbehorende werkelijkheid heeft zijn eigen tabel. In deze leereenheid gaan we het hebben over de regels die voor die structuren gelden: regels die dingen verbieden of verlichten: beerkingsregels regels die zorgen dat acties worden ondernomen of juist worden tegengehouden: gedragsregels. Beerkingsregels zijn voorloig het belangrijkst; er zijn verschillende tyen, die in deze leereenheid worden behandeld. Van de gedragsregels komt in deze leereenheid één belangrijk tye aan de orde. LEERDOELEN Na het bestuderen van deze leereenheid wordt verwacht dat u binnen een relationele structuur de volgende tyen beerkingsregel kunt interreteren: het verlicht zijn van een kolom, uniciteit van een kolom of kolomcombinatie, rimaire sleutel, alternatieve sleutel, kandidaatsleutel, verwijssleutel en referentiële-integriteitsregel weet hoe deze regels worden genoteerd in een strokendiagram inziet hoe uniciteitsregels zinvol kunnen worden gecombineerd voorbeelden kunt geven van structuren met recursieve verwijzingen voorbeelden kunt geven van structuren met niet-sleutelverwijzingen verwijzingen tussen tabellen kunt uitdrukken in termen van multiliciteit en deze kunt noteren in een multiliciteitendiagram voorbeelden kunt noemen van bijzondere beerkingsregels kunt aangeven waarom een tabel soms een kunstmatige rimaire sleutel krijgt kunt aangeven waarom er gedragsregels moeten bestaan van het tye refererende-actieregel het effect van elk tye refererende-actieregel kunt omschrijven en illustreren aan een voorbeeld voorbeelden kunt noemen van bijzondere gedragsregels via een voorbeeld kunt illustreren wat de betekenis en het belang is van het begri transactie het belang onderkent van strakke teken- en naamgevingsconventies. De studielast van deze leereenheid bedraagt 6 uur. 89

2 Oen Universiteit L E E R K E R N Voorbeelddatabases In de aragrafen. en. gaan we uit van de Toetjesboek-database van leereenheid. In de loo van de leereenheid wordt deze o enkele details aangeast. In figuur. herhalen we de voorbeeldoulatie. Eenheid naam liter stuks deciliter gram kilogram eetleel theeleel Gerecht naam energiepp bereidingstijd bereidingswijze Coue Kiwano Glace Terrace Mango Plus Plus Schil... Neem... Snijd... Product naam eenheid energiepe ijs kiwano slagroom suiker tequila aardbeien ernod eer mango zure room banaan liter stuks deciliter gram eetleel gram eetleel stuks deciliter stuks Ingredient gerecht roduct hoeveelheidpp Coue Kiwano Coue Kiwano Coue Kiwano Coue Kiwano Coue Kiwano Glace Terrace Glace Terrace Glace Terrace Glace Terrace Mango Plus Plus Mango Plus Plus Mango Plus Plus ijs kiwano slagroom suiker tequila ijs aardbeien ernod eer mango aardbeien zure room FIGUUR. Voorbeeldoulatie Toetjesboek Beerkingsregels Referentiëleintegriteitsregel De tabellen zijn onderling verbonden via verwijzingen o basis van gelijke waarden. De belangrijkste beerkingsregel heeft betrekking o die verwijzingen. Het is de regel die loze verwijzingen (verwijzingen naar niks) verbiedt. Bijvoorbeeld: een maateenheid scheutje bij een roduct, terwijl die niet in de gestandaardiseerde Eenheid-tabel voorkomt. Deze beerkingsregel heet de referentiële-integriteitsregel. Het is een belangrijke regel, omdat verwijzingen als het ware het cement van de database vormen. Zonder deze verwijzingen zou de database uiteenvallen in losse tabellen die niet gecombineerd kunnen worden. Verdero wordt de referentiële-integriteitsregel uitgebreid behandeld. Maar er zijn meer soorten beerkingsregels; daar gaan we het eerst over hebben. 90

3 Leereenheid Relationele databases: regels. OPTIONELE EN VERPLICHTE KOLOMMEN Verlichtewaarderegel Elk gerecht moet een naam hebben. Dat is immers dé manier om een gerecht aan te duiden. We zeggen: voor de kolom Gerecht.naam geldt een verlichte-waarderegel. Kortweg, hij is verlicht. Vanzelfsrekend zijn ook Product.naam en Eenheid.naam verlicht. Ook de kolommen Ingredient.gerecht en Ingredient.roduct zijn verlicht. Laten we immers één van die twee in een rij oningevuld, dan is het onmogelijk betekenis te hechten aan de wel ingevulde gegevens in die rij. Voor alle andere kolommen geldt dat het weglaten van een waarde géén roblemen geeft met de interretatie van de overblijvende gegevens in de rij. Voor die kolommen moet beslist worden of het verlichte kolommen moeten worden of niet. Dat is een ontwerkeuze. Otionele kolom null Een niet-verlichte kolom heet otioneel. Een otionele kolom mag lege cellen bevatten. De inhoud van een lege cel heet een null. Dat lijkt wat vreemd en dat is het ook: hoe kan niks een naam hebben? Eigenlijk is null niet meer dan een indicator, die aangeeft dat de cel leeg is. Null s zullen ons in deze cursus nog een hoo hoofdbrekens kosten. Alleen de kolommen die absoluut moeten worden ingevuld, worden verlicht gemaakt. Zo n kolom is bereidingswijze. Want wat moeten we met een gerecht zonder bereidingswijze? In de Toetjesboek-database zijn de meeste kolommen verlicht, alleen de volgende zijn otioneel: Gerecht.energiePP; deze kolom is otioneel in verband met ingrediënten met onbekende hoeveelheid, maar tevens vanwege het éérst invoeren van ingrediënten en het as daarna (automatisch) berekenen van energiepp Ingredient.hoeveelheidPP: een ingrediënt in een gerecht mag een onbeaalde hoeveelheid er ersoon hebben Product.eenheid: niet elk ingrediënt heeft een vaste maateenheid Product.energiePE: een roduct zonder maateenheid (zie vorige unt) kent ook geen energie er maateenheid. De voorbeeldoulatie illustreert dit: in Glace Terrace zit wel eer, maar een hoeveelheid is niet gegeven. Dat zal dan wel naar smaak zijn. En van eer is geen eenheidnaam vermeld en evenmin een energie er eenheid. In een strokenschema geven we een otionele kolom aan met o. De kolommen zonder o zijn dus verlicht, zie figuur.. De gebruiker moet ervoor zorgen dat die kolommen in elke rij een waarde bevatten. Doet de gebruiker dit niet, dan zal het databasemanagementsysteem (rdbms) via de alicatie (het Toetjesboek-rogramma) een foutmelding geven. 9

4 Oen Universiteit naam Gerecht /energiepp bereidingstijd bereidingswijze Eenheid naam Product naam eenheid energiepe Ingredient gerecht roduct hoeveelheidpp FIGUUR. Strokendiagram voor Toetjesboek (versie : otionele kolommen). UNICITEIT Uniciteitsregel Behalve dat de kolom naam in de tabel Gerecht verlicht is, moeten de waarden in die kolom ook uniek zijn: verschillende gerechten moeten verschillende namen hebben. Dit is vanzelfsrekend, maar de noodzaak wordt nog eens onderstreet door het feit dat de gerechtnamen in andere tabellen worden gebruikt om naar steeds één gerecht te verwijzen. Ook voor Product.naam geldt zo n uniciteitsregel: verschillende roducten hebben verschillende namen. Evenzo geldt in Eenheid een uniciteitsregel voor de naamkolom. Ook in de tabel Ingredient geldt een uniciteitsregel, echter niet voor één losse kolom; niet voor gerecht, omdat één gerecht meerdere roducten kan bevatten; niet voor roduct, omdat één ingrediënt in meerdere gerechten kan voorkomen; niet voor hoeveelheid, omdat bij meerdere gerecht-roduct-combinaties natuurlijk best dezelfde hoeveelheid kan horen. Wel uniek zijn de combinaties (gerecht, roduct) in Ingredient. Zo n combinatie beaalt immers recies één rij in deze tabel, ofwel één ingrediëntregel. Smalle en brede uniciteitsregel Uniciteitsregels over één kolom heten smalle uniciteitsregels. Die over twee of meer kolommen heten brede uniciteitsregels. In een tabelschema geven we uniciteitsregels aan door middel van tweeuntige ijlen, zie figuur.. Het eisen van uniciteit voor één kolom (een smalle ijl) is strenger dan het eisen van uniciteit voor een combinatie van diezelfde kolom en nog één of meer andere kolommen (een brede ijl). Bijvoorbeeld, uit de uniciteitsregel voor Gerecht.naam volgt als afgeleide regel dat ook de waardencombinaties in de kolomcombinatie (naam, energiepp) verschillend zijn. Dit is echter een zwakkere regel, want het omgekeerde geldt niet. 9

5 Leereenheid Relationele databases: regels naam Gerecht /energiepp bereidingstijd bereidingswijze Eenheid naam Product naam eenheid energiepe gerecht Ingredient roduct hoeveelheidpp FIGUUR. Strokendiagram voor Toetjesboek (versie : uniciteitsregels) Conventie Algemeen wordt als conventie aangehouden dat alleen de meest strenge uniciteitsregels als zodanig worden benoemd en als uniciteitsijl worden getekend. In een Toetjesboek-strokendiagram zal daarom wel een uniciteitsijl voor Gerecht.naam worden getekend maar geen brede ijl bij de combinatie (naam, energiepp), ook al is die combinatie uniek (zie figuur.4). Tekenen we ergens toch een brede ijl, zoals bij Ingredient, dan zullen we hiermee (vanwege genoemde conventie) in het algemeen aanduiden dat geen uniciteitsregel geldt voor de afzonderlijke kolommen of voor smallere kolomcombinaties. Gerecht naam /energiepp bereidingstijd bereidingswijze FIGUUR.4 Uniciteitsregels: alleen minimale unieke combinaties. ILLUSTRATIEVE POPULATIES Illustratieve oulatie Een illustratieve oulatie bij een beaalde regel is een oulatie die zo goed mogelijk illustreert wat wel en wat niet mag met betrekking tot die regel. Als voorbeeld nemen we een uniciteitsregel over twee kolommen. Een illustratieve oulatie hierbij zal twee dingen illustreren: de uniciteit van de waardencombinaties voor die twee kolommen het feit dat voor de afzonderlijke kolommen geen uniciteit geldt. Zie figuur.5 voor een minimaal gekozen illustratieve oulatie bij de brede uniciteitsregel voor Ingredient. Ingredient gerecht roduct hoeveelheidpp Coue Kiwano Coue Kiwano Glace Terrace ijs kiwano ijs FIGUUR.5 Minimale illustratieve oulatie voor brede uniciteitsregel 9

6 Oen Universiteit Illustratieve oulaties selen vaak een verhelderende illustratieve rol bij het vaststellen van de juiste regels. Vooral bij uniciteitsregels..4 IDENTIFICATIE EN VERWIJZING Unieke identificatie van een rij Verwijzing Een kolom of een kolomcombinatie die verlicht is en bovendien uniek, is geschikt om te gebruiken als unieke identificatie van een rij. Immers, in elke rij is dan de kolomwaarde (of de combinatie) ingevuld en alle waarden (of combinaties) zijn verschillend. Zodoende kunnen we de drie kolommen met een smalle uniciteitsijl in figuur. gebruiken om de rijen in resectievelijk Gerecht, Product en Eenheid uniek te identificeren. Die kolommen zijn immers ook verlicht. Evenzo is de kolomcombinatie (gerecht, roduct) in Ingredient geschikt om de rijen in Ingredient uniek te identificeren. In de voorbeeldoulatie ziet u hoe een kolomwaarde van Product.naam, bijvoorbeeld ijs, in een andere tabel (Ingredient) wordt gebruikt om een verwijzing te realiseren juiste rij in Product. De waarden in Ingredient.roduct zijn als het ware sleuteltjes die o een slotje assen. De waarden in Product.naam zijn de slotjes. Deze zijn allemaal verschillend; van een sleuteltje kunnen meerdere exemlaren bestaan. Zie figuur.6, waarin dit voor twee slotjes (de waarden ijs en kiwano in Product.naam) is geïllustreerd. Product naam eenheid energiepe ijs kiwano slagroom suiker tequila aardbeien ernod eer mango zure room banaan liter stuks deciliter gram eetleel gram eetleel stuks deciliter stuks Ingredient gerecht roduct hoeveelheidpp Coue Kiwano Coue Kiwano Coue Kiwano Coue Kiwano Coue Kiwano Glace Terrace Glace Terrace Glace Terrace Glace Terrace Mango Plus Plus Mango Plus Plus Mango Plus Plus ijs kiwano slagroom suiker tequila ijs aardbeien ernod eer mango aardbeien zure room enz FIGUUR.6 Sleuteltjes (verwijssleutelwaarden) die o unieke slotjes (rimaire-sleutelwaarden) assen 94

7 Leereenheid Relationele databases: regels Logisch adres Fysiek adres In het algemeen geldt: in een relationele database kan een kolom of kolomcombinatie die uniek identificerend is (dus met slotjes ), worden gebruikt om vanuit een andere tabel verwijzingen te realiseren (via sleuteltjes ). Zo n waarde of waardencombinatie fungeert dan als een soort adres van een rij. We sreken van logische adressen van de rijen, ter onderscheiding van de fysieke geheugenadressen..5 PRIMAIRE SLEUTELS EN VERWIJSSLEUTELS Een kolom of kolomcombinatie met slotjes heet een rimaire sleutel. Een corresondende kolom of kolomcombinatie met sleuteltjes heet een verwijssleutel. We formuleren dat iets reciezer. Primaire sleutel Een rimaire sleutel van een tabel is een kolom of kolomcombinatie waarvoor geldt: hij is verlicht hij is uniek in het geval van een kolomcombinatie: deze is zo zuinig mogelijk gekozen 4 de kolomwaarden (of -waardencombinaties) zijn aangewezen als logische rij-adressen voor verwijzingen. Ter illustratie van de zuinigheidseis (): de combinatie (naam, bereidingstijd) in Gerecht voldoet aan en, maar niet aan. Dit geldt ook voor de combinatie (naam, energiepp), ook al is energiepp niet verlicht. De zuinigheidseis houdt direct verband met het zo smal mogelijk tekenen van uniciteitsijlen (zie figuur.4). Verwijssleutel Een verwijssleutel is een kolom of kolomcombinatie waarvan de waarden (of waardencombinaties) naar rijen in een andere tabel verwijzen, via de rimaire sleutel daarvan. Een rimaire sleutel is ondanks de naam het slotje. Verwijssleutels zijn de sleuteltjes die o zo n slotje moeten assen. Primaire sleutels geven we aan met een bij de uniciteitsijl. Een verwijzing tekenen we in een strokendiagram als een verticale ijl, loend van de verwijssleutel naar de rimaire sleutel, zie figuur.7. naam Gerecht /energiepp bereidingstijd bereidingswijze Eenheid naam Product naam eenheid energiepe gerecht Ingredient roduct hoeveelheidpp FIGUUR.7 Strokendiagram voor Toetjesboek (versie 4: rimaire sleutels) 95

8 Oen Universiteit Omerkingen Ook de tabel Ingredient heeft een rimaire sleutel, ook al wordt daar niet naar verwezen. Het is echter denkbaar dat de database in de toekomst wordt uitgebreid met een tabel die er wel verwijzingen naar heeft. Dat zal dan met een brede verwijssleutel moeten; het sleuteltje moet immers o het slotje assen. De rimaire sleutel van Ingredient bestaat uit twee afzonderlijke verwijssleutels, één naar Gerecht en één naar Product. Hiermee wordt recies uitgedrukt dat een rij in Ingredient één gerecht koelt aan één roduct. Een brede rimaire sleutel mag, vanuit concetueel standunt bezien, best een null bevatten, als hij maar niet alleen null s bevat. Vrijwel elk rdbms eist echter dat rimaire-sleutelkolommen geen null s bevatten (verlichte kolommen). Een verwijssleutel mag best otioneel zijn en is in dit ozicht vergelijkbaar met een gewone kolomwaarde. Zie echter het vorige unt voor verwijssleutels die deel uitmaken van een brede rimaire sleutel..6 KANDIDAATSLEUTELS EN ALTERNATIEVE SLEUTELS De term rimaire sleutel suggereert dat er ook zoiets mogelijk is als een niet-rimaire sleutel. Dit is inderdaad juist. Met het gegeven voorbeeld is dat echter niet te illustreren, omdat elke tabel maar één kolom of kolomcombinatie heeft die aan de eisen, en voldoet. Bij gebrek aan andere kandidaten worden deze dus vanzelf aangewezen om vanuit andere tabellen naar te verwijzen (eis 4). Kandidaatsleutel Alternatieve sleutel In aragraaf.0 wordt de databasestructuur gewijzigd, zodanig dat de tabellen Gerecht en Product beide twee kandidaat-rimaire-sleutels (eisen, en ) krijgen. Zo n kandidaat-rimaire-sleutel heet kortweg kandidaatsleutel. De gekozen kandidaten (één er tabel) worden dan rimaire sleutel (eis 4); de afgevallen kandidaten (alleen eisen, en ) heten alternatieve sleutel. Elke tabel heeft minstens één kandidaatsleutel. Immers, de combinatie van alle kolommen is verlicht (er zijn geen lege rijen mogelijk) én uniek (omdat een tabel als relatie een verzameling is). Door nu zoveel mogelijk kolommen weg te laten, zodanig dat de eisen en nog steeds gelden, ontstaat een zo zuinig mogelijk gekozen combinatie. Sleutels en herhalende groeen In de meeste boeken over relationele databases worden herhalende groeen zo snel mogelijk in de ban gedaan, waarna de relationele theorie, waaronder die over uniciteitsregels en sleutels, volledig wordt ontvouwd voor genormaliseerde structuren, dus zonder herhalende groeen. Echt nodig is dat niet en vaak betekent het zelfs een gemiste kans om iets goed uit te leggen. Wij hebben ons deze beerking dan ook niet ogelegd, en zullen daarvan regelmatig rofijt hebben. In dit boek komt u dan ook regelmatig uniciteitsregels en sleutels tegen in tabellen mét een herhalende groe. Naamgeving sleutelkolommen We houden er in dit boek vrij strakke naamgevingsconventies o na. Dat schet eenheid en duidelijkheid en leidt ook tot strakke SQL-code. 96

9 Leereenheid Relationele databases: regels De kolomnaam van een smalle rimaire sleutel luidt meestal nr, code of naam. Een verwijssleutelkolom heeft meestal dezelfde naam als de corresonderende tabel, maar dan met een kleine letter. Deze conventie voor verwijssleutels kan een misverstand oleveren: dat de verwijzing vanzelf ontstaat door de naamgeving. Dat is niet het geval! We moeten daar aart SQL-code voor schrijven, zoals we zullen zien wanneer we SQL/DDL behandelen..7 REFERENTIËLE INTEGRITEITSREGEL Elke waarde in Product.eenheid wordt geacht te verwijzen naar recies één rij in Eenheid, via de rimaire sleutel van die tabel (dat is de enige kolom, in dit geval). Dan moet die waarde daar wel voorkomen natuurlijk. Bevat Product.eenheid ergens theeleel en komt dit niet voor in Eenheid.naam, dan hebben we een robleem: een verwijzing naar niks. Dan wordt er als het ware gemeten in de niet-bestaande eenheid theeleel. De referentiële-integriteitsregel verbiedt dergelijke loze verwijzingen. Referentiëleintegriteitsregel Referentiële-integriteitsregel De referentiële-integriteitsregel luidt: elke waarde van een verwijssleutel moet voorkomen als waarde van de bijbehorende rimaire sleutel (referentie = verwijzing; integriteit = het voldoen aan beerkingsregels). Informeel zegt de regel: als we ergens een sleuteltje hebben liggen, moet er (aan de andere kant van de verwijsijl) een slotje zijn waar dat sleuteltje o ast. Naar een brede rimaire sleutel kan alleen worden verwezen met een brede verwijssleutel: als het slotje breed is, moet ook het sleuteltje breed zijn. Ouder Kind De rollen die twee tabellen hebben ten ozichte van een verwijzing, worden vaak aangeduid met de termen ouder en kind (Engels: arent en child). De tabel met de verwijssleutel heet het kind; de tabel waarheen verwezen wordt, heet de ouder, zie figuur.8. Eenheid naam Product naam eenheid energiepe oudertabel kindtabel FIGUUR.8 Ouder-kind-combinatie (ten ozichte van verwijzing) Merk o dat bij een rij van de kindtabel ofwel geen enkele rij ofwel recies één rij van de oudertabel hoort. De mogelijkheid geen enkele rij kan zich alleen voordoen wanneer de verwijzing otioneel is, zoals in figuur.8. Bij een verwijzing vanuit een verlichte kolom is er altijd recies één ouderrij bij elke kindrij. Omgekeerd: bij één rij van de oudertabel kunnen nul, één of meer rijen van de kindtabel horen. Dit kan er rij verschillen. 97

10 Oen Universiteit Tekenconventie In deze cursus houden we ons aan de volgende tekenconventie: in structuurdiagrammen wordt de ouder indien mogelijk hoger dan het kind getekend (zie ogave.4 voor een uitzonderingssituatie). Associatie Een ouder-kindrelatie wordt ook wel associatie genoemd. We refereren de term associatie boven relatie omdat, zoals we hebben gezien, de term relatie in de relationele theorie al een andere betekenis heeft, namelijk die van tabel (in wiskundige zin). Verwijssleutels vormen het cement van de database. Het bewaken van de referentiële-integriteitsregel is daarom een fundamentele taak van het rdbms, die o vele momenten actueel is. Uitgaande van twee tabellen met een ouder-kind-associatie moet het rdbms in de volgende gevallen zorg dragen voor een juiste corresondentie tussen de verwijssleutel (in de kindtabel) en de rimaire sleutel (in de oudertabel): bij een oging een rij in de kindtabel toe te voegen: Gecontroleerd moet worden of de verwijssleutelwaarde voorkomt als rimaire-sleutelwaarde in de oudertabel. bij een oging een verwijssleutelwaarde in de kindtabel te wijzigen: Gecontroleerd moet worden of de nieuwe verwijssleutelwaarde bestaat als rimairesleutelwaarde in de oudertabel. bij een oging een rimairesleutelwaarde in de oudertabel te wijzigen: Moeten de corresonderende verwijssleutelwaarden dezelfde wijziging ondergaan, zodat de corresondentie in stand blijft? bij een oging tot verwijderen van een ouderrij: Moet dit worden toegestaan? En zo ja: wat moet met de kindrijen gebeuren, zodat deze niet als weeskind (met naar niets verwijzende sleutelwaarden) achterblijven? Let o het woord oging : soms zal de actie geen doorgang kunnen vinden, omdat de vereiste corresondentie niet gehandhaafd of tot stand gebracht kan worden. Met name de laatste twee kwesties zijn nadere studie waard, omdat het antwoord niet eenduidig is. In aragraaf, die gewijd is aan gedragsregels, zullen we hier nader o ingaan..8 MULTIPLICITEITSREGELS Bij een verwijzing is het meestal belangrijk vast te leggen hoeveel rijen van de oudertabel bij één rij van de kindtabel kunnen horen. En omgekeerd, hoeveel rijen van de kindtabel bij één rij van de oudertabel kunnen horen. Zo geldt voor de verwijzing van Product naar Eenheid: bij één Product-rij horen nul of eeneenheid-rijen bij één Eenheid-rij horen nul of meer Product-rijen. 98

11 Leereenheid Relationele databases: regels Multiliciteitsregel Kardinaliteitsregel Hierbij betekent nul of meer : willekeurig veel. Dit tye aantallenregels worden multiliciteitsregels genoemd, of ook wel kardinaliteitsregels, naar de wiskundige term kardinaliteit voor het aantal elementen van een verzameling. De multiliciteitsregels bij de andere verwijzingen zijn als volgt: bij één Ingredient-rij hoort recies één Product-rij bij één Product-rij horen dus nul of meer Ingredient-rijen en: bij één Ingredient-rij hoort recies één Gerecht-rij bij één Gerecht-rij horen één of meer Ingredient-rijen. Multiliciteitendiagram Al deze regels worden geïllustreerd in de voorbeeldoulatie. In figuur.9 worden ze grafisch weergegeven, in een zogenaamd multiliciteitendiagram. Merk o dat we de multiliciteiten steeds moeten aflezen aan de andere kant van het lijntje, lezend van de ene tabel naar de andere. Eenheid Gerecht Product bij één roduct horen 0 of eenheden bij één eenheid horen 0 of meer roducten Ingredient 0 of recies 0 of meer of meer FIGUUR.9 Multiliciteitendiagram van Reijnders Toetjesboek Merk o dat we gerechten met nul ingrediënten toestaan. Dit is een ontwerkeuze waar heel wat over te zeggen is. In de volgende aragraaf gaan we daar nader o in. Een multiliciteitendiagram geeft de structuur van een database overzichtelijk weer, zonder details van de kolommen. Merk o dat elke verwijzing een -kant (0-of-) en een veel-kant (0-of-meer, dan wel -ofmeer) heeft. De -kant staat aan de kant van de oudertabel; de veel-kant aan de kant van de kindtabel. Dit komt overeen met de ijlnotatie in een strokendiagram: de ijl loot van veel naar. Zie ook figuur.0. Eenheid naam Product naam eenheid energiepe Eenheid Product FIGUUR.0 Een verwijzing en multiliciteitsregels 99

12 Oen Universiteit.9 EEN KIP-EI -PROBLEEM Stel, we gaan in het databaseontwer uit van de regel dat een gerecht minstens één ingrediënt moet hebben. Zo gek is dat niet, immers wat heb je aan een gerecht zonder ingrediënten? In het multiliciteitendiagram krijgen we dan aan de meer -kant een één-of-meer regel. In het strokendiagram moeten we een extra regel moeten toevoegen. Omdat daar geen grafische notatie voor bestaat, doen we dat in tekst. Zie figuur.. Gerecht naam /energiepp bereidingstijd bereidingswijze Gerecht Ingredient gerecht roduct hoeveelheidpp Ingredient extra regel: elk gerecht heeft minstens één ingrediënt FIGUUR. Ki-ei -robleem De -of-meer-multiliciteitsregel ( kraaieootje met streeje ), in combinatie met een recies- regel (dubbel streeje) aan de andere kant, is roblematisch. Er is hier een soort ki-ei -robleem. Want voegen we als eerste een Gerecht-rij toe, dan overtreden we de -of-meer-regel. Maar beginnen we met een Ingredient-rij, dan is niet voldaan aan de recies-- regel. En stel dat het ons toch is gelukt: met verwijderen hebben we net zo n robleem. Want de ki (een Gerecht-rij) kunnen we niet verwijderen zolang deze nog een ei (Ingredient-rij) bezit, maar hoe beroven we de ki van haar laatste ei? Een beerking van de meest gangbare SQL-dialecten zet dit hele robleem nog in een ander licht: het blijkt daarin namelijk onmogelijk de - of-meer-regel te imlementeren. Anders gezegd: het blijkt niet zonder meer mogelijk af te dwingen dat een ouderrij minstens één kindrij heeft. Eén-veel-regel imlementeren in alicatie Al met al betekent dit dat we in de databaseraktijk altijd 0-of meermultiliciteiten hebben en daarmee het ki-ei-robleem omzeilen. Voor wie er se een één-of-meer-regel wil imlementeren, bestaan wel mogelijkheden. Een olossing is de regel niet door het rdbms maar door de alicatierogrammatuur te laten bewaken. Zo kunnen we ons voorstellen dat de gebruiker het gerechtenscherm as kan sluiten wanneer het gerecht een ingrediënt bevat en een assende foutmelding krijgt wanneer hij dat robeert bij een gerecht zonder ingrediënt. In aragraaf. zal overigens blijken dat we het rdbms odracht kunnen geven om bij het verwijderen van een Gerecht-rij in één kla (als het ware tegelijkertijd) ook alle bijbehorende Ingredient-rijen te verwijderen: een zogenaamde cascading delete. OPGAVE. Ga in figuur.7 nog eens na welke sleuteltjeskolommen naar welke slotjeskolommen verwijzen. 00

13 Leereenheid Relationele databases: regels a Welke tabellen hebben geen verwijzing ( sleuteltje ) naar een andere tabel? b Welke tabel heeft twee verwijzingen naar andere tabellen? c Naar welke tabel wordt vanuit geen enkele andere tabel verwezen? OPGAVE. Welk van de multiliciteitendiagrammen a, b of c in figuur. is, voor wat betreft de multiliciteiten, equivalent met het strokendiagram in figuur d? a b c Rubriek Rubriek Rubriek Boek Boek Boek d code Rubriek omschrijving Boek boeknr titel rubriek FIGUUR. Welk multiliciteitendiagram ast bij het strokendiagram? OPGAVE. Dezelfde vraag als in ogave., nu met een verlichte kolom Boek.rubriek. OPGAVE.4 Een grootwinkelbedrijf heeft een aantal filialen. Werknemers kunnen werkzaam zijn bij niet meer dan één filiaal. Elk filiaal heeft onder normale omstandigheden één regiomanager, maar deze functie kan ook vacant zijn. Een regiomanager kan bij één van zijn of haar filialen werkzaam zijn (maar ook o het hoofdkantoor). De bedrijfsdatabase bevat onder meer de tabellen Werknemer en Filiaal. Figuur. geeft hiervan de structuurdiagrammen, met een kleine voorbeeldoulatie. Alleen enkele belangrijke kolommen zijn weergegeven. Ter onderscheiding zijn in het multiliciteitendiagram de associaties van een naam voorzien: een werknemer is werkzaam bij geen enkel of bij één filiaal, en een filiaal heeft maximaal één werknemer als regiomanager. Vraag: hoe zit het in deze structuur met de kwalificaties ouder en kind? 0

14 Oen Universiteit a Filiaal nr laats regiomanager Amsterdam Rotterdam Haarlem Dolstra de Boer Mier Bakker Cuido Werknemer nr naam filiaal b is werkzaam bij Filiaal Werknemer heeft als regiomanager FIGUUR. Tabellen met verwijzingen over en weer.0 BIJZONDERE BEPERKINGSREGELS Standaard beerkingsregels Bijzondere beerkingsregels De beerkingsregels die in de vorige aragrafen zijn behandeld, worden standaard beerkingsregels genoemd. We komen deze in elke relationele database tegen, omdat ze nauw samenhangen met de relationele structuur als zodanig. In een strokendiagram zijn dit soort regels in één oogoslag af te lezen, uit de horizontale en verticale ijlen en door het ontbreken van een o bij verlichte kolommen. De toetjesdatabase moet nog wel aan meer voorwaarden voldoen, secifieke toetjesregels, waarvoor geen grafische notatie bestaat. Dit soort regels zullen we soms in natuurlijke taal aan de diagrammen toevoegen. Voorbeelden van zulke bijzondere beerkingsregels zijn: in Ingredient mag hoeveelheidpp alleen oningevuld zijn als de energiewaarde van het roduct ook niet is ingevuld (zoals bij eer) of 0 is in Ingredient moet hoeveelheidpp oningevuld zijn als van het ingrediënt (in Product) geen eenheid gegeven is. De achtergrond van de eerste regel is dat het Toetjesboek automatisch de energiewaarde (energiepp) van een gerecht moet berekenen. Daarvoor moet de hoeveelheid van elk ingrediënt bekend zijn, behalve van ingrediënten die niets bijdragen aan die energiewaarde. De tweede regel geldt omdat een hoeveelheid geen betekenis heeft als er geen maateenheid is. Nog enkele voorbeelden van bijzondere beerkingsregels: een hoeveelheid is altijd groter dan 0 een energiewaarde is altijd groter dan 0 of gelijk aan 0.. HET BEWAKEN VAN BEPERKINGSREGELS De standaard beerkingsregels (verlichte kolommen, uniciteitsregels, rimaire sleutels, referentiële integriteit bij verwijssleutels) worden afgedwongen door ze o te nemen in de structuurdefinitie van tabellen. Deze structuurdefinitie wordt in de vorm van odrachten, geformuleerd in de gegevenstaal SQL, aan het rdbms meegedeeld. Hoe dit gaat, zien we in leereenheid 4 Communiceren met een relationele database. Ook enkele eenvoudige bijzondere beerkingsregels kunnen o deze wijze aan het rdbms kenbaar worden gemaakt, bijvoorbeeld de regels 0

15 Leereenheid Relationele databases: regels die een minimum- of maximumwaarde voor een kolom aangeven. Ingewikkelder beerkingsregels, en ook allerlei actief gedrag van de database (denk aan het automatisch berekenen van de energie er ersoon van een gerecht), moeten worden gerealiseerd door aanvullend rogrammeerwerk. Zie aragraaf.4 van leereenheid, over triggers.. KUNSTMATIGE SLEUTELS Kunstmatige sleutel Alternatieve sleutel De twee verwijssleutels Ingredient.gerecht en Ingredient.roduct bevatten vrij lange tekstvelden. Het kost het rdbms relatief veel tijd om daar de corresonderende rimaire sleutels in Gerecht resectievelijk Product bij te zoeken. Ook nemen ze nogal wat geheugenruimte in beslag. In laats van zulke lange tekstvelden worden daarom vaak numerieke codes gekozen als rimaire sleutel en verwijssleutel. In dit geval: kunstmatige gerechtnummers en roductnummers. Voor de eindgebruiker hebben deze kunstmatige sleutels geen betekenis; in de alicatie moeten ze daarom onzichtbaar blijven. En het is het rdbms zelf dat nieuwe gerechten en roducten zo n kunstmatig nummertje geeft, volautomatisch. Tenminste, wanneer bij de bouw van de database daarvoor de juiste voorzieningen zijn getroffen. Hoe dat gaat, zullen we later zien, in leereenheid. Zie figuur.4 voor een strokendiagram van Reijnders Toetjesboek met kunstmatige sleutels. Beide kolommen met kunstmatige nummers heten id. De oorsronkelijke rimaire sleutels, Gerecht.naam en Product.naam, hebben nu de status van alternatieve sleutel gekregen, zie aragraaf.4. a Gerecht id naam /energiepp bereidingstijd bereidingswijze Eenheid naam a Product id naam eenheid energiepe gerecht roduct Ingredient hoeveelheidpp FIGUUR.4 Strokendiagram met kunstmatige sleutels Figuur.5 geeft een voorbeeldoulatie. De kunstmatige verwijsnummers hoeven niet vanaf te loen en in de raktijk zullen ze vaak ook niet allemaal oeenvolgend zijn. Dat komt bijvoorbeeld doordat er ook wel eens gerechten en roducten verwijderd worden; hun nummertje wordt dan niet onieuw gebruikt. Maar het maakt allemaal niets uit: het zijn kunstmatige nummers, die altijd o de achtergrond blijven, onzichtbaar voor de gebruikers van Reijnders Toetjesboek. 0

16 Oen Universiteit Eenheid naam liter stuks deciliter gram kilogram eetleel theeleel Gerecht id naam energiepp bereidingstijd bereidingswijze Coue Kiwano Glace Terrace Mango Plus Plus Schil... Neem... Snijd... Product id naam eenheid energiepe ijs kiwano slagroom suiker tequila aardbeien ernod eer mango zure room banaan liter stuks deciliter gram eetleel gram eetleel stuks deciliter stuks Ingredient gerecht roduct hoeveelheidpp FIGUUR.5 Toetjesboek-database met kunstmatige sleutels Deze versie van het Toetjesboek is in de Boekverkenner beschikbaar onder de naam ToetjesboekKS ( met kunstmatige sleutels). Omdat ook in Nederlandse teksten vaak de Engelse benamingen van sleutels gebruikt worden, geven we tot slot van deze aragraaf de Engelse benamingen van de verschillende soorten sleutels en bovendien een veelgebruikt Nederlands synoniem voor verwijssleutel : Primary key Foreign key Vreemde sleutel Alternate key rimaire sleutel = rimary key verwijssleutel = foreign key = vreemde sleutel alternatieve sleutel = alternate key Gedragsregels Actie in reactie o gebeurtenissen Gedrag Via SQL of door aanvullend rogrammeerwerk kan worden gezorgd dat het rdbms acties onderneemt, in antwoord o beaalde gebeurtenissen (Engels: events). Zo n gebeurtenis kan zijn: een verandering van de database-inhoud of een oging daartoe. Ook het aanbreken van een beaald tijdsti kan een gebeurtenis zijn die het startsein is voor een actie van het rdbms. Processen die leiden tot veranderingen in de database, worden gedrag genoemd. 04

17 Leereenheid Relationele databases: regels Gedragsregel In deze aragraaf gaat het om voorgerogrammeerd gedrag in relatie met dreigende overtredingen van beerkingsregels. We sreken van gedragsregels. De belangrijkste zijn de refererende actieregels, die verband houden met het handhaven van referentiële integriteit bij het invoegen, verwijderen of wijzigen van een rij.. REFERERENDE ACTIEREGELS De referentiële integriteitsregel, die eist dat bij elke verwijssleutelwaarde (kind) een ouderrij bestaat, roet in twee gevallen roblemen o: bij het verwijderen van een ouderrij bij het wijzigen van de rimaire-sleutelwaarde in een ouderrij. Deleteregel Udateregel Refererende actieregel Restricted delete Cascading delete Nullifying delete In het eerste geval kunnen er verweesde kinderen achterblijven: rijen in de kindtabel met een loze verwijzing. In het tweede geval heeft een rij in de oudertabel zijn logisch adres (rimaire-sleutelwaarde) veranderd, terwijl eventuele kindrijen nog het oude adres (verwijssleutelwaarde) hebben. Om deze roblemen bij voorbaat o te lossen, wordt voor elke verwijzing een deleteregel en een udateregel gesecificeerd. Ze drukken uit of er iets mag gebeuren, en zo ja, wat er moet gebeuren bij een oging tot deleten van een rij of een oging tot udaten van een rimaire sleutel, beide in de oudertabel. De deleteregels en de udateregels heten samen de refererende actieregels. Deleteregels Er zijn drie deleteregels. Ze zeggen wat er moet gebeuren bij een oging tot deleten van een ouderrij. Voor elke verwijzing moet één van deze regels worden gesecificeerd. Restricted delete: een oging tot deleten van een ouderrij mislukt wanneer er één of meer corresonderende kindrijen bestaan. Cascading delete: bij een oging tot deleten van een ouderrij zal een oging tot deleten van alle corresonderende kindrijen worden ondernomen. Is er een (andere) regel die dat tegenhoudt, dan gaat het deleten niet door. Nullifying delete: bij een oging tot deleten van een ouderrij wordt geoogd verwijzingen in eventuele kindrijen o null te zetten. Is er een (andere) regel die dat tegenhoudt, dan gaat het deleten niet door. De restricted-deleteregel houdt een verbod o oudermoord in. Wat wel mag, is van onderaf beginnen: eerst de kinderen verwijderen en dan hun ouder. Van de drie deleteregels komt deze regel het meeste voor. Bij de meeste verwijzingen kunnen we dus niet zomaar een ouderrij verwijderen wanneer er nog één of meer rijen bestaan in de corresonderende kindtabel, zie figuur.6. Zoals al eerder ogemerkt, geldt deze regel automatisch wanneer géén van de andere is gesecificeerd. Hij is dan een direct gevolg van de referentiële-integriteitsregel, die altijd geldt. 05

18 Oen Universiteit Product naam eenheid energiepe ijs kiwano slagroom suiker tequila aardbeien ernod eer mango zure room banaan liter stuks deciliter gram eetleel gram eetleel stuks deciliter stuks oging tot delete van ouderrij... rd Ingredient gerecht roduct hoeveelheidpp Coue Kiwano Coue Kiwano Coue Kiwano Coue Kiwano Coue Kiwano Glace Terrace Glace Terrace Glace Terrace Glace Terrace Mango Plus Plus Mango Plus Plus Mango Plus Plus ijs kiwano slagroom suiker tequila ijs aardbeien ernod eer mango aardbeien zure room mislukt wanneer er nog één of meer corresonderende kindrijen bestaan. FIGUUR.6 Effect van restricted delete (rd) Wilt u het effect van een restricted delete omzeilen, dan zult u eerst welbewust de kindrijen van een ouderrij moeten verwijderen. Het roduct aardbeien kunt u dus as verwijderen, wanneer u eerst alle Ingredient-rijen met aardbeien erin hebt verwijderd. De cascading-deleteregel wordt doorgaans gesecificeerd voor verwijzingen zoals van Ingredient naar Gerecht. Een gebruiker die een Gerecht-rij wil verwijderen, zal ook de corresonderende Ingredient-rijen willen verwijderen, want zonder bijbehorend gerecht hebben deze geen bestaansreden. Zie figuur.7. Gerecht naam energiepp bereidingstijd bereidingswijze Coue Kiwano Glace Terrace Mango Plus Plus Schil... Neem... Snijd... oging tot delete van ouderrij... cd Ingredient gerecht roduct hoeveelheidpp Coue Kiwano Coue Kiwano Coue Kiwano Coue Kiwano Coue Kiwano Glace Terrace Glace Terrace Glace Terrace Glace Terrace Mango Plus Plus Mango Plus Plus Mango Plus Plus ijs kiwano slagroom suiker tequila ijs aardbeien ernod eer mango aardbeien zure room heeft oging tot delete van corresonderende kindrijen tot gevolg. Deze oging slaagt, in dit geval. FIGUUR.7 Effect van cascading delete (cd) 06

19 Leereenheid Relationele databases: regels Wanneer een te verwijderen kindrij zelf ouder is van een kleinkindrij, kan de verwijzing vanuit het kleinkind naar het kind de verwijdering alsnog tegenhouden, bijvoorbeeld wanneer daarvoor een restricted delete geldt! De nullifying-deleteregel komt in de raktijk weinig voor en wordt door veel rdbms en niet ondersteund. Udateregels Er zijn drie udateregels. Ze zeggen wat er moet gebeuren bij een oging om een rimaire-sleutelwaarde in een ouderrij te wijzigen. Voor elke verwijzing moet één van deze regels worden gesecificeerd. Restricted udate Cascading udate Nullifying udate Restricted udate: een oging tot udaten van de rimaire-sleutelwaarde in een ouderrij mislukt wanneer er één of meer corresonderende kindrijen bestaan. Cascading udate: bij een oging tot udate van een rimaire-sleutelwaarde in een ouderrij, wordt een oging tot udaten ondernomen van de verwijssleutelwaarden in alle corresonderende kindrijen. Is er een (andere) regel die dat tegenhoudt, dan gaat het udaten niet door. Nullifying udate: bij een oging tot udaten van een rimairesleutelwaarde in een ouderrij, wordt geoogd verwijzingen daarnaar in corresonderende kindrijen o null te zetten. Is er een (andere) regel die dat tegenhoudt, dan gaat het udaten niet door. Van de udateregels ligt de cascading udate het meest voor de hand: een verandering van een rimaire sleutelwaarde (bijvoorbeeld om een selfout te herstellen) zullen we vrijwel altijd willen laten doorwerken in de verwijzingen, om zodoende de corresondentie in stand te houden. Zie figuur.8. Het is zoiets als het doorgeven van een adreswijziging aan al je relaties; die wijzigen dan dit adres in hun eigen adresboekjes. Coue Reijnders Gerecht naam energiepp bereidingstijd bereidingswijze Coue Kiwano Glace Terrace Mango Plus Plus Schil... Neem... Snijd... oging tot udate van rimaire sleutel... Coue Kiwano Coue Kiwano Coue Kiwano Coue Kiwano Coue Kiwano Coue Reijnders Glace Terrace Coue Reijnders Glace Terrace Coue Reijnders Glace Terrace Coue Reijnders Glace Terrace Mango Plus Plus Mango Plus Plus Mango Plus Plus cu Ingredient gerecht roduct hoeveelheidpp ijs kiwano slagroom suiker tequila ijs aardbeien ernod eer mango aardbeien zure room heeft oging tot udate van verwijzende sleutelwaarden tot gevolg. Deze oging slaagt, in dit geval. FIGUUR.8 Effect van cascading udate (cu) Cascading udate: zoek-en-vervang Een rimaire-sleutelwaarde is het single oint of definition van een rijidentificatie. Alle verwijssleutelwaarden die naar die rij verwijzen, dienen er exact aan gelijk te zijn en te blijven. Dit wordt bereikt met de cascading udate, die functioneert als een soort zoek-en-vervang voor verwijssleutelwaarden bij 07

20 Oen Universiteit verandering van een rimaire-sleutelwaarde. Het ligt voor de hand om, gegeven een rimaire sleutel, ofwel voor alle verwijzingen ernaar een cascading udate te secificeren, ofwel voor geen enkele. Immers een halve zoek-en-vervang leidt tot een niet-consistente database. Aan de nullifying udate is in de raktijk weinig behoefte en door veel rdbms en wordt hij niet ondersteund. In figuur.9 is voor elke verwijssleutel één deleteregel (rd of cd) en één udateregel (steeds cu) gesecificeerd. Merk o dat voor de verwijzing van Ingredient naar Gerecht een cascading delete geldt, maar voor de overige verwijzingen een restricted delete. Dit betekent dat bij het verwijderen van een gerecht door de gebruiker de bijbehorende Ingredient-rijen automatisch meeverwijderd worden. Maar wanneer de gebruiker robeert een roduct te verwijderen, wordt dit tegengehouden zolang er nog gerechten zijn waarin dit roduct als ingrediënt voorkomt. Ook een Eenheid-rij kan niet zomaar verwijderd worden; dat kan alleen wanneer geen enkel roduct meer in die eenheid wordt gemeten. naam Gerecht /energiepp bereidingstijd bereidingswijze Eenheid naam cd, cu rd, cu Product naam eenheid energiepe gerecht rd, cu Ingredient roduct hoeveelheidpp volgnr FIGUUR.9 Strokendiagram met deleteregels en udateregels De delete- en udateregels worden gesecificeerd voor elke verwijssleutel afzonderlijk. In strokendiagrammen houden we de restricted delete en de cascading udate als default aan, omdat die het meeste voorkomen. Voor figuur.9 betekent dit alle regels behalve de cascading udate (cd) mogen worden weggelaten. In SQL moeten we de cascading udate wel secificeren, omdat daar de beide restricted varianten default zijn.. BIJZONDERE GEDRAGSREGELS De refererende acties moeten bij elke verwijzing worden gesecificeerd, en zijn daarom een tye regel dat in elke database voorkomt: het zijn standaard gedragsregels. Maar er zijn meestal ook gedragsregels die secifiek zijn voor de database. Deze noemen we bijzondere gedragsregels. Een voorbeeld van een bijzondere gedragsregel voor Reijnders Toetjesboek is de volgende. 08

21 Leereenheid Relationele databases: regels De energie er ersoon van een gerecht is afleidbaar uit de energie er eenheid van de roducten en de hoeveelheden er ersoon van de ingrediënten in het gerecht. Berekeningsvoorschrift: alle bij het gerecht horende hoeveelheden er ersoon vermenigvuldigen met de bijbehorende energiewaarden er eenheid en deze roducten otellen. Deze regel moet automatisch in werking treden nadat een nieuw gerecht met alle ingrediëntinformatie is ingevoerd en de gebruiker heeft aangegeven dat de informatie correct is ingevoerd en definitief mag worden vastgelegd. Maar ook moet de regel automatisch in werking treden wanneer er later nog een ingrediënt wordt toegevoegd of wordt verwijderd. En ook wanneer een van de gegevens uit het berekeningsvoorschrift wordt gewijzigd.. TRANSACTIES Een ovraging verandert niets aan de inhoud van een database. De volgende elementaire acties doen dat wel: invoeren van een nieuwe rij verwijderen van een rij wijzigen van een celinhoud binnen een rij. Vaak staan deze niet o zichzelf en moeten meerdere acties worden gebundeld om een zinvol resultaat te krijgen. We hebben hier al enkele voorbeelden van gezien. VOORBEELD. VOORBEELD. VOORBEELD. Om een nieuwe Gerecht-rij in te voeren, moeten we ook één of meer Ingredient-rijen invoeren. Wanneer zo n Ingredient-rij een nieuw roduct bevat, moet ook een nieuwe Product-rij worden ingevoerd. Wanneer de energie er eenheid van een roduct wordt gewijzigd, moet ook (automatisch) de energie er ersoon van de gerechten waarin dat roduct voorkomt, worden gewijzigd. Wanneer we een Gerecht-rij verwijderen, zijn we verlicht om behalve de Gerecht-rij zelf ook de bijbehorende Ingredient-rijen te verwijderen. Anders blijven we immers zitten met Ingredient-rijen die naar niks verwijzen, in strijd met de regel voor verwijssleutels. Dit wordt gerealiseerd door de cascading-deleteregel uit aragraaf.. Transactie Commit Al deze voorbeelden geven een oeenvolging van databaseacties te zien die van nature bij elkaar horen: doen we het één, dan moet ook het ander gebeuren. Zo n oeenvolging heet een transactie. Midden in een transactie hoeft niet aan alle regels te zijn voldaan, maar na afloo wel. Tijdens een transactie bestaat veelal een ongewenste situatie. Na afloo is alles in orde en kunnen we aan het rdbms odracht geven de veranderingen definitief te maken (Engels: commit). Zie figuur.0. 09

22 Oen Universiteit voltooide transactie toestand na vorige commitmoment toestand na nieuw commitmoment FIGUUR.0 Transactie: de acties tussen twee commitmomenten Rollback Het committen wordt in de meeste gevallen vanuit de alicatie geregeld, door het versturen van een seciale SQL-odracht (commit) naar het rdbms. Dit is al dan niet het gevolg van een bewuste actie van de gebruiker, bijvoorbeeld het aanklikken van een seciaal knoje: de commit-kno of save-kno. Wordt o dat moment niet aan alle regels voldaan, dan wordt de commit niet uitgevoerd en wordt teruggekeerd naar de toestand aan het begin van de transactie. Alle wijzigingen worden dan teruggedraaid (Engels: rollback), zie figuur.. Ook de gebruiker zelf kan de loende transactie annuleren, bijvoorbeeld door een seciale rollback- of undo -button aan te klikken. In dit geval wordt het SQL-statement rollback naar het rdbms verstuurd. FIGUUR. Rollback na onvoltooide transactie of exliciete rollbackodracht Korte transacties Transacties moeten zo kort mogelijk worden gemaakt. Een van de redenen daarvoor is de mogelijkheid informatie kwijt te raken wanneer tussentijds het systeem uitvalt door bijvoorbeeld een stroomstoring. In zo n geval wordt de transactie geannuleerd (rollback) en moeten we onieuw beginnen. Een andere reden is dat gebruikers nu eenmaal fouten maken en transacties daardoor soms niet kunnen worden voltooid. Ook in die gevallen vindt een rollback laats. Tot slot komt het bij lange transacties nogal eens voor dat het systeem een foutmelding geeft, maar dat de gebruiker niet meer kan achterhalen o welke actie die foutmelding recies betrekking heeft. In latere leereenheden komen we uitgebreid o transacties terug, onder meer o de roblematiek van concurrente transacties: transacties van meerdere gebruikers die elkaar in de tijd overlaen. OPGAVE.5 Voorsel het effect van elke hierna genoemde actie, uitgaande van de oulatie van figuur. en de structuurdiagrammen van figuren.7 en.9. Als dat effect alleen een foutmelding is, vertel dan welke databaseregel de oorzaak is van die foutmelding. Beschouw elke actie o zichzelf. 0

23 Leereenheid Relationele databases: regels a Poging tot toevoegen van een nieuwe Ingredient-rij ( Coue Kiwano, vanille, null). b Poging tot toevoegen van een nieuwe Ingredient-rij ( Coue Kiwano, suiker, ). c Poging tot toevoegen van een nieuwe Product-rij ( tjindang, koffieleel, ). d Poging tot toevoegen van een nieuwe Eenheid-rij ( slagroom ). e Poging tot verwijderen van de Product-rij ( kiwano, stuks, 40). f Poging tot verwijderen van de Product-rij ( banaan, stuks, 40). g oging tot verwijderen van de Gerechtrij ( Mango Plus Plus,, 8, Snijd... ). h Poging tot wijzigen van kiwano in chiwano in de kolom Product.roductnaam. i Poging tot wijzigen van de eenheidnaam van aardbeien: gram wordt ond. j Poging tot wijzigen van de bereidingstijd van Coue Kiwano in null. Meer over uniciteitsregels Van alle regels waaraan een relationele database moet voldoen, zijn de uniciteitsregels het meest rominent. De structuur van een database (denk aan sleutels) is er direct mee verbonden. Het vaststellen van de juiste uniciteitsregels is daarom essentieel. Hoe bealen we de juistheid van een voorgestelde uniciteitsregel? In deze aragraaf onderzoeken we welke uniciteitsregels in rincie mogelijk zijn en hoe ze kunnen samengaan. De verschillende mogelijkheden zullen we illustreren aan de hand van tabel Inschrijving van de voorbeelddatabase uit leereenheid : de Oen School.. INSCHRIJVINGEN BIJ DE OPEN SCHOOL Zie aragraaf. van leereenheid We hebben gezien dat de Oen School allerlei cursussen aanbiedt, zoals Inleiding informatica (code II), (code ) en Informatiemodelleren (code IM). Studenten kunnen zich daarvoor inschrijven. In figuur. ziet u een strokendiagram met twee voorbeeldinschrijvingen. De eerste kolom bevat studentnummers, waardoor studenten uniek worden geïdentificeerd, de tweede kolom bevat de vakcodes waardoor vakken uniek worden geïdentificeerd, de derde kolom bevat de datum waaro de inschrijving heeft laatsgevonden. welke uniciteitsregel(s)? Inschrijving IM 8-mrt-0 6-jan-0 FIGUUR. Tabel Inschrijving: welke uniciteitsregel(s)?

24 Oen Universiteit Het diagram bevat bewust geen uniciteitsijl, omdat we alle mogelijke uniciteitsregels en combinaties daarvan zelfs de meest onwaarschijnlijke zullen onderzoeken. De informatie in de twee rijen laat zich aldus verwoorden: student heeft zich ingeschreven voor cursus o 8-mrt-0 student heeft zich ingeschreven voor cursus IM o 6-jan-0 Om erachter te komen welke uniciteitsregels gelden, moeten allerlei vragen worden beantwoord, zoals: zou student zich ook mogen inschrijven voor cursus IM o nog een tweede dag? Of: zou student zich o 8-mrt-0 voor nog een tweede vak mogen inschrijven? Of: mag nog een tweede student zich o 8-mrt-0 inschrijven voor de cursus? Vanuit de raktijk liggen beaalde antwoorden misschien weinig voor de hand. Hier echter is het ons te doen om een systematisch onderzoek van wat in rincie mogelijk is aan eisen en regels. Daarbij gaat het om mogelijke uniciteitsregels over één kolom (zie, en in figuur.), over twee kolommen (4, 5 en 6) en over drie kolommen (7).???? Is student uniek? Is cursus uniek? Is datum uniek? 4 Is het zo dat student en cursus elk aart niet uniek zijn, maar de combinatie (student, cursus) wel???? 5 Is het zo dat student en datum elk aart niet uniek zijn, maar de combinatie (student, datum) wel? 6 Is het zo dat cursus en datum elk aart niet uniek zijn, maar de combinatie (cursus, datum) wel? 7 Zijn de combinaties (student, cursus), (student, datum) en (cursus, datum) geen van drieën uniek? FIGUUR. Uniciteitsregels over drie kolommen: zeven vragen Conventie Deze zeven regels zijn niet onafhankelijk van elkaar, omdat we uitgaan van de volgende conventie: wanneer van twee regels de ene regel strenger is dan de andere regel, formuleren we alleen de strengste regel. Formuleren we bijvoorbeeld regel 4, dan geven we daarmee imliciet aan dat de regels en niet gelden. En formuleren we regel 7, dan geven we daarmee aan dat alle andere regels niet gelden. Immers: wanneer we een ijl versmallen, verbiedt hij méér en wordt de regel strenger. In het algemeen imliceert een brede ijl dat alle smallere over één of meer van de betrokken kolommen niet gelden, zie figuur.4.

Inhoud leereenheid 3. Normalisatie. Introductie 67. Leerkern 68. Samenvatting 85. Zelftoets 87. Terugkoppeling 89

Inhoud leereenheid 3. Normalisatie. Introductie 67. Leerkern 68. Samenvatting 85. Zelftoets 87. Terugkoppeling 89 Inhoud leereenheid 3 Normalisatie Introductie 67 Leerkern 68 1 De eerste normaalvorm 68 2 Functionele afhankelijkheid 70 2.1 Functionele afhankelijkheid en sleutels 70 2.2 Functionele afhankelijkheid in

Nadere informatie

Relationele databases: structuur

Relationele databases: structuur Leereenheid Relationele databases: structuur Leereenheid Relationele databases: structuur I N T R O D U C T I E Een relationele database is één component van een groter systeem, een informatiesysteem.

Nadere informatie

Integriteitsbewaking bij een relationele database

Integriteitsbewaking bij een relationele database Integriteitsbewaking bij een relationele database Bij het ontwikkelen van een informatiesysteem voor een organisatie moet er koste wat koste voor gezorgd worden, dat er geen tegenstrijdige gegevens in

Nadere informatie

Handleiding Japanse puzzels

Handleiding Japanse puzzels Handleiding Japanse puzzels versie : 1.0 wijziging : 26-4-2010 Inhoud 1.Japanse puzzel...4 1.1.Speler...4 1.2.Kleur...4 1.3.Groep...4 1.4.Favoriet...4 1.5.Puzzel...4 1.6.Prima...5 1.7.Spel...5 1.8.Stap

Nadere informatie

1 Relationele databases: structuur

1 Relationele databases: structuur 1 Relationele databases: structuur Een relationele database is één component van een groter systeem, een informatiesysteem. De database bevat, gestructureerd in de vorm van tabellen, de gegevens die voor

Nadere informatie

Bijlage Inlezen nieuwe tarieven per verzekeraar

Bijlage Inlezen nieuwe tarieven per verzekeraar ! Bijlage inlezen nieuwe tarieven (vanaf 3.2) Bijlage Inlezen nieuwe tarieven per verzekeraar Scipio 3.303 biedt ondersteuning om gebruikers alle tarieven van de verschillende verzekeraars in één keer

Nadere informatie

hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit relationele databases 9.1

hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit relationele databases 9.1 relationele databases 9.1 hoofdstuk 9 referentiële integriteit waarborgen overige constraints 9.1 Referentiële integriteit Als voorbeeld nemen we een eenvoudige database, bestaande uit twee tabellen. De

Nadere informatie

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1

DATAMODEL SQL. Middelbare School. Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1 DATAMODEL SQL Middelbare School Versie 1.0 Datum 30 oktober 2010 Auteur Mark Nuyens, studentnummer: 500625333 Groep TDI 1 INHOUDSOPGAVE 1. Informatiedomein 3 1.1 Informatiedomein 3 1.2 Toepassingen 3 2.

Nadere informatie

Relationele databases en SQL: samenvattingen

Relationele databases en SQL: samenvattingen Relationele databases en SQL: samenvattingen Hoofdstuk 1 Paragraaf 1.1 Het relationele model is de theorie over gegevensverzamelingen bestaande uit tabellen, de wijze waarop tabellen onderling samenhangen

Nadere informatie

Normaliseren voor Dummies

Normaliseren voor Dummies Waarom normaliseren? Normaliseren voor Dummies Gegevensredundantie leidt tot gegevensinconsistentie! Dit cryptisch antwoord betekent het volgende: indien men dezelfde gegevens onnodig herhaaldelijk opslaat

Nadere informatie

Werken met eenheden. Introductie 275. Leerkern 275

Werken met eenheden. Introductie 275. Leerkern 275 Open Inhoud Universiteit Appendix B Wiskunde voor milieuwetenschappen Werken met eenheden Introductie 275 Leerkern 275 1 Grootheden en eenheden 275 2 SI-eenhedenstelsel 275 3 Tekenen en grafieken 276 4

Nadere informatie

6. Het maken van een database

6. Het maken van een database 6. Het maken van een database 6.1. Inleiding In hoofdstuk 5 heb je de oefendatabase gemaakt doormiddel van een script. In dit hoofdstuk ga je zelf een database maken en deze vullen met tabellen. Hiervoor

Nadere informatie

EMBEDDED SQL. Inleiding. Queries en update-opdrachten. Embedden en hostvariabelen

EMBEDDED SQL. Inleiding. Queries en update-opdrachten. Embedden en hostvariabelen Inleiding In het boek Databases & SQL wordt beschreven hoe opdrachten in de programmeertaal SQL gebruikt worden om de inhoud van een relationele database te raadplegen en te bewerken. SQL wordt daarbij

Nadere informatie

Relationele databases en SQL: samenvattingen

Relationele databases en SQL: samenvattingen Relationele databases en SQL: samenvattingen Hoofdstuk 1 Paragraaf 1.1 Het relationele model is de theorie over gegevensverzamelingen bestaande uit tabellen, de wijze waarop tabellen onderling samenhangen

Nadere informatie

Uitwerkingen van opgaven

Uitwerkingen van opgaven , 3 e druk Uitwerkingen van opgaven Uitwerkingen hoofdstuk 1 1.1 0.15 1600 + 0.5 40 + 0.3 336 + 10 4 + 1 30 geeft (na afronding): 431. 1.2 De volgende rijen komen erbij: in Gerecht: ( Reijnders Roem, 86,

Nadere informatie

Correctievoorschrift VWO. Wiskunde A1,2 (nieuwe stijl)

Correctievoorschrift VWO. Wiskunde A1,2 (nieuwe stijl) Wiskunde A, (nieuwe stijl) Correctievoorschrift VWO Voorbereidend Wetenschaelijk Onderwijs 0 0 Tijdvak Inzenden scores Uiterlijk o 6 juni de scores van de alfabetisch eerste tien kandidaten er school o

Nadere informatie

Handleiding BudgetBoek

Handleiding BudgetBoek Handleiding BudgetBoek versie : 1.0 wijziging : 4-1-2010 Inhoud 1. BudgetBoek...4 1.1. Persoon...4 1.2. Registrant...4 1.3. Budgethouder...4 1.4. Budgetpost...4 1.5. Budgetgroep...5 1.6. Rekening...5 1.7.

Nadere informatie

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd. BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is

Nadere informatie

Inhoud. Introductie tot de cursus

Inhoud. Introductie tot de cursus Inhoud Introductie tot de cursus 1 Inleiding 7 2 Voorkennis 7 3 Het cursusmateriaal 7 4 Structuur, symbolen en taalgebruik 8 5 De cursus bestuderen 9 6 Studiebegeleiding 10 7 Huiswerkopgaven 10 8 Het tentamen

Nadere informatie

Databases - Inleiding

Databases - Inleiding Databases Databases - Inleiding Een database is een verzameling van een aantal gegevens over een bepaald onderwerp: een ledenbestand van een vereniging, een forum, login gegevens. In een database worden

Nadere informatie

DATABASEBEHEER IN EXCEL

DATABASEBEHEER IN EXCEL DATABASEBEHEER IN EXCEL 1. LIJSTEN Een lijst is een reeks van rijen met gelijksoortige gegevens waarvan de eerste rij de labels (veldnamen) bevat. Een voorbeeld: Je kunt een lijst beschouwen als een eenvoudige

Nadere informatie

8. De invoer van gegevens

8. De invoer van gegevens 8. De invoer van gegevens 8.1. Inleiding Voor het invoeren van gegevens kan het DML-statement INSERT INTO worden gebruikt. Om dit statement correct te kunnen gebruiken, moet je wel antwoord weten op de

Nadere informatie

Automatische Overgangen instellen

Automatische Overgangen instellen Automatische Overgangen instellen In i-reserve is het mogelijk gestandaardiseerde e-mails te verzenden. Gestandaardiseerde mails zijn gebaseerd op e-mail templates, deze mails kunnen gekoppeld worden aan

Nadere informatie

Les S-01: De basisbeginselen van SQL

Les S-01: De basisbeginselen van SQL Les S-01: De basisbeginselen van SQL 1.0 Relationele databases en SQL Een database is een bestand waarin gegevens worden opgeslagen in de vorm van tabellen. Zo kan een huisarts met behulp van een database

Nadere informatie

Basiskennistoets wiskunde

Basiskennistoets wiskunde Lkr.: R. De Wever Geen rekendoos toegelaten Basiskennistoets wiskunde Klas: 6 WEWI 1 september 015 0 Vraag 1: Een lokaal extremum (minimum of maximum) wordt bereikt door een functie wanneer de eerste afgeleide

Nadere informatie

SQL & Datamodelleren

SQL & Datamodelleren SQL & Datamodelleren HVA-CMD-V1-datamodelleren Algemene handleiding bij het lesprogramma 2012-2013 Inhoud Inhoud... 2 Inleiding... 3 Leerdoelen:... 3 Plaats in het leerplan:... 3 Werkwijze:... 3 Lesstof:...

Nadere informatie

1.3 Rekenen met pijlen

1.3 Rekenen met pijlen 14 Getallen 1.3 Rekenen met pijlen 1.3.1 Het optellen van pijlen Jeweetnuwatdegetallenlijnisendat0nochpositiefnochnegatiefis. Wezullen nu een soort rekenen met pijlen gaan invoeren. We spreken af dat bij

Nadere informatie

www.digitalecomputercursus.nl 6. Reeksen

www.digitalecomputercursus.nl 6. Reeksen 6. Reeksen Excel kan datums automatisch uitbreiden tot een reeks. Dit betekent dat u na het typen van een maand Excel de opdracht kan geven om de volgende maanden aan te vullen. Deze voorziening bespaart

Nadere informatie

In deze appendix wordt bekeken wat er moet gebeuren voordat

In deze appendix wordt bekeken wat er moet gebeuren voordat Normaliseren A In deze appendix wordt bekeken wat er moet gebeuren voordat een systeem kan worden gedefinieerd. Dit begint met een analyse van de gegevens die de basis vormen. Daarbij wordt gekeken naar

Nadere informatie

Excel reader. Beginner Gemiddeld. bas@excel-programmeur.nl

Excel reader. Beginner Gemiddeld. bas@excel-programmeur.nl Excel reader Beginner Gemiddeld Auteur Bas Meijerink E-mail bas@excel-programmeur.nl Versie 01D00 Datum 01-03-2014 Inhoudsopgave Introductie... - 3 - Hoofdstuk 1 - Databewerking - 4-1. Inleiding... - 5-2.

Nadere informatie

Inform BVBA. Scarabee Handleiding Agenda

Inform BVBA. Scarabee Handleiding Agenda Inform BVBA Scarabee Handleiding Agenda Steven De Ryck Juni 2009 Inhoudsopgave Inleiding...3 1 Overzicht agenda s...4 2 Detailfiche agenda...5 2.1 Velden...5 2.2 Subforms...5 2.2.1 Alleen lezen...5 2.2.2

Nadere informatie

case: use-case-diagram

case: use-case-diagram Hoofdstuk 9 case: use-case-diagram Dit hoofdstuk beschrijft de totstandkoming van de use-cases voor EasyShop, het maaltijdsysteem van Hans en Jacqueline. Het zijn de functionele systeemeisen die hier worden

Nadere informatie

Eindtoets. Opgaven. 1 Gegeven is het domeinmodel van figuur 1. Domeinmodel voor betalingen. Eindtoets I N T R O D U C T I E.

Eindtoets. Opgaven. 1 Gegeven is het domeinmodel van figuur 1. Domeinmodel voor betalingen. Eindtoets I N T R O D U C T I E. Eindtoets I N T R O D U C T I E Deze eindtoets is bedoeld als voorbereiding op het tentamen. Het is belangrijk dat u de eindtoets pas probeert te maken op het moment dat u denkt klaar te zijn met de tentamenvoorbereiding.

Nadere informatie

1 Download de database 'bieren.mdb' en bewaar het bestand in c:\werkmap van je computer.

1 Download de database 'bieren.mdb' en bewaar het bestand in c:\werkmap van je computer. DataBase Management & Databasetechnologie We gaan nu aan de slag met het databasemanagementprogramma Access. Zo'n set programma's waarmee je databases kunt maken, beheren en bevragen noemt men ook wel

Nadere informatie

Databases SQL - meerdere tabellen

Databases SQL - meerdere tabellen Databases SQL - meerdere tabellen Nut van een database Dilbert 1 Reservering Lezer Uitgave Filiaal Basis zaken Uitlening Exemplaar NB: er kan verschil in smaak zitten tussen M1a en S1a notatie Join : het

Nadere informatie

Relationele databases en SQL Leo Wiegerink, Jeanot Bijpost, Marco de Groot

Relationele databases en SQL Leo Wiegerink, Jeanot Bijpost, Marco de Groot Relationele databases en SQL Leo Wiegerink, Jeanot Bijpost, Marco de Groot Derde, geheel herziene druk Relationele databases en SQL Derde, geheel herziene druk Leo Wiegerink, Jeanot Bijpost, Marco de Groot

Nadere informatie

case: toestandsdiagrammen

case: toestandsdiagrammen Hoofdstuk 13 case: toestandsdiagrammen In dit hoofdstuk wordt het maken van de eerste versie van de toestandsdiagrammen voor het boodschappensysteem van Hans en Jacqueline uitgewerkt. 13.1 Vind klassen

Nadere informatie

Een SQL-boek met interactieve Boekverkenner

Een SQL-boek met interactieve Boekverkenner Een SQL-boek met interactieve Boekverkenner Leo Wiegerink Jeanot Bijpost Marco de Groot Samenvatting Een elektronische leeromgeving die eenzijdig voortkomt uit de push van de technologie zal vaak teleurstellen.

Nadere informatie

Databases en SQL Foundation (DBSQLF.NL)

Databases en SQL Foundation (DBSQLF.NL) Databases en SQL Foundation (DBSQLF.NL) EXIN Hét exameninstituut voor ICT ers Janssoenborch - Hoog Catharijne Godebaldkwartier 365 3511 DT Utrecht Postbus 19147 3501 DC Utrecht Nederland T +31 30 234 48

Nadere informatie

Access voor beginners - hoofdstuk 25

Access voor beginners - hoofdstuk 25 Access voor beginners - hoofdstuk 25 Handleiding van Auteur: OctaFish Oktober 2014 Werken met Klassemodules Tot nu toe heb ik in de cursus Access veel gewerkt met formulieren, en met procedures en functies.

Nadere informatie

Practicum algemeen. 1 Diagrammen maken 2 Lineair verband en evenredig verband 3 Het schrijven van een verslag

Practicum algemeen. 1 Diagrammen maken 2 Lineair verband en evenredig verband 3 Het schrijven van een verslag Practicum algemeen 1 Diagrammen maken 2 Lineair verband en evenredig verband 3 Het schrijven van een verslag 1 Diagrammen maken Onafhankelijke grootheid en afhankelijke grootheid In veel experimenten wordt

Nadere informatie

Bij alle programma s van Microsoft Office worden sjablonen

Bij alle programma s van Microsoft Office worden sjablonen Sjablonen 2 Bij alle programma s van Microsoft Office worden sjablonen geleverd. Door een sjabloon te gebruiken, kunt u direct beginnen met het invoeren van de gegevens. Alle tabellen, formulieren en rapporten

Nadere informatie

Basisvaardigheden Microsoft Excel

Basisvaardigheden Microsoft Excel Basisvaardigheden Microsoft Excel Met behulp van deze handleiding kun je de basisvaardigheden leren die nodig zijn om meetresultaten van een practicum te verwerken. Je kunt dan het verband tussen twee

Nadere informatie

Basisvaardigheden Microsoft Excel

Basisvaardigheden Microsoft Excel Basisvaardigheden Microsoft Excel Met behulp van deze handleiding kun je de basisvaardigheden leren die nodig zijn om meetresultaten van een practicum te verwerken. Je kunt dan het verband tussen twee

Nadere informatie

Hoofdstuk 16: Grafieken en diagrammen: hoe

Hoofdstuk 16: Grafieken en diagrammen: hoe Hoofdstuk 16: Grafieken en diagrammen: hoe 16.0 Inleiding Wanneer je de betekenis van een serie nummers in een presentatie wilt weergeven, zal je ondervinden dat een diagram de meest effectieve manier

Nadere informatie

Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen.

Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen. Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen. Opmerking vooraf. Een netwerk is een structuur die is opgebouwd met pijlen en knooppunten. Bij het opstellen van

Nadere informatie

2.4.4 LibreOffice Werkblad Mac

2.4.4 LibreOffice Werkblad Mac 2.4.4 LibreOffice Werkblad Mac Deze cursus bestaat uit 4 delen. 1. Werkblad gebruiken voor berekeningen 2. Werkblad gebruiken voor het maken van lijsten 3. Werkblad gebruiken voor een (eenvoudige) boekhouding

Nadere informatie

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica

TECHNISCHE UNIVERSITEIT EINDHOVEN. Faculteit Wiskunde en Informatica TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica Extra Tentamen Databases 1, 2M400, 8 oktober 2003. Alle uitwerkingen van de opgaven moeten worden ingevuld in de daarvoor bestemde vrije

Nadere informatie

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database.

SQL manipulatietaal. We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. SQL manipulatietaal We kunnen er data mee toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: INSERT : toevoegen van gegevens DELETE : verwijderen van gegevens UPDATE : wijzigen van gegevens

Nadere informatie

Handleiding Nederlandse Besteksystematiek

Handleiding Nederlandse Besteksystematiek Handleiding Nederlandse Besteksystematiek Inhoudsopgave 1 Inleiding... 3 1.1 NBS... 3 1.2 De NBS Catalogus... 3 2 Bestek, algemeen... 4 2.1 Het bestek... 4 2.2 De beschrijving van het werk... 4 2.3 De

Nadere informatie

3 Wat is een stelsel lineaire vergelijkingen?

3 Wat is een stelsel lineaire vergelijkingen? In deze les bekijken we de situatie waarin er mogelijk meerdere vergelijkingen zijn ( stelsels ) en meerdere variabelen, maar waarin elke vergelijking er relatief eenvoudig uitziet, namelijk lineair is.

Nadere informatie

PROGRAMMA 2011-2012. Vak: informatica..

PROGRAMMA 2011-2012. Vak: informatica.. Vak: informatica.. Laag: Havo-. PROGRAMMA 2011-2012 week leerstof dagen toets overig 34-26.08 zomervakantie Bespreking PTA-404 Deze week: uitreiking van de Praktische Opdracht Programmeren Herhaling theorie

Nadere informatie

Leerjaar 1/2 ICT-Academie. Niveau 4. Applicatie ontwikkeling

Leerjaar 1/2 ICT-Academie. Niveau 4. Applicatie ontwikkeling Databases SQL Leerjaar 1/2 ICT-Academie Niveau 4 Applicatie ontwikkeling Auteur: R. Meijerink Datum: Januari 2013 0. Inleiding Databases / SQL In deze lessen wordt je geleerd databases te bouwen in SQL-code.

Nadere informatie

2. Een adressenbestand maken in Excel

2. Een adressenbestand maken in Excel 23 2. Een adressenbestand maken in Excel Als u een grote hoeveelheid brieven of kaarten gaat versturen, kan het handig zijn om daarvoor adresetiketten af te drukken. Adresetiketten kunt u gebruiken voor

Nadere informatie

Excel voor de beginner (4) Handleiding van Helpmij.nl

Excel voor de beginner (4) Handleiding van Helpmij.nl Excel voor de beginner (4) Handleiding van Auteur: CorVerm Juni 2008 Excel voor beginners deel 4. Zoals we in deel drie hebben beloofd gaan we het in deze ronde hebben over het geven van namen aan (een)

Nadere informatie

Coachview.net Eenmalige Imports

Coachview.net Eenmalige Imports Coachview.net Eenmalige Imports Versie: Juli 2011, Revisie 2 Coachview.net: 2.1 Auteur(s): Remy Remery Dé nieuwe manier van samenwerken Inhoudsopgave 1. INLEIDING...3 BELANGRIJKSTE TERMEN... 3 2. IMPORT

Nadere informatie

CIJFEREN: DE TRAPVERMENIGVULDIGING

CIJFEREN: DE TRAPVERMENIGVULDIGING CIJFEREN: DE TRAPVERMENIGVULDIGING Luc Cielen Ik noem dit een trapvermenigvuldiging omdat deze bewerking een trap vormt als de vermenigvuldiger een getal is met 2 of meer cijfers. In een opbouw die 10

Nadere informatie

Inhoud introductie. Introductie tot de cursus

Inhoud introductie. Introductie tot de cursus Inhoud introductie Introductie tot de cursus 1 Functie en plaats van de cursus 7 1.1 Voorkennis 7 1.2 Leerdoelen 7 2 Opbouw van de cursus 8 2.1 Cursusbestanddelen 8 2.2 Nummering en studielast van de leereenheden

Nadere informatie

Opfrisdocument elektronische aangifte

Opfrisdocument elektronische aangifte Opfrisdocument elektronische aangifte Inleiding: Omdat wij regelmatig vragen krijgen over de elektronische aangifte, hebben wij e.e.a. maar eens voor u op een rijtje gezet. Uitgangspunt van dit document

Nadere informatie

Grafiek en dynamisch bereik

Grafiek en dynamisch bereik Excellerend Heemraadweg 21 2741 NC Waddinxveen 06 5115 97 46 richard@excellerend.nl BTW: NL0021459225 ABN/AMRO: NL72ABNA0536825491 KVK: 24389967 Grafiek en dynamisch bereik Iedereen die vaak met tabellen

Nadere informatie

11.4 Aanpassen van sjabloon of andere standaard teksten

11.4 Aanpassen van sjabloon of andere standaard teksten 11.4 Aanpassen van sjabloon of andere standaard teksten Let op: De met Facts! meegeleverde politie-aangifte-tekst is een voorbeeld zoals deze door het Verbond van Verzekeraars wordt voorgesteld. Aanpassing

Nadere informatie

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober 2010. A. Snippe ICT Lyceum 1

Workshop 3x. Normaliseren. Normaliseren. Hiëarchische database ODBMS. Relationele database. Workshop 14 oktober 2010. A. Snippe ICT Lyceum 1 Workshop 3x Analytisch vermogen Huiswerk Lestijden 10:00 12:30 Pauze 10:15 10:30 Deze les: Hiëarchische database Relationele database ODBMS Normaliseer stappen Hiëarchische database Elk record in een database

Nadere informatie

Hoofdstuk 1: Toegang tot Pay@Finpost: abonnementen & digipass

Hoofdstuk 1: Toegang tot Pay@Finpost: abonnementen & digipass In deze rubriek verzamelden we de meest voorkomende vragen en onze antwoorden over Pay@Finpost. Indien u desondanks in deze lijst geen antwoord op uw vragen vindt, aarzel dan niet ons te contacteren op

Nadere informatie

SQL / Systeemanalyse

SQL / Systeemanalyse SQL / Systeemanalyse Wie ben ik Hans de Wit 44 jaar HBO BI in deeltijd gedaan Sinds 2008 werkzaam met BI / DWH med.hro.nl/wihan SQL De gegevens in een database vormen de grondstof voor informatie De informatie

Nadere informatie

Klankie B.V - Klankie 2010 Netwerkversie - versie 1.0 - sts2220000000212. 13 september 2010

Klankie B.V - Klankie 2010 Netwerkversie - versie 1.0 - sts2220000000212. 13 september 2010 Klankie B.V - Klankie 2010 Netwerkversie - versie 1.0 - sts2220000000212 13 september 2010 Inhoudsopgave 1. Inleiding...3 2. Belangrijke informatie bij Klankie 2010...4 3. C3LO-werkstation inrichten als

Nadere informatie

Salaris in People Inc.

Salaris in People Inc. Salaris in People Inc. I Salaris in People Inc. Inhoudsopgave Hoofdstuk 1 Salaris 2... 2 1.1 Salarisscherm... 3 1.2 Schalen en treden... 5 1.3 Salaris toekennen... 7 1.4 Berekeningen... 7 Betalingsperiode

Nadere informatie

Wiskunde A. Voorbereidend Wetenschappelijk Onderwijs Tijdvak 1 Woensdag 17 mei 13.30 16.30 uur

Wiskunde A. Voorbereidend Wetenschappelijk Onderwijs Tijdvak 1 Woensdag 17 mei 13.30 16.30 uur Wiskunde A Examen VWO Voorbereidend Wetenschappelijk Onderwijs Tijdvak 1 Woensdag 17 mei 13.30 16.30 uur 20 00 Als bij een vraag een verklaring, uitleg of berekening vereist is, worden aan het antwoord

Nadere informatie

Examen HAVO. Wiskunde A1,2

Examen HAVO. Wiskunde A1,2 Wiskunde A1,2 Examen HAVO Hoger Algemeen Voortgezet Onderwijs Tijdvak 1 Donderdag 25 mei 13.30 16.30 uur 20 00 Dit examen bestaat uit 19 vragen. Voor elk vraagnummer is aangegeven hoeveel punten met een

Nadere informatie

Een quiz plaatsen op je website

Een quiz plaatsen op je website Een quiz plaatsen op je website Om de deelnemers een beetje na te laten denken kan je een quiz toevoegen op je site. Dat doe je op de volgende manier: a. Een quiz aanmaken Ga naar je eigen pagina en klik

Nadere informatie

We hebben de vragen ingedeeld als volgt:

We hebben de vragen ingedeeld als volgt: In deze rubriek verzamelden we de meest voorkomende vragen en onze antwoorden over Pay@Finpost. Indien u desondanks in deze lijst geen antwoord op uw vragen vindt, aarzel dan niet ons te contacteren op

Nadere informatie

Uitzendkracht rol. 30 maart 2011 Akyla bv. copyright Akyla bv

Uitzendkracht rol. 30 maart 2011 Akyla bv. copyright Akyla bv Uitzendkracht rol 30 maart 2011 Akyla bv copyright Akyla bv Inhoudsopgave 1. INLEIDING... 3 2. ALGEMEEN... 4 2.1 ICOONTJES... 5 2.2 OVERZICHTEN... 5 2.3 ROLLEN... 6 2.4 PROCESTYPES... 7 3. DE UITZENDKRACHT

Nadere informatie

Hoofdstuk 13: Sorteren & Filteren* 2010

Hoofdstuk 13: Sorteren & Filteren* 2010 Hoofdstuk 13: Sorteren & Filteren* 2010 13.0 Inleiding Spreadsheets bieden meer grip op gegevens. De twee beste manieren om meer grip te krijgen, is door de gegevens te sorteren of door bepaalde waarden

Nadere informatie

Basiskennis lineaire algebra

Basiskennis lineaire algebra Basiskennis lineaire algebra Lineaire algebra is belangrijk als achtergrond voor lineaire programmering, omdat we het probleem kunnen tekenen in de n-dimensionale ruimte, waarbij n gelijk is aan het aantal

Nadere informatie

Handleiding internetaangifte voor bedrijven, organisaties en winkeliers

Handleiding internetaangifte voor bedrijven, organisaties en winkeliers Handleiding internetaangifte voor bedrijven, organisaties en winkeliers Algemeen Als u aangifte doet namens een bedrijf, organisatie of winkelier kunt u natuurlijk elke keer opnieuw uw gegevens invoeren.

Nadere informatie

Correctievoorschrift VWO. wiskunde B1 (nieuwe stijl)

Correctievoorschrift VWO. wiskunde B1 (nieuwe stijl) wiskunde B (nieuwe stijl) Correctievoorschrift VWO Voorbereidend Wetenschaelijk Onderwijs 0 04 Tijdvak inzenden scores Verwerk de scores van de alfabetisch eerste vijf kandidaten er school in het rogramma

Nadere informatie

Bij de volgende opgaven vragen we je een kleine opteltabel in te vullen. De eerste hebben we zelf ingevuld om je te laten zien hoe zoiets gaat. 1.

Bij de volgende opgaven vragen we je een kleine opteltabel in te vullen. De eerste hebben we zelf ingevuld om je te laten zien hoe zoiets gaat. 1. I Natuurlijke getallen Dit deel gaat over getallen waarmee je aantallen kunt weergeven: vijf vingers aan je hand, twaalf appels op een schaal, zestig minuten in een uur, zestien miljoen Nederlanders, nul

Nadere informatie

Informatica toets vwo 6 Databases

Informatica toets vwo 6 Databases Informatica toets vwo 6 Databases Deze toets bestaat uit drie gedeelten met elk een andere casus: 1. een opdracht waarin je een ER-diagram via het relationeel model omzet in een database specificatie in

Nadere informatie

Universiteit Utrecht Departement Informatica

Universiteit Utrecht Departement Informatica Universiteit Utrecht Departement Informatica Uitwerking Tussentoets Optimalisering 20 december 206 Opgave. Beschouw het volgende lineair programmeringsprobleem: (P) Minimaliseer z = x 2x 2 + x 3 2x 4 o.v.

Nadere informatie

Introductie tot de cursus

Introductie tot de cursus Introductie Introductie tot de cursus Voordat u begint met het bestuderen van de cursus Databases, willen wij u in deze introductie informeren over de bedoeling van de cursus, de opzet van het cursusmateriaal

Nadere informatie

Met de functies Verticaal zoeken of Horizontaal zoeken kun je gegevens in het rekenblad laten opzoeken en weergeven.

Met de functies Verticaal zoeken of Horizontaal zoeken kun je gegevens in het rekenblad laten opzoeken en weergeven. Formules functies verticaal en horizontaal zoeken Excel Met de functies Verticaal zoeken of Horizontaal zoeken kun je gegevens in het rekenblad laten opzoeken en weergeven. Opbouw van de functie Verticaal

Nadere informatie

Introductie Coach 6 videometen. 1 Eerste oefening

Introductie Coach 6 videometen. 1 Eerste oefening Introductie Coach 6 videometen 1 Eerste oefening Open het programma coach6. Het pictogram vind je op het bureaublad van je pc. Je krijgt dan het onderstaande scherm te zien. Verander docent in student.

Nadere informatie

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens

Info-books. Toegepaste Informatica. Handleiding. Deel 40c : Gegevensbeheer en algoritmen in Access. HA40c. Jos Gils Erik Goossens Info-books HA40c Toegepaste Informatica Handleiding Deel 40c : Gegevensbeheer en algoritmen in Access Jos Gils Erik Goossens Veldlengte Het maximale aantal tekens dat in een veld kan ingevoerd worden.

Nadere informatie

Sum of Us 2014: Topologische oppervlakken

Sum of Us 2014: Topologische oppervlakken Sum of Us 2014: Topologische oppervlakken Inleiding: topologische oppervlakken en origami Een topologisch oppervlak is, ruwweg gesproken, een tweedimensionaal meetkundig object. We zullen in deze tekst

Nadere informatie

TURN IT IN. Plagiaatcontrole versie voor studenten 9 maart 2015. Hogeschool VIVES Dienst Onderwijs Onderwijsmedia

TURN IT IN. Plagiaatcontrole versie voor studenten 9 maart 2015. Hogeschool VIVES Dienst Onderwijs Onderwijsmedia TURN IT IN Plagiaatcontrole versie voor studenten 9 maart 2015 Hogeschool VIVES Dienst Onderwijs Onderwijsmedia Inhoud 1. Inleiding...3 1.1 Wat is Turn it in?...3 1.2 Mag ik dan helemaal niets kopiëren?...3

Nadere informatie

FLIPIT 5. (a i,j + a j,i )d i d j = d j + 0 = e d. i<j

FLIPIT 5. (a i,j + a j,i )d i d j = d j + 0 = e d. i<j FLIPIT JAAP TOP Een netwerk bestaat uit een eindig aantal punten, waarbij voor elk tweetal ervan gegeven is of er wel of niet een verbinding is tussen deze twee. De punten waarmee een gegeven punt van

Nadere informatie

BTW Code Conversie Legal Eagle Integratie Zonder Export versie 2.18.x naar 2.19.0. 2012 Sdu uitgevers

BTW Code Conversie Legal Eagle Integratie Zonder Export versie 2.18.x naar 2.19.0. 2012 Sdu uitgevers BTW Code Conversie Legal Eagle Integratie Zonder Export versie 2.18.x naar 2.19.0 2012 Sdu uitgevers BTW Code Conversie Legal Eagle Integratie Zonder Export Inhoudsopgave BTW Conversie Legal Eagle Integratie

Nadere informatie

Stap 5. Koppel vervolgens de Stages aan de AIOS op het blad AIOS Stageplaats (figuur 5). Nu kunnen de Stage specifieke afspraken aangemaakt worden.

Stap 5. Koppel vervolgens de Stages aan de AIOS op het blad AIOS Stageplaats (figuur 5). Nu kunnen de Stage specifieke afspraken aangemaakt worden. Met de Excelapplicatie Opleidingskalender kunt u afspraken in het kader van de opleiding met AIOS per Ziekenhuis/Opleiding per specialisme plannen en beheren. Introductie Deze Excelapplicatie is gemaakt

Nadere informatie

Correctievoorschrift VWO. Wiskunde A Experimenteel (oude stijl) Voorbereidend Wetenschappelijk Onderwijs. Tijdvak 1. Begin WVA011ES.

Correctievoorschrift VWO. Wiskunde A Experimenteel (oude stijl) Voorbereidend Wetenschappelijk Onderwijs. Tijdvak 1. Begin WVA011ES. Wiskunde A Exerimenteel (oude stijl) Correctievoorschrift VWO Voorbereidend Wetenschaelijk Onderwijs 0 0 Tijdvak WVA0ES.CRV Begin Regels voor de beoordeling Het werk van de kandidaten wordt beoordeeld

Nadere informatie

Instructie en voorbeelden bij Amsterdamse monumenten

Instructie en voorbeelden bij Amsterdamse monumenten Instructie en voorbeelden bij Amsterdamse monumenten DOEL: De gebouwen op de foto s identificeren door er het juiste adres aan toe te voegen ten behoeve van de vindbaarheid van de foto s op de Beeldbank

Nadere informatie

Trippeltrap Content Management System

Trippeltrap Content Management System Handleiding Trippeltrap Content Management System versie 2.4 Aanmelden Voordat u de tekst op uw webpagina kunt aanpassen, moet u zich eerst aanmelden. Bovenaan de pagina vindt u een link naar het intranet.

Nadere informatie

Stelling. SAT is NP-compleet.

Stelling. SAT is NP-compleet. Het bewijs van de stelling van Cook Levin zoals gegeven in het boek van Sipser gebruikt niet-deterministische turing machines. Het is inderdaad mogelijk de klasse NP op een alternatieve wijze te definiëren

Nadere informatie

Web-ordering bij Bonnes Bestel Service B.V. (algemene versie)

Web-ordering bij Bonnes Bestel Service B.V. (algemene versie) Web-ordering bij Bonnes Bestel Service B.V. (algemene versie) Bonnes Bestel Service wil haar relaties de mogelijkheid geven om via de digitale snelweg ritten door te geven, hiervoor hebben wij, voor degene

Nadere informatie

Klikt u op dan komt er een scherm of u dit bestand wilt of

Klikt u op dan komt er een scherm of u dit bestand wilt of Enkele nuttige tips om met VARB te werken. U start uw internetbrowser en gaat naar https://www.varb.nl er komt een schermpje Certificaat bevestigen, klik op OK. Het volgende scherm is Voer Pin in, u vult

Nadere informatie

Handleiding Internetaangifte - Aangifte voor bedrijven

Handleiding Internetaangifte - Aangifte voor bedrijven Handleiding Internetaangifte - Aangifte voor bedrijven Algemeen Wanneer u aangifte moet doen namens een bedrijf kan dat natuurlijk altijd op de reguliere wijze, maar u kunt ook een account aanmaken voor

Nadere informatie

ACCEPETEREN RESERVERING

ACCEPETEREN RESERVERING E-mail Templates In i-reserve is het mogelijk gestandaardiseerde e-mails te verzenden. Het verzenden van dergelijke mails kan volledig worden geautomatiseerd: u maakt dan gebruik van zogenaamde automatische

Nadere informatie

2.2 Een tabel ontwerpen

2.2 Een tabel ontwerpen 2.2 Een tabel ontwerpen 2.2.1 Gegevens analyse Alvorens de tabellen van een database te kunnen gaan opzetten, dient u eerst te bepalen, welke gegevens daarin moeten worden opgenomen. Bepaal eerst het doel

Nadere informatie

VISI. Verzoekschriften verwerken in Peoplesoft Campus Solutions. Volg. Opdrachtgever: Verzoek superusers CS Bestandsnaam: Verzoekschriften verwerken

VISI. Verzoekschriften verwerken in Peoplesoft Campus Solutions. Volg. Opdrachtgever: Verzoek superusers CS Bestandsnaam: Verzoekschriften verwerken FF Verzoekschriften verwerken in Campus Solutions ICS (Informatie, Communicatie en Studenten) Universiteit Leiden Postbus 9512 2300 RA Leiden 071 527 6969 VISI Verzoekschriften verwerken in Peoplesoft

Nadere informatie

S u b n e t t e n. t h e t r u e s t o r y 1100 0000. 1010 1000. 0000 0001. 0000 0001 1111 1111. 1111 1111. 1111 1111. 0000 0000.

S u b n e t t e n. t h e t r u e s t o r y 1100 0000. 1010 1000. 0000 0001. 0000 0001 1111 1111. 1111 1111. 1111 1111. 0000 0000. S u b n e t t e n t h e t r u e s t o r y 1100 0000. 1010 1000. 0000 0001. 0000 0001 1111 1111. 1111 1111. 1111 1111. 0000 0000 Part 1 Inhoud Wat is een subnet?... 2 Waarom?... 3 Het begin.... 3 Een voorbeeld...

Nadere informatie

15. Tabellen. 1. wat rijen, kolommen en cellen zijn; 2. rijen en kolommen invoegen; 3. een tabel invoegen en weer verwijderen;

15. Tabellen. 1. wat rijen, kolommen en cellen zijn; 2. rijen en kolommen invoegen; 3. een tabel invoegen en weer verwijderen; 15. Tabellen Misschien heeft u al eens geprobeerd om gegevens in een aantal kolommen te plaatsen door gebruik te maken van spaties, kolommen of tabs. Dat verloopt goed totdat u gegevens wilt wijzigen of

Nadere informatie

Hoofdstuk 21: Gegevens samenvatten

Hoofdstuk 21: Gegevens samenvatten Hoofdstuk 21: Gegevens samenvatten 21.0 Inleiding In Excel kunnen grote (en zelfs ook niet zo grote) tabellen met getallen en tekst er nogal intimiderend uitzien. Echter, Excel komt helemaal tot haar recht

Nadere informatie