Samenvatting Databanken

Maat: px
Weergave met pagina beginnen:

Download "Samenvatting Databanken"

Transcriptie

1 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 die dergelijke samenvattingen bevat. Het doel van DERP is om een plaats te hebben voor de LATEX broncode van samenvattingen, zodat deze altijd up to date kunnen gehouden worden. Deze specieke samenvatting is te vinden in de releases van ugent.be/derp/databanken. Als je een fout tegenkomt, of bepaalde stukken wilt uitbreiden, kan dat altijd door de repo te forken en een pull request aan te maken met jouw aanpassingen. Na een review kan jouw contributie deel uitmaken van het DERP project en zo toekomstige studentjes uit de nood helpen. Contributors Deze samenvatting is FOSS met dank aan: Thibault Van Gheluwe Lorin Werthen-Brabants Ilion Beyst Jeroen De Clerck Maxime Fernández Alonso

2 1 Hoofdstuk 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 bvb: cijfers, getallen, symbolen, karakters en woorden die je dagelijks tegenkomt. Informatie verwijst daarnaast ook naar de betekenis van de data. Databanken zijn enkel in staat om data op te slaan, informatie is vaak vager of kan moeilijk objectief bekeken worden. 1.2 Wat is een database, een databasesysteem en een databasemanagementsysteem? Een database is een collectie van persistente data. Persistent geeft aan dat de data gedurende een zekere tijd in het permanent geheugen van een computersysteem wordt opgeslagen. Een databasesysteem is een computersysteem voor het beheer van databases. (hardware) Een databasemanagementsysteem is de softwarecomponent van een databasesysteem die instaat voor het beheer van de databases bvb: MySQL, Oracle, MS Acces, Wat zijn de voordelen van een `drielagen'-architectuur voor een databasemanagementsysteem? Welke lagen worden daarbij onderscheiden? De interne, de logische en de externe laag. Voordelen: Het verkrijgen van dataonafhankelijkheid (de data kan aangepast worden in 1 laag zonder eect te hebben op de andere lagen), waardoor het makkelijker te onderhouden is. De externe laag biedt beveiliging en afscherming van complexiteit. 1.4 Uit welke componenten bestaat een databasesysteem? De hardware (CPU en computergeheugen), de data (records in de vorm van bestanden) en de software (databasemanagementsysteem en communicatiesoftware). 1.5 Schets de geheugenhiërarchie. Bespreek de rol van de verschillende types geheugen die hierin voorkomen met betrekking tot databases. Waarom zijn de databasebuers belangrijk? Primair geheugen: Statisch RAM-geheugen: Ook wel cachegeheugen, wordt door de CPU gebruikt om uitvoering van programma's te versnellen. Dynamisch RAM-geheugen: Ook wel hoofdgeheugen, we gebruiken het voor de tijdelijke opslag van data en programmacode. Secundair geheugen: Magneetschijfgeheugens: HDD, bestaat uit een aantal pages, de databasebuer uit het primair geheugen wordt even groot gekozen als zo een page, daar door wordt per IO-bewerking één pagina gekopieerd. CD-rom en dvd-geheugens: Wordt gebruikt als de DB enkel moet worden geraadpleegd. De magneetbandgeheugens: Wordt gebruikt voorachivering, alleen ecient bij sequentiële toegang. (Wordt soms gezien als tertair geheugen.) Databasebuers worden in het primair geheugen geplaatst zodat de inhoud van de ene buer kan ingelezen of weggeschreven worden terwijl de CPU de data uit de andere buer verwerkt. Het databasesysteem wordt hierdoor sneller en eciënter. 1

3 1.6 Wat zijn databaserecords? Welke types kan men onderscheiden? Hoe kunnen deze worden beschreven? Een of meer velden met data. In het secundair geheugen opgeslagen als bestanden. Een recordtype wordt gekarakteriseerd door een naam en een datatype (standaardtypes, geen string) Recordtypes kunnen een vaste of een variabele lengte hebben. RECORDTYPE naam(var_naam:type,...) 1.7 Waartoe dienen datawarehousing en datamining? Situeer beide ten opzichte van databases. Een datawarehouse is een grote database die bedoeld is voor data-analyse. Vaak wordt data gestructureerd in meerdere dimensies, vaak gebruikte dimensie is de tijdsdimensie, zodat bvb aanpassing in de database kunnen worden geraadpleegd. Datamining is bedoeld om voorheen onbekende informatie te ontginnen uit een database of datawarehouse door het analyseren van data. 1.8 Wat zijn gebruikersproelen? Bespreek de taken van een data-administrator en een database-administrator. Basisinstellingen voor een groep gebruikers. Een data-administrator beslist welke data, in welk formaat, in welke database wordt opgeslagen. Hij beslist ook over de databasetoegang, gebruikersproelen, de beveiliging de verwering en communicatie van de data en de prioriteiten in geval van toegangsconicten. Speelt dus een grote rol bij het ontwerp van de DB. De database-administrator is technisch verantwoordelijk voor de implementatie en het onderhoud van de DB. Hij is ook meer verantwoordelijk voor het herstel na falen, de consistentie van de DBs, de observatie en controle van de prestatie en het goed functioneren van het databasesysteem. Vaak zijn er meerde DB-administrators. 1.9 Bespreek de databasedenitie, databasemanipulatie en databaseconstructie. Databasedenitie: Hierbij moeten de DBstructuur en de semantische regels voor de DB worden vastgelegd. Dit is nodig om de integriteit van de DB te garanderen. Databasemanipulatie: Hierbij moeten de noodzakelijke operatoren worden gecreëerd voor het eciënt toevoegen, verwijderen, aanpassen en opzoeken van data. Een DBMS kan worden uitgerust met een datamanipulatietaal. Databaseconstructie: Het DBMS moet ervoor zorgen dat de aangemaakte DBs eciënt worden opgeslagen in het geheugen. Zonder dat iemand zich hoeft te bekommeren over de fysieke opslagdetails. Hiertoe moet het DBMS faciliteiten beiden voor de constructie die het mogelijk maakt een gepaste primaire bestandsorganisatie op te zetten Waarom is het noodzakelijk dat databases worden gedeeld? Wat zou er gebeuren als dit niet kan? Zodat meerdere gebruikers de data kunnen gebruiken en aanpassen. Anders zou een gebruiker moeten wachten tot de andere klaar is Waarom is het noodzakelijk dat databases worden beveiligd? Zodat er geen schade opgelopen wordt aan de databank, zowel fysiek als virtueel. Ook zodat de data in databank enkel kan worden geraadpleegd en veranderd door de bevoegde personen Waarom is er een verschil tussen de interne laag van de drielagenarchitectuur en de fysieke dataopslag? Wat is het nut van de interne laag? Hierin worden de databaserecords beschreven, in het fysieke geheugen worden deze opgeslagen als bestanden. Het nut is om de data die fysiek is opgeslagen beter voor te stellen. 2

4 1.13 Wat zijn indexen? Waartoe worden deze gebruikt in databases? Een index is een geordende lijst van koppels van de vorm <veldwaarde, referentie>. Veldwaarde is de waarde die voorkomt in het veld waarover de index is gedenieerd en referentie is een pointer naar de geheugenplaats waar een record met die veldwaarde is opgeslagen Wat is het nut van de logische laag en de externe laag van de drielagenarchitectuur? De logische laag geeft een abstracte voorstelling van de databank weer. Iedereen zonder toegangsbeperkingen ziet deze representatie. De externe laag verbergt complexiteit en gegevens die niet mogen gezien worden door de eindgebruiker (meestal toch de eindgebruiker) Waarop slaat dataonafhankelijkheid? Illustreer het nut ervan in een concreet voorbeeld. Dat door een gepaste aanpassing van de mappings, de beschrijving van de data in een bepaalde laag wordt aangepast zonder dat dit een impact heeft op de andere lagen. Bvb: Wanneer ten gevolge van gewijzigde interactiepatronen van de gebruikers gekozen wordt voor een nieuwe, meer eciënte primaire bestandsorganisatie Waarmee moet men rekening houden bij de keuze om bij een toepassing wel of geen databasesysteem te gebruiken? Geen databasesysteem gebruiken wanneer het te ontwikkelen systeem te eenvoudig is, de eisen aan het systeem zo uitgebreid zijn, dat deze onmogelijk kunnen worden voldaan wanneer een volwaardig dbms wordt gebruikt of wanneer men te kampen heeft met budgettaire beperkingen Bedenk een realistische toepassing waarbij je zeker voor een zelfontwikkeld opslagsysteem zou kiezen. Je begint een zaak en wil informatie bijhouden over producten die je (niet) in stock hebt. 2 Hoofdstuk Wat is het verschil tussen een datamodel, een databasemodel en een databaseschema? Een datamodel is een verzameling van voorschriften en regels die mogelijk maken om de structuur en het gedrag te beschrijven van data die in bepaalde software voorkomt. 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 een dbms. Een databaseschema beschrijft de data die bij een situatie relevant zou zijn. 2.2 Vergelijk de operationele, structurele en semantische modellen op het vlak van datamodellering en de manier van opzoeken van data. Geef een vb van een databasemodel uit elk van deze categorieën. Data wordt bij operationele modellen gemodeleerd als een boom of graaf, bij een structureel model als tabellen en bij semantische modellen als objecten/klassen. Het opzoeken van data bij operationele modellen gebeurt door operaties in een programmeer taal, in sql bij structurele modellen en in oql bij semantische modellen. Een vb van een operationeel model is het netwerkmodel, van het structureel model is het relationeel databasemodel een vb en een vb van het semantische model is het objectgeoriënteerde model. 2.3 Hoe wordt data gemodelleerd volgens het hiërarchische databasemodel? Als records die hiërarchisch worden geordend in boomstructuren. 3

5 2.4 Wat zijn virtuele `ouder-kind'-relaties? Waarvoor worden deze gebruikt? Een kind kan normaal maar een ouder hebben, maar hier kan hij nog enkele virtuele ouders hebben. Dit wordt gebruikt voor inconsistentie (die verkregen wordt wanneer er meerdere kopieën van bepaalde data zijn) te voorkomen. 2.5 Wat zijn hiërarchische recordsequenties? Waarvoor zijn deze nodig? Die is hoe de bomen worden opgeslagen in het fysiek geheugen. Je krijgt deze door de records van de bomen lineair te ordenen door bomen te doorlopen in pre-order (diepte eerst, van links naar rechts). 2.6 Hoe verloopt de manipulatie van hiërarchische databases? Welke faciliteiten zijn daarvoor vereist? Wat zijn de voor- en nadelen van deze benadering? Manipulatie gebeurt door commando's die worden opgeroepen uit de programmeertaal waarin de toepassingen werd geschreven. Ontwikkelaars van het dbms stellen hiervoor vaak softwarebibliotheken met operatoren ter beschikking. Data kan eciënt worden gemanipuleerd maar je moet voldoende programmeerkennis bezitten om dit te doen. 2.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? Boomstructuur wordt veralgemeend naar een graafstructuur. Een knoop kan hierbij 0 of meerdere ouders hebben. Verbindingen kunnen gericht zijn. De manipulatie is complexer omdat er meer verbindingen mogelijk zijn. Maar ze is veel ecienter dan bij het hiërarchisch model. 2.8 Wat wordt in het relationeel databasemodel bedoeld met atomaire waarden? Welke beperkingen brengt dit met zich mee? Tabellen zijn opgebouwd uit atomaire waarden wat wil zeggen dat ze als een geheel worden gezien. Dit brengt als beperking mee dat ze verder niet logisch worden opgesplitst. 2.9 Hoe worden verwantschappen tussen verschillende rijen uit dezelfde of verschillende tabellen gemodelleerd in het relationeel databasemodel? Ahv van vreemde en kandidaatsleutels.de kandidaat sleutels van de ene tabel worden dan opgenomen in de andere. De kandidaatsleutel in de andere tabel wordt een vreemde sleutel genoemd Geef voor- en nadelen die in aanmerking genomen moeten worden bij de keuze tussen een objectgeoriënteerd databasemodel en het objectrelationeel model. Het objectrelationeel model is eenvoudiger maar dit is ook een beperking want sommige data is dan te complex om te modelleren ahv het objectrelationele model. Vooral beperkend is het atomair karakter van de waarden in de tabel Wat is `impedance mismatch' in de context van databases? Waarom bestaat er nog steeds een `impedance mismatch' bij objectgeoriënteerde modellen? Motiveer of de `impendance mismatch' ooit denitief kan worden verholpen. Het verlies van data wanneer data van een database wordt omgezet naar een bepaalde datastructuur in een programmeertaal en vice versa. Er bestaat nog steeds een mismatch, en deze zal blijven bestaan, omdat in de praktijk informatie dikwijls onnauwkeurig, vaag omschreven, onzeker, onvolledig en soms zelf inconsistent is. 4

