Integriteitsbewaking bij een relationele database

Maat: px
Weergave met pagina beginnen:

Download "Integriteitsbewaking bij een relationele database"

Transcriptie

1 Integriteitsbewaking bij een relationele database Bij het ontwikkelen van een informatiesysteem voor een organisatie moet er koste wat koste voor gezorgd worden, dat er geen tegenstrijdige gegevens in de database terecht komen. Als voorbeeld werd al eerder genoemd, zal voor het informatiesysteem van een bibliotheek dus beslist voorkomen moeten worden dat volgens de in de database opgeslagen gegevens een níet-bestaand boek uitgeleend is aan een niet-bestaand bibliotheeklid. Uiteraard hoef je je alleen te bekommeren om die constraints als je wijzigingen (via een INSERT-, DELETE- of UPDATE-commando) in de opgeslagen gegevens wilt aanbrengen. In deze cursus hebben we gezien, dat een van de uitkomsten van de informatie-modellering is, dat de beperkingsregels (constraints) die binnen een database gerespecteerd en/of afgedwongen moeten worden, boven water zijn gekomen. De kwestie is nu dus om die gevonden constraints ook daadwerkelijk te implementeren. Bij informatie-modellering hebben we gezien, dat tot die beperkingsregels behoren: totale (verplichte) rollen; uniciteitsregels; aantallenregels; deelverzamelingsregels; waarderegels; uitsluitingsregels. Moesten in het verleden deze constraints door noest programmeerwerk in een derde generatietaal (3GL) worden afgedwongen, gelukkig is de tendens om de (R)DBMS s zodanig te maken, dat de informatiesysteem-ontwerper en -bouwer slechts aan het DBMS hoeft duidelijk te maken dat die constraints bestaan en dat het RDBMS ze dan maar moet bewaken. Een tweetal (in de praktijk toegepaste) mogelijkheden dienen zich hiervoor aan: gebruik maken van (beter wordende) DDL (Data Definition Language) mogelijkheden van SQL; gebruik maken van zogenaamde stored procedures en triggers voor het aanroepen daarvan. Gezien de aard van de cursus zullen we ons hier vooral richten op de eerst genoemde mogelijkheid. We zullen daarbij kijken naar welke mogelijkheden de SQL1-definitie (uit 1986) en de SQL2-definitie (uit 1992) ons bieden. Ofschoon er reeds druk gewerkt wordt aan het opstellen van een SQL3-standaard, gebiedt de eerlijkheid te stellen, dat er momenteel nog geen (of maar héél weinig) RDBMS s zijn, die de volledige SQL2-standaard geïmplementeerd hebben. Integriteitsbewaking zònder SQL-DDL (Data Definition Language) te gebruiken Behalve via het eerder genoemde noeste programmeerwerk in vaak een 3GL (al dan niet gecombineerd met SQL-statements tot embedded SQL) is een tamelijk primitieve manier van integriteitsbewaking die waarbij alleen gebruik gemaakt wordt van de ROLLBACK WORK- en COMMIT WORK-instructies van SQL. Dat betekent, dat we eerst een wijziging voorlopig doorvoeren, dan controleren of er in de ontstane situatie geen beperkingsregels zijn overtreden en tot slot: als de database integer is, het COMMIT WORK-commando geven, doch als er tegenstrijdige gegevens in de database zijn opgeslagen, het ROLLBACK WORK-commando geven, waardoor alle wijzigingen teniet worden gedaan en we weer terugkeren naar de oude, integere situatie. Het controleren van de integriteit van de ontstane (voorlopige!) situatie kan dan gebeuren met zogenaamde negatieve SELECT-statements. Dat betekent dat we SELECT-queries zodanig formuleren, dat niet-toegestane situaties zouden worden opgespoord en getoond. In zo n pre-sql1-situatie zou de definitie van de president-gegevenstabel slechts kunnen zijn: CREATE TABLE PRESIDENT (PRES_NAME CHAR (16), BIRTH_YR SMALLINT, YRS_SERV SMALLINT, DEATH_AGE SMALLINT, PARTY CHAR (11), STATE_BORN CHAR (15) ) 1

2 Als we er bijvoorbeeld toch voor moeten zorgen, dat in de kolommen Pres_name, Birth_yr, Yrs_serv en Party altijd een waarde moet zijn ingevuld (dus: er geen NULL-waarden in mogen staan), dan zouden we na (voorlopige) veranderingen in de tabelgegevens als negatieve SELECT-commando kunnen geven: WHERE PRES_NAME IS NULL OR BIRTH_YR IS NULL OR YRS_SERV IS NULL OR PARTY IS NULL Indien hierna een of meer tabelregels getoond worden, dan voldoen een of meer velden uit de getoonde regels niet aan de totale-rol-beperkingsregel en via een ROLLBACK WORK-commando moeten we vervolgens zo n niet toegestane gegevensverandering weer teniet doen. Als er ná voorgaand commando géén tabelregels getoond worden, dan lijkt alles (althans wat de genoemde totaliteitsregels betreft) in orde te zijn en kunnen we via een COMMIT WORK-commando de voorlopige wijzigingen definitief maken. Op eenzelfde manier kunnen we ook allerlei andere beperkingsregels testen. Neem bijvoorbeeld de uniciteitsregel dat in de president-tabel een bepaalde presidentsnaam maar één keer mag voorkomen en (waarderegel:) dat het geboortejaar van een president nooit voor 1700 kan zijn geweest. De hierbij behorende negatieve SELECT-commando s zijn dan achtereenvolgens: GROUP BY PRES_NAME HAVING COUNT (*) > 1 ( <= uniciteitsregel!) en: WHERE BIRTH_YR < 1700 (<= waarderegel of domein-eis voor jaartallen in deze database) Voor de tabel ADMINISTRATION geldt, dat de combinatie admin_nr + pres_name niet vaker dan éénmaal mag voorkomen: SELECT ADMIN_NR, PRES_NAME FROM ADMINISTRATION GROUP BY ADMIN_NR, PRES_NAME HAVING COUNT (*) > 1 Leeftijden noch kindertal zullen ooit negatief kunnen zijn, dus moeten we checken: FROM PRES_MARRIAGE WHERE PR_AGE < 0 OR SP_AGE < 0 OR NR_CHILDREN < 0 De combinatie van admin_nr + pres_name, zoals die voorkomt in de Admin_pr_vp -tabel zal (immers: deelverzamelingsregel) voor moeten komen in de Administration-tabel: FROM ADMIN_PR_VP APV WHERE NOT EXISTS ( FROM ADMINISTRATION WHERE ADMIN_NR = APV.ADMIN_NR AND PRES_NAME = APV.PRES_NAME) En zo moeten we het naleven van nog enorm veel andere constraints controleren. Voor het integer houden van de gehele presidentiële database zijn dus enorm veel negatieve SELECT s nodig. Voor elke negatieve SELECT geldt, dat bij het tonen van een of meer tabelregels een constatering van een overtreding van een beperkingsregel heeft plaatsgevonden en dus: ROLLBACK WORK, want die ontstane voorlopige situatie moet teruggedraaid worden. 2

