Antwoorden op de vraagjes in het boek

Maat: px
Weergave met pagina beginnen:

Download "Antwoorden op de vraagjes in het boek"

Transcriptie

1 Antwoorden op de vraagjes in het boek Hallo, Ik heb dit bestand samengesteld op basis van volgende forumthread: f=124&t=26719&sid=fc1e24c0443c31c e30fd59c Mijn antwoorden zijn wel soms iets uitgebreider of volledig 'from scratch' geschreven als ik het antwoord op het forum niet voldoende vond. Som heb ik ook een korter antwoord geschreven dan in de thread als ik vond dat een korter antwoord reeds voldoende zei. Ik garandeer trouwens ook niet dat deze antwoorden 100% correct zijn en af en toe ontbreekt er misschien ook wel iets. Bovendien heb ik het gevoel dat de antwoorden op hoofdstuk 7 en 8 iets duidelijker kunnen zijn. Oh ja, ik garandeer ook niet de correctheid van de spelling, want mijn spellcheck werkt hier niet deftig en dt-regeltjes zijn geleden sinds het middelbaar. :) Feel free trouwens om dit bestand aan te passen of aan te vullen als je denkt dat het beter kan. Johan Datum laatste aanpassing: 26/01/11

2 Hoofdstuk 1: Databases en databasesystemen 1 Wat is het verschil tussen data en informatie? Waarom is het nuttig om binnen de context van databases een onderscheid te maken tussen beide? Data zijn gegeven feiten zoals bv. cijfers, getallen, karakters, symbolen en woorden. Informatie daarentegen verwijst ook nog naar de betekenis van de gegevens. "De Mona Lisa bevindt zich in het Louvre." is zo een voorbeeld van informatie, waarbij "Mona Lisa" en "Louvre" gegevens zijn. Dit onderscheid is belangrijk omdat computersystemen enkel data efficiënt kunnen beheren. 2 Wat is een database, een databasesysteem en een databasemanagementsysteem? Een database is een collectie van persistente data. Een databasesysteem is een computersysteem opgezet voor het beheer van zo databases. Het databasemanagementsysteem is dan de softwarecomponent van het databasesysteem die instaat voor het uiteindelijke beheer van de databases. 3 Wat zijn de voordelen van een 'drielagen'-architectuur voor een databasemanagementsysteem? Welke lagen worden daarbij onderscheiden? Het voordeel van een 'drielagen'-architectuur is dat ze dataonafhankelijk zijn van elkaar. Dit wil zeggen dat de beschrijving van data in een bepaalde laag aangepast kan worden zonder dat dit impact heeft op de andere lagen, waardoor databasesystemen makkelijker onderhouden kunnen worden. Bovendien moeten dankzij de interne laag de fysieke opslagdetails niet gekend zijn door de gebruikers en kan dankzij de externe laag bepaald worden hoe de data aan elke gebruiker gepresenteerd wordt d.m.v. views. We onderscheiden drie lagen: de interne laag, de logische laag en de externe laag. 4 Uit welke componenten bestaat een databasesysteem? Er zijn drie hoofdcomponenten, namelijk de hardware, de data en de software. De hardwarecomponent bestaat voornamelijk uit de CPU om de software-instructies uit te kunnen voeren en computergeheugen om de database op te kunnen slaan (secundair geheugen) en te bufferen (primair geheugen). De data bestaat uit records bestaande uit een of meerdere velden van data die vastgelegd zijn in het recordtype van het record. De records worden in het secundair geheugen opgeslagen in de vorm van bestanden. Data van eenzelfde database vormt een geïntegreerd geheel. De softwarecomponent bestaat uit het databasemanagementsysteem dat de databases op een databasesyteem beheert, toepassingsprogramma's zodat gebruikers kunnen interageren met de database, tools om databasebeheertaken eventueel te automatiseren en vergemakkelijken en communicatiesoftware om te kunnen communiceren met de servers als de eigenlijk database op andere machines staat dan de client. 5 Schets de geheugenhiërarchie. Bespreek de rol van de verschillende types geheugen die hierin voorkomen met betrekking tot databases. Waarom zijn de databasebuffers belangrijk? Eerst en vooral heb je het primair geheugen is het snelste geheugen en bestaan uit statisch en dynamisch RAM-geheugen. Het statisch RAM-geheugen wordt gebruikt als cachegeheugen om

3 uitvoering van programma's te versnellen terwijl het dynamisch geheugen gebruikt wordt voor tijdelijke opslag van data en programmacode. Ook worden minstens twee databasebuffers opgezet in het primair geheugen zodat de inhoud van de ene buffer kan ingelezen of weggeschreven worden terwijl de CPU de data uit de andere buffer verwerkt. Dit komt de prestaties van het databasesysteem ten goede. Het primair geheugen is echter volatiel en relatief klein. Daarom bestaat er ook het niet-volatiele, veel grotere (maar ook veel tragere) secundair geheugen dat instaat voor de eigenlijke opslag van de database. De CPU kan echter niet rechtstreeks de data uit dit geheugen verwerken, waardoor het eerst naar de databasebuffers dient gekopieerd te worden. Voorbeelden van secundair geheugen zijn bv. magneetschijven en cd's of dvd's. Eventueel kunnen dan ook nog magneetbandgeheugens gebruikt worden als een soort van tertiair geheugen dat dan dient voor archieven en back-up. 6 Wat zijn databaserecords? Welke types kan men onderscheiden? Hoe kunnen deze worden beschreven? Records zijn een of meerdere velden die data bevatten. Recordtypes kunnen ofwel een vaste ofwel een variabele lengte hebben. Dit laatste komt voor als een van de recordvelden een datatype heeft van variabele lengte, een of meer recordvelden meerwaardig is of een of meer velden van het recordtype optioneel is. Recordtypes met een vaste lengte worden beschreven door hun file header om aan te geven waar elk deel van de record is opgeslagen. Voor variabele lengte dienen er speciale separatorkarakters gebruikt te worden in de record zelf om het einde van een veld, waarde of de record zelf aan te geven. 7 Waartoe dienen datawarehousing en datamining? Situeer beide ten opzichte van databases. Terwijl een databasemanagementsysteem bedoelt is voor het beheer van actuele data en dus geen geschiedenis bijhoud van de databases zelf, doet een datawarehouse dit juist wel. Een datawarehouse is dus een grote database bedoeld voor data-analyse, meestal gericht op het historisch karakter van de data. Datamining heeft dan als doel om die analyse te doen en dus zinvolle informatie (zoals patronen en verbanden) in de data te vinden die tot dan toe onbekend waren. 8 Wat zijn gebruikersprofielen? Bespreek de taken van een data-administrator en een database-administrator. Gebruikersprofielen worden toegekend aan gebruikers en bepalen welke bevoegdheden de gebruiker krijgt. Een data-administrator is de persoon die beslist welke data, in welk formaat, in welke database moet worden opgeslagen. Bovendien legt hij ook de regels vast voor toegang tot de database, gebruikersprofielen, beveiliging, verwerking en communicatie van de data en wie voorrang krijgt bij toegangsconflicten. Hij speelt vooral een belangrijke rol bij het ontwerp van een database. De database-administrator is dan de persoon die instaat voor de technische zaken en het onderhoud van de databases. Hij is verantwoordelijk voor herstel bij falen, consistentie en prestatie van de databases.

4 9 Bespreek databasedefinitie, databasemanipulatie en databaseconstructie. Bij de databasedefinitie worden zowel de databasestructuur als de semantische regels voor de database vastgelegd. Dit laatste dient om de integriteit van de database (de correctheid van de data) te garanderen. Databasemanipulatie bestaat uit het efficiënt toevoegen, verwijderen en aanpassen van data en het efficiënt doorzoeken van databases. Databaseconstructie slaat op het efficiënt bijhouden van de aangemaakte databases in het geheugen, zonder dat de gebruikers zich er om hoeven te bekommeren. 10 Waarom is het noodzakelijk dat databases kunnen worden gedeeld? Wat zou er gebeuren als die niet kan? Dit is noodzakelijk zodat meerdere gebruikers of software tegelijk dezelfde data kunnen aanpassen of doorzoeken. Als databases niet zouden kunnen gedeeld worden, zou elke gebruiker moeten wachten tot de vorige klaar is. In dit geval zouden er echter ook geen toegangsconflicten optreden. 11 Waarom is het noodzakelijk dat databases worden beveiligd? Het is nodig om de database te beveiligen tegen fysiek falen om het dataverlies zoveel mogelijk te beperken. Het is ook nodig om een database te beveiligen tegen ongeoorloofd gebruik (aldanniet opzettelijk) om te voorkomen dat gebruikers schadelijke acties kunnen uitvoeren op de database of data kan lezen die niet voor hem bedoeld is. Er kan bovendien ook beveiligd worden tegen geoorloofd gebruik. Dit wil zeggen dat de database zoveel mogelijk incorrecte data zelf dient te detecteren en weren. 12 Waarom is er een verschil tussen de interne laag van de drielagenarchitectuur en de fysieke dataopslag? Wat is het nut van de interne laag? De interne laag beschrijft hoe de bestanden en records georganiseerd worden. De eigenlijke fysieke dataopslag valt onder het beheer van het besturingssysteem omdat het verschilt van systeem tot systeem. De interne laag zorgt dus voor een abstractielaag om de fysieke opslagdetails buiten de architectuur van de dbms te houden. 13 Wat zijn indexen? Waartoe worden deze gebruikt in databases? Een index is een geordende lijst van koppels met een veldwaarde en een referentie, geordend op de veldwaarde. De veldwaarde is de waarde van het veld waarvoor de index gedefinieerd is, terwijl de referentie wijst naar de plaats in het geheugen waar een record met die veldwaarde is opgeslagen. Indexen worden gebruikt om sneller te kunnen navigeren door de records volgens het betreffende recordveld en kan dus helpen om bv. queries te versnellen. 14 Wat is het nut van de logische laag en de externe laag van de drielagenarchitectuur? In de logische laag (of gemeenschappelijke laag) wordt de database abstract voorgesteld volgens de voorschriften van het databasemodel als een databaseschema. Dit is dus overzichtelijker voor mensen dan de interne laag. De externe laag dient om de zogenoemde views op de database te definiëren. Een view zorgt ervoor dat voor de gebruiker de view de database lijkt te zijn. In deze laag kan dus bepaald worden welk deel iedere gebruiker kan zien van de volledige database.