6 2.12 Bespreek de voor- en nadelen van een keuze voor een open sourceoplossing in het licht van de aspecten die werden aangehaald voor de keuze van een databasemodel. Technische support is niet altijd even goed bij open source projecten. Open source projecten wordt meestal wel lang ondersteund omdat deze nooit geld opbrengen niet nu en niet als ze al 20 jaar oud zijn. 3 Hoofdstuk Uit welke fases bestaat het databaseontwerpproces? Hoe worden deze in de praktijk afgewerkt? Informatievergaring: Domeinanalyse Functionele analyse Behoefteanalyse Conceptueel ontwerp: Conceptueel model (bvb EER-diagram) Functionele beschrijving Logisch ontwerp: Logisch databaseschema(bvb relationeel) Gedragsspecicaties Fysiek ontwerp: DDL-scripts Implementatie van gedrag 3.2 Wat zijn CASE-tools? Wat zijn de voor- en nadelen van het werken met CASEtools? Computer Aided System Engineering. Ze automatiseren delen van het databaseontwerpproces. Wat automatisch gegenereerd wordt is wel niet per se geoptimaliseerd. 3.3 Wat is het verschil tussen een entiteit en een entiteittype? Een entiteittype karakteriseert een collectie van entiteiten en wordt gekenmerkt door een naam en een verzameling van attributen. Een entiteit is een `ding' dat een zelfstandig bestaan leidt in de reële wereld. 3.4 Wat is het verschil tussen een attribuut en een relatietype? Een attribuut is een eigenschap van een entiteit en een relatietype is een verwantschap tussen twee of meer verschillende entiteittypes. 3.5 Wat is het verschil tussen een enkelwaardige en meerwaardige attributen? Geef voorbeelden van elk. Enkelwaardige attributen kunnen op elk moment maar een waarde aannemen, meerwaardige kunnen er meerdere aannemen. Enkelwaardig: Naam, Voornaam, Waarde,... Meerwaardig: Talen, Hobby's,... 5

7 3.6 Wat is het verschil tussen atomaire en samengestelde attributen? Geef voorbeelden van elk. Samengestelde attributen zijn attributen die zijn samengesteld uit andere atomaire attributen. Atomaire attributen kunnen niet meer gesplitst worden. Samengesteld: Plaats, Familieleden,... Atomaire: ID, Nummer, Voornaam, Waarom worden er afgeleide attributen onderscheiden? Omdat je deze kan aeiden uit andere attributen, als je die zou opslaan in een databank is het mogelijk dat er inconsistentie onstaat. 3.8 Wat zijn zwakke entiteittypes? Waarom zijn deze nodig? Dit zijn entiteiten die niet op zichzelf kunnen bestaan maar afhankelijk zijn van andere, identicerende entiteiten. Deze zijn nodig zodat je data die afhankelijk is van andere data toch kunt modelleren. 3.9 Wat duiden de kardinaliteitsrestricties en de partiteitsrestricties bij relatietypes aan? De kardinaliteitsrestrictie beperkt het aantal entiteiten van het entiteittype dat op een gegeven tijdstip maximaal kan voorkomen in een relatie van het relatietype. De partiteitsrestrictie bepaalt of op elk tijdstip elke entiteit van het entiteittype moet voorkomen in een relatie van het relatitype Wat zijn subtypes? Waarom worden deze ingevoerd? Een subtype is een entiteittype dat een subcollectie van entiteiten karakteriseert. Deze worden ingevoerd om een aantal entiteiten te groeperen volgens een bepaalde eigenschap Bespreek het mechanisme van overerving bij supertype/subtypeverwantschappen. Waarom is dit nuttig? Een subtype erft alle attributen en verwante relatietypes van zijn supertype. Dit is nuttig omdat we deze dan niet apart moeten kopiëren naar elk subtype Wat zijn geconditioneerde subtypes? Hoe wordt er gewerkt als de subtypes niet geconditioneerd zijn? In dit geval worden entiteiten enkel een subtype van het supertype als ze een bepaalde waarde hebben voor de conditionerende attribuut. Dan zijn alle subtypes subtype van het supertype. (Not sjur) 3.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 is een `speciaal' subtype met verschillende supertypes, dat wordt ingevoerd om de entiteiten van deze supertypes te groeperen. De entiteit van de categorie mag maar entiteit zijn van één van zijn supertypes en niet van allen zoals dit is in het reguliere geval. Categorie: Een persoon, bedrijf of museum is een eigenaar van een schilderij. Regulier: Een persoon, bedrijf en museum zijn een gemeenschappelijke eigenaar van een schilderij Bespreek het mechanisme van overerving bij categorieën. Waarom is dit nuttig? Het object van een type in een categorie zal enkel de eigenschappen overerven van dat type. Dit is nuttig omdat een categorie dingen groepeert die vaak vrij veel verschillen hebben. In het voorbeeld zal een Eigenaar die een Bedrijf is dus enkel de eigenschappen van Bedrijf krijgen. 6

