Hoofdstuk: 1 Principes van databases

Maat: px
Weergave met pagina beginnen:

Download "Hoofdstuk: 1 Principes van databases"

Transcriptie

1 DBSQLF Databases en SQL Hoofdstuk: 1 Principes van databases aant Css: blz Doel ve database - om op het juiste moment op de juiste plaats de juiste gegevens beschikbaar te hebben richten we informatiesystemen in. DATABASE > Het deel vd technologie waarin de gestructueerde gegevens worden opgeslagen. DBMS = DATABASE MANAGEMENT SYSTEEM > Is de technologie die ons ondersteund bij het gebruiken (opvragen, lezen, wijzigen, verwijderen) en beheren van deze gegevens. De database wordt benaderd op drie niveau's die onafhankelijk van elkaar aangepast kunnen worden: - intern niveau: fysieke opslag - conceptueel niveau: beschrijving van de structuur van de DB (welke objecten, welke gegevens van de objecten, welke regels gelden er voor de gegevens en de relaties tussen de gegevens) - extern niveau: wie of welke groep mag welke gegevens zien en hoe worden de gegevens gepresenteerd (applicaties en views op de DB) blz Werking ve DB - objecten en records (of tupels) - OBJECTEN > Bij het inrichten van een DB denken we in objecten, met de gegevens in een DB zeggen we iets over dingen in de werkelijkheid. De gegevens die we hierover opslaan zijn de eigenschappen v die objecten. Een object is hier gewoon een onderwerp en heeft hier niet dezelfde betekenis als in de OO. In een DB maken we voor ieder object een tabel. De kolommen in deze tabel beschrijven elk één eigenschap vh object. RECORD of TUPEL > is één specifiek voorkomen ve object met zijn gegevens. zaterdag 15 augustus 2015 Pagina 1 van 18

2 734 blz Werking ve DB - relaties - In een DB slaan we gegevens op over objecten in tabellen. Tussen deze tabellen kunnen we relaties leggen. Relaties zijn op te delen in 3 categoriën: a. 1-1 > (g)één-op-(g)één b. 1-n > (g)één-op-veel c. n-m > veel-op-veel De categorie ve relatie is bepalend voor de wijze waarop een DB moet worden ingericht. Met "1" bedoelen we hier 0 of 1, dus maximaal 1. Met "n" bedoelen we maximaal meer dan 1. Met "m" bedoelen we maximaal meer dan 1 en gebruiken we allen bij de veel-op-veel relatie. Ad a. 1-1 (g)één-op-(g)één > Met "1" bedoelen we hier 0 of 1, dus maximaal 1. Er wordt alleen een UITSPRAAK gedaan OVER MAXIMALE RELATIE. Bij een 1-1 relatie is het niet verplicht dat bv een afdeling een hoofd heeft en vise versa (GEEN OF ÉÉN). Figuur 1.3. Ad b. 1-n (g)één-op-veel > Met "n" bedoelen we maximaal meer dan 1. Omdat niet duidelijk is hoeveel, in dit voorbeeld personeelsleden er zijn, spreken we van n. Dit zou dus ook oneindig kunnen zijn als er geen technische beperkingen zijn. Zie figuur 1.4, in een stad kunnen geen of een of meer personeelsleden wonen, maar elk personeelslid woont maar in een stad. 248 Ad c. n-m veel-op-veel > Deze relatie geldt als het "veel" beide kanten uitwerkt. Waarbij n >= 1 en m >= 0 is. Figuur blz Werking ve DB - navigeren - NAVIGEREN > is een proces dat ervoor zorgt dat databases in staat zijn om records langs te lopen en na te gaan of deze voldoen aan bepaalde voorwaarden. Als er gezocht moet worden naar een relatie, dan kan een DB kijken of het ene object een relatie heeft met het andere. Omdat deze techniek per soort database verschilt, zal ook de navigatie per databasesoort verschillen. zaterdag 15 augustus 2015 Pagina 2 van 18

3 736 blz Eisen - eenduidigheid en samenhang v gegevens - EENDUIDIGHEID > objecten en eigenschappen ve object hebben in een database een eenduidige betekenis. De betekenis v iedere eigenschap is maar op één manier te intrepeteren en geldt niet alleen voor de definitie van eigenschappen maar ook voor de defintie van objecten. Elke eigenschap van een object heeft maar één betekenis en is maar voor één interpretatie vatbaar. SAMENHANG v GEGEVENS > In DB kunnen verschillende soorten relatie tussen objecten vastleggen, het is de taak vh DBMS om te zorgen dat de regels voor deze relaties niet overtreden worden. 737 blz Taken - gebruik en beheer - wordt mogelijk gemaakt door een DBMS = datamanagement systeem. GEBRUIK > a. SELECTEREN > gegevens opvragen b. TOEVOEGEN > records toevoegen aan een tabel c. VERWIJDEREN > records verwijderen in de DB d. WIJZIGEN > het wijzigen ve bepaalde eigenschap ve object. E. ONDERHOUD > onderhoudstaken, deze zouden eigenlijk onder beheer moeten vallen, bv maken ve reservekopie, of DB herstellen bij problemen. BEHEER > bestaat uit 2 hoofd taken: 1. definieren en wijzigen vd structuur v gegevens 2. toestaan dat gebruikers bepaalde taken uitvoeren. Onder beheer valt: grenzen afbakenen, maken en veranderen v tabellen en geven en ontnemen van rechten aan gebruikers. 738 blz Taken ve DB - structuur v gegevens - view - Een VIEW is een virtuele tabel en is een vd mogelijkheden om het externe niveau vast te stellen. Is het resultaat van een query. 246 zaterdag 15 augustus 2015 Pagina 3 van 18