3 Integriteitsbewaking via SQL1-DDL De Data Definition Language van SQL1 biedt mogelijkheden om 2 genoemde constraint-typen af te dwingen: totale rollen zijn af te dwingen via de NOT NULL-optie in het CREATE TABLE-commando; uniciteitsregels zijn af te dwingen via de UNIQUE INDEX-mogelijkheid. eventueel hoort hier nog de optie bij: het voor wijzigen benaderen van gegevenstabellen via View-definities WITH CHECK OPTION. Het opzetten van de president-gegevenstabel kan met SQL1-DLL als volgt: CREATE TABLE PRESIDENT (PRES_NAME CHAR (16) NOT NULL, BIRTH_YR SMALLINT NOT NULL, YRS_SERV SMALLINT NOT NULL, DEATH_AGE SMALLINT, PARTY CHAR (11) NOT NULL, STATE_BORN CHAR (15) ) met daarbij: CREATE UNIQUE INDEX PRES_PRIM ON PRESIDENT (PRES_NAME) We hebben hierbij gebruik gemaakt van de Data Definition Language mogelijkheden van de NOT NULL-optie en de UNIQUE INDEX. Op deze manier zal het RDBMS zélf ervoor zorgen, dat de betreffende totaliteitsregels (via het NOT NULL) en de uniciteitsregel (primary key) over de presidentsnaam gehandhaafd zal blijven. Als we proberen om toch een wijziging door te voeren, waardoor die regels overtreden zouden worden, dan zal het RDBMS een (door ons aanpasbare) foutmelding over de afgewende schending van de constraints geven. Uiteraard zijn hier met betrekking tot de presidentiële database nog vele andere voorbeelden te geven. We geven hier nog: CREATE TABLE PRES_MARRIAGE (PRES_NAME CHAR (16) NOT NULL, SPOUSE_NAME CHAR (16) NOT NULL, PR_AGE SMALLINT, SP_AGE SMALLINT, NR_CHILDREN SMALLINT, MAR_YEAR SMALLINT ) met daarbij: CREATE UNIQUE INDEX PRESMAR_PRIM ON PRES_MARRIAGE (PRES_NAME, SPOUSE_NAME) Let hier op het gebruik de mogelijkheid om impliciet een primary key te definiëren over twéé kolommen. Middels de definitie van Views With Check Option is het mogelijk domeinintegriteitseisen (lees: waarderegels), niet-sleutel-verwijzingen en op beperkte schaal zelfs bijzondere integriteitseisen te bewaken. We illustreren dit voor de tabellen PRESIDENT en PRES_MARRIAGE: CREATE VIEW PRES_VIEW AS WHERE BIRTH_YR >= 1700 AND DEATH_AGE >= 0 AND PRES_NAME IN ( SELECT PRES_NAME FROM ADMINISTRATION) WITH CHECK OPTION CREATE VIEW PRES_MAR_VIEW AS FROM PRES_MARRIAGE WHERE PR_AGE >= 0 AND SP_AGE >= 0 AND NR_CHILD>= 0 AND MAR_YEAR >= 1700 WITH CHECK OPTION Bij de bespreking van views is besproken, dat dankzij de With Check Option het niet mogelijk zal zijn om (opererend op de view!) in de onderliggende gegevenstabel wijzigingen aan te brengen, die indruisen tegen de criteria zoals gesteld in de WHERE-regel. Uiteraard moet er dan wel voor gezorgd worden dat niemand nog rechtstreeks de onderliggende gegevenstabellen kan benaderen voor het doorvoeren van veranderingen. 3

4 Opvragingen kunnen echter beter - want sneller - direct via de basistabellen blijven verlopen. Het is soms zelfs mogelijk om via Views With Check Option deelverzamelingsregels af te dwingen. We kunnen dat bereiken door een subquery-constructie. Als voorbeeld geven we, dat de waarde voor Admin_entered in de State-gegevenstabel alleen die kan zijn van een bestaand Admin_nr in de Administration-tabel: CREATE VIEW STATE_VIEW AS FROM STATE WHERE ADMIN_ENTERED IN (SELECT ADMIN_NR FROM ADMINISTRATION ) AND YEAR_ENTERED >= 1700 WITH CHECK OPTION Gezien het karakter van subqueries, kan deze constructie níet toegepast worden bij verwijzing naar een gecombineerde sleutel over twee of meer kolommen. Alle overige beperkingsregels zullen nog steeds via bijvoorbeeld de combinatie van negatieve SELECT s en de commando s ROLLBACK WORK versus COMMIT WORK bewaakt moeten worden. Vergemakkelijkte integriteitsbewaking via SQL2-DDL Een aantal extra s voor wat betreft de integriteitsbewaking op database -niveau is bij SQL2-systemen mogelijk door gebruik van de volgende DDL-constructies: Primary Key -constructies Foreign Key - constructies Check-instructies (al dan niet voor Domein-integriteitseisen) N.B. In sommige RDBMS s kan ook met alternate keys gewerkt (en dus: de data-integriteit bewaakt) worden. We geven hier een aantal voorbeelden (refererend aan de presidentiële database): CREATE TABLE PRESIDENT (PRES_NAME CHAR (16) NOT NULL, BIRTH_YR SMALLINT NOT NULL, YRS_SERV SMALLINT NOT NULL, DEATH_AGE SMALLINT, PARTY CHAR (11) NOT NULL, STATE_BORN CHAR (15), PRIMARY KEY (PRES_NAME), FOREIGN KEY (STATE_BORN) REFERENCES STATE (STATE_NAME) ON DELETE NULLIFIES ON UPDATE CASCADE ) CREATE TABLE PRES_MARRIAGE (PRES_NAME CHAR (16) NOT NULL, SP_NAME CHAR (16) NOT NULL, PR_AGE SMALLINT, SP_AGE SMALLINT, NR_CHILD SMALLINT, MAR_YEAR SMALLINT, PRIMARY KEY (PRES_NAME, SP_NAME) FOREIGN KEY (PRES_NAME) REFERENCES PRESIDENT (PRES_NAME) ON DELETE CASCADE ON UPDATE CASCADE ) CREATE TABLE ADMIN_PR_VP (ADMIN_NR SMALLINT NOT NULL, PRES_NAME CHAR (16) NOT NULL, VICE_PRES_NAME CHAR (16) NOT NULL, PRIMARY KEY (ADMIN_NR, PRES_NAME, VICE_PRES_NAME), FOREIGN KEY (ADMIN_NR, PRES_NAME) REFERENCES ADMINISTRATION (ADMIN_NR, PRES_NAME) ON DELETE RESTRICT ON UPDATE CASCADE ) Het gebruik van de primary key-regels in deze DLL-tabeldefinities behoeft waarschijnlijk geen nadere uitleg. 4