5 15 Waarop slaat dataonafhankelijkheid? Illustreer het nut ervan met een concreet voorbeeld. Dataonafhankelijkheid wil zeggen dat de beschrijving van data in een bepaalde laag aangepast kan worden zonder dat dit impact heeft op de andere lagen, waardoor databasesystemen makkelijker onderhouden kunnen worden. Door fysieke dataonafhankelijkheid kan bv. de fysieke opslagstructuur aangepast worden zonder dat dit impact heeft op de logische en externe laag (de mappings tussen logische en interne laag veranderen natuurlijk wel). Door logische dataonafhankelijkheid kan bv. een recordtype aangepast of verwijderd worden zonder dat dit impact heeft op de views in de externe laag (alweer, de mappings tussen logische en externe laag veranderen wel). 16 Waarmee moet men rekening houden bij de keuze om bij een toepassing wel of geen databasesysteem te gebruiken? Hoeveel dbms-faciliteiten zijn er vereist? Is het systeem complex genoeg om een dbms nodig te hebben? (Moet de data bv. in de loop van de tijd aangepast worden of blijft het steeds hetzelfde?) Budget? Eisen qua snelheid, uitvoeringstijd? Geheugencapaciteit? Onderhoud? 17 Bedenk een realistische toepassing waarbij je zeker voor een zelfontwikkeld opslagsysteem zou kiezen. De save-file voor een videogame waarbij de variabelen en dergelijken enkel maar allemaal geladen worden bij het laden van die file. Verder dienen er geen bewerkingen op uitgevoerd te worden.

6 Hoofdstuk 2: Datamodellen en databasemodellen 1 Wat is het verschil tussen een datamodel, een databasemodel en een databaseschema. Een datamodel is een verzameling van voorschriften en regels die het mogelijk maken om de structuur en het gedrag te beschrijven van data die in bepaalde software voorkomen. Een databasemodel is een verzameling van voorschriften en regels die het mogelijk maken om zowel de structuur, de beperkingen voor integriteit en beveiliging, als het gedrag van een database te beschrijven op het niveau van de logische laag uit een 'drielagen'-architectuur voor dbms-en. Een databaseschema is het resultaat van het gebruik van een databasemodel in een specifieke situatie, dus het schema dat de data beschrijft die bij die situatie relevant is. 2 Vergelijk de operationele, structurele en semantische modellen op het vlak van datamodellering en de manier van opzoeken van data. Geef een voorbeeld van een databasemodel uit elk van deze categorieën. De operationele modellen omschrijven de structuur van de data, maar niet de bewerkingen. Opzoeken en aanpassen van data gebeurt d.m.v. specifieke operatoren in een hosttaal. Een voordeel van dit model is dat dit zeer efficiënt kan gebeuren. We hebben er twee besproken, het hiërarchisch model (boomstructuur) en het netwerkmodel (graafstructuur). Structurele modellen zijn wiskundig onderbouwd m.b.v. relaties. Deze worden in het model voorgesteld d.m.v. tabellen (alleen atomaire waarden toegelaten). Het opzoeken/aanpassen van data gebeurt niet langer vanuit een hosttaal, maar m.b.v. een taal eigen aan het model, SQL. Het belangrijkste model hier is het relationele model. Bij semantische modellen benadrukt men bij het modelleren vooral de semantiek van de gegevens waardoor men een stap dichter komt bij het modelleren van informatie. Voorbeelden zijn het objectgeoriënteerde model, het objectrelationeel model en de hybride modellen. 3 Hoe wordt data gemodelleerd volgens het hiërarchisch databasemodel? De data wordt gemodelleerd in een boomstructuur. De verwantschappen tussen recordtypes worden weergegeven door 'ouder-kind'-relaties. Voorbeeld van een relatie: de ouder is 'Artiest' en het kind is 'Schilderij', want een artiest heeft meerdere schilderijen gemaakt. 4 Wat zijn virtuele 'ouder-kind'-relaties? Waarvoor worden deze gebruikt? Virtuele ouderknopen worden ingevoegd in de boomstructuur (hiërarchisch model), maar verwijzen niet naar de werkelijke ouder in de boom. Deze worden gebruikt om te verwijzen naar een andere tabel die gerelateerd is met de huidige tabel. Een schilderij heeft zo bv. 'Artiest' als zijn ouderknoop en 'Eigenaar' als een virtuele ouderknoop. Dit concept werd ingevoerd omdat een knoop normaalgezien maar één ouderknoop mag hebben. 5 Wat zijn hiërarchische recordsequenties? Waarvoor zijn deze nodig? Hiërarchische recorddsequenties zijn een ordening van de data in een hiërarchisch databasemodel door de records in de boom in pre-order (dat is, diepte eerst, van links naar rechts) te doorlopen.

7 Ze zijn nodig om de 'nabijheid' van knopen in de boom duidelijk te maken: de kinderen van een knoop staan immers logisch gezien dichter bij hun ouder dan bij andere knopen die op hetzelfde niveau staan als de ouder (logische nabijheid). Hierdoor kunnen bv. makkelijker alle schilderijen van een bepaalde artiest of eigenaar teruggevonden worden. 6 Hoe verloopt de manipulatie van hiërarchische databases? Welke faciliteiten zijn daarvoor vereist? Wat zijn de voor- en nadelen van deze benadering? Manipulatie van hiërarchische databases gebeurt door commando's die we oproepen vanuit de programmeertaal waarin de toepassingen zij geschreven (hosttaal). Dit betekent dus dat er hiervoor softwarebibliotheken met operatoren nodig zijn. Voordelen zijn dat je gelijk welke programmeertaal kan gebruiken waarvoor de bibliotheek ontwikkeld is en dat het oproepen van variabelen direct en efficiënt is. De nadelen zijn echter dat je enkel maar de programmeertalen kan gebruiken waarvoor de bibliotheek ontwikkeld is en dat je eerst hostvariabelen moet declareren voordat je een operator oproept, dus verwerking van databasemanipulatie gebeurt record per record. 7 In welke opzichten verschilt het netwerkmodel van het hiërarchisch databasemodel? Wat zijn de voor- en nadelen van het netwerkmodel vergeleken met het hiërarchisch databasemodel? In het netwerkmodel wordt er gebruik gemaakt van een graafstructuur i.p.v. een boomstructuur zoals in het hiërarchisch model. De voordelen van het netwerkmodel zijn de mogelijkheid tot ingewikkeldere relaties en meer verbindingen, waardoor datatoegang vaak efficiënter kan verlopen dan bij het hiërarchisch model. Het nadeel van dit model is dan echter dat er geen logische nabijheid meer is en dat manipulatie van netwerkdatabases complexer is dan bij hiërarchische databases. 8 Wat wordt in het relationeel databasemodel bedoeld met atomaire waarden? Welke beperkingen brengt dit met zich mee? Atomaire waarden zijn waarden in een tabel die op informatieniveau niet meer verder opgesplitst kunnen worden. De beperking hiervan is dat het moeilijk is om complexe data voor te stellen. 9 Hoe worden verwantschappen tussen verschillende rijen uit dezelfde of verschillende tabellen gemodelleerd in het relationeel databasemodel? Dit wordt gedaan met behulp van kandidaatsleutels en vreemde sleutels. Een kandidaatsleutel uit een tabel kan opgenomen als een vreemde sleutel in een andere tabel om een verwantschap te modelleren tussen twee tabellen. 10 Geef voor- en nadelen die in aanmerking genomen moeten worden bij de keuze tussen een objectgeoriënteerd databasemodel en het objectrelationeel model. Voordelen objectgeoriënteerd model: steunen puur op de notie van objecten die meteen volledig ingebouwd is, terwijl het er bij objectrelationeel als het ware 'opgeplakt' is. Voordelen objectrelationele model: de relationele structuur zorgt voor een lagere instapdrempel, betrekkelijke eenvoud en wiskundige hanteerbaarheid.

8 heeft een standaard, terwijl er voor puur objectgeoriënteerde dbms-en nog altijd geen algemeen aanvaarde standaard is. geleverd door bedrijven die het systeem zullen onderhouden en updaten, objectgeoriënteerd minder gevestigde waarde, veel minder zekerheid. 11 Wat is een 'impedance mismatch' in de context van databases? Waarom bestaat er nog steeds een 'impedance mismatch' bij objectgeoriënteerde modellen? Motiveer of de 'impedance mismatch' ooit definitief kan worden verholpen. Impedance mismatch is het optreden van nadelig informatieverlies wanneer je gegevens die gemodelleerd zijn volgens de voorschriften van een databasemodel omzet naar de datastructuren van een gebruikte programmeertaal en vice versa. (Een voorbeeld: verschil bij aantal cijfers na de komma bij database en gebruikte programmeertaal.) Dit gebeurt omdat men ervan uitgegaan is dat de te beheren informatie in een perfect omschreven vorm voorhanden is (bv. vage data). Dit gaat waarschijnlijk nooit definitief verholpen kunnen worden omdat informatie van nature vaak onnauwkeurig, vaag omschreven, onzeker, onvolledig en soms zelfs inconsistent is. 12 Bespreek de voor- en nadelen van een keuze voor een open source-oplossing in het licht van de aspecten die werden aangehaald voor de keuze van een database-model. + Minder kans op vendor lock-in en goedkoop. - Vaak steilere aanleercurve en minder technische ondersteuning.

9 Hoofdstuk 3: Conceptueel databaseontwerp 1 Uit welke fases bestaat het databaseontwerpproces? Hoe worden deze in de praktijk afgewerkt? Informatievergaring: informatie vergaren door documenten te onderzoeken, gesprekken met mensen,... Conceptueel ontwerp: omzetten naar EER-diagram en functionele beschrijving Logisch ontwerp: logisch databaseschema, gedragsspecificaties Fysiek ontwerp: DDL-scripts, implementatie van gedrag 2 Wat zijn CASE-tools? Wat zijn de voor- en nadelen van het werken met CASE-tools? CASE-tools (Computer Aided System Engineering) zijn tools om het databaseontwerpproces gedeeltelijk te automatiseren. Dit zijn bv. programma's waarmee men EER-diagrammen kan tekenen. + interactief, makkelijker aan te passen, zien er grafisch beter uit dan een schets - ondersteunen soms niet alle ontwerpfasen, genereren geen geoptimaliseerde DDL-scripts, zijn niet compatibel met andere CASE-tools, kunnen soms geen n-aire relaties weergeven 3 Wat is het verschil tussen een entiteit en een entiteitstype? Een entiteit is een 'ding' dat een zelfstandig bestaan leidt in de reële wereld. (Zowel fysiek object als abstract concept.) Een entiteitstype karakteriseert een collectie van entiteiten en wordt gekenmerkt door een naam en een verzameling van attributen. 4 Wat is het verschil tussen een attribuut en een relatietype? Attributen zijn gemeenschappelijke karakteristieken van een entiteitstype. Een relatietype is een verwantschap tussen twee of meer al dan niet verschillende entiteitstypes. Een attribuut is dus een 'eigenschap' van een entiteit(type) terwijl een relatietype gaat over het verband tussen twee of meerdere entiteiten/entiteitstypes 5 Wat is het verschil tussen enkelwaardige en meerwaardige attributen? Geef voorbeelden van elk. Enkelwaardige attributen zijn attributen die maar 1 waarde mogen aannemen op ieder tijdstip en bestaan dus uit 1 atomaire waarde, terwijl meerwaardige attributen meerdere waarden tegelijk kunnen aannemen en dus een set van atomaire waarden zijn. Het attribuut 'Naam' van 'Artiest' is bv. enkelwaardig, omdat een artiest 1 naam heeft, terwijl 'Talen' meerwaardig kan zijn omdat een artiest meerdere talen kan spreken.