8 4 Hoofdstuk 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 gespeciceerd door een verzameling van toegelaten atomair waarden (het domein van het datatype) en een verzameling van operatoren helemaal inwerken op de domeinwaarden en het gedrag van het datatype vastleggen. Een atomair datatype kan niet meer worden opgesplitst in deelgegevens. Een array is geen atomair datatype, een adres en contactgegevens zijn dit ook niet. 4.2 Wat is het verschil tussen een domein en een datatype? Een domein is een verzameling van toegelaten atomaire waarden. Een datatype beschrijft welke waarden deze data kunnen aannemen. 4.3 Hoe is een basisrelatie opgebouwd? Welke eigenschappen hebben basisrelaties? Hoe kunnen basisrelaties worden geïnterpreteerd? Een basisrelatie is opgebouwd uit het relatieschema en de extentie van de relatie. Het schema van een relatie is opgebouwd uit een relatienaam en een eindige verzameling attributen. De extentie is een met de tijd variërende verzameling van m tuples die allemaal volledig worden gekarateriseerd door de attributen uit het schema van de relatie. Het schema kan je interpreteren als de hoofding of de intentie van de basisrelatie. De extentie kan je interpreteren als het corpus van de basisrelatie. 4.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? Een catalogus houdt data over de data (zogenaamde metadata) bij. Een catalogus wordt gebruikt om de structuur van de DB te achterhalen. (Ook vaak data over prestaties, beveiliging, gebruikers,..) Een catalogus kan enkel geraadpleegd worden als de gebruiker er toestemming voor heeft. Vaak is er voor actualisering van de metadata tussenkomst van de DBA vereist. 4.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 gebruikersgedenieerde en/of systeemgedenieerde basisrelaties en/of andere views. Ze maken het mogelijk om de database op een alternatieve manier te bekijken. Op deze manier kan informatie en complexiteit verborgen worden en kunnen sommige bevragingsinstructies ingekort worden. Views worden op dezelfde manier bevraagd als de gewone database (wel de naam van de view invullen ofc). Aanpassingen op views zijn gewoon aanpassingen op de databank. Hierbij moet je wel opletten en dat de view aanpasbaar moet zijn, de manipulatie nie conicterend mag zijn met de deniërende expressies van de view en geen manipulatie op afgeleide data mag worden uitgevoerd. 4.6 Hoe worden indexen ondersteund in het relationeel databasemodel? Een index over n attributen is ook hier een geordende lijst van (n+1)-tuples. Bij een relationeel databasemodel ben je in staat om indexen te specieren op het niveau van de logische laag. Dit kan met het de SQL-instructie `CREATE INDEX index_naam ON tabel(attribuut ASC/DESC);'. 7

9 4.7 Geef de hoofdreden voor het ontbreken van informatie. Wat zijn nullwaarden? Welke impact heeft het beschouwen van null-waarden op (de datatypes van) het relationeel databasemodel? Welke problemen bestaan er bij het werken met nullwaarden? Illustreer dit aan de hand van een vb. De gegevens bestaan maar zijn niet voorhanden of de gegevens bestaan niet of zijn niet van toepassing. Een null-waarde is een waarde dat aangeeft dat de actuele attribuutwaarde ontbreekt. Er moet bij het domein van de atomaire datatypes de waarde null worden toegevoegd. De operatoren van een atomair datatype moeten ook worden aangepast om te kunnen omgaan met de null-argumenten. De wet van de uitgesloten derde geldt niet voor null-waarden dit kan voor problemen zorgen. Als je een SQL-instructie zou uitvoeren waarbij je zou zeggen `WHERE (geboren < x) and (gestorven < x)' en deze evalueren beiden naar null dan zal je alle resultaten waar null in voorkomt terugkrijgen. 4.8 Wat zijn defaultwaarden? Welke zijn de voor- en nadelen van het werken met defaultwaarden? Defaultwaarden zijn een alternatief voor null-waarden. In plaats van aan het attribuut null toe te kennen, ken je er een standaard waarde aan toe. Dit is gemakkelijk omdat sommige attributen op die manier al direct worden geinitialiseerd. Ze hebben echter als nadeel dat zij slechts een benadering of model voor de attribuutwaarde geven, wat to verkeerde resultaten kan leiden bij het aeiden van data. 4.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 gegeven basisrelatie, waarbij er aan de volgende twee voorwaarden is voldaan: De uniciteiteigenschap: Geen enkele legale extentie van de basisrelatie bevat twee tuples met dezelfde waarden voor alle attributen uit de sleutel. De irreducibiliteitseigenschap: Wanneer uit de sleutel attributen worden weggelaten mag niet meer voldaan zijn aan de uniciteiteigenschap. Vreemde sleutels worden gebruik om te verwantschap tussen een tuple uit een basisrelatie en nul of meer tuples uit een basisrelatie weer te geven. Een vreemde sleutel is een verzameling van attributen waarvoor het volgende geldt: Er bestaat een basisrelatie met een kandidaatsleutel, die evenveel attributen bevat als de vreemde sleutel en waarbij er een één-op-ééncorrespondentie is tussen de attributen en zodat de attributen dezelfde datatypes hebben Wat wordt bedoeld me cyclische referentie? Geef een vb van een cyclische referentie waarbij er meer dan twee basisrelaties zijn betrokken. Wanneer er een vreemde sleutel van R 1 naar R 2 is en een van R 2 naar R 1. Vb: Schilderij Schilder, Schilderij Plaats, Schilder Plaats 4.11 Wat is refentiële integriteit? Dat is dat er bij vreemde sleutels elk van hun reguliere waarden op elk ogenblik moet voorkomen als waarde van de corresponderende kandidaatsleutel Wat zijn integriteitsrestricties? Volgens welke criteria worden integriteitsrestricties onderverdeeld? Een integriteitsresctrictie is een voorwaarde waaran alle data uit een database op elk moment moeten voldoen. Volgens een logische expressie (?) 8