5 Anders ligt dat bij de foreign key-regels. We zien daar als toevoegingen opties (let op: het is niet verplicht ze te gebruiken) verschijnen voor wat er moet gebeuren als uit de tabel waar naar verwezen wordt veranderingen (ON DELETE / ON UPDATE) plaatsvinden in de waarden waar via die foreign key naar gerefereerd worden. We zullen hiervan twee voorbeelden noemen: Wat moet er bijvoorbeeld gebeuren indien bij nader inzien blijkt dat de naam van president Reagan R toch beslist Reagan RA zou moeten zijn? Als we die naamsverandering zomaar in de president -tabel zouden doorvoeren, dan zou de deelverzamelingsregel (foreign key) uit de pres_marriage-tabel, waardoor vastgelegd is dat een presidentsnaam uit die pres_marriage-tabel beslist óók moet voorkomen in de president-tabel, in de problemen komen omdat in de pres_marriage-tabel nog steeds Reagan R staat, maar in de president -tabel Reagan RA. Wat moet er gebeuren als besloten zou worden om (stel je een splitsing voor, waarbij de staat Texas zich zou afscheiden) de regel over Texas uit de state -tabel te schrappen? De foreign key-verwijzing voor State_born in de president -tabel verwijst immers naar een State_Name in de State-tabel. Mogelijke nadere aanduidingen zijn hierbij: Restrict, Cascade of Nullifies. De acties die door het RDBMS daarbij moeten worden ondernomen zijn respectievelijk de volgende: RESTRICT: het veranderen van gegevens in de kolom waarnaar vanuit een andere tabel middels een foreign key gerefereerd wordt (of het verwijderen van een hele tabelregel) mag alleen indien de betreffende waarde in die andere tabel (of tabellen!) niet voorkomt. Komt die waarde daar wél voor, dan moet de verandering door het RDBMS geweigerd worden. (soms: Reject ) CASCADE: veranderingen in de tabel waarnaar vanuit een andere tabel middels een foreign key verwezen, moeten in die andere tabel (of tabellen!) óók worden doorgevoerd. In ons eerste voorbeeld zou dit betekenen, dat verandering in de naam Reagan R in de president -tabel automatisch door het RDBMS óók moeten worden doorgevoerd in de tabellen waarbij pres_name (een deel van) een vreemde sleutel naar die president-tabel is. (cascade: waterval ) NULLIFIES: indien in een kolom waarnaar vanuit een andere tabel middels een foreign key wordt verwezen, een verandering plaats vindt, dan moet het betreffende veld (of velden) in die andere tabel automatisch de waarde NULL krijgen. Uiteraard is dit alleen mogelijk indien bij het creëren van die tabel het bewuste veld géén NOT NULL-optie heeft meegekregen. In ons tweede voorbeeld zou dit betekenen, dat bij verwijderen van de staat Texas uit de state -tabel automatisch door het RDBMS op alle plaatsen in de president-tabel waar Texas als state_born staat, deze waarde wordt verwijderd (dus de waarde NULL komt; dit mag omdat in het CREATE TABLE-commando deze kolom géén NOT NULL heeft). (soms: Set Null). Domeinen en CHECK op domein-integriteitseisen Er zijn inmiddels RDBMS s op de markt verschenen, die middels CREATE -instructies ook domeinen (verzamelingen van mogelijke waarden van een bepaald gegevenstype) inclusief de daarvoor geldende domeinintegriteitseisen kunnen creëren. We passen dit als voorbeeld toe op een deel van de presidentiële database: CREATE DOMAIN PERSON_NAME AS CHAR(16) CREATE DOMAIN YEAR_NUMBER AS SMALLINT CHECK (VALUE >= 1700) CREATE DOMAIN NUMBER_OF_YEARS AS SMALLINT CHECK (VALUE >= 0) CREATE DOMAIN PARTY_NAME AS CHAR(11) CREATE DOMAIN STATE_NAME AS CHAR (15) CREATE DOMAIN HOBBY_NAME AS CHAR (20) CREATE DOMAIN ADMIN_NUMBER AS SMALLINT CHECK (VALUE > 0) CREATE DOMAIN COUNT_NUMBER AS SMALLINT CHECK (VALUE >= 0) CREATE DOMAIN NUMBER_OF_VOTES AS SMALLINT CHECK (VALUE >= 0) CREATE DOMAIN W_L_INDIC AS CHAR(1) CHECK (VALUE IN ('W', 'L')) 5