4 739 blz Taken ve DB - structuur v gegevens bij definieren vd structuur v gegevens houden we ons bezig met: - objecten waarover we gegevens willen opslaan - de relevante eigenschappen v deze objecten - relaties tussen deze objecten Om te voorkomen dat een kleine wijziging in een gebruikersgroep ook gevolgen heeft voor een andere gebruikersgroep of applicatie, heeft men een model opgesteld met drie niveaus, dan kan men op het ene niveau wijzigingen doorvoeren zonder dat de andere niveaus daar iets van merken. Deze drie niveaus zijn: a. INTERN niveau b. CONCEPTUEEL niveau c. EXTERN niveau Ad a. INTERN niveau > is vooral van technische aard. Hier wordt exact beschreven waar de DB zijn gegevens opslaat. FYSIEKE OPSLAG v gegevens > is in werkelijkheid moeten alle rijen in een tabel achter elkaar op een harde schijf worden opgeslagen. INDEX is een vd technieken die op intern niveau werkt, kost wel ruimte, maar versnelt de manier waarop een DB kan zoeken naar records. Meestal worden nieuwe records achteraan toegevoegd. BV oko het opnieuw sorteren van reeds opgeslagen records. Ad b. CONCEPTUEEL niveau > hier beschrijven we de structuur vd gegevens die we willen opslaan. Hier krijgen we antwoord op de volgende vragen: b1. Over welke objecten we gegevens bijhouden (welke tabellen) b2. Welke gegevens we over deze objecten bijhouden (welke velden in de tabellen) b3. Wat de structuur van deze gegevens is (de soort velden: string, datum, numeriek ed) b4. Welke regels er gelden voor deze individuele gegevens en de relatie tussen deze gegevens Ad c. EXTERN niveau > hier wordt het onderscheid beschreven tussen gebruikers en gebruikersgroepen, wie wat mag zien, (onderhouden, toevoegen, wijzigen e.d.) en op welke manier deze gegevens gepresenteerd worden. Dit kan dmv views. zaterdag 15 augustus 2015 Pagina 4 van 18

5 740 blz Taken ve DB - structuur v gegevens - functionele en logische onafhankelijkheid - FUNCTIONELE of FYSIEKE ONAFHANKELIJKHEID > Het belangrijkste onderscheid tussen intern en conceptueel niveau is dat de structuur vd gegevens is losgekoppeld van de fysieke opslag. Het is mogelijk om wijzigingen aan te brengen op intern niveau zonder dat dit op conceptueel - en extern niveau merkbaar is. Hierdoor is het mogelijk een database op een andere HD te zetten of op een andere wijze te sorteren zonder dat de bovenliggende niveaus aangepast hoeven te worden. LOGISCHE ONAFHANKELIJKHEID > als er op conceptueel niveau wijzigingen aangebracht kunnen worden zonder dat dit effect heeft op extern niveau. Onafhankelijkheid tussen extern niveau en conceptueel niveau. Als je de attributen die worden opgeslagen van objecten aanpast, hoeven de views/applicaties niet worden aangepast. In de praktijk zul je echter wel minimaal één applicatie of view aanpassen, want je verandert de structuur van de DB omdat je in een applicatie/view die gegevens wil gebruiken. INTERN > CONCEPTUEEL > EXTERN fysiek of functionele logische onafhankelijkheid onafhankelijkheid 741 blz Taken ve DB - structuur v gegevens - autorisatie - is een belangrijke taak van het DBMS. Hiermee bepalen we welke gebruiker voor welke acties toestemming heeft. Het DBMS kan geven en wegnemen. Hoofdstuk: 2 Databasemodellen 742 blz Flat Files - FLAT FILES = platte bestanden. Oorspronkelijk werden alle gegevens in grote computerbestanden opgeslagen, deze heten flat files. Hier komt veel redundantie (dubbele gegevens) voor, dit is niet wenselijk omdat gegevens dan veel meer opslagruimte gebruiken dan nodig is en als er ergens iets gewijzigd moet worden dan moet dit op meerdere plaatsen gebeuren. Zodra er relaties tussen verschillende groepen gemaakt moeten worden heb je een probleem en komt er veel redundantie voor. Wordt niet meer gebruikt. zaterdag 15 augustus 2015 Pagina 5 van 18

6 743 blz Hiërarchische database bestaat uit records die met elkaar verbonden worden door links. Een record is een verzameling velden (attributen) die precies één waarde kunnen bevatten. De link is een associatie tussen precies twee records. In een hiërarchische database worden rijen (records of tupels) verbonden in een boomstructuur. Deze boomstructuur lijkt sterk op de wijze waarop bestanden op een computer zijn georganiseerd. De boomstructuur heeft ook weer parents (bovenste) en child (elementen onder de parent). Hiërarchische structuren werden veel gebruikt in de eerste DBMS systemen voor mainframes. De veel-op-veel relatie levert ook in het hiërarchische model problemen op. Een child kan maar naar één parent wijzen. Een ander probleem bij Hiërarchische databases is dat we de verbindingen (links) tussen de records niet kunnen zien. Om een child vanuit een ander child te kunnen benaderen moeten we dat via de gemeenschappelijke parent doen. Records zijn met elkaar verbonden door links in een boomstructuur. Wordt niet meer gebruikt. 1-1 en 1-n relatie 251 zaterdag 15 augustus 2015 Pagina 6 van 18