10 4.13 Wat is een stored procedure? In welke opzichten verschillen stored procedures van integriteitsrestricties? Een stored procedure is een groep van voorgecompileerde bewerkingen geschreven in SQL/PSM. Een stored procedure kan ingewikkeldere dingen afdwingen dan een restrictie Hoe werken triggers? Een trigger is een stored procedure (`trigger action') die automatisch wordt uitgevoerd wanneer aan een bepaalde gebeurtenis (`trigger event') voldaan is. Eventueel moet hij ook aan extra voorwaarde voldaan zijn (`trigger condition') In hoeverre kun je een dbms als relationeel beschouwen als deze niet is uitgerust met faciliteiten voor stored procedures en triggers? Geen idee 4.16 Geef de acht basisoperatoren van de relationele algebra. Zijn er basisoperatoren die kunnen worden afgeleid van anderen? Vereniging (unie), doorsnede (intersectie), verschil en cartesiaans product, selectie, projectie, join en deling Hoe werkt de intersectieoperator? Welke beperkingen gelden daarbij? Het gaat alle tuples die voorkomen in zowel R1 als R2 selecteren. Hiervoor moeten echter R1 en R2 van hetzelfde type zijn In welke opzichten verschillen de cartesiaanse productoperator en de `join'- operator? Bij een cartesiaans product gaat elke tuple van R1 worden samengevoegd met elke tuple van R2. Bij een join zullen enkel tuples met een matchend attribuut worden samengevoegd Geef een voorbeeld waaruit het praktische nut van de cartesiaanse productoperator blijkt. Stel dat een tegelmaker beschikt over een databank met daarin twee relaties: `Tegelsoort' en `Tegelkleur'. Elke soort tegels in beschikbaar in alle kleuren. Nu wil de tegelmaker graag een lijst afprinten van alle mogelijkheden om aan de klanten te geven. Hiervoor is een cartesiaans product ideaal, aangezien dit elke tegelsoort zal combineren met elke tegelkleur Hoe werkt de delingsoperator? Waarom is deze ingevoerd? Geeft een extra tabel terug die in R1 zit maar niet in R2 voor alle matchende rijen. Deze is ingevoerd met oog op de verwerking van vraagstellingen waarbij gebruik wordt gemaak van de universele quantor (voor alle) Wat wordt bedoeld met het gesloten zijn van de relationele algebra? Waarom is deze eigenschap belangrijk? Dat het inwerkt op één of twee relaties en een relatie teruggeeft. Dit is nuttig omdat je dan in een expressie operatoren samengesteld kan toepassen. 9

11 5 Hoofdstuk Beschrijf in grote lijnen het logische databaseontwerp met behulp van EERmodellering. Wat is het belang van `reverse engineering' hierbij? We kiezen een databasemodel. Dan moet er een databaseschema gemaakt worden. Ofwel met `forward engineering' ofwel met `reverse engineering'. Eens dit gedaan is moeten we de functionele beschrijving nog omzetten naar gedragsspecicaties. Dmv reverse engineering ben je in staat om het EER-diagram te actualiseren na aanpassing van het databaseschema. 5.2 Welke ondersteuning beiden CASE-tools op dit vlak? CASE-tools kunnen helpen bij het omzetten van functionele beschrijvingen naar een alternatieve sleutel, een integriteitsrestrictie, een stored procedure of een trigger. 5.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? Verschillende basisrelaties, voor het supertype en de subtypes Alle bestaande basisrelaties blijven behouden. De verwantschap tussen sub en super wordt weergegeven door de primaire sleutel van het supertype wordt toegevoegd aan alle basisrelaties van alle subtypes. Ze vormen in elke basisrelatie een vreemde sleutel.deze optie werkt altijd. Verschillende basisrelaties, enkel voor subtypes De verwantschap wordt weergegeven door alle attributen van het supertype toe te voegen aan de basisrelaties van de subtypes, de primaire sleutel van het supertype wordt de primaire sleutel van de subtypes. Na de toevoeging wordt de basisrelatie van het supertype verwijderd. Deze optie werkt alleen voor disjunte subtypes. Één basisrelatie met één typeattribuut Hier worden alle attributen van de subtypes toegevoegd aan het supertype. Er wordt ook nog een extra typeattribuut toegevoegd, waarvan de waarde aangeeft of en tot welk subtype een bepaalde tuple behoord. Na toevoeging worden de basisrelaties van de subtypes verwijderd. De primaire sleutel van het supertype blijft behouden. Deze optie werkt alleen voor disjuncte subtypes, ongeacht of deze totaal is of niet. Één basisrelatie met meerdere typeattributem Alle attributen van de subtypes worden toegevoegd aan het supertype. Nu worden er m typeattributen toegevoegd waarbij elke attribuut correspondeert met één subtype en aangeeft of een bepaalde tuple al dan niet tot dat subtype behoort. Al deze typeattributen zijn van het type boolean. Na toevoeging worden de basisrelaties van subtypes verwijderd. De primaire sleutel van het subtype blijft ongewijzigd. Deze optie werkt altijd maar kan veel nullwaarden genereren. 5.4 Kunnen typeattributen worden gebruikt voor het omzetten van een generalisatie of specialisatie met meerdere subtypes? Motiveer je antwoord. Ja: je kan werken met één typeattribuut als de subtypes disjunct zijn, anders met meerdere typeattributen. Als de subtypes echter veel attributen hebben zullen er veel null-waarden voorkomen voor attributen die niet van toepassing zijn. 5.5 Geef een vb van een binair `één-op-één' relatietype en een binair `éénop-meerdere' relatietype dat het best wordt omgezet met een extra basisrelatie. uhm 10

12 5.6 Hoe kun je te werk gaan om een samengesteld meerwaardig attribuut met een meerwaardige enkelvoudige componentattribuut om te zetten? Geef een vb. Stel A is meervoudig, meerwaardig attribuut van relatie R, en is samengesteld uit B en C (enkelvoudig, enkelwaardig) en D (enkelvoudig, meerwaardig). Dan maken we een nieuwe basisrelatie A, met attributen B en C, plus een Foreign Key: de primaire sleutel van R. B en C vormen de primaire sleutel van A (als B op zich als uniciteit garandeert, laten we C vallen). We maken dan nog een nieuwe basisrelatie B, met als attribuut de waarde van B, en een Foreign Key die wijst naar de primaire sleutel van A. Primaire sleutel is het attribuut met de waarde van B. 5.7 Wat zijn functionele afhankelijkheden? Waarom kunnen deze niet automatisch worden afgeleid uit de specicatie van een basisrelatie? Functionele afhankelijkheid van twee verzamelingen X en Y wil zeggen dat de waarden van de attributen van Y op dat moment uniek bepaald zijn door X. Ze kunnen niet afgeleid worden uit de basisrelatie omdat de functionele afhankelijkheid zich binnen een enkele basisrelatie kan bevinden. Als er geen verwijzingen zijn dmv (foreign) keys dan is er volgens het model ook geen verband tussen de informatie. 5.8 Wat zijn irreducibele functionele afhankelijkheden? Waarom wordt er bij normalisatie gewerkt met irreducibele functionele afhankelijkheden? Irreducibel: functionele afhankelijkheid + X en Y zijn disjunct + er bestaat geen deelverzameling X' van X waarvoor geldt dat Y functioneel afhankelijk is van X'. 5.9 Wat zijn meerwaardige functionele afhankelijkheden? Wanneer staat een relatie in vierde normaalvorm? Meerwaardige functionele afhankelijkheid (Y van X) komt voor wanneer een verzameling van 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 3BC normaalvorm staat en geen meerwaardig functionele afhankelijkheden bevat. 6 Hoofdstuk Beschrijf in grote lijnen het fysieke ontwerp van relationele databases. Bij het fysiek ontwerp moeten het databaseschema, de sleutels, integriteitsrestricties, stored procedures en triggers vanuit het logisch databaseontwerp worden geïmplementeerd in een relationeel dmbs. Alle SQL instructies worden hierbij verwerkt door het dbms door ze eerst te valideren en dan te optimaliseren. Hierbij wordt een queryplan gemaakt en adhv dat queryplan zal de queryprocessor de nodige operaties uitvoeren. 6.2 Hoe is standaard-sql opgebouwd? Uit de datadenitietaal en de datamanipulatietaal, en nog extra instructies voor views, beveiligingsmechanismen en concurrency. 6.3 Wat zijn SQL-dialecten? Welke consequenties zijn er verbonden aan het werken met een SQL-dialect? Implementaties van SQL door dbms-ontwerpers, maar wat 'aangepast'. Consequentie: ze zijn niet steeds compatibel met standaard SQL of andere dbms 11