6 CREATE TABLE PRESIDENT (PRES_NAME PERSON_NAME NOT NULL, BIRTH_YR YEAR_NUMBER NOT NULL, YRS_SERV NUMBER_OF_YEARS NOT NULL, DEATH_AGE NUMBER_OF_YEARS, PARTY PARTY_NAME NOT NULL, STATE_BORN STATE_NAME, PRIMARY KEY (PRES_NAME), FOREIGN KEY (STATE_BORN) REFERENCES STATE (STATE_NAME) ) CREATE TABLE PRES_HOBBY (PRES_NAME PERSON_NAME NOT NULL, HOBBY HOBBY_NAME NOT NULL, PRIMARY KEY (PRES_NAME, HOBBY), FOREIGN KEY (PRES_NAME) REFERENCES PRESIDENT (PRES_NAME) ) Door het gebruik van een domein-naam als type-aanduiding voor een kolom in een CREATE TABLEcommando is het met behulp van de domein-check-optie mogelijk het RDBMS ervoor te laten zorgen, dat alleen toegestane waarden in die kolom opgeslagen zullen worden. Vanwege de domein-definitie CREATE DOMAIN YEAR_NUMBER AS SMALLINT, inclusief de domein-eis: CHECK (VALUE >= 1700), zal het (gecontroleerd door het RDBMS) onmogelijk worden om zowel voor bijvoorbeeld een geboortejaar van een president als voor een verkiezingsjaar als voor een jaar-van-toetreden etc. een waarde die kleiner is dan 1701 op te slaan. Andere CHECK-instructies Sommige recente RDBMS-versies kennen aanvullende mogelijkheden voor het op database-niveau bewaken van integriteitsen, door ook CHECK-componenten in de CREATE TABLE instructies op te nemen. Ook daarvan geven we hier enkele voorbeelden: Voor de kolom STATE (YEAR_ENTERED) geldt de bijzondere integriteitseis, dat alle waarden >= 1776 moeten zijn. Daatoe nemen we in de CREATE TABLE instructie voor de tabel STATE nog op: CHECK (YEAR_ENTERED >= 1776) Een nog niet genoemde bijzondere integriteitseis voor de kolom MAR_YEAR in de tabel PRES_MARRIAGE kan door het RDBMS bewaakt worden via: CHECK (MAR_YEAR >= (SELECT BIRTH_YEAR + 18 P WHERE PRES_NAME = P.PRES_NAME)) Ook kunnen we op deze wijze de níet-vreemde-sleutel-verwijzingen bewaken, door respectievelijk de volgende CHECK-componenten op te nemen in de tabellen PRESIDENT, STATE en ADMINISTRATION: CHECK (PRES_NAME IN (SELECT PRES_NAME FROM ADMINISTRATION)) CHECK (ADMIN_ENTERED IN (SELECT ADMIN_NR FROM ADMINISTRATION)) CHECK (ADMIN_NR IN (SELECT ADMIN_NR FROM ADMIN_PR_VP)) Eventueel kunnen zulke CHECK s opgenomen worden in ALTER TABLE -instructies, voor het nadat de tabellen waarnaar wordt verwezen zijn gecreëerd, achteraf aanpassen van deze tabel-definities. Ondanks de verbeterde DLL-integriteitsbewaking onder SQL2 zal het (afhankelijk van de mogelijkheden van het gebruikte RDBMS) meestal toch nodig zijn nog een aantal constraints via b.v. negatieve SELECT s af te dwingen. We geven hier een aantal voorbeelden 1 van zulke bijzondere integriteitseisen die zowel op intra-, maar meestal vooral op inter-relationeel niveau zullen zitten: 1. In de kolom ADMINISTRATION (ADMIN_NR) moeten alle waarden vanaf 1 t/m de hoogste opgenomen waarde allemaal aanwezig zijn (N.B. >= 1 wordt op een andere manier reeds bewaakt!): 1 Met dank aan Guido Bakema van de Hogeschool Arnhem Nijmegen 6

7 FROM ADMINISTRATION WHERE ADMIN_NR < (SELECT MAX (ADMIN_NR) FROM ADMINISTRATION) AND ADMIN_NR + 1 NOT IN (SELECT ADMIN_NR FROM ADMINISTRATION) 2. In de kolom STATE (ADMIN_ENTERED) moet dan en slechts dan een NULL-waarde staan als in dezelfde rij in de kolom ADMINISTRATION (YEAR_ENTERED) de waarde 1776 staat: FROM STATE WHERE (ADMIN_ENTERED IS NULL AND YEAR_ENTERED <> 1776) OR (ADMIN_ENTERED IS NOT NULL AND YEAR_ENTERED = 1776) 3. Bij alle rijen in de tabel ELECTION met eenzelfde waarde in de kolom ELECTION_YEAR moeten òf in de kolom WINNER_LOSER_INDIC alleen NULL-waarden voorkomen òf er moet in precies één rij een ' W' en in de andere rijen steeds een ' L' zijn ingevuld (N.B. ' of een ' W' of een ' L' ' wordt reeds bewaakt): FROM ELECTION WHERE WINNER_LOSER_INDIC = 'W' GROUP BY ELECTION_YEAR HAVING COUNT (*) > 1 4. Tevens eisen we dat deze waarden ' W' of ' L' slechts mogen zijn ingevuld voor zeker verkiezings jaar, als voor dat verkiezingsjaar ook de uitslag in de kolom VOTES is vastgelegd: FROM ELECTION WHERE VOTES IS NULL AND WINNER_LOSER_INDIC IS NOT NULL 5. In de kolom PRES_MARRIAGE (MAR_YEAR) ingevulde waarden moeten groter of gelijk zijn dan de in de kolom PRESIDENT (BIRTH_YR) voor dezelfde president ingevulde waarde + 18: FROM PRES_MARRIAGE PM WHERE MAR_YEAR < ( SELECT BIRTH_YR + 18 WHERE PRES_NAME = PM.PRES_NAME) 6. Een in de kolom PRES_MARRIAGE (PR_AGE) ingevulde waarde moet gelijk zijn aan of 1 meer zijn dan het verschil van voor die president ingevulde waarden in de kolommen PRES_MARRIAGE (MAR_YEAR) en PRESIDENT (BIRTH_YR): FROM PRES_MARRIAGE PM WHERE PR_AGE <> ( SELECT MAR_YEAR - BIRTH_YR FROM PRESIDENT P, PRES_MARRIAGE PM WHERE P.PRES_NAME = PM.PRES_NAME) OR PR_AGE + 1 <> ( SELECT MAR_YEAR - BIRTH_YR FROM PRESIDENT P, PRES_MARRIAGE PM WHERE P.PRES_NAME = PM.PRES_NAME ) 7. Van alle rijen in de tabel ADMINISTRATION met eenzelfde waarde in de kolom ADMIN_NR, moet minstens die waardencombinatie in ADMINISTRATION (ADMIN_NR, PRES_NAME) waarvoor de waarde in de kolom ADMINSTRATION (YEAR_INAUGURATED) minimaal is, ook voorkomen in de kolomcombinatie ADMIN_PR_VP (ADMIN_NR, PRES_NAME): FROM ADMINISTRATION A WHERE YEAR_INAUGURATED = (SELECT MIN ( YEAR_INAUGURATED ) FROM ADMINISTRATION WHERE ADMIN_NR = A.ADMIN_NR) AND NOT EXISTS ( FROM ADMIN_PR_VP WHERE ADMIN_NR = A.ADMIN_NR AND PRES_NAME = A.PRES_NAME) En zo zijn/blijven er misschien nog wel meer te controleren integriteitsregels over. 7