7 744 blz Netwerkdatabases - In netwerkdatabases kan een child meerdere parents hebben. Een veel-op-veel relatie is hier dus mogelijk. n-m relatie blz Relationele database - In deze databases gaat het vooral om relaties tussen objecten. Een veel-op-veel relatie is hier mogelijk. Relaties: In een relationele Db gaat het juist om de relaties tussen objecten. Records of Tupels: Per object (tabel) heb je records die met andere objecten relateerd zijn. Viewdefinitie: Je kunt een view op een DB definieeren, dan zie je alleen die attributen die nodig zijn voor een bepaald doel (extern niveau). Tabeldefinitie: Bij de tabeldefinitie worden alle attributen die je van een object wil registreren betrokken (conceptueel niveau). n-m relatie Hoofdstuk: 3 Relationeel Model zaterdag 15 augustus 2015 Pagina 7 van 18

8 746 blz Relationeel model - begrippen - Een model is de weegave vd werkelijkheid, met een relationeel model proberen we structuur aan te brengen in de gegevens die nodig zijn voor de informatievoorziening. Hierbij denken we in verzamelingen van gegevens en deze kunnen in drie onderdelen onderscheiden worden: 1. RELATIE of ENTITEIT od OBJECT of TABEL > hiermee bedoelen we de beschrijving ve object waar we gegevens over willen opslaan. Beschrijving van een object in de werkelijkheid. 2. ATTRIBUTEN of KOLOM > zijn de eigenschappen van een relatie / entiteit. 2a. ATTRIBUUTWAARDE > veldwaarde, de veldinhoud. De waarde/inhoud die de eigenschap v.e. relatie aanneemt (van één instantie). 2b. ATTRIBUUTNAAM > de veldnaam of kolomnaam. 3. ASSOCIATIES > de relaties of entiteiten staan niet op zich zelf, maar zijn geassocieerd aan andere relaties. Een relatie kan ook een associatie hebben met zichzelf. Let op: we spreken over een relatie tussen tabellen én over relaties of entiteit. Beide hebben een verschillende betekenis. Een relatie of entiteit noteer je als volgt, zie figuur: module (code, naam, vragen, tijd) >>> dit is dus de hele tabel uit de figuur. TUPEL > is een record, een rij uit de figuur, bv de rij: IMF, Infrastructure.., 20, 30 De relatie/entiteit/tabel/object module in de figuur heeft als attributen: code, naam, vragen en tijd (dit noemt men ook veldnamen). Een attribuutwaarde is veldinhoud. Een kolom is een verzameling waarden die tot één attribuut behoren. Indien er NULL staat, betekent dit dat in het betreffende veld geen waarde is ingevuld. Indien men altijd een waarde in een veld wil hebben, moet men dit veld met de optie NOT NULL opbouwen. DBMS voert opdrachten sequentieel (één voor één) uit. 253 zaterdag 15 augustus 2015 Pagina 8 van 18

9 747 blz Integriteit - entiteitisintegriteit - ENTITEITSINTEGRITEIT: iedere relatie moet een attribuut of combinatie van attributen hebben waarmee elk tupel als uniek en aanwezig te identificeren is. Dat attribuut is de PRIMARY KEY of PRIMAIRE SLEUTEL. Het is meestal de meest compacte. Er is altijd maar één primaire sleutel, deze sleutel wordt onderstreept weergegeven. Indien meerdere velden samen de primaire sleutel vormen spreken we van een gecombineerde of SAMENGESTELDE SLEUTEL. De velden ve primaire sleutel zijn doorlopend onderstreept. KANDIDAATSLEUTEL > de sleutel(s) die voldoen aan het principe dat ze kunnen zorgen voor de identificatie van tupels als uniek en aanwezig. Deze sleutel kan een primairy key worden, of een onderdeel ervan, maar dit hoeft hij niet te worden. Uit alle kandidaatsleutels wordt de primairy key gekozen. Kandidaatssleutels en dus ook primaire sleutels kunnen worden samengesteld uit meerdere attributen. Dan spreken we over samengestelde of gecombineerde sleutels. 748 blz Integriteit - domein - hiermee kunnen we beperkingen op de invoer van velden leggen. We geven hiermee aan welke waarden een attribuut mag bevatten. En kan zelfs verder gaan dan alleen het aangeven of een veld numeriek moet zijn, het kan zelfs voorwaarden bevatten, zoals bv de in te geven datum moet liggen na vandaag. 749 blz Integriteit - referentiële integriteit - hiermee bedoelen we dat de gegevens in de ene tabel zich op een bepaalde manier verhouden tot de gegevens in de andere tabel. In beide tabellen moeten wel dezelfde velden aan elkaar gekoppeld kunnen worden. REFERENTIËLE INTEGRITEIT > is dat als een vreemde sleutel een waarde heeft moet deze waarde ook voorkomen in de relatie (als primaire key) waar de vreemde sleutel naar verwijst. 750 blz Integriteit - referentiële integriteit - foreign key of vreemde sleutel - Bij het opvoeren van een vreemde sleutel wordt de naam van het veld tussen het "kleiner dan <" en "groter dan >" teken gezet. Een vreemde sleutel hoeft niet dezelfde naam te hebben als het veld naar waar hij verwijst. Een vreemde sleutel mag ook leeg zijn (NULL), maar als deze een waarde heeft moet deze waarde ook voorkomen in de relatie waar de vreemde sleutel naar verwijst. Bij een één-op-veel relatie ligt de vreemde sleutel altijd op de veel positie. Een bijzondere vorm van een één-op-veel relatie is een associatie ve relatie naar zichzelf. De naam van het veld dat naar zichzelf verwijst moet dan wel anders heten. Men kan ook gebruik maken van tussentabellen. Een TUSSENTABEL heeft een primaire sleutel die uit alle velden die in de tussentabel staan bestaat. zaterdag 15 augustus 2015 Pagina 9 van 18