13 6.4 Welke zijn de typische stappen die het dbms onderneemt bij het verwerken van DML-instructies? Valideren en omzetten naar algebraïsche expressie Optimaliseren door een queryplan op te bouwen Queryplan uitvoeren Resultaat teruggeven 6.5 Wat is de rol van relationele expressies? Schets in grote lijnen hoe deze worden opgebouwd bij toevoeg-, verwijder- en opzoekinstructies. Alle queries worden door het dbms omgezet naar relationele expressies omdat deze eciënter te optimaliseren zijn. Toevoegen: INSERT wordt omgezet naar een unie Verwijderen: DELETE wordt omgezet naar een verschil Opzoeken: er wordt gewerkt met cartesische producten, selecties en groeperingen 6.6 Wat gebeurt er bij optimalisatie? Waarom wordt meestal niet doorgezocht naar de meest optimale oplossing? Het dbms zal eerst proberen de relationele expressie om te zetten naar een expressie die eciënter is maar identieke resultaten levert. Er wordt niet doorgezocht omdat dit teveel tijd en resources in beslag neemt zodat het niet meer rendabel is het zoeken naar een eciëntere query zou meer kosten dan de minder eciënte query gewoon uit te voeren. 6.7 Welke stappen kunnen nuttig zijn om de prestaties van bedrijfkritische queries te verbeteren? Men moet de query goed begrijpen en het doel moet goed gekend zijn, eventueel kan men een grote query opsplitsen. Men moet de relaties waarop de query inwerkt kennen en dus weten welke attributen er zijn, welke datatypes, hoeveel tuples,... Men moet de query zelf in vraag stellen. Zijn er geen onnodige voorwaarden, zijn er geen onnodige relaties opgenomen, moeten de resultaten wel worden gesorteerd,... Men moet zich afvragen of het WHERE gedeelte wel optimaal van de indexen gebruik maakt. Bij sommige condities zoals 'IS NULL', 'OR', '<>', 'NOT', 'NOT IN', 'NOT EXISTS', 'NOT LIKE', 'LIKE '%vrouw kunnen indexen niet optimaal worden gebruikt. Als men ze herschrijft zodat wel van de indexen gebruik wordt gemaakt kan dit veel winst opleveren. Hoe belangrijker de query is hoe meer het loont er mee bezig te zijn. Als de query gewoonlijk veel resultaten teruggeeft kan het nuttig zijn het toepassingsprogramma te herschrijven. Analyseer het queryplan. Als blijkt dat bepaalde indexen niet worden benut kan men dit eventueel afdwingen. Dit kan soms door eectief aan te vinken dat men een index moet gebruiken of door de query te herschrijven. 6.8 Wat is Query-By-Example (QBE)? Wat zijn de voor- en nadelen van het gebruik van QBE? Bij de QBE-techniek worden de DML instructies opgebouwd door het invullen van grasche templates die de structuur weergeven van de relaties in de database. Voordeel: er moet geen programmeertaal gekend zijn het volstaat de codes, namen en condities in te vullen; dit is goed voor nieuwe gebruikers Nadeel: QBE is slecht te linken met programmacode en SQL specicaties.(niet relationeel compleet) 12

14 7 Hoofdstuk Wat zijn objecten en objecttypes? Objecten zijn autonome entiteiten, objecttypes is waar de structuur en gedrag van een object vastgelegd zijn. 7.2 Wat is inkapseling van operatoren? Wat is het voordeel hiervan? Inkapseling zorgt ervoor dat enkel de signatuur van operatoren zichtbaar is voor gebruikers, maar de methode blijft verborgen. Reden: gebruikers afschermen van implementatiedetails. 7.3 Wat is overerving? Waarom is overerving nuttig? Overerving is wanneer een objecttype de specicaties van een ander objecttype geheel of gedeeltelijk overneemt. De toestand en het gedrag worden dan bepaald door de eigen EN de overgenomen specicaties. Overerving is nuttig omdat dit het mogelijk maakt om speciekere objecttypes op te bouwen uit algemene objecttypes en daarbij veel code te hergebruiken. 7.4 Geef twee voorbeelden van operatoroverlading en polymorsme. Qsdfghjklm 7.5 Hoe werken het naamgevings- en bereikbaarheidsmechanisme voor persistentie? Naamgevingsmechanisme: een object kan persistent worden gemaakt door het een persistente naam te geven die uniek is over de database. Bereikbaarheidsmechanisme: elk object dat voorkomt uit een persistent object wordt ook persistent gemaakt. 7.6 Waarom zijn objectidenticatoren nuttig? Om objecten op een unieke manier te kunnen identiceren zonder daarbij rekening te moeten houden met zijn toestand. 7.7 Wat zijn literaaltypes en objecttypes volgens het ODMG-objectmodel? Wat zouden de gevolgen zijn, als alle types objecttypes zouden zijn? Bespreek dit. Literaaltypes worden gebruikt voor het modelleren van structurele kenmerken. Een objecttype wordt gedenieerd uit literaaltypes, interfaces of klassen die elk opgebouwd zijn uit een specicatie en een of meerdere implementaties. Gevolg: alles moet persistent opgeslagen kunnen worden. Gevolg zou zijn dat ook aan literalen objectidenticatoren toegekend moeten worden. 7.8 Waarvoor dienen interfaces en klassen? Waarom zijn interfaces nuttig? Wat is het veschil tssen een objecttype en een klasse? Interfaces zijn bouwstenen om gedrag te modelleren, klassen implementeren deze interfaces. Verschil: objecttypes kunnen opgebouwd worden uit literalen, interfaces en klassen, terwijl klassen uit attributen, relaties en operatoren opgebouwd worden. Objecttypes zijn dus algemener. 7.9 Bespreek de twee manieren waarop in ODMG verwantschappen tussen klassen kunnen worden gemodelleerd. Geef de voor- en nadelen van elk. 1. Uni-directioneel: de gerelateerde klasse, of een collectietype met de gerelateerde klasse, wordt opgenomen als type van een attribuut. 2. Bi-directioneel: er worden twee relaties gebruikt waarvan één in elke van de betrokken klassen. Beide relaties kunnen fungeren als inverse van elkaar. Elke relatie heeft een naam, een verwijzing naar de gerelateerde klasse en een verwijzing naar zijn inverse. Enkel bij deze werkwijze vindt de controle van referentiële integriteit plaats. 13

15 7.10 Welke vormen van overerving worden ondersteund in ODMG? isa-overerving: het supertype moet een interface zijn en het subtype moet een klasse of en interface zijn. Het subtype erft nu alle operatoren van het supertype. Meervoudige overerving (een subtype heeft hier meerdere interfaces als supertype) is toegestaan als er geen operatoroverloading voorkomt. extends-overerving: zowel het supertype als het subtype moeten klassen zijn waarbij het subtype alle attributen, relaties en operatoren van het supertype erft. Meervoudige overerving is hierbij niet toegestaan maar operatoroverloading wel Wat zijn extenties? In welke opzichten verschilt het ODMG-concept extentie van het relationeel concept extensie? Een extensie is een verzameling dat het dbms bijhoudt voor een bepaald objecttype, waarin alle persistente objecten van dat objecttype zitten. In het relationeel model worden alle objecten die deel zijn van een relatie sowieso in de extensie geplaatst, bij het ODMG model enkel de persistente objecten Hoe werken sleutels in ODMG? Vergelijk met het EER-model en het relationeel model. Een sleutel is één of meer attributen en/of relaties die worden vastgelegd waarvoor elk object in een extentie een unieke waarde moet hebben/ Bij het ODMG-model is er slechts 1 sleutel, deze komt overeen met een kandidaatsleutel bij EER en relationeel. Er kunnen geen meerdere sleutels zijn Wat is de rol van de taalbindingen met betrekking tot objectdenitie, objectmanipulatie en objectbevraging? In ODL kunnen deze allemaal slechts gebeuren via taalbindingen. (meer uitleg?) 7.14 In welke opzichten verschilt OQL van SQL? OQL kan enkel gebruikt worden voor opzoeken van data (SQL ook voor manipulatie). OQL biedt wel meer exibiliteit op vlak van zoekmogelijkheden en weergave van resultaten Staan SQL3 objectrelationele databaseschema's nog in eerste normaalvorm? Wat zijn de voor- en nadelen hiervan? Nee. Nadeel: kans op inconsistentie. Voordeel: meer exibiliteit Illustreer hoe tupletypes in SQL 3 kunnen worden gebruikt om relaties op te bouwen? Met een variant van de 'CREATE TABLE'-instructie kan men een relatie aanmaken met de componenten van het tupletype als attributen en met een zelf gespecieerde primaire sleutel Waarom worden er tuple-identicatoren gebruikt in SQL3? Op welke manieren kunnen ze worden aangemaakt? Illustreer hun werking. Gebruik: om rechtstreeks van 1 tuple naar een ander tuple te navigeren. identicator aeiden van primaire sleutel identicator door systeem laten opbouwen 7.18 Welke vormen van overerving zijn er in SQL3? Geef een vb waaruit duidelijk het verschil tussen beide naar voren komt. Is het zinvol om beide vormen gecombineerd te gebruiken? Overerving bij denitie van een tupletype en overerving bij de aanmaak van een relatie. 14