8 Feitelijk kunnen we de datadefinitiemogelijkheden van een RDBMS karakteriseren door aan te geven welke van voorgaande negatieve SELECT s overb odig zijn omdat de betreffende integriteitsaspecten via CREATEinstructies kunnen worden bewaakt. Voor een RDBMS dat (o.a.) is uitgerust met definitiemogelijkheden voor domeinen met domeinintegriteitseisen en voor tabelschema' s met níet -leeg-eisen, primaire sleutels en vreemde sleutels, blijven vrij weinig negatieve SELECT s over. Hòe dergelijke negatieve SELECTs dan daadwerkelijk worden geïmplementeerd, hetzij door ze in de in de applicaties op te nemen (embedded SQL), hetzij in de vorm van stored procedures, hetzij door tools in te zetten, is een keuze die de gegevensbankbeheerder moet maken. De kwaliteit van een database-managementsysteem hangt dus o.a. af van de mate waarin het RDBMS ons helpt om de integriteit van de in de database opgeslagen gegevens te bewaken. Hoe meer automatische constraint - bewaking er mogelijk is, hoe minder kans op fouten er ook is doordat menselijke ontwerpers of programmeurs vergeten in bepaalde situatie een speciale beperkingsregel in de gaten te houden en hoe efficiënter (lees: goedkoper) het bouwproces van het informatiesysteem zal zijn. We moeten er ons wél ter dege van bewust zijn, dat een fundamentele eis voor het correct ontwerpen en bouwen van een informatiesysteem bovenal is, dat door een goede informatie-analyse alle samenhang tússen en beperking(sregels) óp de gegevens naar boven is gekomen. 8

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

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

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

Nadere informatie

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

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

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

Elfde-Liniestraat 24 3500 Hasselt Schooljaar 2009-2010 TINFO POKER GAME Oracle Scripts

Elfde-Liniestraat 24 3500 Hasselt Schooljaar 2009-2010 TINFO POKER GAME Oracle Scripts Elfde-Liniestraat 24 3500 Hasselt Schooljaar 2009-2010 TINFO POKER GAME Oracle Scripts Studenten: Peter Asnong Rik Broens Tom De Keyser Daan Gielen Kris Gregoire Koen Olaerts Toon Wouters Inhoudsopgave

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

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

Zelftest DB2 for z/os basiscursus

Zelftest DB2 for z/os basiscursus Zelftest DB2 for z/os basiscursus Document: n1067test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST DB2 FOR Z/OS BASISCURSUS

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

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

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

voorbeeldexamen I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006

voorbeeldexamen I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006 voorbeeldexamen Databases and SQL Foundation (DBSQLF) I-Tracks Databases and SQL Foundation Voorbeeldexamen DBSQLF Uitgave juni 2006 inhoud 3 inleiding 4 voorbeeldexamen 21 antwoordindicatie 44 beoordeling

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

Zelftest Oracle basiscursus

Zelftest Oracle basiscursus Zelftest Oracle basiscursus Document: N0475Test.fm 14/01/2008 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST ORACLE BASISCURSUS Dit is een

Nadere informatie

Op de werkbalk staan drie knoppen, die van links naar rechts staan voor de drie genoemde stappen.

Op de werkbalk staan drie knoppen, die van links naar rechts staan voor de drie genoemde stappen. pagina 1 van 9 Een informatiemodel vertalen naar een database Het ontwerpen van een database met behulp van het casetool gaat in drie stappen: 1. Controle Eerst voert het casetool een controle uit. Er

Nadere informatie

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC

SQL STATEMENTS. Deze kolom kan grote stukken tekst aan en is bedoeld om tekst erin de plaatsen. Geheel getal, bijvoorbeeld 8, 63, 835 NUMERIC Aantekeningen IRDB Vak: IRDB > Infrma1ca Rela1nele DataBase Onderstaande database scripts zijn gebaseerd p PstgreSQL. Standaarden Schrijf SQL wrden al1jd in hfdlefers, k al werkt het met kleine lefers;

Nadere informatie

9 H. Flits Zwanenveld 89-90 Nijmegen Jeugd1 10 L. Willemsen Kasteel 4 Wychen Jeugd1 12 M.E.P. Graag Broerdijk 234 Nijmegen Heren 12/8/89 19/8/89 36

9 H. Flits Zwanenveld 89-90 Nijmegen Jeugd1 10 L. Willemsen Kasteel 4 Wychen Jeugd1 12 M.E.P. Graag Broerdijk 234 Nijmegen Heren 12/8/89 19/8/89 36 0 Inleiding SQL: Structured Query Language 0. Informatiesystemen, gegevensbanken en tabellen Bij het automatiseren van gegevensbanken maakt men tegenwoordig bijna altijd gebruik van gegevensbank-beheerssystemen

Nadere informatie

Data Manipulatie. Query Talen. / Informatica

Data Manipulatie. Query Talen. / Informatica Data Manipulatie Query Talen 1 Queries maken in TC en SQL (ter verduidelijking) We kijken nog even naar bier-query q: Geef alle paren van drinkers die niet samen naar een kroeg kunnen gaan en daar allebei

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

Inhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank

Inhoud. Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank v Voorwoord Belangrijkste kenmerken van dit boek De opzet van dit boek Over de auteur Woord van dank 1 Introductie: data en informatie 1.0 Wat leer je in dit hoofdstuk? 1.1 Verschil tussen gegevens en

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

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

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

Nadere informatie

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

Secure Application Roles

Secure Application Roles Secure Application Roles Beheer de toegang tot de database 1. Inleiding Het realiseren van geautoriseerde toegang tot een database lijkt eenvoudig. Echter, vaak blijkt dat dezelfde combinatie van gebruikersnaam