10 751 blz Integriteit - update en delete - Door het vastleggen vd entiteitsintegriteit en de referentiële integriteit zorgen we dat er geen gegevens in de DB kunnen komen die niet aan de eisen voldoen, dit kan beperkend werken. De referentiële integriteit eist dat, als een vreemde sleutel een waarde heeft, deze moet voorkomen in de relatie waar de vreemde sleutel naar verwijst, zie figuur. We kunnen dus geen gegevens verwijderen als er vreemde sleutels aan gekoppeld zijn, zonder eerst in de tabel met de vreemde sleutels deze ook te verwijderen. In de figuur zouden we eerst alle onderdelen uit de tabel onderwerp moeten verwijderen voor we het record uit de tabel module kunnen verwijderen. Hier zijn 3 mogelijkheden voor: 1. RESTRICTED (NO ACTION) > is standaard. Een tupel mag niet worden verwijderd of we mogen de primaire sleutel niet wijzigen zolang er nog vreemde sleutels zijn die de waarde vd betreffende primaire sleutel hebben. 2. CASCADES > betekent waterval. Is als we een de primaire sleutel wijzigen, de vreemde sleutel die hier ook naar verwijst, ook gewijzigd. Als we een primaire sleutel verwijderen, worden alle tupels/records en de wordt ook de foreign key die naar deze primaire key die hierna verwijzen ook (volledig) verwijderd. 3. NULL FILES > hierbij worden alle verwijzigingen in een vreemde sleutel leeggemaakt (NULL). 254 Hoofdstuk: 4 Relationeel Database Base Management Systeem (RDBMS) 752 blz 71 4 RDBMS - RDBMS = Relationeel Database Base Management Systeem > beheert een database volgens de regels van het relationele model. Hiermee willen we tabellen definieren en de relaties tussen tabellen aangeven. SQL = Structured Query Language > is de taal die we hiervoor gebruiken. zaterdag 15 augustus 2015 Pagina 10 van 18

11 753 blz RDBMS - onderdelen (3 soorten) - DDL > Definieren ( > Dcm) DCL > Controleren ( > dcm) DML > Manipuleren ( > dcm) DDL = DATA DEFENITION LANGUAGE > deze worden gebruikt bij het aanmaken van een DB, is op beheerdersniveau. Het gaat hier om structureren. De basiscommando's zijn: - CREATE (maken) - DROP (verwijderen) - ALTER (wijzigen) DCL = DATA CONTROL LANGUAGE > hiermee kunnen we de rechten van gebruikers en gebruikersgroepen aanpassen, toekennen en afnemen, is op beheerniveau. Het gaat hier om rechten. De basiscommando's zijn: - GRANT (toestemming geven) - REVOKE (intrekken) Hierbij kun je voor de negatieve benadering kiezen, dat is eerst alles intrekken en dan toekennen wat mag. DML = DATA MANIPULATION LANGUAGE > hiermee kun je gegevens uit de DB opvragen, toevoegen, wijzigen en verwijderen, voor beheerder en gebruiker en gebeurt op record/tupel niveau. Het gaat hier om de inhoud, de gegevens. De basiscommando's/opdrachten zijn: - SELECT (keuze maken) - INSERT (invoegen) - UPDATE (bijwerken/wijzigen) - DELETE (verwijderen) Kunnen met de volgende clausules gebruikt worden: - SELECT (selecteer) - SELECT * (selecteer alle attributen) - FROM (van de DB) - WHERE (waarvoor geldt, bij rijen) - AND (en) - OR (of) - NOT (niet) - DISTINCT (uniek) - GROUP BY (groeperen per attribuut) - HAVING: gebruik je bij een aggregatie met voorwaarden, bijvoorbeeld "geef het aantal onderwerpen per module waarbij het aantal onderwerpen minimaal 4 bedraagt: SELECT code, count(*) FROM onderwerp GROUP BY code HAVING count(*) >= 4; - INSERT INTO (invoegen in) - VALUES (waardes,in combinatie met INSERT INTO) - DELETE FROM (verwijder van) - UPDATE (wijzig) - SET (in combinatie met Update) kolom: een attribuut in z'n domein rij: een tupel of record object / tabel: een relatie of entiteit selectie: deel van de inhoud van de tabel Hoofdstuk: 5 Structures Qeury Language (SQL) 754 blz DDL = data Defenition language - DDL = DATA DEFENITION LANGUAGE > deze worden gebruikt bij het aanmaken van een DB, is op beheerdersniveau. Het gaat hier om structureren. De basiscommando's zijn: - CREATE (maken) - DROP (verwijderen) - ALTER (wijzigen) zaterdag 15 augustus 2015 Pagina 11 van 18