16 7.19 Wat zijn `clob'- en `blob'-datatypes? Welke voordelen heb je wanneer je deze gebruikt in combinatie met objecttechnologie? Character large object en Binary large object om multimediaobjecten in de database te integreren. Voordeel: sommige operatoren kunnen toegepast worden (vb. patroonvergelijking); mogelijkheid om code zoals XML te integreren in de database 7.20 Wat wordt bedoeld met objectrelationele mapping? Het omzetten van objecttypes naar een relationeel databasesschema. 8 Hoofdstuk Wat zijn API's? Een API of applicatieprogramma-interface zorgt voor de verbinding of interface tussen een applicatie en het dbms. De API wordt door de applicatie en het dmbs gebruikt om te communiceren. 8.2 Hoe werkt een ingebouwde API voor databasetoegang? De instructies voor databasetoegang worden rechtstreeks ingebouwd in de applicatiecode. 8.3 Wat is een hosttaal? De taal waarvoor een API in de vorm van een softwarebibliotheek beschikbaar is gemaakt, zodat het mogelijk is in deze taal interactie te hebben met een dbms. 8.4 Bespreek in grote lijnen hoe `embedded' SQL werkt. Wat zijn de vooren nadelen van het werken met `embedded' SQL? Embedded SQL stelt je in staat om SQL-instructies via specieke taalconstructies in te bouwen in de programmacode. Bij gecompileerde hosttalen wordt de programma eerst voorverwerkt door een precompiler die de ingebedde SQL-instructies omzet naar een intern formaat dat uitvoerbaar is door het dbms en er worden al controles op uitgevoerd. Precompilatie is voordelig omdat een SQL-instructie maar eenmaal omgezet moet worden. Embedded SQL is wel database speciek waardoor een applicatie moet worden aangepast aan de API van de constructeur. 8.5 Wat is een cursor? Bespreek en illustreer de vier stappen die acht genomen moeten worden bij het werken met cursors. Een cursor is een iteratorobject dat gebruikt wordt om tuples bij opzoekinstructies één voor één op te halen en te verwerken. De cursor wijst naar het object dat momenteel in behandeling is. Stappen: Aanmaken (DECLARE) Openen (OPEN) Tuples ophalen (FETCH) Afsluiten (CLOSE) 8.6 In welk opzicht verschilt statische SQL van dynamische SQL? Waarom is er bij dynamische SQL een systeem van late binding nodig? Bij statische SQL is er weinig exibiliteit: de structuur van de ingebedde SQL moet al bij de precompilatie gekend zijn. Men wil echter soms de SQL instructie verder aanpassen of ze zelfs bij uitvoering aanmaken. Dit heet dynamische SQL. De late binding is nodig omdat de instructie bij de precompilatie nog niet bekend is, en de controle en omzetting slechts gebeurt bij de uitvoering. 15

17 8.7 Hoe werkt een `call-level' API voor databasetoegang? Bespreek de voor- en nadelen vergeleken met ingebouwde API's. Bij een call-level API gebeurt de databasetoegang via aparte software die communiceert met de applicatie en het dbms (dus instructies omzetten). Voordeel: geen precompilatie meer nodig, late binding laat meer mogelijkheden toe. Nadeel: omzetting gebeurt opnieuw bij elke uitvoering, dus neemt meer tijd in beslag. 8.8 Bespreek (de werking van de) hoofdcomponenten van de OBDC-architectuur. - Applicatie-interface: de API die communiceert met de applicatie. - Driverbeheerder: staat in voor het selecteren van gepaste routines om de databronnen te kunnen aanspreken. - ODBC- drivers: zetten aanvragen om naar instructieformaat dat kan worden uitgevoerd door te software. 8.9 Waarom is het nuttig of niet nuttig om binnen OBDC een onderscheid te maken tussen een `environment', een `connection' en een `statement'? Discussieer. Omdat het drie verschillende dingen zijn (achterlijke vraag). Een environment is een reeks connections. Een connection is een verbinding met de databank. Een statement is een geprepareerde SQL instructie In welk opzicht verschilt OBDC van `embedded' SQL met betrekking tot het ophalen van resultaten? De resultaten worden één per één opgehaald en verwerkt, bij embedded SQL worden alle tuples opgehaald en worden ze één per één met een cursor verwerkt Wat is, gezien het bestaan van OBDC, het nut van SQL/CLI? Naast environment-, connection- en statement-records zijn bij SQL/CLI ook descriptionrecords toegevoegd, om extra informatie te krijgen over tuples Bespreek de hoofdcomponenten van de OLE DB/ADO-architectuur. In welke opzichten verschilt OLE DB/ADO van ODBC? Gebruikers communiceren met het OLE DB gedeelte via een call-level API. Dat gedeelte geeft informatie door aan COM-objecten (die bekend staan als 'data providers'), die dan communiceren met het dbms. Er kunnen ook extra COM-objecten toegevoegd worden om voor extra functionaliteit te zorgen. Deze COMobjecten heten 'service providers'. Verschil: COM-objecten hebben meer uiteenlopende functionaliteit dan drivers. Bij een relationele database zal een COM-object werken als een driver, bij een tekstbestand zal een beperkter aantal functies ondersteund worden Waarvoor worden `connection'-, `command'- en `recordset'-objecten gebruikt in OLE DB/ADO? Connection: verbinding met databron, en verbindingsparameters initialiseren. Recordset: resultaten van zoekopdrachten ophalen. Command: zoekopdrachten met parameters of opdrachten die geen zoekopdracht zijn Wat zijn dynamische webpagina's? Hoe kun je vanuit webpagina's databasetoegang verkrijgen? Pagina's die dynamisch worden opgebouwd als een gebruiker de gegevens uit een database/andere bron opvraagt. Databasetoegang gebeurt via de API of indirect via de webserver. 9 Hoofdstuk Wat zijn de grootste gevaren bij ongeoorloofd gebruik van databases? Diefstal en fraude, schending van privacy, beschadiging van de database, sabotage van het systeem. 16

18 9.2 Waardoor wordt een goede beveiligingsstrategie gekenmerkt? Elk onderdeel is beveiligd (gebruikers, hardware, software en data). Beschermt niet alleen de zwakke punten van de database maar legt ook vast wat er moet gebeuren als iemand de beveiliging probeert te omzeilen of uit te schakelen. 9.3 Situeer en bespreek kort het gebruik en nut van toegangscontrole, toegangsbeperking, auditbestanden, versleuteltechnieken en views. Toegangscontrole: zorgt ervoor dat enkel de mensen die permissie hebben in de database kunnen. Toegangsbeperking: gebruikers kunnen enkel op voorhand gedenieerde acties uitvoeren Auditbestanden: log van alle acties die uitgevoerd worden en door wie, zodat bij verdachte acties de gebruiker geïdenticeerd kan worden Versleuteltechnieken: zorgen dat de data enkel leesbaar is als ze op een legale manier verkregen wordt Views: enkel bepaalde data zichtbaar maken voor bepaalde gebruikers 9.4 Wat is authenticatie? Wat is volgens jou de veiligste vorm van authenticatie? Discussieer. Authenticatie is een controleproces voor de identiteit van de gebruiker (wachtwoord, stemherkenning, vingerafdruk,...) 9.5 Wat zijn privileges? Waarom wordt er gewerkt met privileges en niet met beperkingen die het gebruik van instructies verbieden? Een privilege is een instructie waarvoor expliciet toestemming voor wordt verleend. Er wordt niet met verboden gewerkt omdat dit omslachtiger is: als er een privilege niet gegeven wordt kan dit aangevraagd worden, maar als men een verbod vergeet kan de veiligheid in gevaar komen 9.6 Wat wordt bedoeld met met een contextafhankelijke privilege? Wat wordt bedoeld met een verlaten privilege? Contextafhankelijk: privileges kunnen afhangen van een aantal voorwaarden, zoals de dag van de week. Verlaten: toegekend door persoon die zelf dat privilege niet meer heeft. 9.7 Bespreek de `RESTRICT' en `CASCADE'-opties bij REVOKE-instructie. REVOKE met RESTRICT zal niet uitgevoerd worden als dit aanleiding geeft tot verlaten privileges. Met CASCADE zullen ook de potentiële verlaten privileges ingetrokken worden. 9.8 Wat zijn de voor- en nadelen van het spreiden van de verantwoordelijkheden van een DBA via gebruikersproelen? Discussieer. Voordeel: Dit voorkomt dat een DBA alle bevoegdheden heeft en alle data kan zien en bewerken zonder controle Nadeel: De DBA heeft niet alle bevoegdheden, dus dit kan zijn werk belemmeren (? Geen idee tbh) 9.9 Hoe werkt een toegangsbeperking met beveiligingsniveaus? Met elk gegeven in de database wordt één beveiligingsniveau geassocieerd. Dit is als een label dat aangeeft hoe goed de data moet worden beschermd. Aan elke gebruiker wordt dan een toegangsniveau aangewezen, dat aangeeft tot welk beveiligingsniveau een gebruiker toegang heeft Pas de beperkingen uit het protocol van Vell en La Padula aan zodat ze bruikbaar zijn in een situatie waar beveiligingsniveaus worden gecombineerd met privileges. Gebruikers krijgen enkel leesprivileges voor het eigen en lagere niveaus. Ze krijgen enkel schrijfprivileges voor het eigen en hogere niveaus. 17