Nadere informatie

Inleiding... 3. 1 Databases en Data Base Management Systems... 3. 2 Tabellen... 3. 3 Wat is SQL?... 5

Inleiding... 3. 1 Databases en Data Base Management Systems... 3. 2 Tabellen... 3. 3 Wat is SQL?... 5 1 Inhoudsopgave. Inleiding.... 3 1 Databases en Data Base Management Systems.... 3 2 Tabellen.... 3 3 Wat is SQL?... 5 4 Gegevens opvragen (deel 1).... 5 4.1 Boolean operatoren.... 7 4.2 IN en BETWEEN

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

COMPUTERWOORDEN.NL SQL - basis

COMPUTERWOORDEN.NL SQL - basis Inhoudsopgave... 1 Introductie: SQL... 7 SQL... 7 SQL geschiedenis...7 SQL dialecten...7 Basis SQL-commando's...8 CREATE TABLE... 8... 8... 8 Datatype...8 Grootte...10 Veldtype... 10 DELETE FROM... 10...

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

Foutafhandeling in SQL

Foutafhandeling in SQL Algemene richtlijnen binnen de mogelijkheden van RDBMS en 4GL Foutafhandeling in SQL Toon Loonen Foutafhandeling van SQL-code is op veel projecten een achtergebleven gebied. Soms is er discussie of het

Nadere informatie

Zelftest SQL Workshop

Zelftest SQL Workshop Zelftest SQL Workshop Document: n0087test.fm 25/06/2014 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST SQL WORKSHOP Handleiding Deze test

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

Relationele database. Het relationele model

Relationele database. Het relationele model Module SQL Relationele database. Een database, gegevensbank of databank is een verzameling van gegevens, ingericht met oog op makkelijke raadpleging en gebruik. Databases spelen een belangrijke rol in

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

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

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

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

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

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

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

Conceptuele modellen versus SQL 2003

Conceptuele modellen versus SQL 2003 Conceptuele modellen versus SQL 2003 Scriptie versie 1.0 Naam: N.W.T.M. (Niek) Reulink Afstudeerdocent: dr. P. (Patrick) van Bommel Plaats, datum: Nijmegen, 16 juni 2006 Richting: Informatiekunde Studentnummer:

Nadere informatie

SQL: oefenen queries

SQL: oefenen queries Oefenen opstellen queries in SQL Hierna vind je per database voor iedere soort vragen in het boek Databases en SQL twee voorbeeldvragen. Bij iedere vraag wordt het antwoord gegeven samen met de uitkomst.

Nadere informatie

Zelftest SQL. Document: n0453test.fm 19/04/2012. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

Zelftest SQL. Document: n0453test.fm 19/04/2012. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium Zelftest SQL Document: n0453test.fm 19/04/2012 ABIS Training & Consulting P.. Box 220 B-3000 Leuven Belgium TRAINING & CNSULTING INLEIDING BIJ DE ZELFTEST SQL Korte handleiding Deze test heeft als bedoeling

Nadere informatie

Holland Casino Eredivisie

Holland Casino Eredivisie Holland Casino Eredivisie bladzijde 1 Holland Casino Eredivisie 1 De formulering van het probleem Om aan te tonen welke ongekende mogelijkheden de Jet Engine biedt en om S(impel)QL aan een grondige test

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

Akternatieve doorrekenen. 7.2 Tabellen

Akternatieve doorrekenen. 7.2 Tabellen 7.2 Tabellen Een tabel geeft een overzicht van de uitkomsten van een berekening voor verschillende waarden van een of meerdere variabelen. Excel kent twee soorten tabellen. Een eenzijdige en een tweezijdige

Nadere informatie

Zonnepanelen Hoe krijg je de data op je website?

Zonnepanelen Hoe krijg je de data op je website? Zonnepanelen Hoe krijg je de data op je website? Beste website-bezoeker, Omdat ik al heel wat vragen kreeg over het gedeelte zonne-energie op mijn website, heb ik besloten om de werkwijze die ik gevolgd

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

1. * Database worden vaak gebruikt in Client-Server architectuur.

1. * Database worden vaak gebruikt in Client-Server architectuur. Naam Studentnummer Klas Herkansing [ ] ja, nee [ ], zoja uit welk jaar? kernbegrippen relationele database Minimaal drie van de vijf vragen goed beantwoorden. 1. * Database worden vaak gebruikt in Client-Server

Nadere informatie

Informatie verwerking en databases... 4. RDBMS en tabellen... 8 SQL SELECT... 8 SQL WHERE... 10 SQL INSERT... 14 SQL UPDATE... 17 SQL DELETE...

Informatie verwerking en databases... 4. RDBMS en tabellen... 8 SQL SELECT... 8 SQL WHERE... 10 SQL INSERT... 14 SQL UPDATE... 17 SQL DELETE... Databases+SQL 1 Inhoud Informatie verwerking en databases... 4 RDBMS en tabellen... 8 SQL SELECT... 8 SQL WHERE... 10 SQL INSERT... 14 SQL UPDATE... 17 SQL DELETE... 18 SQL ORDER BY... 19 SQL Aggregate

Nadere informatie

Digitaal Staatsexamen VWO 2010

Digitaal Staatsexamen VWO 2010 Onderdeel I - Meerkeuzevragen Kies het juiste alternatief. Digitaal Staatsexamen VWO 2010 1) Wat is de decimale waarde van het binaire getal 101110? A. 4 B. 23 C. 46 D. 92 2) Bekijk bovenstaand model voor

Nadere informatie

SQL SERVER 2008. Werking van Database Snapshots

SQL SERVER 2008. Werking van Database Snapshots KATHOLIEKE HOGESCHOOL KEMPEN GEEL SQL SERVER 2008 Werking van Database Snapshots ELINE STEYVERS BRAM DE SMEDT JOEY LEMMENS WOORD VOORAF Werking van Database Shapshots is bedoeld om mensen wegwijs te maken

Nadere informatie

Les S-02: Meer geavanceerde SQL-instructies

Les S-02: Meer geavanceerde SQL-instructies Les S-02: Meer geavanceerde SQL-instructies 2.0 Overzicht les 1: De basisvorm van een SQL query ziet er als volgt uit: (DISTINCT) selecteer de velden uit de tabel waar de volgende voorwaarde geldt ; Bij

Nadere informatie

SQL. Datamodellering 2008