12 755 blz DDL = data Defenition language - Tabellen maken - Gegevenstypen/domeinen (standaarddomeinen, in de praktijk zijn er veel meer) zijn: - INTEGER: gehele getallen - SMALLINT: kleine gehele getallen - DATE: datum (jaar-maand-dag) - TIME: tijd (hh:mm:ss) - CHAR(n): string met vaste lengte n en moet de totale lengte bij ieder veld gevuld zijn. - VARCHAR(n): string met variable lengte, met max lengte n, hele veld hoeft niet gevuld te zijn. Het commando om een tabel te maken ziet er als volgt uit: CREATE TABLE tabelnaam ( kolomnaam1 domein1 [NOT NULL], [kolomnaam2 domein2 [NOT NULL],] [kolomnaam3 domein3 [NOT NULL],] [kolomnaam4 domein4 [NOT NULL],] [primaire sleutel,] [vreemde sleutel], ) tussen [.] is optioneel. Er moet altijd minimaal 1 kolomnaam in een nieuwe tabel worden aangemaakt. Een primaire sleutel moet altijd een waarde hebben en dit veld moet dus altijd met de optie NOT NULL worden aangemaakt. Een primaire sleutel wordt als volgt gedefinieert, moet altijd direct na de attributen/velden worden geplaatst én mag maar één keer voorkomen: PRIMAIRY KEY (kolomnaamx [, kolomnaamy] ) In dit geval zou het veld met naam: kolomnaamx ook met NOT NULL moeten zijn aangemaakt bij de velden. Als er gebruik wordt gemaakt van een vreemde sleutel moet die ook toegewezen worden, dit gebeurd na de toewijzen van de primairy key, als volgt: FOREIGN KEY (kolomnaamx [, kolomnaamy] ) REFERENCES tabelnaam De tabelnaam is de naam vd tabel waar uit de foreign key komt. De naam van de foreign key hoeft niet gelijk te zijn aan de naam die die heeft in de tabel van waar hij uit komt. Door het definiëren ve vreemde sleutel implementeren we de referentiële integriteitsregels. Indien met vreemde sleutels gewerkt wordt, moet natuurlijk eerst de tabel aangemaakt zijn waar de vreemde sleutel uit komt, voordat je de tabel met de koppeling naar die vreemde sleutel aanmaakt. Men kan niets koppelen als het nog niet bestaat. Hier een voorbeeld met een samengestelde vreemde sleutel: CREATE TABLE exameneis ( code VARCHAR(6) NOT NULL, nummer SMALLINT NOT NULL, eisnr SMALLINT NOT NULL, eisomschrijving VARCHAR(50), ISBN CHAR(20), PRIMAIRY KEY (code, nummer, eisnr), FOREIGN KEY (code, nummer) REFERENCES onderwerp, FOREIGN KEY (ISBN) REFERENCES Literatuur) zaterdag 15 augustus 2015 Pagina 12 van 18

13 756 blz DDL = data Defenition language - tabellen verwijderen - Dat kan met het commando: DROP TABLE tabelnaam Hiermee wordt de tabel volledig inclusief inhoud, definitief verwijderd. De volgorde van verwijderen is van belang als er vreemde sleutels in de tabel zitten. 757 blz DDL = data Defenition language - tabellen wijzigen - Kan met het commando: ALTER TABLE tabelnaam daarna komt de regel waarin we de verandering aangeven, bv: ALTER TABLE module RENAME tijd examentijd Hiermee veranderen we de kolomnaam tijd naar examentijd. zaterdag 15 augustus 2015 Pagina 13 van 18

14 758 blz DCL = data Control language - DCL = DATA CONTROL LANGUAGE > hiermee kunnen we de rechten van gebruikers en gebruikersgroepen aanpassen, toekennen en afnemen, is op beheerniveau. Het gaat hier om rechten. De basiscommando's zijn: - GRANT (toestemming geven) - REVOKE (intrekken) Hierbij kun je voor de negatieve benadering kiezen, dat is eerst alles intrekken en dan toekennen wat mag. De autorisatie wordt ook al in de praktijk vaak afgedwongen door de applicatie/programma dat van de database gebruik maakt. We kunnen de autorisatie per gebruikers groep of per gebruiker bepalen, voor iedereen te gelijk doet men dat met (PUBLIC). AUTORISEREN toestaan doen we met de opdracht: GRANT wat1 [,wat2].on tabel1 [, tabel2]. TO wie1 [, wie2]. Een voorbeeld van iederen laten selecteren en wijzigen is dus: GRANT SELECT, UPDATE ON tabel1 TO PUBLIC AUTORISEREN intrekken doen we met de opdracht: REVOKE wat1 [,wat2].on tabel1 [, tabel2]. FROM wie1 [, wie2]. Een voorbeeld van iederen laten intrekken is dus: REVOKE SELECT, UPDATE ON tabel1 FROM PUBLIC Sequentie bij autorisatie: - negatieve benadering > eerst alles revoken en daarna onderdelen toestaan (voorkeur). - positieve benadering > eerst alles toestaan en wat niet mag daarna revoken. Bij autorisatie, met name als je GRANT en REVOKE opdrachten door elkaar gebruikt is de volgorde van de commando's van cruciaal belang. Het DBMS voert de opdrachten in volgorde na elkaar uit, en als de volgorde niet juist is, kan het zijn dat bepaalde opdrachten door vervolgopdrachten weer teniet gedaan worden. OPDRACHTEN: - GRANT (toekennen) - REVOKE (afnemen) CLAUSULES (rechten die je kunt toekennen of afnemen): - SELECT (select opdracht uitvoeren) - UPDATE (aanpassen tupel/gebruiker mag kolommen en rijen aanpassen en kolommen definieren) - INSERT (invoegen tupel op tabel/men mag rijen toevoegen) - DELETE (verwijderen tupel/gebruiker mag rijen cq tupels cq records verwijderen) - ALTER (wijzigen tabel/structuur wijzigen, kolommen toevoegen, hernoemen en vewijderen) - ALL (alle rechten) * ON (op de tabel..) * TO (aan de persoon...bij GRANT) * FROM (van de persoon.. bij REVOKE) PUBLIC: algemeen aan iedereen rechten tegelijk toekennen kan met PUBLIC. GRANT {SELECT INSERT DELETE UPDATE [kolomnaam]? INDEX ALTER ALL } ON tabelnaam TO {PUBLIC gebruikernaam? } REVOKE {SELECT INSERT DELETE UPDATE INDEX ALTER ALL } ON tabelnaam FROM {PUBLIC gebruikernaam? }. zaterdag 15 augustus 2015 Pagina 14 van 18