19 9.11 Wat is polyinstantiatie? Geef een concreet vb van hoe dit kan ontstaan. Het aanmaken van extra tuples om het verschil in attribuutwaarden op verschillende niveaus te kunnen weergeven. (Op een hoger niveau zien mensen andere waarden voor de data dan op lager niveau) 9.12 Volgens welke principes werkt statische bevraging? Waarom worden `query restriction' en `data swapping' gebruikt? Waarom beperken deze de bruikbaarheid van de database? Een gebruiker mag slechts geaggregeerde data uit de database opvragen. (geen exacte gegevens, wel dingen als : min, max, sum, count, avg, stdev) of er worden benaderende resultaten weergegeven (werken met intervallen) Query restriction is het beperken van het aantal opzoekinstructies die een gebruiker mag uitvoeren. Data swapping is het manipuleren van de database zodat de waarden verplaatst of gepermuteerd worden. (maar de statische informatie blijft correct) 9.13 Wat zijn de `before images' en `after images'? Hoe zou je die zelf concretiseren bij een relationele database? Hoe bij een objectgeoriënteerde database? De toestand van de componenten voor en na er een instructie uitgevoerd wordt. Bij een relationele database kan je desbetreende tabellen wegschrijven naar een bestand, bij een objectgeoriënteerde hou je de objecten bij of maak je een overgangsobject Welke nadelen heeft het versleutelen van een volledige database? Er zou bij elke query een codering of decodering moeten gebeuren, wat het systeem enorm zou vertragen. Ook zouden alle gebruikers de codeersleutel moeten kennen de veiligheid compromitteert Welke voor- en nadelen heeft het werken met symmetrische versleutelalgoritmen ten opzichte van asymmetrische versleutelalgoritmen? Symmetrisch: de codeersleutel en decodeersleutel zijn dezelfde; dit zorgt voor een betere uitvoeringstijd als bij asymmetrische. Een symmetrische sleutel kan wel sneller worden gekraakt door het gewoon te bruteforcen Wat zijn de voor- en nadelen van versleuteling door het dbms? Voordelen: Versleutelen door het dmbs is eenvoudiger. Je moet ook de toepassingsprogramma's niet aanpassen, want dit kan voor beveiligingsproblemen zorgen. Nadelen: Dmbs vraagt meer rekentijd. Het aanbod voor versleutelalgoritmen in het dmbs is wel vaak beperkt. Het beheer van codeersleutels kan veiliger zijn buiten de verantwoordelijkheid van het dmbs. Je moet hier de toepassingsprogramma's wel aanpassen. 10 Hoofdstuk Waarom worden transacties gebruikt in databasesystemen? Welke problemen zou men tegen kunnen komen, als men niet met transacties werkt? Transacties worden ofwel volledig uitgevoerd ofwel helemaal niet. Dit gaat de mogelijkheid tegen dat instructies onvolledig afgewerkt worden en daardoor de databank inconsistent kunnen maken of onvolledige resultaten weergegeven worden Waarom moeten transacties geïsoleerd van elkaar worden uitgevoerd? Omdat in het midden van een transactie de data nog inconsistent kan zijn. Als er op dat moment bvb iets gelezen wordt kunnen verkeerde resultaten teruggegeven worden (`garbage data') 18

Antwoorden op de vraagjes in het boek

Antwoorden op de vraagjes in het boek Antwoorden op de vraagjes in het boek Hallo, Ik heb dit bestand samengesteld op basis van volgende forumthread: http://vtk.ugent.be/forum/viewtopic.php? f=124&t=26719&sid=fc1e24c0443c31c619539150e30fd59c

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat

Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Powerpoint presentatie College 5 Gilbert van Lierop & Farshad Salamat Wat is een database? Een verzameling van georganiseerde data Een database bestaat uit applicaties, SQL en het DBMS Watis eendbms? EenDBMS

Nadere informatie

Databanken programmatorisch benaderen

Databanken programmatorisch benaderen Databanken programmatorisch benaderen met Visual Studio 2013 HA-2267-01 Informaticabeheer Bert Cauwenberg en Lieven Pauwels Werkgroep Handel 2015 Vlaams Verbond van het Katholiek Secundair Onderwijs Guimardstraat

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

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

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

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

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

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

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

Versieperikelen. Bijlage C

Versieperikelen. Bijlage C Bijlage C Versieperikelen In dit boek beschrijven we PL/SQL aan de hand van Oracle versie 11g. Alle eigenschappen die in dit boek behandeld worden, zijn in deze versie van Oracle (en in nog te verschijnen

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

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

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

Programmeren met databanken volgens het lagenmodel in C#

Programmeren met databanken volgens het lagenmodel in C# Programmeren met databanken volgens het lagenmodel in C# met Visual Studio en MySQL HA-2267-04 Informaticabeheer Bert Cauwenberg en Lieven Pauwels Werkgroep Handel 2017 Guimardstraat 1, 1040 Brussel Guimardstraat

Nadere informatie

Gimme Five! Op weg naar TYPO3 5.0 'Phoenix'

Gimme Five! Op weg naar TYPO3 5.0 'Phoenix' Gimme Five! Op weg naar TYPO3 5.0 'Phoenix' Waarom TYPO3 5.0? Waarom TYPO3 5.0? Enkele redenen: Waarom TYPO3 5.0? Enkele redenen: Complexiteit De TYPO3 Core architectuur heeft zijn limiet bereikt en is

Nadere informatie

Programmeren met databanken volgens het lagenmodel in C#

Programmeren met databanken volgens het lagenmodel in C# Programmeren met databanken volgens het lagenmodel in C# met Visual Studio en MySQL HA-2267-02 Informaticabeheer Bert Cauwenberg en Lieven Pauwels Werkgroep Handel 2016 Guimardstraat 1, 1040 Brussel Guimardstraat

Nadere informatie

Relaties tussen twee tabellen definiëren

Relaties tussen twee tabellen definiëren Relaties tussen twee tabellen definiëren De verschillende soorten relaties tussen tabellen Door het aanbrengen van een relatie tussen tabellen van een database kan informatie bij elkaar worden gebracht

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

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

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

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

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

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64 Klas Veldnaam Datatype Lengte KLASNAAM Short Text 3 Characters JONGENS Number Integer MEISJES Number Integer Lessen Veldnaam Datatype Lengte KLASNAAM Short Text 3 Characters DOCCODE Short Text 3 Characters

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

PHP-OPDRACHT SITE BOUWEN

PHP-OPDRACHT SITE BOUWEN PHP-OPDRACHT SITE BOUWEN PERIODE 4 LEERJAAR 1 Opleiding: Duur: Applicatieontwikkelaar 1 onderwijsperiode (4-8 weken) Voorkennis: Basiscursus PHP 5.4 Victor Peters (978 90 125 8499 9) Basiscursus XHTML,

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

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

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

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

Databanken - les 2.

Databanken - les 2. Databanken - les 2 joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn/ Bv. tennisclub Onze tennisclub heeft een aantal spelers, die allemaal een uniek spelersnummer hebben. Soms krijgt een

Nadere informatie

ibridge/andk the analyst s connection

ibridge/andk the analyst s connection ibridge/andk the analyst s connection ibridge / ANDK Uiteraard weet ú als criminaliteitsanalist als geen ander dat u met behulp van de Analyst s Notebook software analyseschema s handmatig kunt opbouwen

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

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

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

Databanken - les 2.

Databanken - les 2. Databanken - les 2 joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost/dn/ Samenvattend Probleemstelling ER-Diagramma Databank definitie Gegevens invoeren Gegevens opvragen Huiswerk! Practicum

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

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

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

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

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

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

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

Databases gebruiken. Databases gebruiken

Databases gebruiken. Databases gebruiken Databases gebruiken In deze module wordt van de kandidaat verwacht dat hij een goed begrip heeft van databases en aantoont competent te zijn in het gebruik van een database. Doel van de module De kandidaat:

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

MEMO. De database server zit op piekmomenten aan een heel hoog CPU gebruik:

MEMO. De database server zit op piekmomenten aan een heel hoog CPU gebruik: From Didier Adriaensen To VVV Date CC 17/6/2014 Ref Subject Performantie SearchAPI en database. (deel 2) 1. Vaststellingen De database server zit op piekmomenten aan een heel hoog CPU gebruik: De pieken

Nadere informatie

Programmeren in C++ Efficiënte zoekfunctie in een boek

Programmeren in C++ Efficiënte zoekfunctie in een boek Examen Software Ontwikkeling I 2e Bachelor Informatica Faculteit Wetenschappen Academiejaar 2010-2011 21 januari, 2011 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief de hints/opmerkingen)!