SQL. Datamodellering 2008 SQL Datamodellering 2008 1 Wat is SQL? SQL is een standaard interactieve bevragings- en definitietaal voor relationele DBMSen SQL is een set-based, declaratieve query-taal (dus niet procedureel!) DB-leveranciers

Nadere informatie

SQL. Wat is SQL? Geschiedenis SQL SQL DMO 2008 1. Datamodellering 2008

SQL. Wat is SQL? Geschiedenis SQL SQL DMO 2008 1. Datamodellering 2008 SQL Datamodellering 2008 1 Wat is SQL? is een standaard interactieve bevragings- en definitietaal voor relationele DBMSen is een set-based, declaratieve query-taal (dus niet procedureel!) DB-leveranciers

Nadere informatie

Case study Gelre Airport

Case study Gelre Airport Case study Gelre Airport Inleiding In dit document is het ontwerp te vinden op grond waarvan het eindproduct voor de beroepstaak Maak en beheer een kleine client-server database kan worden gerealiseerd.

Nadere informatie

Zo kan je linken maken tussen je verschillende groepen van gegevens.

Zo kan je linken maken tussen je verschillende groepen van gegevens. 1 1. Entity Reference Entity Reference zal ook een onderdeel zijn van Drupal 8. Het is een module van het type veld. Het is een heel krachtige module die toelaat om referenties te maken tussen verschillende

Nadere informatie

Bijlage Inlezen nieuwe tarieven per verzekeraar

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

Nadere informatie

Lezing databases en SQL

Lezing databases en SQL Lezing databases en SQL Inleiding... 2 Doelgroep... 2 Deel 1... 3 1.1 Databases... 3 1.2 Begrippen... 3 1.2.1 Tabellen... 3 1.2.2 Kolommen en gegevenstypen... 3 1.2.3 Indexen... 4 1.2.4 Rijen... 5 1.2.5

Nadere informatie

Wijzigingen Universe OSIRIS Manager versie 6.14.1/02 augustus 2014

Wijzigingen Universe OSIRIS Manager versie 6.14.1/02 augustus 2014 Inhoud Inleiding...2 Toelichting extra functionaliteit in release 6.14.1/02...2 Bepalen toetsdatum...2 Wens uitbereiding OSMAN universe met historie geldend resultaat...2 Wens 1: Een class met de historische

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

Relationele databases: regels

Relationele databases: regels Leereenheid Relationele databases: regels Leereenheid Relationele databases: regels I N T R O D U C T I E De vorige leereenheid ging over goede en slechte relationele structuren. Een goede structuur heeft

Nadere informatie

Handleiding configuratie en gebruik tekenmodule

Handleiding configuratie en gebruik tekenmodule Handleiding configuratie en gebruik tekenmodule B3Partners Inhoudsopgave 1 Inleiding...2 2 Configuratie tekenmodule...3 2.1 Database tabel...4 2.2 WMS Service...5 2.3 Gegevensbron en kaartlaag...6 2.4

Nadere informatie

Gebruikers Handleiding

Gebruikers Handleiding Gebruikers Handleiding (De SQL module) Versie 2.14 Pagina 2 van 14 Versie 2.14 Inhoudsopgave NGP SQL...5 Het Menu... 6 De instellingen... 7 De database informatie... 9 Het Script... 10 Pagina 3 van 14

Nadere informatie

PL/SQL. Declaraties van variabelen. Structuur PL/SQL is een blok-georiënteerde taal: Toekenningen

PL/SQL. Declaraties van variabelen. Structuur PL/SQL is een blok-georiënteerde taal: Toekenningen PL/SQL PL/SQL is een procedurele uitbreiding op SQL, omdat SQL op zich niet krachtig genoeg is om complexe databank applicaties te ontwikkelen. Server-side functies, of stored procedures worden op de database

Nadere informatie

Toelichting Validatieregels DBC GGZ RG12

Toelichting Validatieregels DBC GGZ RG12 Toelichting Validatieregels DBC GGZ RG12 Versie 20111201 Ingangsdatum: 1 januari 2012 Inhoudsopgave 1 Inleiding...3 2 Algemene gegevens van de tabel...4 3 Specificatie van de validatieregels...6 4 De validatieregels...8

Nadere informatie

Het SQL Leerboek zevende editie Antwoorden op Opgaven

Het SQL Leerboek zevende editie Antwoorden op Opgaven Het SQL Leerboek zevende editie Antwoorden op Opgaven Auteur: Rick F. van der Lans Versie: 1.0 Datum: Februari 2012 2 Het SQL Leerboek Antwoorden op opgaven Februari 2012 Alle rechten voorbehouden. Alle

Nadere informatie

Data Warehouse Script Generator Doel

Data Warehouse Script Generator Doel Data Warehouse Script Generator Doel Op basis van een aantal standaard sql scripts ( create table, create view ) een nieuwe sql script genereren welke alle objecten ( tables & views ) kan aanmaken in een

Nadere informatie

We moeten de accommodaties selecteren die 3 sterren hebben, en in land met ID 10 zitten.

We moeten de accommodaties selecteren die 3 sterren hebben, en in land met ID 10 zitten. MySQL talk Trage website? Het optimaliseren van een bestaande website die een MySQL database heeft is niet altijd even makkelijk. Het probleem kan namelijk op veel verschillende plekken zitten: de database

Nadere informatie

handleiding S(impel)QL bladzijde 1 Inhoudsopgave

handleiding S(impel)QL bladzijde 1 Inhoudsopgave handleiding S(impel)QL bladzijde 1 Inhoudsopgave Inhoudsopgave... 1 Het doel van S(impel)QL... 3 Over de werking van S(impel)QL... 4 De bouwstenen van S(impel)QL... 5 Queries en scripts... 7 Het gebruik

Nadere informatie

Handleiding Formulieren in TYPO3 Versie 1.2, 18 juli 2008

Handleiding Formulieren in TYPO3 Versie 1.2, 18 juli 2008 Handleiding Formulieren in TYPO3 Versie 1.2, 18 juli 2008 1. Formulieren aanmaken en plaatsen... 2 1.1 Formulieren aanmaken... 2 1.2 Formulier plaatsen op een pagina... 8 1.3 Aanmaken formulieren map...

Nadere informatie

Miniles gegevensbanken bevragen met SQL