10 6 Wat is het verschil tussen atomaire en samengestelde attributen? Geef voorbeelden van elk. Een samengesteld attribuut bestaat uit meerdere atomaire attributen, bv. 'Adres' bestaat uit 'Straat', 'Nummer' en 'Postcode'. Elk van deze drie is een atomair attribuut. 7 Waarom worden er afgeleide attributen onderscheiden? Omdat afgeleide attributen niet moeten opgeslagen worden in de database. Ze kunnen steeds berekend worden a.d.h.v. reeds opgeslagen data. De leeftijd van een persoon kan bv. steeds veranderen, dus i.p.v. de leeftijd elk jaar aan te passen in de database, is dit een afgeleid attribuut dat kan berekend worden als de huidige datum min de geboortedatum. 8 Wat zijn zwakke entiteitstypes? Waarom zijn deze nodig? Een zwak entiteitstype karakteriseert zwakke entiteiten. Dit zijn entiteitstypes die niet op zichzelf kunnen bestaan, maar voor hun bestaan afhankelijk zijn van het bestaan van andere, identificerende entiteiten. Deze zijn nodig om een bepaalde situatie te kunnen modelleren. Een schilderij kan bv. niet bestaan zonder een artiest. Dit wordt dan gemodelleerd met een zwak entiteitstype. 9 Wat duiden de kardinaliteitsrestricties en de participatierestricties bij relatietypes aan? De kardinaliteitsrestricties geven aan hoeveel entiteiten van het entiteitstype op een gegeven tijdstip maximaal kunnen voorkomen in een relatie van het relatietype (één of meerdere). Participatierestricties geven aan hoeveel entiteiten van het entiteitstype op een gegeven tijdstip minimaal moeten voorkomen in een relatie van het relatietype (nul of één). 10 Wat zijn subtypes? Waarom worden deze ingevoerd? Een subtype is een entiteitstype dat een subcollectie van entiteiten karakteriseert. Deze worden ingevoerd om het mogelijk te maken dat een entiteitstype attributen kan overerven van zijn supertype. Dit is handiger dan entiteitstypes als totaal onafhankelijk te beschouwen. 11 Bespreek het mechanisme van overerving bij supertype/subtype-verwantschappen. Waarom is dit nuttig? De subtypes krijgen ook alle attributen van het supertype, waardoor we ze niet meer opnieuw bij het subtype moeten tekenen. Dit is zeer nuttig voor het voorstellen van verschillende entiteiten die heel wat attributen gemeenschappelijk hebben. 12 Wat zijn geconditioneerde subtypes? Hoe wordt er gewerkt als de subtypes niet geconditioneerd zijn? Om te bepalen tot welk subtype een entiteit behoort, beschouwt men de waarde van een bepaald attribuut van het supertype en associeert men daarmee een conditie. Als de attribuutwaarde van de entiteit voldoet aan de voorwaarde, is de entiteit ook entiteit van het subtype. (Bv. 'Type' als

11 attribuut van 'Kunstwerk' bepaalt tot welk subtype het kunstwerk behoort.) Als de subtypes niet geconditioneerd zijn, kan men wel nog weergeven of er totale of partiële participatie is van het supertype en of de subtypes disjunct of overlappend zijn. 13 Wat zijn categorieën? Waarom worden deze ingevoerd? In welke opzichten verschilt een categorie van een regulier subtype met meerdere supertypes? Geef een voorbeeld van elk. Een categorie of unietype is een 'speciaal' subtype met verschillende supertypes, dat wordt ingevoerd om de entiteiten van deze supertypes te groeperen. Elke entiteit van de categorie is hierbij slechts entiteit van juist één van de supertypes, terwijl een gewoon subtype met meerdere supertypes alle attributen van al zijn supertypes zal hebben. Voor een categorie 'Eigenaar' met de supertypes 'Bedrijf' en 'Museum' zal de eigenaar ofwel een eigenaar zijn van een bedrijf, ofwel van een museum. Voor een subtype 'Juweel' met als supertypes 'Outfit' en 'Kunstwerk' zal het juweel zowel de attributen van een outfit als van een kunstwerk hebben. 14 Bespreek het mechanisme van overerving bij categorieën. Waarom is dit nuttig? Een entiteit van een categorie erft enkel over van het supertype waartoe de entiteit behoort. Om te bepalen tot welk supertype het subtype nu uiteindelijk behoort in een categorie en van welk supertype het dus de attributen overerft, wordt er gebruikgemaakt van geconditioneerde supertypes. Dit mechanisme is volledig analoog aan geconditioneerde subtypes. Bovendien wordt er ook vastgelegd of er totale of partiële participatie is van het subtype. Het nut van dit mechanisme is om de entiteiten van supertypes te groeperen.

12 Hoofdstuk 4: Relationele DB: het relationeel databasemodel 1 Wat wordt bedoeld met atomair datatype? Geef drie voorbeelden van datatypes die niet atomair zijn. Welke positieve en negatieve gevolgen heeft de beperking tot atomaire datatypes voor het relationeel databasemodel? Een atomair datatype wordt gespecificeerd door een verzameling van toegelaten atomaire waarden (het domein van het datatype) en een verzameling van operatoren die allemaal inwerken op de domeinwaarden en het gedrag van het datatype vastleggen. Een atomaire waarde is een waarde die, voor wat het relationeel databasemodel betreft, niet verder conceptueel opsplitsbaar is. Voorbeeld niet-atomair: datum (dag, maand, jaar), adres (straat, nummer, postcode) en naam (naam, voornaam). Atomaire gegevens kunnen niet samengesteld of meerwaardig zijn, dus is het moeilijker complexe gegevens op te slaan. Het voordeel is echter dat atomaire gegevens eenvoudiger zijn om mee te werken. 2 Wat is het verschil tussen een domein en een datatype? Het domein van een datatype specificeert enkel de toegelaten atomaire waarden, terwijl het datatype ook de operatoren specificeert. 3 Hoe is een basisrelatie opgebouwd? Welke eigenschappen hebben basisrelaties? Hoe kunnen basisrelaties worden geïnterpreteerd? Een basisrelatie is opgebouwd uit een relatieschema (heading) en een extentie (body). Eigenschappen: Binnen een relatie kunnen geen dubbele tuples voorkomen. (= redundante gegevens) De tuples van een relatie zijn niet geordend. De attributen van een relatie zijn niet geordend. (= ongeordende kolommen) Alle attribuutwaarden van een relatie zijn atomair. Het schema van de relatie interpreteer je als de declaratie van een welbepaalde veronderstelling (bv. 'Artiest(A_ID:char(3), Naam:varchar, Voornaam:varchar)') en elk tuple uit de extentie van de relatie interpreteer je als een feit of een particuliere instantie (bv. '(A_ID:A01, Naam:'Da Vinci', Voornaam:'Leonardo')') van deze veronderstelling. 4 Waartoe dient de catalogus? In welke opzichten verschilt de catalogus van een database van de database zelf? Hoe kan met een catalogus worden gewerkt? De catalogus bevat metadata (bv. hoe vaak wordt een bepaalde relatie geraadpleegd) en enkel maar geraadpleegd worden door gebruikers, en dus niet aangepast worden. De catalogus wordt meestal bevraagd om het databaseschema te achterhalen om dan queries op te kunnen stellen. Er wordt ook informatie i.v.m. gebruikers en prestaties in bijgehouden.

13 5 Wat zijn views? Waartoe worden ze gebruikt? Bespreek kort hoe views kunnen worden bevraagd en aangepast. Een view is een benoemde, virtuele relatie die is afgeleid van gebruikergedefinieerde en/of systeemgedefinieerde basisrelaties en/of andere views. Ze worden gebruikt om: nieuwe data af te leiden. Bv. een view maken om leeftijd te tonen. bevragingsinstructies in te korten. De view fungeert dan als een verkorte schrijfwijze voor de vaak gebruikte complexe instructie. in individuele gebruikersbehoeften te voorzien. Ieder kan een individuele kijk op de database krijgen. data af te schermen. Met een view kan je maken dat bepaalde gebruikers bepaalde data niet kunnen zien. Bevragingen gebeuren op dezelfde manier als bij gewone basisrelaties. Aanpassingen kunnen enkel uitgevoerd worden als de view aanpasbaar is. Bovendien mag er geen conflict ontstaan met de definitie van de view (bv. geen rij toevoegen met daarin een geboortedatum die kleiner is dan in de definitie van de view) en mogen er geen aanpassingen uitgevoerd worden op afgeleide data. 6 Hoe worden indexen ondersteund in het relationeel databasemodel? Bespreek hun vooren nadelen. Een index is een tabel waarin de attributen waarop de index gedefinieerd is geordend worden met de volgorde bepaald door de indexdefinitie, en waarbij dan in een extra kolom een (logische of fysieke) pointer naar de data bewaard wordt. Dit wordt gedaan met de instructie 'CREATE INDEX'. + prestatieverbetering doordat zoeken op een geordende kolom kan gebeuren met binaire zoekalgoritmes. - aanpassen, toevoegen en verwijderen duurt langer, aangezien de indexen daarbij ook aangepast moeten worden. 7 Geef de hoofdredenen voor het ontbreken van informatie. Wat zijn null-waarden? Welke impact heeft het beschouwen van null-waarden op (de datatypes van) het relationeel databasemodel? Welke problemen bestaan er bij het werken met null-waarden? Illustreer dit aan de hand van een voorbeeld. Informatie kan ontbreken doordat ofwel de gegevens bestaan maar niet voorhanden zijn (onbekende informatie), ofwel de gegevens niet bestaan of niet van toepassing zijn en dus nooit beschikbaar zullen komen (niet-gedefinieerde informatie). Een null-waarde is een waarde die overeenkomt met 'ontbrekend'. De impact hiervan op de datatypes van het relationeel databasemodel is dat er een nieuwe waarde toegevoegd wordt aan het domein, namelijk 'null'. Het probleem met null-waarden is dat er problemen kunnen optreden voor logica. Bv. wat geeft 'waar = null' als resultaat? Er wordt voor de nodige operatoren dus een uitbreiding voorzien voor de waarheidswaarde 'null'. Nu is (alles < 1800) + (alles >= 1800)!= alles door de null-waarden.