Nadere informatie

Toegepaste notatiewijzen DLA software

Toegepaste notatiewijzen DLA software Toegepaste notatiewijzen DLA software Bert Dingemans info@dla-architect.nl Inleiding In de DLA Software wordt gebruik gemaakt van een aantal notatiewijzen voor het opstellen van een object- en procesmodel.

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

Van een ER-diagram naar een database specificatie in SQL

Van een ER-diagram naar een database specificatie in SQL Van een ER-diagram naar een database specificatie in SQL Huub de Beer Eindhoven, 4 juni 2011 Inhoudsopgave 1 Inleiding 1 2 Van een ER-diagram naar het relationele model 1 3 Van relationeel model naar SQL

Nadere informatie

Datakwaliteitsborging met Oracle dynamisch SQL

Datakwaliteitsborging met Oracle dynamisch SQL Ook zonder specifieke tools goede oplossing mogelijk Datakwaliteitsborging met Oracle dynamisch SQL Reinbert Hamstra De bruikbaarheid van gegevens in een organisatie is rechtstreeks afhankelijk van de

Nadere informatie

Kenmerken van DLArchitect

Kenmerken van DLArchitect Kenmerken van DLArchitect Bert Dingemans, e-mail : bert@dla-os.nl www : http://www.dla-os.nl 1 Inhoud KENMERKEN VAN DLARCHITECT... 1 INHOUD... 2 INLEIDING... 3 ARCHITECTUUR... 3 Merode... 3 Methode en

Nadere informatie

PROGRAMMA 2011-2012. Vak: Informatica..

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

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Dynamiek met VO-Script

Dynamiek met VO-Script Dynamiek met VO-Script Door Bert Dingemans DLA Ontwerp & Software bert@dla-architect.nl Inleiding Op de SDGN nieuwsgroep voor Visual Objects ontstond laatst een draad van berichten over de nieuwe libraries

Nadere informatie

Portability, Interoperability of toch maar Connectivity Portability, Interoperability of toch maar Connectivity.

Portability, Interoperability of toch maar Connectivity Portability, Interoperability of toch maar Connectivity. Portability, Interoperability of toch 1 Even Voorstellen Diploma s: 1980 Bachelor of Science Civil Engineering (Cairo, Egypte) 1986 Doctoraal in Geodesie (TU Delft, Nederland) Enige Automatiseringservaring:

Nadere informatie

Trainingsomschrijving ACCESS 97 / 2000 / 2003NL

Trainingsomschrijving ACCESS 97 / 2000 / 2003NL Module 1 Inleiding Module 2 Ontwerpen van tabellen Module 3 Relationele databases en queries Module 4 Formulieren en rapporten Module 5 Geav. formulieren en rapporten Module 6 Macro s en menu s Module

Nadere informatie

Application interface. service. Application function / interaction

Application interface. service. Application function / interaction Les 5 Het belangrijkste structurele concept in de applicatielaag is de applicatiecomponent. Dit concept wordt gebruikt om elke structurele entiteit in de applicatielaag te modelleren: softwarecomponenten

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren Maart 2015 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 2 December 2014 Yannick Verschueren

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

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

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

Functionaliteiten 4orange Connect

Functionaliteiten 4orange Connect Functionaliteiten 4orange Connect 4orange, 2014 Hogehilweg 24 1101 CD Amsterdam Zuidoost www.4orange.nl 2 4orange Connect: de nieuwste release van FileFrame 4orange Connect is de nieuwste release van FileFrame.

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

Ontwerp een datamodel

Ontwerp een datamodel SQL IAM-TDI-V2-SQL, handleiding datamodel Ontwerp een datamodel Fons van Kesteren, okt 2008, HvA IAM IAM-V2-TDI-SQL 1 Doelstelling... 3 Het ontwerpproces... 4 Afbakening van het informatiedomein... 5 Entiteiten,

Nadere informatie

ADVANCED DATABASES Syllabus versie 2.0

ADVANCED DATABASES Syllabus versie 2.0 ECDL-MODULE ADVANCED DATABASES Syllabus versie 2.0 Doel Dit document bevat de syllabus van de module Advanced Databases. In de syllabus worden aan de hand van leeruitkomsten de kennis en vaardigheden uiteengezet

Nadere informatie

Webapplicaties Op maat van je proces

Webapplicaties Op maat van je proces Webapplicaties Op maat van je proces Content Wat is een webapplicatie Voordelen van webapplicaties Toepassingen/Use cases Wat is een webapplicatie Wat is een webapplicatie Webapplicaties laten toe om processen

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

DataFlex 19.0 SQL Server

DataFlex 19.0 SQL Server Connections to SQL Server 1 Agenda Connecties Aanpassingen in applicaties 2 Connecties Kort overzicht 3 SQL manier Connectie maken met een server (login) Connectie stelt je in staat om tabellen in een

Nadere informatie

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous 2006-2007 Inhoudsopgave 1 2 1.1 Programmeertaal PHP5..................... 2 1.2 MySQL database......................... 3 1.3 Adobe Flash...........................

Nadere informatie

INLEIDING... 1 AFSPRAKEN... 2 INHOUDSOPGAVE...

INLEIDING... 1 AFSPRAKEN... 2 INHOUDSOPGAVE... Inhoudsopgave INLEIDING... 1 AFSPRAKEN... 2 INHOUDSOPGAVE... 3 1 DE DATABASE CURSUSSEN... 9 1.1 Inleiding... 9 1.2 Het voorbeeld... 9 1.2.1 Probleemomschrijving... 9 1.2.2 Concretisering en vragen naar

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

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

Data Definition Language

Data Definition Language Data Definition Language We gaan hier dezelfde database gebruiken als in de vorige les. Nu gaan we deze echter maken met behulp van DDL gedeelte van SQL. Om in het SQL deel van Microsoft Access te komen

Nadere informatie

studie waarmee we de principes van de analyse willen demonstreren. Een volledig beschrijving van de algoritmen en de resultaten zijn te vinden in

studie waarmee we de principes van de analyse willen demonstreren. Een volledig beschrijving van de algoritmen en de resultaten zijn te vinden in Bio-informatica kan omschreven worden als het toepassen van algoritmen om meerwaarde te verkrijgen uit data afkomstig van biomedisch en/of biologisch onderzoek. In bio-informatica wordt onderzoek gedaan

Nadere informatie