Miniles gegevensbanken bevragen met SQL Miniles gegevensbanken bevragen met SQL In deze miniles gaat het over gegevensbanken of databases. Dit zijn bestanden waarin gegevens kunnen worden opgeslagen. Het is dan van belang dat je op een eenvoudige

Nadere informatie

SQL / Systeemanalyse

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

Nadere informatie

Tentamen Databases voor iku

Tentamen Databases voor iku Scheur de antwoordvellen doormidden. Maak elke vraag op een ander vel. Tentamen Databases voor iku 17 april 2013 13:30-16:30, Educatorium-Gamma Vermeld op elk vel je naam en studentnummer. Indien één van

Nadere informatie

Het SQL Leerboek zevende editie Objectrelationele Concepten in SQL

Het SQL Leerboek zevende editie Objectrelationele Concepten in SQL Het SQL Leerboek zevende editie Objectrelationele Concepten in SQL Auteur: Rick F. van der Lans Versie: 1.0 Datum: Februari 2012 2 Het SQL Leerboek Objectrelationele concepten Februari 2012 Alle rechten

Nadere informatie

INSTRUCTIE BILL PAYMENT

INSTRUCTIE BILL PAYMENT INSTRUCTIE BILL PAYMENT ALGEMEEN De optie Bill Payment wordt gebruikt voor betalingen naar: 1. de nutsbedrijven (E.B.S., Telesur, S.W.M.). Deze rekeningen zijn door de bank in het Internet Banking Systeem

Nadere informatie

Automatische Installatie op IIS server

Automatische Installatie op IIS server Automatische Installatie op IIS server In de map Web staat het installatiebestand : Je kan de install starten door het aanklikken van het msi bestand vanuit Verkenner. Na installatie is steeds een manuele

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

Oracle Rolling Upgrades met SharePlex Bart.vanKnijff@quest.com Systems Consultant Quest Software Nederland 9/11 2007

Oracle Rolling Upgrades met SharePlex Bart.vanKnijff@quest.com Systems Consultant Quest Software Nederland 9/11 2007 Oracle Rolling Upgrades met SharePlex Bart.vanKnijff@quest.com Systems Consultant Quest Software Nederland 9/11 2007 Copyright 2006 Quest Software Agenda Wat is SharePlex? Toepassingen en de belangrijkste

Nadere informatie

Een Data Driven toepassing op basis van Visual Objects en SQL Server

Een Data Driven toepassing op basis van Visual Objects en SQL Server Een Data Driven toepassing op basis van Visual Objects en SQL Server Door Bert Dingemans www.dla-architect.nl Inleiding In voorgaande artikelen heb ik een aantal onderwerpen belicht die ten grondslag liggen

Nadere informatie

atica inform databases & SQL

atica inform databases & SQL informatica databases & SQL Op dit lesmateriaal is een Creative Commons licentie van toepassing. 2010 Remie Woudt remie.woudt@gmail.com 2013 François Vonk (database onderwerpen geïsoleerd, XAMP vervangen

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

Medical Intelligence in de praktijk

Medical Intelligence in de praktijk Medical Intelligence in de praktijk Een kijkje in de MI straat in het UMCU Aafke Jongsma & Michiel Vuurboom Visie Het uitwisselen van oplossingen en ervaringen ten behoeve van het verzamelen en ontsluiten

Nadere informatie

Hoofdstuk 6. PHP Data Objects. Cursus PHP & MySQL Groep D

Hoofdstuk 6. PHP Data Objects. Cursus PHP & MySQL Groep D Hoofdstuk 6 PHP Data Objects Cursus PHP & MySQL Groep D Hoofdstuk 1: PHP Data Objects 1.1 Inleiding Tegenwoordig kun je er bij het ontwikkelen van een website bijna niet meer omheen: het gebruik van een

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

2 Specificatie In deze tabel staat voor welk crebotraject de leereenheid is gemaakt Crebotraject code: 95311

2 Specificatie In deze tabel staat voor welk crebotraject de leereenheid is gemaakt Crebotraject code: 95311 LEEREENHEID PhP 2 Dit document bestaat uit twee onderdelen - Onderdeel Leereenheid - Onderdeel Onderwijsproduct 1 Naam leereenheid In deze tabel staat de naam en het type van de leereenheid Leereenheid

Nadere informatie

OFFICE A LA CARTE - ACCESS 2013

OFFICE A LA CARTE - ACCESS 2013 OFFICE A LA CARTE - ACCESS 2013 Inhoud HOOFDSTUK ACC-1.1: TERMINOLOGIE - (0:20) Wat is een database? Onderdelen van een database Tabellen en relaties Schematisch overzicht van de structuur van een database

Nadere informatie

Project PiggyBank 2014

Project PiggyBank 2014 Project PiggyBank 2014 Auteur Laatst gewijzigd Licentie Webadres Bert Bredewold 23 April 2014 CC Naamsvermelding 3.0 Nederland licentie http://maken.wikiwijs.nl/50661 Dit lesmateriaal is gemaakt met Wikiwijsleermiddelenplein.

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

Katholieke Hogeschool Kempen

Katholieke Hogeschool Kempen Katholieke Hogeschool Kempen Campus Geel Departement Handelswetenschappen en Bedrijfskunde 3de jaar Toegepaste Informatica Beheer van databanken Labo 2 Hoofdstuk 3 Beheer van database files Hoofdstuk 4

Nadere informatie

Relationele databases

Relationele databases Relationele databases Normaliseert eer gij begint! Normalisatie is van zeer groot belang bij het ontwikkelen van een database applicatie. De kern van de zaak, de doelstelling : Efficiënt beheer van data.

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

Informatica toets vwo 6 Databases

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

Nadere informatie

AFO 139 Automatische export

AFO 139 Automatische export AFO 139 Automatische export 139.1 Inleiding Vubis Smart beschikt over de mogelijkheid om volledig automatisch beschrijvingen te exporteren naar bestanden op de server. Andere bibliotheken (ongeacht of

Nadere informatie

Formulieren maken met Dreamweaver CS 4/CS 5

Formulieren maken met Dreamweaver CS 4/CS 5 Formulieren maken met Dreamweaver CS 4/CS 5 In deze handleiding leer je om een formulier en elementen die je binnen een formulier kunt gebruiken, te ontwerpen met Dreamweaver. Het uitgangspunt is dat dit

Nadere informatie