14 8 Wat zijn defaultwaarden? Welke zijn de voor- en nadelen van het werken met defaultwaarden? Defaultwaarden zijn de waarden die automatisch worden ingevuld als geen waarde wordt opgegeven. Ze worden gebruikt als benadering of als model voor elke ontbrekende waarde van het attribuut. Het voordeel hiervan is dat je zo altijd een waarde hebt om mee te werken. Het nadeel is echter dat het slechts een benadering is en verkeerde resultaten dus mogelijk zijn. 9 Wat is een kandidaatsleutel? Wat is een vreemde sleutel? Waartoe worden vreemde sleutels gebruikt? Een kandidaatsleutel is een deelverzameling van de verzameling van alle attributen van een gegeven basisrelatie die voldoet aan de uniciteits- en irreducibiliteitseigenschap. Een vreemde sleutel F van een basisrelatie R2 is een verzameling van attributen van R2 waarvoor het volgende geldt: Er bestaat een basisrelatie R1 (R1 niet noodzakelijk verschillend van R2) met een kandidaatsleutel K, die evenveel attributen bevat als F en waarbij er een één-opééncorrespondentie is tussen de attributen van K en de attributen van F, zodat corresponderende attributen dezelfde geassocieerde datatypes hebben. Op elk tijdstip komt elke reguliere waarde van F in R2 eveneens voor als waarde van K in een tuple van R1. Vreemde sleutels worden gebruikt om te verwijzen naar andere basisrelaties. Zo kunnen verbanden tussen twee relaties (tabellen) gelegd worden. 10 Wat wordt bedoeld met cyclische referentie? Geef een voorbeeld van een cyclische referentie waarbij er meer dan twee basisrelaties zijn betrokken. Een cyclische referentie wil zeggen dat een vreemde sleutel in R1 verwijst naar R2 terwijl een vreemde sleutel in R2 verwijst naar R1. Dit kan uitgebreid worden van een verwijzing van R1 naar R2, R2 naar R3,..., R(n-1) naar Rn en Rn naar R1. Bv. in een tabel 'Schilderij' is er een vreemde sleutel die verwijst naar 'Tentoonstelling' (in welke tentoonstelling het schilderij te zien zal zijn. In 'Tentoonstelling' is er dan een vreemde sleutel die verwijst naar 'Plaats' (waar de tentoonstelling doorgaat). Ten slotte is er een vreemde sleutel in 'Plaats' die verwijst naar 'Schilderij' (welke schilderijen die plaats bezit). (Eigenlijk zijn er nog meerdere relaties tussen om al die M-op-N-relaties te mappen.) 11 Wat is referentiële integriteit? Referentiële integriteit is de voorwaarde dat elk van de reguliere niet-null waarden van een vreemde sleutel op elk moment voorkomt als de waarde van de corresponderende kandidaatsleutel.

15 12 Wat zijn integriteitsrestricties? Volgens welke criteria worden integriteitsrestricties onderverdeeld? Een integriteitsrestrictie is een voorwaarde waaraan alle data uit een database op elk moment moet voldoen. Integriteitsrestricties worden op twee manieren onderverdeeld: onderscheid tussen toestandsrestricties (waakt over correcte toestand database, bv. geboortejaar < sterftejaar) en transitierestricties (vergelijken nieuwe waarde met oude waarde, slechts betrekking op attribuut dat aangepast wordt, bv. toenemen loon werknemer) onderscheid tussen relatierestricties (enkel data uit één relatie nodig voor evaluatie) en databaserestricties (data uit meerdere relaties nodig voor evaluatie). 13 Wat is een stored procedure? In welke opzichten verschillen stored procedures van integriteitsrestricties? Een stored procedure is een voorgecompileerde groep bewerkingen, geschreven in SQL/PSM die de SQL-taal omvat. Samen voeren deze bewerkingen een actie uit op de database of met de data van de database en eventueel wordt een resultaat teruggegeven. Elke stored procedure wordt gekenmerkt door een naam en code en wordt bijgehouden in de catalogus. Stored procedures zijn geavanceerder dan integriteitsrestricties. Er kan bv. een bewerkingsresultaat weergegeven worden en er is expliciete input en output. 14 Hoe werken triggers? Als een bepaalde trigger event zich voordoet en de eventuele condition geëvalueerd wordt als waar, wordt een actie (stored procedure) uitgevoerd. Een trigger bestaat dus uit een naam, trigger event, trigger condition en triggered action. 15 In hoeverre kun je een dbms als relationeel beschouwen als deze niet is uitgerust met faciliteiten voor stored procedures en triggers? Het relationeel databasemodel wordt gekenmerkt door twee zaken, het is onderbouwd door de relationele algebra en het is een structureel model. De relationele algebra zegt niets over stored procedures en triggers. Bovendien is het perfect een structureel model (benadrukken van het concept 'abstracte structuur', onafhankellijk van de fysieke organisatie en opslag van de data), ook zonder stored procedures en triggers. Het is dus nog steeds een relationeel model. 16 Geef de acht basisoperatoren van de relationele algebra. Zijn er basisoperatoren die kunnen worden afgeleid van andere? UNION, INTERSECT, MINUS, TIMES (cartesiaans product), WHERE (selectie), projectie, JOIN en DIVIDEBY. R1 INTERSECT R2 = R1 MINUS (R1 MINUS R2) 17 Hoe werkt de intersectieoperator? Welke beperkingen gelden daarbij? De intersectie operator levert (op R1 en R2) de tuples die in zowel R1 als R2 voorkomen. Voorwaarde: R1 en R2 moeten een schema van hetzelfde type hebben.

16 18 In welke opzichten verschillen de cartesiaanse productoperator en de 'join'-operator? Bij het cartesiaans product worden alle samenvoegingen van tuples beschouwd, terwijl bij de join enkel tuples die gerelateerd zijn via dezelfde waarden voor de gemeenschappelijke attributen samengevoegd worden. Bij JOIN moet er een gemeenschappelijk veld zijn, bij cartesiaans product niet. 19 Geef een voorbeeld waaruit het praktische nut van de cartesiaanse productoperator blijkt. Lastig... Van forum: "Assemblage van pc's. Veronderstel dat we in een ideale wereld leven en alle afzonderlijke componenten mooi bij elkaar passen. Dan kunnen we tabellen als processoren, moederborden, grafische kaarten, ram geheugen in een cartesiaans product steken om alle mogelijke configuraties te bekomen." 20 Hoe werkt de delingsoperator? Waarom is deze ingevoerd? De delingsoperator werkt op dezelfde manier alsof je factoren zou wegdelen uit een breuk/veelterm. Alleen tuples waaruit je iets weg hebt kunnen delen worden weergegeven, algemeen XY DIVIDEBY X = Y Deze operator is ingevoerd met het oog op de verwerking van vraagstellingen waarbij gebruik wordt gemaakt van de 'universele quantor' ( of 'voor alle') 21 Wat wordt bedoeld met het gesloten zijn van de relationele algebra? Waarom is deze eigenschap belangrijk? Dit betekent dat elke operator inwerkt op een of meerdere relaties en daarbij een nieuwe relatie produceert. Dit is belangrijk want zo is het mogelijk om operators samen te stellen.

17 Hoofdstuk 5: Logisch databaseontwerp 1 Beschrijf in grote lijnen het logisch databaseontwerp met behulp van EER-modellering. Wat is het belang van 'reverse engineering' hierbij? Een EER-diagram wordt omgezet naar een databaseschema d.m.v. een omzettingsalgoritme. Daarna worden ook nog de functionele beschrijvingen omgezet naar gedragspecificaties (alternatieve sleutels, integriteitsrestricties, stored procedures en trigggers). Reverse engineering is dan het omzetten van een databaseschema naar een EER-diagram. Dit dient om het EER-diagram te actualiseren na aanpassing van het databaseschema. 2 Welke ondersteuning bieden CASE-tools op dit vlak? Zoek bijkomende documentatie over een CASE-tool (bijvoorbeeld via internet). Sommige CASE-tools laten toe om met de druk op een knop een databaseschema te genereren op basis van een EER-diagram. Ook reverse engineering en het omzetten van functionele beschrijvingen wordt soms ondersteund. 3 Bespreek de vier opties voor het omzetten van een generalisatie of specialisatie met één supertype. Wat zijn de voor- en nadelen van elk van deze opties? Bedenk voor elk van deze opties een voorbeeld van een specialisatie die met die optie het best kan worden omgezet. verschillende basisrelaties, voor het supertype en de subtypes. + bestaande basisrelaties blijven behouden + werkt voor alle mogelijkheden - veel basisrelaties verschillende basisrelaties, enkel voor de subtypes (attributen supertype bij subtype) + een relatie minder (die van het supertype) - enkel voor totale specialisatie/generalisatie met disjuncte subtypes één basisrelatie met één typeattribuut (attributen subtype bij supertype) + slechts één relatie - veel ontbrekende gegevens als er veel attributen zijn bij de subtypes - enkel voor disjuncte subtypes één basisrelatie met meerdere typeattributen + slechts één relatie + werkt voor alle mogelijkheden - veel ontbrekende gegevens als er veel attributen zijn bij de subtypes - voor elk mogelijk subtype is er een aparte boolean nodig 4 Kunnen typeattributen worden gebruikt voor het omzetten van een generalisatie of specialisatie met meerdere supertypes? Motiveer je antwoord. Ja, je geeft het subtype de attributen van al zijn supertypes en gebruikt dan het typeattribuut om aan te geven tot welke supertypes het subtype allemaal behoort.

18 5 Geef een voorbeeld van een binair 'één-op-één' relatietype en een binair 'één-op-meerdere' relatietype dat het best wordt omgezet met een extra basisrelatie. 1-op-1: Getrouwd met: het is niet logisch om de attributen van de man/vrouw toe te voegen aan de vrouw/man, het is logischer om ze als aparte entiteiten te houden. Bovendien is het ook niet logisch om de attributen van 'getrouwd' (vb. trouwdatum, gemeente...) toe te voegen aan slechts 1 persoon. 1 op N: analoog, maar we beschouwen ook polygame relaties. 6 Hoe kun je te werk gaan om een samengesteld meerwaardig attribuut met een meerwaardige, enkelvoudige componentattribuut om te zetten? Geef een voorbeeld. Stel A is een samengesteld, meerwaardig attribuut van relatie R, en is samengesteld uit B en C (enkelvoudig, enkelwaardig) en D (enkelvoudig, meerwaardig). Dan maken we een nieuwe basisrelatie R1, met attributen B en C, plus een Foreign Key: de primaire sleutel van R. B en C vormen de primaire sleutel van R1 (als B op zich al uniciteit garandeert, laten we C vallen). We maken dan nog een nieuwe basisrelatie R2, met als attribuut de waarde van D, en een Foreign Key die wijst naar de primaire sleutel van R1. De primaire sleutel is het attribuut met de waarde van D. 7 Wat zijn functionele afhankelijkheden? Waarom kunnen deze niet automatisch worden afgeleid uit de specificatie van een basisrelatie? Een verzameling van attributen Y is functioneel afhankelijk van een verzameling van attributen X als de waarden van de attributen van Y op elk moment uniek worden vastgelegd door de waarden van de attributen van X. Als de attribuutwaarden van X bekend zijn, zijn daardoor ook de attribuutwaarden van Y gekend. X wordt de determinant van de functionele afhankelijkheid genoemd. De functionele afhankelijkheid kan zich binnen een enkele basisrelatie bevinden. Als er geen verwijzingen zijn d.m.v. (foreign) keys dan is er volgens het model ook geen verband tussen de informatie. 8 Wat zijn irreducibele functionele afhankelijkheden? Waarom wordt er bij normalisatie gewerkt met irreducibele functionele afhankelijkheden? Een verzameling van attributen Y is irreducibel functioneel afhankelijk van een verzameling van attributen X als Y functioneel afhankelijk is van X en er bovendien geldt dat: X en Y disjunct zijn en dus geen gemeenschappelijke attributen hebben. Er geen echte deelverzameling X' van X bestaat, zodat Y functioneel afhankelijk is van X'. Er wordt met irreducibele afhankelijkheden gewerkt omdat functionele afhankelijkheid alleen niet leidt tot consistente data. Immers, stel dat je bij 2NF gewone functionele afhankelijkheid zou nemen dan moet er helemaal geen optimalisatie gebeuren. Stel immers dat een element irreducibel afhankelijk is van enkel A terwijl de K.S {A,B} is. Dan breiden we gewoon de afhankelijkheid uit naar {A,B} en zou deze toch in 2NF staan. Bijgevolg kunnen we overtollige informatie opslaan.

19 9 Wat zijn meerwaardige functionele afhankelijkheden? Wanneer staat een relatie in vierde normaalvorm? Een verzameling van attributen Y is meerwaardig functioneel afhankelijk van een verzameling van attributen X als de waarden van de attributen van X op elk moment een collectie met meerdere waarden voor de attributen van Y vastleggen. Een relatie staat in vierde normaalvorm als ze in 'Boyce-Codd'-normaalvorm staat en geen enkele meerwaardige functionele afhankelijkheid bevat, tenzij dit de enige afhankelijkheid is die voorkomt in de relatie. Een relatie staat in 'Boyce-Codd'-normaalvorm als ze in eerste normaalvorm (alle datatypes atomair) staat en elke determinant een kandidaatsleutel is van de relatie.

20 Hoofdstuk 6: Fysiek databaseontwerp en SQL 1 Beschrijf in grote lijnen het fysieke ontwerp van relationele databases. Het databaseschema, de (alternatieve) sleutels, de integriteitsrestricties, de stored procedures en de triggers worden geïmplementeerd in een gekozen relationeel dbms d.m.v. SQL-instructies. Eerst worden de relaties aangemaakt en daarna wordt de inhoud toegevoegd. 2 Hoe is standaard-sql opgebouwd? SQL bestaat uit de datadefinitietaal met instructies voor fysiek databaseontwerp en de datamanipulatietaal met instructies voor datamanipulatie en -doorzoeking. Daarnaast zijn er ook nog instructies om te werken met view, opzetten van beveiligingsmechanismen en het delen van gegevens. 3 Wat zijn SQL-dialecten? Welke consequenties zijn er verbonden aan het werken met een SQL-dialect? SQL-dialecten zijn aangepaste implementaties van SQL door dbms-ontwerpers. (Bv. Oracle SQL) De consequenties hiervan is dat de gebruiker gebonden wordt aan de constructeur. Overgaan naar een ander dbms zal immers een zware conversie-inspanning vragen. Het voordeel is vaak een groter gebruikersgemak. 4 Welke zijn de typische stappen die het dbms onderneemt bij het verwerken van DMLinstructies? Een binnenkomende DML-instructie wordt eerst gevalideerd en bij de validatie omgezet naar een algebraïsche expressie. De algebraïsche expressie wordt dan geoptimaliseerd waarbij er een queryplan opgebouwd wordt. Dat queryplan wordt dan uitgevoerd waarna het resultaat teruggegeven wordt. 5 Wat is de rol van relationele expressies? Schets in grote lijnen hoe deze worden opgebouwd bij toevoeg-, verwijder- en opzoekinstructies. Alle queries worden omgezet naar relationele expressies. Voor toevoeg- en verwijderinstructies: INSERT INTO R1 VALUES (v1, v2,..., vn) Toevoegen INSERT INTO R1 (R2) (R1 UNION R2) Verwijderen (R1 UNION R2), met R2 is tuple van v1,..., vn DELETE FROM R WHERE c R EXCEPT (R WHERE c)

21 Voor opzoekinstructies: Stap Vertaling FROM R1, R2,..., Rn E1 = (R1 TIMES... TIMES Rn) WHERE c1 E2 = (E1 WHERE c1) GROUP BY A'1,..., A'm E3 = (E2 GROUP (A'1,..., A'm)) HAVING c2 E4 = (E3 WHERE c2) SELECT A1,..., Ap E5 = (E4 {A1,..., Ap}) (projectie) 6 Wat gebeurt er bij optimalisatie? Waarom wordt meestal niet doorgezocht naar de meest optimale oplossing? Het dbms zal eerst proberen om de relationele expressie om te vormen naar een equivalente expressie die identieke resultaten garandeert, maar efficiënter is om uit te voeren. Er wordt meestal niet gezocht naar een optimale oplossing omdat dit langer zou duren dan de opgeleverde tijdwinst. 7 Welke stappen kunnen nuttig zijn om de prestaties van bedrijfskritische queries te verbeteren? Begrijpen wat de query doet. Weten op welke relaties de query inwerkt. Zijn alle opgevraagde attributen nodig? Kan de WHERE clause optimaal gebruikmaken van de beschikbare indexen? Hoe vaak wordt de query uitgevoerd? (Hoe vaker, hoe belangrijker optimalisatie.) Toepassingsprogramma herontwerpen als de query steeds heel veel resultaten teruggeeft. Queryplan analyseren en eventueel gebruik indexen afdwingen. 8 Wat is een Query-By-Example (QBE)? Wat zijn de voor- en nadelen van het gebruik van QBE? Bij QBE worden DML-instructies opgebouwd door het invullen van grafische templates die de structuur weergeven van de (door de gebruiker geselecteerde) relaties uit de database. Het voordeel hiervan is dat de database toegankelijker wordt voor nieuwe gebruikers. Het nadeel is echter dat het moeilijk te koppelen is aan in huis ontwikkelde programmacode en dat niet alle SQL-queries zonder problemen kunnen worden omgezet naar QBE-specificaties.

22 Hoofdstuk 7: Objecttechnologie in databases 1 Wat zijn objecten en objecttypes? Objecten zijn autonome entiteiten, hiervan zijn de structuur en het gedrag vastgelegd in het objecttype. Objecten hebben een complexe waarde die de toestand van het object wordt genoemd. 2 Wat is inkapseling van operatoren? Wat is het voordeel hiervan? Inkapseling zorgt ervoor dat de methode van de operator verborgen wordt gehouden en slechts de signatuur van de operator zichtbaar wordt gemaakt voor de gebruiker. Het voordeel hiervan is dat implementatiedetails afgeschermd worden en dat de code makkelijk onderhouden kan worden. 3 Wat is overerving? Waarom is overerving nuttig? Overerving is het overnemen van de toestand en het gedrag van andere objecttypes. Het nut hiervan is dat het mogelijk wordt om specifiekere objecttypes op te bouwen uit algemenere objecttypes en daarbij de specificaties van de structurele kenmerken en operatoren van de algemenere objecttypes opnieuw te kunnen gebruiken. 4 Geef twee voorbeelden van operatoroverlading en -polymorfisme. Bv. Teken(Figuur). Als de figuur een cirkel is zal er iets anders getekend worden dan als de figuur een vierkant is. 5 Hoe werken het naamgevings- en bereikbaarheidsmechanisme voor persistentie? Het naamgevingsmechanisme houdt in dat een object persistent kan worden gemaakt door het een persistente naam te geven, die uniek is over de hele database. Het bereikbaarheidsmechanisme zorgt ervoor dat elk object dat voorkomt in (of waarnaar verwezen wordt vanuit) een persistent object, ook persistent gemaakt wordt. (Persistente objecten zijn objecten die blijven bestaan zelfs na het afsluiten van het toepassingsprogramma.) 6 Waarom zijn objectidentificatoren nuttig? Objectidentificatoren zijn nuttig om objecten uniek te definiëren. Bovendien verandert de objectidentificator niet. Join operaties kunnen vermeden worden door gewoon de objectidentificator te gebruiken om van een object naar andere objecten te verwijzen. 7 Wat zijn literaaltypes en objecttypes volgens het ODMG-objectmodel? Wat zouden de gevolgen zijn, als alle types objecttypes zouden zijn? Bespreek dit. Een objecttype modelleert de gemeenschappelijke structuur- en gedragskenmerken van een groep objecten (instanties van dat objecttype). Literaaltypes zijn de bouwstenen die gebruikt worden voor het modelleren van structurele kenmerken.

23 Als beide types objecttypes zouden zijn, zou alles persistent moeten kunnen opgeslagen worden en zouden dus ook aan literalen (instanties van literaaltypes) objectidentificatoren toegekend moeten worden. (Literalen en niet-persistente objecten hebben normaal geen objectidentificator.) 8 Waarvoor dienen interfaces en klassen? Waarom zijn interfaces nuttig? Wat is het verschil tussen een objecttype en een klasse? Interfaces zijn bouwstenen om het gedrag te modelleren. Klassen dienen om de structurele kenmerken en gedragskenmerken van een objecttype vast te leggen. Objecttypes kunnen opgebouwd worden uit literalen, interfaces en klassen, terwijl klassen kunnen opgebouwd worden uit attributen, relaties en operatoren. Objecttypes zijn dus algemener. 9 Bespreek de twee manieren waarop in ODMG verwantschappen tussen klassen kunnen worden gemodelleerd. Geef de voor- en nadelen van elk. Verwantschappen kunnen ofwel uni-directioneel ofwel bi-directioneel worden gemodelleerd. Bij de uni-directionele werkwijze wordt de gerelateerde klasse opgenomen als type van een attribuut. Bij de bi-directionele werkwijze worden twee relaties gebruikt: één in elk van de betrokken klassen. Uni-directioneel: + eenvoudig - geen referentiële integriteitscontrole Bi-directioneel: + referentiële integriteitscontrole door twee relaties die elkaars inverse zijn - extra relatie aanmaken t.o.v. uni-directioneel 10 Welke vormen van overerving worden ondersteund in ODMG? 'Isa'-overerving: het supertype moet een interface zijn en het subtype moet een klasse of een interface zijn. Meerdere interfaces als supertype zijn toegelaten, maar dan mag er wel geen operatoroverloading zijn. 'Extends'-overerving: zowel het supertype als het subtype moeten klassen zijn. Meervoudige overerving is niet toegestaan, maar operatoroverloading is dat wel. 11 Wat zijn extenties? In welke opzichten verschilt het ODMG-concept extentie van het relationeel concept extentie? Extenties zijn benoemde persistente verzamelingen die bestaan uit alle persistente objecten van het objecttype. Entiteiten bij het relationeel model worden sowieso in de extentie geplaatst, terwijl objecten bij het objectgeoriënteerd model daar enkel in geplaatst worden als ze persistent zijn. Bij het relationeel model is een extentie mooi uit rijen van een tabel opgebouwd, terwijl dat bij ODMG niet zo mooi lineair opgebouwd is.

Samenvatting Databanken

Samenvatting Databanken Samenvatting Databanken D.E.R.P. 26 december 2017 Inleiding Deze samenvatting is gemaakt voor De Examen Repo Plaats (DERP), een github organisatie die te vinden is op http://github.ugent.be/derp, die dergelijke

Nadere informatie

Informatie & Databases

Informatie & Databases Informatie Wat is informatie en waaruit het bestaat? Stel op een kaart staat het getal 37 geschreven. Wat kun je dan zeggen van het cijfer 37? Niets bijzonders, toch? Alleen dat het een getal is. Gaat

Nadere informatie

H 1 Databases en databasesystemen (10 punten) a. Veel van de huidige databases zijn gebaseerd op een drie-laags systeemarchitectuur:

H 1 Databases en databasesystemen (10 punten) a. Veel van de huidige databases zijn gebaseerd op een drie-laags systeemarchitectuur: Tentamen Engineering 2007/2008 Opleiding: Embedded Systems Opl.variant: vt Groep/Klas: T Engineering Volledige vaknaam: Databases in Dag en Datum: woensdag, Tijd: 18.1-18.4 Technische Automatisering Vakcode:

Nadere informatie

Vragen Databases. Hoofdstuk 1

Vragen Databases. Hoofdstuk 1 Vragen Databases Hoofdstuk 1 1. Data: gegeven feiten Informatie: gegeven feiten + de betekenis, de context. Nuttig: huidige databanksystemen zijn enkel in staat de data op te slaan (de informatie is vager,

Nadere informatie

Samenvatting: Databanken

Samenvatting: Databanken Samenvatting: Databanken Hoofdstuk 1 1.1 Enkele basisconcepten Data zijn gegeven feiten Informatie > betekenis van gegevens Een database is een collectie van persistente (permanent geheugen van de pc)

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

Samenvatting Databanken D.E.R.P.

Samenvatting Databanken D.E.R.P. Samenvatting Databanken D.E.R.P. 26 december 2017 Inleiding Deze samenvatting is gemaakt voor De Examen Repo Plaats (DERP), een github organisatie die te vinden is op http://github.ugent.be/derp, die dergelijke

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

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

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003 SQL Aantekeningen 3 Maarten de Rijke mdr@science.uva.nl 22 mei 2003 Samenvatting In deze aflevering: het selecteren van tuples, operaties op strings, en aggregatie functies. Verder kijken we naar iets

Nadere informatie

Relationele databanken

Relationele databanken Relationele databanken De meeste databanken zijn relationeel. Gegevens in tabellen. Relationele model stoelt op de verzamelingenleer (leer der relaties). Relatie betekent hier tabel. Grote kracht van deze

Nadere informatie

1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model...

1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model... 1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model... 4 1.1.4. Wat is SQL?... 6 1.1.5. Verschillende categorieên

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

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

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

NHibernate als ORM oplossing

NHibernate als ORM oplossing NHibernate als ORM oplossing Weg met de SQL Queries Wat is ORM? ORM staat in dit geval voor Object Relational Mapping, niet te verwarren met Object Role Modeling. ORM vertaalt een objectmodel naar een

Nadere informatie

SQL datadefinitietaal

SQL datadefinitietaal SQL datadefinitietaal We kunnen er het schema van de database mee bepalen: metadata toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: CREATE : toevoegen van metagegevens DROP : verwijderen

Nadere informatie

Samenvatting Databanken

Samenvatting Databanken Pieter Reuse p. 1/14 Samenvatting Databanken 0.1 Voorwoord Dit hoort bij Principes van Databases door Guy De Tré die het vak Databanken doceert aan de UGent. Academiejaar 2010-2011, zittijd januari. De

Nadere informatie

Les 10 : Aanmaken van een database (deel2).

Les 10 : Aanmaken van een database (deel2). Les 10 : Aanmaken van een database (deel2). Wat is een database? Een centrale opslagruimte voor gegevens. Alle informatie wordt centraal opgeslagen en kan door iedereen geraadpleegd worden. Voordelen van

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

Informatie Systeem Ontwikkeling ISO 2R290

Informatie Systeem Ontwikkeling ISO 2R290 Informatie Systeem Ontwikkeling ISO 2R290 docent: Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. doel van dit vak kennis van en inzicht in basisbegrippen over informatiesystemen

Nadere informatie

ER-modeling. Datamodellering Wat is ER-modeling?

ER-modeling. Datamodellering Wat is ER-modeling? ER-modeling Datamodellering 2008 1 Wat is ER-modeling? ER-modelleren: top-down benadering bedacht door P. Chen 1976, paper in ACM Transactions on Database Systems Codd (Relationeel Model) aanvankelijk

Nadere informatie

ER-modeling. Wat is ER-modeling? ERD & relationeel model. ER-benadering DMO Datamodellering 2008

ER-modeling. Wat is ER-modeling? ERD & relationeel model. ER-benadering DMO Datamodellering 2008 ER-modeling Datamodellering 2008 1 Wat is ER-modeling? ER-modelleren: top-down benadering bedacht door P. Chen 1976, paper in ACM Transactions on Database Systems Codd (Relationeel Model) aanvankelijk

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

Technisch Ontwerp W e b s i t e W O S I

Technisch Ontwerp W e b s i t e W O S I Technisch Ontwerp W e b s i t e W O S I WOSI Ruud Jungbacker en Michael de Vries - Technisch ontwerp Website Document historie Versie(s) Versie Datum Status Omschrijving / wijzigingen 0.1 20 nov 2008 Concept

Nadere informatie

Query SQL Boekje. Fredrik Hamer

Query SQL Boekje. Fredrik Hamer Query SQL Boekje Query SQL Boekje Fredrik Hamer Schrijver: Fredrik Hamer Coverontwerp: Fredrik Hamer ISBN: 9789402162103 Fredrik Hamer Inhoudsopgave A. Aanhef bepalen 17 Aantal 18 Aantal dagen tussen

Nadere informatie

Hoofdstuk: 1 Principes van databases

Hoofdstuk: 1 Principes van databases DBSQLF Databases en SQL Hoofdstuk: 1 Principes van databases aant Css: 4 732 blz 9 1.1 Doel ve database - om op het juiste moment op de juiste plaats de juiste gegevens beschikbaar te hebben richten we

Nadere informatie

Maak automatisch een geschikte configuratie van een softwaresysteem;

Maak automatisch een geschikte configuratie van een softwaresysteem; Joost Vennekens joost.vennekens@kuleuven.be Technologiecampus De Nayer We zijn geïnteresseerd in het oplossen van combinatorische problemen, zoals bijvoorbeeld: Bereken een lessenrooster die aan een aantal

Nadere informatie

Automatisering voor Financiële Dienstverleners. Werken met Queries en Merge Documenten. For more information visit our website at www.pyrrho.

Automatisering voor Financiële Dienstverleners. Werken met Queries en Merge Documenten. For more information visit our website at www.pyrrho. Automatisering voor Financiële Dienstverleners Werken met Queries en Merge Documenten For more information visit our website at www.pyrrho.com Date: Document Nr: 30 maart, 2007 UBizzMerge, Versie 4.0 Status:

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

Datamodelleren en databases 2011

Datamodelleren en databases 2011 Datamodelleren en databases 21 Capita selecta 1 In dit college Modelleren Normaliseren Functionele afhankelijkheid 1-3N M:N-relaties, associatieve entiteittypes, ternaire relaties Weak entiteittypes Multivalued

Nadere informatie

Les 2 Eenvoudige queries

Les 2 Eenvoudige queries Les 2 Eenvoudige queries XAMP Apache server ( http ) mysql server PHP myadmin IAM SQL oefeningen Database phpmyadmin Import : sql_producten.sql, sql_winkel.sql, sql_festival.sql SAMS SQL in 10 minuten

Nadere informatie

Systeemontwikkeling, Hoofdstuk 4, Tabellen maken in MS Access 2010

Systeemontwikkeling, Hoofdstuk 4, Tabellen maken in MS Access 2010 4 Tabellen maken in MS Access In dit hoofdstuk starten we met de bouw van ons informatiesysteem met de belangrijkste bouwstenen: de tabellen. 4.1 Starten met MS Access Als je het programma Microsoft Access

Nadere informatie

ISO Query By Example

ISO Query By Example ISO Query By Example Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. QBE waarom nog een query taal? de relationele algebra en SQL geven niet alleen een specificatie van een query-resultaat,

Nadere informatie

Technische nota AbiFire5 Rapporten maken via ODBC

Technische nota AbiFire5 Rapporten maken via ODBC Technische nota AbiFire5 Rapporten maken via ODBC Laatste revisie: 29 juli 2009 Inhoudsopgave Inleiding... 2 1 Installatie ODBC driver... 2 2 Systeeminstellingen in AbiFire5... 3 2.1 Aanmaken extern profiel...

Nadere informatie

Koppeling met een database

Koppeling met een database PHP en MySQL Koppeling met een database 11.1 Inleiding In PHP is het eenvoudig om een koppeling te maken met een database. Een database kan diverse gegevens bewaren die met PHP aangeroepen en/of bewerkt

Nadere informatie

Dataconversie met Oracle Spatial

Dataconversie met Oracle Spatial Realworld klantendag 19 september 2013 Voorstellen 1 2 Computer Science & Engineering (TU/e) 3 Realworld Systems 4 Datamigraties Alliander Stedin Agenda 1 Architectuur Inleiding Ontwerp migratie 2 Rapportage

Nadere informatie

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat:

Kennis na het volgen van de training. Na het volgen van deze training bent u in staat: Training Trainingscode Duur Gepubliceerd Taal Type Leermethode Kosten SF2015V8 4 dagen 02/02/2015 Nederlands & Engels Developer, basis Invidueel & klassikaal Op aanvraag Deze training richt zich op het

Nadere informatie

Thinking of development

Thinking of development Thinking of development Databases Arjan Scherpenisse HKU / Miraclethings Agenda voor vandaag Opdracht tussenstand State diagram / Observer pattern Bret Victor Databases 2/42 Opdracht tussenstand Slides

Nadere informatie

[TOETS SQL INLEIDING]

[TOETS SQL INLEIDING] 2011 ROC ter AA afdeling T&T Team ICT Toets SQL Inleiding Duur: 100 minuten Hulpmiddelen: Alleen Pen en Papier Er is één voorblad en vijf opgaven pagina s. Normering: Deel I: 14 punten (7x2 Deel II: 10

Nadere informatie

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster 4. 4. Inhoud rste BAC Toegepaste Biologische Wetenschappen Hoofdstuk 4 Databank Terminologie, Navigeren, Importeren Tabellen Records/Velden manipuleren Queries (Vragen) [Ook in SQL] sorteren filter volgens

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

Een website maken met databasetoegang.

Een website maken met databasetoegang. Hoofdstuk 5 Een website maken met databasetoegang. In dit hoofdstuk gaan we het weblog dat je in hoofdstuk 4 hebt gemaakt verder uitbreiden. Een belangrijk onderdeel wordt toegevoegd aan de applicatie,

Nadere informatie

DATAMODELLERING BASIS UML KLASSEMODEL

DATAMODELLERING BASIS UML KLASSEMODEL DATAMODELLERING BASIS UML KLASSEMODEL Inleiding In dit whitepaper wordt de datamodelleervorm basis UML klassemodel beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen.

Nadere informatie

EXAMEN juni 2018 Gegevensbanken

EXAMEN juni 2018 Gegevensbanken 22 juni 2018 9.00 u. EXAMEN juni 2018 Gegevensbanken Het examen bestaat uit drie vragen die schriftelijk uitgewerkt worden. Instructies a. De vragen moeten worden opgelost in de volgorde waarin ze genummerd

Nadere informatie

Dat we scherpe en compacte schema s kunnen maken voor berichten in koppelvlakken, en die ook kunnen beheren. Dat we op een consistente manier

Dat we scherpe en compacte schema s kunnen maken voor berichten in koppelvlakken, en die ook kunnen beheren. Dat we op een consistente manier 1 We willen vanuit KING StUF koppelvlakken ontwikkelen vanuit een modelgedreven aanpak. Waar we in het verleden nogal eens de standaarden maakten en beoordeelden vanuit xml-schemabestanden, willen we dat

Nadere informatie

Technische nota AbiFire Rapporten maken via ODBC

Technische nota AbiFire Rapporten maken via ODBC Technische nota AbiFire Rapporten maken via ODBC Laatste revisie: 23 januari 2018 Inhoudsopgave 1 Inleiding... 2 2 Systeeminstellingen in AbiFire... 3 2.1 Aanmaken extern profiel... 3 2.2 Toewijzing extern

Nadere informatie

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd. SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Relationele databases

Nadere informatie

DATAMODELLERING CRUD MATRIX

DATAMODELLERING CRUD MATRIX DATAMODELLERING CRUD MATRIX Inleiding In dit whitepaper wordt de datamodelleervorm CRUD Matrix beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen. Wil je een beeld

Nadere informatie

12. Meer dan één tabel gebruiken en sub-queries

12. Meer dan één tabel gebruiken en sub-queries 12. Meer dan één tabel gebruiken en sub-queries 12.1. Inleiding In de vorige hoofdstukken heb je telkens queries uitgevoerd op één tabel. In de praktijk is het raadplegen van gegevens over het algemeen

Nadere informatie

Rapporten. Labels en Rapporten in Atlantis 1. Atlantis heeft twee manieren om output te genereren: 1. labels 2. rapporten (reports)

Rapporten. Labels en Rapporten in Atlantis 1. Atlantis heeft twee manieren om output te genereren: 1. labels 2. rapporten (reports) Labels en Rapporten in Atlantis 1 Atlantis heeft twee manieren om output te genereren: 1. labels 2. rapporten (reports) Rapporten Een rapport is eigenlijk altijd een tekst bestand, die vorm wordt gegeven

Nadere informatie

CAK Installatiehandleiding

CAK Installatiehandleiding CAK Installatiehandleiding Versie 1.1 Applicatie om centraal de uren van de zorgaanbieders door de gemeente laten aanbieden aan het CAK. Eerst moeten de tabellen, views, packages etc worden aangemaakt.

Nadere informatie

DATAMODELLERING ER DIAGRAM

DATAMODELLERING ER DIAGRAM DATAMODELLERING ER DIAGRAM Inleiding In dit whitepaper wordt de datamodelleervorm ER diagram beschreven. Deze modelleervorm staat in verhouding tot een aantal andere modelleervormen. Wil je een beeld krijgen

Nadere informatie

Structured Query Language (SQL)

Structured Query Language (SQL) Structured Query Language (SQL) Huub de Beer Eindhoven, 4 juni 2011 Database: in essentie 0 of meer tabellen elke tabel nul of meer kolommen (of velden) elke tabel nul of meer unieke rijen elke query werkt

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

Tools voor canonieke datamodellering Bert Dingemans

Tools voor canonieke datamodellering Bert Dingemans Tools voor canonieke datamodellering Tools voor canonieke datamodellering Bert Dingemans Abstract Canonieke modellen worden al snel omvangrijk en complex te beheren. Dit whitepaper beschrijft een werkwijze

Nadere informatie

Les 11 : Basis SQL (deel2).

Les 11 : Basis SQL (deel2). Les 11 : Basis SQL (deel2). Wat is SQL? SQL gaan we gebruiken voor het raadplegen van de database. We gaan gegevens invoegen in de database, selecteren, aanpassen en verwijderen van de database. Om dit

Nadere informatie

Gebruikershandleiding

Gebruikershandleiding Release 1.3 Gebruikershandleiding Datum: oktober 2012 All rights reserved Alle rechten zijn voorbehouden. Deze documentatie blijft eigendom van Ternair Software Solutions b.v. en is uitsluitend bedoeld

Nadere informatie

SQL en XML. XML schema s & DMO. Entiteitsklasse en attribuut. SQL en XML. Datamodellering Schema een ruim begrip (zie Møller, p.

SQL en XML. XML schema s & DMO. Entiteitsklasse en attribuut. SQL en XML. Datamodellering Schema een ruim begrip (zie Møller, p. SQL en XML Datamodellering 2007 1 XML schema s & DMO Schema een ruim begrip (zie Møller, p. 96) DTD schema W3C Schema In dit overzicht: Wat zijn de belangrijke zaken uit XML voor datamodellering? (onvolledig)

Nadere informatie

vanuit de technische en organisatorische omgeving, werk-verdeling, budget, planning, en hergebruik van componenten. Het documenteren van SA dient

vanuit de technische en organisatorische omgeving, werk-verdeling, budget, planning, en hergebruik van componenten. Het documenteren van SA dient 9 Samenvatting Software heeft vooruitgang in veel vakgebieden mogelijk gemaakt en heeft een toenemend invloed op ons leven en de samenleving in zijn geheel. Software wordt gebruikt in computers, communicatienetwerken,

Nadere informatie

Inrichting Systeem: Locaties & Toegang

Inrichting Systeem: Locaties & Toegang Inrichting Systeem: Locaties & Toegang EasySecure International B.V. +31(0)88 0000 083 Info@EasySecure.nl Support.EasySecure.nl v2.0.11 22-09-2014 In deze handleidingen worden de volgende functies binnen

Nadere informatie

opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren

opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren opstarthandleiding mysqlworkbench November 2012 Fons van Kesteren HVA- CMD- V1 Datamodelleren Handleiding om te beginnen met mysql WorkBench. In twee stappen 0. WorkBench verbinden met mysql 1. een hallo

Nadere informatie

Het belang van. Data Modellering. GEMINIT Training. Data Modellering. Frédéric BARBIER

Het belang van. Data Modellering. GEMINIT Training. Data Modellering. Frédéric BARBIER Het belang van Data Modellering Studiedag Informatiemanagement Politeia, 22 februari 2013, Gent Open data en de cloud: een revolutie in de informatiehuishouding van de overheid Training Data Modellering

Nadere informatie

Midi PDF Bladmuziek lezer

Midi PDF Bladmuziek lezer Inleiding. Ruim 20 ordners aan bladmuziek, meeste daarvan uitgeprint van een PDF. Even snel een nummer opzoeken wil dan ook niet, terwijl ik alles wel op alfabetische volgorde heb. Dat was het niet helemaal

Nadere informatie

het bank voorbeeld ISO Datamodelleren modelleren met het E-R R model een database ontwerpen verzamelingen van relaties (verbanden)

het bank voorbeeld ISO Datamodelleren modelleren met het E-R R model een database ontwerpen verzamelingen van relaties (verbanden) het bank voorbeeld ISO Datamodelleren Prof. dr. Paul De Bra waarom zijn er drie tabellen om klanten en rekeningen voor te stellen? customer (customer_name, customer_street, customer_city) account (account_number,

Nadere informatie

EXIN Databases en SQL Foundation

EXIN Databases en SQL Foundation EXIN Databases en SQL Foundation Preparation Guide Editie 201608 Copyright 2016 EXIN All rights reserved. No part of this publication may be published, reproduced, copied or stored in a data processing

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

ISO Datamodelleren. Prof. dr. Paul De Bra. Gebaseerd op: Database System Concepts, 5th Ed. Silberschatz, Korth and Sudarshan

ISO Datamodelleren. Prof. dr. Paul De Bra. Gebaseerd op: Database System Concepts, 5th Ed. Silberschatz, Korth and Sudarshan ISO Datamodelleren Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. het bank voorbeeld waarom zijn er drie tabellen om klanten en rekeningen voor te stellen? customer (customer_name,

Nadere informatie

Normaliseren versie 1.1

Normaliseren versie 1.1 Normaliseren versie 1.1 Datamodellering 27 1 Wat is normaliseren? Data organiseren in tabelvorm, zó dat: er minimale redundantie is update operaties (toevoegen, wijzigen, verwijderen) eenvoudig zijn uit

Nadere informatie

Van CaseTalk naar een database in SQLite studio

Van CaseTalk naar een database in SQLite studio Van CaseTalk naar een database in SQLite studio Dit document legt uit hoe je een SQL export uit CaseTalk kunt importeren in het DBMS (Database Management System) SQLite Studio. SQLIte studio is handig

Nadere informatie

0.1 Verdieping BAG Bevragen. versie 0.1. Datum. 1 juli Document versie. 0.1 ConceptICT Services Keten RZDirectie IT

0.1 Verdieping BAG Bevragen. versie 0.1. Datum. 1 juli Document versie. 0.1 ConceptICT Services Keten RZDirectie IT 0.1 Verdieping BAG Bevragen versie 0.1 Datum 1 juli 2016 Document versie 0.1 ConceptICT Services Keten RZDirectie IT Versiehistorie Versie datum Omschrijving 0.1 01-07-2016 Initiële versie. Versie 0.1

Nadere informatie

EXAMEN juni 2016 Gegevensbanken

EXAMEN juni 2016 Gegevensbanken EXAMEN juni 2016 Gegevensbanken 8 juni 2016 14.00 u. Het examen bestaat uit twee vragen die schriftelijk uitgewerkt worden. Instructies a. De vragen moeten worden opgelost in de volgorde waarin ze genummerd

Nadere informatie

Opleiding SQL / Systeemanalyse IBK ERD. Hogeschool Rotterdam

Opleiding SQL / Systeemanalyse IBK ERD. Hogeschool Rotterdam Opleiding SQL / Systeemanalyse IBK ERD Hogeschool Rotterdam ERD ERD = Entity Relationship diagram is een model of diagram voor het inzichtelijk te maken van een conceptueel datamodel. Het is een visuele

Nadere informatie

Canonieke Data Modellering op basis van ArchiMate. Canonieke Data Modellering op basis van Archimate Bert Dingemans

Canonieke Data Modellering op basis van ArchiMate. Canonieke Data Modellering op basis van Archimate Bert Dingemans Canonieke Data Modellering op basis van ArchiMate Canonieke Data Modellering op basis van Archimate Bert Dingemans Abstract Modelleren op basis van de open standard ArchiMate is een goed uitgangspunt voor

Nadere informatie

SQL & Relationele datamodellen in interactieve media

SQL & Relationele datamodellen in interactieve media SQL & Relationele datamodellen in interactieve media HVA-CMD-V1-datamodelleren oefeningen deel 1: SQL 2012-2013 Inhoud Inhoud... 2 Selecties uit een enkelvoudige datatabel... 3 Selecties uit een meerdere

Nadere informatie

Les 15 : updaten van gegevens in de database (deel2).

Les 15 : updaten van gegevens in de database (deel2). Les 15 : updaten van gegevens in de database (deel2). In de volgende reeks lessen zal alle vorige leerstof uitgebreid aan het bod komen. Zie ook de vorige lessen en documenten om informatie op te zoeken

Nadere informatie

Cursus Access voor Beginners Hoofdstuk 2

Cursus Access voor Beginners Hoofdstuk 2 Cursus Access voor Beginners Hoofdstuk 2 Handleiding van Auteur: OctaFisH April 2011 handleiding: Cursus Access voor Beginners Hoofdstuk 2 Cursus Access voor Beginners Hoofdstuk 2 Auteur: OctaFisH In deze

Nadere informatie

MA!N Rapportages en Analyses

MA!N Rapportages en Analyses MA!N Rapportages en Analyses Auteur Versie CE-iT 1.2 Inhoud 1 Inleiding... 3 2 Microsoft Excel Pivot analyses... 4 2.1 Verbinding met database... 4 2.2 Data analyseren... 5 2.3 Analyses verversen... 6

Nadere informatie

SQL: query taal met. woorden. ISO SQL: Structured Query Language. de SQL basis query structuur. voorbeeld: doel: intuitieve query taal

SQL: query taal met. woorden. ISO SQL: Structured Query Language. de SQL basis query structuur. voorbeeld: doel: intuitieve query taal SQL: query taal met woorden ISO SQL: Structured Query Language Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. doel: intuitieve query taal gebruikt Engelse woorden: select, from,

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

Systeemontwikkeling, Hoofdstuk 6, Query s, macro s en rapporten in MS Access 2010

Systeemontwikkeling, Hoofdstuk 6, Query s, macro s en rapporten in MS Access 2010 6. Query s, macro s en rapporten In dit hoofdstuk zetten we de puntjes op de i. Alle processen zullen in de aangemaakte formulieren met de gebruikersmenu s van de secretaris, penningmeester en wedstrijdsecretaris,

Nadere informatie

Het omzetten van een ER-diagram naar SQL

Het omzetten van een ER-diagram naar SQL Het omzetten van een ER-diagram naar SQL Huub de Beer Eindhoven, 4 juni 2011 Omzetting ER-diagram naar SQL in twee stappen 1: ER-Diagram relationeel model Onderwerp van hoofdstuk 3 Entiteittype relatie,

Nadere informatie

Vragen hoofdstuk 1: Resultaat

Vragen hoofdstuk 1: Resultaat Vragen hoofdstuk 1: Resultaat Het ontwikkelen van informatiesystemen bevat volgende activiteiten: Analyse van het probleem. Toewijzen van resources. Ontwerp van de onderdelen van het systeem. Bouw van

Nadere informatie

SR.NET Prikklok Handleiding Versie 1.0

SR.NET Prikklok Handleiding Versie 1.0 SR.NET Prikklok Handleiding Versie 1.0 Copyright @ 1988-2014 * CVBA Seynaeve Rudi * Alle Rechten Voorbehouden SR.NET prikklok - INHOUDSOPGAVE 1. Inleiding 1.1 Systeemeisen...... 1.2 Voorbeeldconfiguraties......

Nadere informatie

Naam project Lost And Found Animals Lokaal gehost Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50%

Naam project Lost And Found Animals Lokaal gehost Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50% Naam project Lost And Found Animals Url Lokaal gehost Groepsleden Percentage van het totaal geleverde werk 1 Cindy Jansen 50% 2 Eline Steyvers 50% 1. Beveiliging in de toepassing Naam gebruiker Wachtwoord

Nadere informatie

ISO SQL: Structured Query Language

ISO SQL: Structured Query Language ISO SQL: Structured Query Language Prof. dr. Paul De Bra Gebaseerd op: Database System Concepts, 5th Ed. SQL: query taal met woorden doel: intuitieve query taal gebruikt Engelse woorden: select, from,

Nadere informatie

Na bestudering van dit hoofdstuk, moet je tot het volgende in staat zijn:

Na bestudering van dit hoofdstuk, moet je tot het volgende in staat zijn: 5. De oefendatabase 5.1. Inleiding In de volgende hoofdstukken ga je oefenen / werken met SQL. Om te kunnen oefenen heb je natuurlijk wel een database nodig. In dit hoofdstuk wordt besproken hoe je deze

Nadere informatie

Excel Controller. Handleiding Excel Controller Wizard

Excel Controller. Handleiding Excel Controller Wizard Excel Controller Handleiding Excel Controller Wizard 1 Inhoud Inleiding... 3 Eigen SQL... 3 Stap 1 Eigen SQL... 3 Stap 2 Testen SQL... 8 Stap 3 Wizard... 11 Stap 4 Parameters... 13 Voorbeeld Eigen Parameter...

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

Als er besloten is een database op te stellen dient men een analyse van de informatiegegevens te volbrengen.

Als er besloten is een database op te stellen dient men een analyse van de informatiegegevens te volbrengen. Normaliseren Een van de voornaamste rollen in een informatie systeem is het bewaren van gegevens en liefst over een lange tijd. Meestal doen we dat door middel van een gegevensbank of databank. Deze gestructureerde,

Nadere informatie

Objecttype Reactie Actie EGEM

Objecttype Reactie Actie EGEM 1 Overzicht ontvangen commentaar op het Referentiemodel Gemeentelijke Basisgegeven Zaken v0.9 (Herkomst van de reacties is bij EGEM bekend) 1 2.2 / 13 Besluit Een twijfelgeval is nog BESLUIT, goed beschouwd

Nadere informatie

AFO 113 Authoritybeheer

AFO 113 Authoritybeheer AFO 113 Authoritybeheer 113.1 Inleiding Authority records die gebruikt worden in de catalogusmodule kunnen via deze AFO beheerd worden. U kunt hier records opzoeken, wijzigen, verwijderen of toevoegen.

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

1. Databanken. Wat is een databank? Verschillende opslagmethodes

1. Databanken. Wat is een databank? Verschillende opslagmethodes 1. Databanken Wat is een databank? Verschillende opslagmethodes Tekst bestanden Spreadsheet Relationele gegevensbanken Relationeel model De gestandaardiseerde opvraagtaal SQL Beheer van een mysql databank

Nadere informatie

Gebruik van verschilbestanden

Gebruik van verschilbestanden Gebruik van verschilbestanden Inhoud Gebruik van verschilbestanden 1 Inhoud 2 1 Verschilbestanden 3 1.1 Inleiding 3 1.2 Bestanden en identificatoren 3 1.3 Onderzoeken waar de actuele versie verschilt van

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

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren November 2014 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 1 Inhoudstafel 1 Introductie 3 1.1

Nadere informatie

Workshop voorbereiden Authentieke instructiemodel

Workshop voorbereiden Authentieke instructiemodel Workshop voorbereiden Authentieke instructiemodel Workshop voorbereiden Uitleg Start De workshop start met een echte, herkenbare en uitdagende situatie. (v.b. het is een probleem, een prestatie, het heeft

Nadere informatie

Entiteit Zaken en gebeurtenissen waarvan gegevens moeten worden vastgelegd worden een entiteit genoemd: b.v. mens, voorstelling, auto.

Entiteit Zaken en gebeurtenissen waarvan gegevens moeten worden vastgelegd worden een entiteit genoemd: b.v. mens, voorstelling, auto. Relationele databases SqlServer en Oracle zijn relationele client server databases. De verwerking van de opdrachten vindt plaats op de server. Access is een relationele pc database. De verwerking van de

Nadere informatie