15 759 blz DML = data Manipulation language - SELECT - DML = DATA MANIPULATION LANGUAGE > hiermee kun je gegevens uit de DB opvragen, toevoegen, wijzigen en verwijderen, voor beheerder en gebruiker en gebeurt op record/tupel niveau. Het gaat hier om de inhoud, de gegevens. Een van de basiscommando's is: - SELECT (keuze maken) enkele voorbeelden van het gebruik van select: SELECT kololmnaam1 [, kolomnaam2].. FROM tabelnaam [WHERE] vrw1 [AND/OR] vrw2] SELECT * FROM tabelnaam SELECT DISTINCT kololmnaam1 FROM tabelnaam DISTINCT > zorgt ervoor dat de DB alleen maar rijen vertoont waarvan de inhoud nog niet is weergeven. Een rij moet volledig gelijk zijn aan een andere rij voordat deze wordt overgeslagen. Clausules / voorwaarden toevoegen doen we als volgt: SELECT kololmnaam1 [, kolomnaam2].. FROM tabelnaam WHERE (voorwaarde1 AND voorwaarde2) of: SELECT kololmnaam1 [, kolomnaam2].. FROM tabelnaam WHERE (voorwaarde1 OR voorwaarde2) bij de WHERE-clausule vergelijken we in de voorwaarden met OPERATORS, hiervan kennen we de volgende soorten: > groter dan < kleiner dan = gelijk aan >= groter dan of gelijk aan <= kleiner dan of gelijk aan <> ongelijk aan IN alle waarden die in een lijst genoemd wordt. NOT IN niet in subquery met [NOT] IN: gebruik je bijvoorbeeld bij de vraag :geef een overzicht van alle docenten die geen modules onderwijzen. Dit kun je niet in één query defineeren, dus moet je subquery maken: SELECT naam FROM docent WHERE nummer NOT IN (SELECT nummer FROM docentmodule); LIKE bv "Er%" is alles weergeven dat begint met "Er" % is een wildcard voor een of meerdere tekens Technisch gezien opent het systeem de tabellen achter FROM, dan wordt er rij voor rij gekeken of deze aan de voorwaarden van de WHERE clausule voldoen, als dat zo is worden ze getoond en anders niet. Voor de duidelijkheid mag men ronde haken plaatsen We kunnen met select ook gegevens uit meerdere tabellen tegelijk opvragen. Deze tabellen kunnen we ook een alias geven (bijnaam voor het gemak), dat doe je door achter de tabelnaam minimaal één spatie te zetten en dan de aliasnaam op te geven. Bijv: SELECT t1.veldtb1, t1.veldtb2, t2.veldtb1, t2.veldtb2 FROM tabel1 t1 tabel2 t2 WHERE t1.veldtb1 = t2.veldtb2 AND t2.veldtb1 = t1.veldtb2 Eerst wordt bij where gekeken of een record meetelt en daarna wordt gekeken welke velden er in het resultaat moeten staan. SELECT {[tabelnaam.]* {[tabelnaam.]kolomnaam1 [,functie1] berekening} [[tabelnaam.]kolomnaam2 [,functie2] berekening]?} FROM tabelnaam1 [alias] [, tabelnaam2 [alias]}? [WHERE-clausule] [GROUP BY [tabelnaam.]kolomnaam1 [, [tabelnaam2 ] ] ] [HAVING functievoorwaarde1 zaterdag 15 augustus 2015 Pagina 15 van 18

