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

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

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

SQL.

SQL. SQL joost.vennekens@kuleuven.be Mogelijkheden Tabellen maken: create table Tabellen verwijderen: drop table Tabellen vullen: insert into Tabellen wijzigen: update, delete from Gegevens opvragen: select

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

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

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

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

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

[TOETS SQL INLEIDING]

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

Nadere informatie

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

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

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

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

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

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

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

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

EXIN Databases en SQL Foundation

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

Nadere informatie

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen.

DBMS SQL. Relationele databases. Sleutels. DataBase Management System. Inleiding relationele databases. bestaan uit tabellen. SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Op dit moment gebruiken

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

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

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

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

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

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

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

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

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

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

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

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

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

Pazaak PROJECTWERK. Opleidingsonderdeel Projecten Workshops I. Faculteit Bedrijf en Organisatie Valentin Vaerwyckweg GENT

Pazaak PROJECTWERK. Opleidingsonderdeel Projecten Workshops I. Faculteit Bedrijf en Organisatie Valentin Vaerwyckweg GENT Faculteit Bedrijf en Organisatie Valentin Vaerwyckweg 1 9000 GENT ACADEMIEJAAR 2016-2017 OPLEIDING TOEGEPASTE INFORMATICA PROJECTWERK Opleidingsonderdeel Projecten Workshops I Pazaak GROEP: 13 STUDENTEN:

Nadere informatie

Domain Modelling ! %#& ' ! " # $ 7&$& ' 89 8 : & $&$*% ; --- ! " #$%&'$& %%( #) ((*+ & %'%, - % ',%% % ( $. / $0') % %(%- #% $((%'% 0, 0%%&& $'% (,% -

Domain Modelling ! %#& ' !  # $ 7&$& ' 89 8 : & $&$*% ; --- !  #$%&'$& %%( #) ((*+ & %'%, - % ',%% % ( $. / $0') % %(%- #% $((%'% 0, 0%%&& $'% (,% - ! " #$%&'$& %%( #) ((*+ & %'%, % ',%% % ( $. / $0') % %(% #% $((%'% 0, 0%%&& $'% (,%,, & % ) #$ (#$ 0 %$# ) (') ) %# ) ) ) ) #,%'$%, 0 # % %!, & % % 1$. / $%#$ # ) % $ & %( #%) %((*, 2)))3) #4# ( 5547!!

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

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

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

Normaliseren versie 1.1

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

Nadere informatie

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

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

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

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

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

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

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

Introductie (relationele) databases

Introductie (relationele) databases Eerste les Introductie (relationele) databases Database en DBMS Een verzameling van gestructureerd opgeslagen gegevens Dus ook een kaartenbak is een database Van oudsher waren er hiërarchische en netwerkdatabases

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

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

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

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

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

Na bestudering van dit hoofdstuk moet je tot het onderstaande in staat zijn: 15. Toegangsbeheer Tot nu toe heb je gewerkt met DML en DDL statements. Echter de DCL statements zijn nog niet aan bod geweest. DCL commando s gebruik je voor de beveiliging van je database. Wie mag wat

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

Relationele databases

Relationele databases Systematisch bouwen van informatiesystemen t.b.v. practicumopdracht : Relationele databases Structured Query Language SQL Relationele databases Geautomatiseerde informatiesystemen gebruiken bijna altijd

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

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

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

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

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

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

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

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

Zelftest SQL Workshop

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

Nadere informatie

Database Structuur via menus

Database Structuur via menus Data Dictionary Database Structuur via menus Na het normaliseren en maken van een data dictionary kunnen de tabellen worden ingevoerd in de database. In deze les wordt getoond hoe dit in Access gebeurt.

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

8. De invoer van gegevens

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

Nadere informatie

SQL opgaven. Relationele model: Opgaven:

SQL opgaven. Relationele model: Opgaven: SQL opgaven Relationele model: Opgaven: 1. Selecteer de klanten die bij fabriek F1 of fabriek F4 een bestelling hebben geplaatst. 2. Selecteer de klanten die bij fabriek F1 en fabriek F4 een bestelling

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

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

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

Oracle-database creëren

Oracle-database creëren Datum: maart 2014 Versie: 3.1 2014 Perceptive Software. Alle rechten voorbehouden. Perceptive Software is een gedeponeerd handelsmerk van Lexmark International Technology S.A. in de VS en andere landen.

Nadere informatie

EXPLORING DB2 IN DIT NUMMER: OPEN CURSOR CLOSE CURSOR ABIS NIEUWSBRIEF VOOR DB2 PROFESSIONALS JAARGANG 1 - NUMMER 2, OKTOBER 2002

EXPLORING DB2 IN DIT NUMMER: OPEN CURSOR CLOSE CURSOR ABIS NIEUWSBRIEF VOOR DB2 PROFESSIONALS JAARGANG 1 - NUMMER 2, OKTOBER 2002 ABIS NIEUWSBRIEF VOOR DB2 PROFESSIONALS JAARGANG 1 - NUMMER 2, OKTOBER 2002 EXPLORING DB2 OPEN CURSOR Deze editie van Exploring DB2 wordt afgerond op het moment dat de herinneringen aan 11 september 2001

Nadere informatie

Structured Query Language

Structured Query Language Structured Query Language SQL = internationale standaardtaal. Origineel IBM. SQL92 (SQL2), SQL99 (SQL3), SQL:2003, SQL:2007 en SQL:2008. Vele dialecten. In wat volgt beperken we ons tot wat tot de kern

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

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

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

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

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

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

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

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

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

Het toepassen van een gelaagde architectuur

Het toepassen van een gelaagde architectuur Het toepassen van een gelaagde architectuur Bijlagen Bert Dingemans www.via-nova-architectura.org August 2007 1 Bijlage 1: SQL-script als voorbeeld CREATE TABLE EXEMPLAAR ( aanschafdatum DateTime, druk

Nadere informatie

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Anatomie van een databank

Computervaardigheden. Universiteit Antwerpen. Computervaardigheden en Programmatie. Grafieken en Rapporten 1. Inhoud. Anatomie van een databank Inhoud Computervaardigheden Hoofdstuk 5 Databanken (Let op: dit is enkel voor studenten Bio-Ingenieur.) Terminologie Data importeren Basis queries Allerhande Joins Doe dit. Aandachtspunt! Wat gebeurt hier?

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

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

Inhoud. Voorwoord 1 Belangrijkste kenmerken van dit boek 1 De opzet van dit boek 1 Over de auteurs 2 Woord van dank 2

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

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

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

databases & SQL - antwoorden

databases & SQL - antwoorden informatica databases & SQL - antwoorden Op dit lesmateriaal is een Creative Commons licentie van toepassing. 2010 Remie Woudt remie.woudt@gmail.com 2013 François Vonk (XAMP vervangen door USBWebserver

Nadere informatie

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

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

Nadere informatie

Toetsen in Blackboard

Toetsen in Blackboard Toetsen in Blackboard Met de tool Test kun je toetsvragen maken en afnemen. In dit document wordt uitgelegd 1. Hoe een toets gemaakt kan worden. 2. Hoe een toets bewerkt kan worden. 3. Hoe een toets beschikbaar

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