16 [{AND OR} functievoorwaarde2 ] ] ] [WHERE voorwaarde1 [ {AND OR} voorwaarde2 ]?] Voorwaarde {{constante berekening [tabelnaam.]kolomnaam} {= > < >= <= <>} {{constante berekening [tabelnaam.]kolomnaam (subquery1)} [tabelnaam.]kolomnaam {IS [NOT] NULL [NOT] IN (subquery2) [NOT] EXISTS subquery3) } functievoorwaarde {functie constante } {= > < >= <= <>} {functie constante } 760 blz DML = data Manipulation language - aggregatie en group by - Als we een query willen maken die iets zegt over de verzameling. Worden gebruikt bij het SELECT commando. AGGREGATIES zijn: - SUM > optellen/totaaltelling - AVG > gemiddelde weergeven - COUNT > aantal records die voldoen tellen > deze kan altijd gebruikt worden (enige) - MAX > hoogste waarde weergeven - MIN > laagste waarde weergeven GROUP BY Als we, bij gebruik van aggregaties de geselecteerde gegevens willen groeperen moeten we dit aangeven, dat kan bijvoorbeeld als volgt: SELECT veld1, AVG(veld2) FROM tabel1 GROUP BY veld1 Stelregel is dat niet alle geaggregeerde velden verplicht in een GROUP BY voorkomen. Als we het aantal records willen tellen doen we dat als volgt: SELECT COUNT(*) FROM tabel1 of als het gebruikt moet worden met group by.. SELECT COUNT(*) FROM tabel1 GROUP BY veld3 >> er wordt hier gegroepeerd op veld3 en aangegeven hoeveel records hier tot diezelfde groep horen. GROUP BY. HAVING Bij GROUP BY kunnen we ook HAVING gebruiken en een voorwaarde stellen wat er gegroepeerd moet worden. Bijv: SELECT veld1, COUNT(*) FROM tabel1 GROUP BY veld1 HAVING count(*)>=4 >> Hier worden alleen het aantal records per groep weergegeven als dat aantal groter of gelijk is aan 4. Bij GROUP BY gebruiken we altijd de clausule HAVING voor de voorwaarde in de query en niet de clausule WHERE. zaterdag 15 augustus 2015 Pagina 16 van 18

17 761 DML = data Manipulation language - blz 106 Subqueries In een query kun je ook nog een of meerdere subqueries zetten. De subquery wordt als eerste uitgevoerd. De sub-query komt vaak voor als we een vraag stellen met een ontkenning ve primairevreemde sleutel relatie. Sub-queries bouwen we in twee fasen. We maken eerste de subquery en daarna de hoofdquery. Bijvoorbeeld: SELECT veld1 [, veld2].. FROM tabel1 WHERE veld1 NOT IN (SELECT veld3 FROM tabel2) met een subquery maken we een tijdelijke tabel aan met de gewenste resultaten, de query haalt dan weer zijn resultaten uit die tijdelijke tabel. Bij WHERE IN.. Moeten ze wel in de tijdelijke tabel staan en bij WHERE..NOT IN niet. Echter als we in een subquery het gelijk aan (=) teken gebruiken mag het resultaat van die query maar een record opleveren. 762 blz DML = data Manipulation language - INSERT INTO - DML = DATA MANIPULATION LANGUAGE > hiermee kun je gegevens uit de DB opvragen, toevoegen, wijzigen en verwijderen, voor beheerder en gebruiker en gebeurt op record/tupel niveau. Het gaat hier om de inhoud, de gegevens. De basiscommando's zijn: - INSERT (invoegen) Toevoegen van rijen doen we met: INSERT INTO tabelnaam (kolom(men)) VALUES (waarden) Als we alle kolommen willen vullen is het niet nodig om de kolommen allemaal te benoemen, de tabelnaam is voldoende met de opgave van de waarden. BV: INSERT INTO tabel VALUES ("tekst1", 10, "Tekst2") Er komt met het commando insert altijd een nieuwe rij/nieuw record in de DB. INSERT INTO tabelnaam [ (kolomnaam1 [.kolomnaam2]) ] {VALUES (waarde1 [,waarde2]..) query } 763 blz DML = data Manipulation language - DELETE - DML = DATA MANIPULATION LANGUAGE > hiermee kun je gegevens uit de DB opvragen, toevoegen, wijzigen en verwijderen, voor beheerder en gebruiker en gebeurt op record/tupel niveau. Het gaat hier om de inhoud, de gegevens. Een van de basiscommando's is: - DELETE (verwijderen) Met het commando DELETE verwijderen we records/rijen uit de tabel. Dit gaat als volgt: DELETE FROM tabel Deze opdracht verwijdert alle rijen die er zijn. Als we maar een aantal rijen willen verwijderen die aan een bepaalde voorwaarde voldoen kan dit weer met WHERE, bv: DELETE FROM tabel WHERE veld1=x DELETE FROM tabelnaam [WHERE-clausule] zaterdag 15 augustus 2015 Pagina 17 van 18

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[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

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

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

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

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

11. Het selecteren van gegevens deel II

11. Het selecteren van gegevens deel II 11. Het selecteren van gegevens deel II 11.1. Inleiding In hoofdstuk 7 heb je kennis gemaakt met het statement Select. In dit hoofdstuk ga je wat dieper in op het statement. Je gaat sorteren / groeperen

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.

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

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

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

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

Sparse columns in SQL server 2008

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

Nadere informatie

SQL 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

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

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

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

Integriteitsbewaking bij een relationele database

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

Nadere informatie

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

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

Koppeling met een database

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

Nadere informatie

Data Manipulation Language

Data Manipulation Language Data Manipulation Language (DML) In de vorige les hebben we een database structuur gemaakt van 4 tabellen. Hiervoor worden de volgende scripts gebruikt voor de verschillende tabellen: Tabel A ROBERT ELLIS

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

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

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

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

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

9. Het wijzigen van gegevens

9. Het wijzigen van gegevens 9. Het wijzigen van gegevens Voor het wijzigen van gegevens wordt het DML-statement UPDATE gebruikt. Om dit statement correct te kunnen gebruiken moeten enkele zaken bekend zijn: In welke tabel moeten

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

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

ISO Query By Example

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

Nadere informatie

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

Databases gebruiken. Databases gebruiken

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

Nadere informatie

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

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

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

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

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

7. Het selecteren van gegevens

7. Het selecteren van gegevens 7. Het selecteren van gegevens 7.1. Inleiding Het doel van databases is het ontsluiten van gegevens. Een database wordt gebruikt om gegevens in op te slaan en te lezen. In dit hoofdstuk ga je door gebruik

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

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

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

Nadere informatie

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

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

Inhoud Basiscursus. Access 2010 NL-NL

Inhoud Basiscursus. Access 2010 NL-NL Inhoud Basiscursus Access 2010 NL-NL 1 - Access starten... 6 Een bestaande database openen... 8 Menu-opdrachten gebruiken... 9 Werkbalken tonen en verbergen... 11 Menu- en werkbalkopties aanpassen... 12

Nadere informatie

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

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

Nadere informatie

= > >= < <= BETWEEN IS NULL IS NOT NULL

= > >= < <= BETWEEN IS NULL IS NOT NULL Select queries SELECT...FROM... SELECT DISINCT...FROM... WHERE...AND...OR...NOT...LIKE...IN = > >= <

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

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

Release Notes Carta 14.1

Release Notes Carta 14.1 Release Notes Carta 14.1 Datum: 2-6-2014 09:43 Auteur: Hans Wijntjes Project: Carta 14.1 Versie: 1.0 Inhoud 1 Inleiding... 3 2 Importfunctie... 3 2.1 Stap 1 Kolomdefinities... 3 2.2 Stap 2 Gedrag... 4

Nadere informatie

U ziet de progressie van de download aan de groene blokjes in het balkje helemaal onder aan de pagina.

U ziet de progressie van de download aan de groene blokjes in het balkje helemaal onder aan de pagina. Gegevens exporteren en bewerken vanuit GRIEL Stap 1. Selecteer de juiste gegevens en download deze 1. Stel het datumfilter in op de gewenste periode. Druk op ververs. 2. Maak met behulp van het filter

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

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

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

Inhoudsopgave. Theorie... 14 Praktijk... 14. Gegevens uit Database halen... 13 DML commando s... 14

Inhoudsopgave. Theorie... 14 Praktijk... 14. Gegevens uit Database halen... 13 DML commando s... 14 SQL 2013 Inhoudsopgave Inhoudsopgave... 2 SQL begrippen... 3 Maken Database... 4 Rechten voor een Database... 4 User aanmaken... 5 Rol Toekennen aan een user... 5 Backup... 6 Theorie... 6 In SQL... 6 SQL

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

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

module 5 2008 Instruct, Postbus 38, 2410 AA Bodegraven - 1 e druk: november 2008

module 5 2008 Instruct, Postbus 38, 2410 AA Bodegraven - 1 e druk: november 2008 Europees Computer Rijbewijs module 5 ACCESS 2007 2008 Instruct, Postbus 38, 2410 AA Bodegraven - 1 e druk: november 2008 ISBN: 978 90 460 0493 7 Alle rechten voorbehouden. Niets uit deze uitgave mag worden

Nadere informatie

Een database gebruiken

Een database gebruiken Een database gebruiken In een vorige handleiding heb ik laten zien hoe je met Scratch soortgelijke gegevens kunt opslaan in een lijst om deze op een later moment weer op te halen. Als voorbeeld las ik

Nadere informatie

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site

Kies File>New>Blank Page>PHP. Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site Kies File>New>Blank Page>PHP Je kunt eventueel nog een stylesheet koppelen. Definieer nu eerst een site! Dat betekent: Site>New Site Geef de site een passende naam. Kies ook de juiste map voor de webdocumenten.

Nadere informatie

Van CaseTalk naar een database in SQLite studio

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

Nadere informatie

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

ADVANCED DATABASES Syllabus versie 2.0

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

Nadere informatie

2.2 Een tabel ontwerpen

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

Nadere informatie

In het CMS is het mogelijk om formulieren aan te maken. Voorafgaand een belangrijke tip:

In het CMS is het mogelijk om formulieren aan te maken. Voorafgaand een belangrijke tip: FORMULIEREN In het CMS is het mogelijk om formulieren aan te maken. Voorafgaand een belangrijke tip: belangrijk Importeer formulierdata uit een CSV-bestand precies zoals verderop beschreven. 1. Gedrag

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

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

6.8 Lijsten: oefeningen

6.8 Lijsten: oefeningen 6.8 Lijsten: oefeningen Opgaven 44.: Records zoeken Open het document "Autokosten". Klik in de lijst. Kies de opdracht 'Data - Formulier' [Data - Form]. Klik de knop 'Criteria' [Criteria]. Vul als zoekcriterium

Nadere informatie

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

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

Nadere informatie

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

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

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

Nadere informatie

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

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

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

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

Nadere informatie

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

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

Nadere informatie

Subrapporten. 5.1 Inleiding

Subrapporten. 5.1 Inleiding 5 Subrapporten 5.1 Inleiding Een subrapport is een rapport in een rapport. Een subrapport maak je dan ook net zoals je een gewoon rapport maakt. Een subrapport heeft bijna alle eigenschappen die een normaal

Nadere informatie

Overzichten genereren in het FMIS

Overzichten genereren in het FMIS Overzichten genereren in het FMIS 1. Algemeen Het FMIS is een database-applicatie waarin een gigantische set aan gegevens zit. Deze gegevens worden beheerd door gebruik te maken van de verschillende modules:

Nadere informatie

EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE

EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE EUROPEES COMPUTER RIJBEWIJS / INTERNATIONAAL COMPUTER RIJBEWIJS ADVANCED DATABASE The European Computer Driving Licence Foundation Ltd. Portview House Thorncastle Street Dublin 4 Ierland Tel: + 353 1 630

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

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