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. Daarnaast ga je door gebruik te maken van SQL gegevens uit de database halen, muteren, wissen en invoegen. We maken hiervoor gebruik van Microsoft SQL-server Express 2008 R2 om het een ander uit te proberen. Het lesmateriaal is opgebouwd uit een aantal hoofdstukken. Bij elk hoofdstuk zitten een of meerdere oefeningen. Deze oefeningen dienen gemaakt te worden. De uitwerking van deze oefeningen wordt besproken in de les. LET OP In dit lesmateriaal wordt uitgegaan van het zogenoemde ANSI-SQL. Dit houdt in dat de gebruikte statements in elke programmeertaal of database omgeving uit te voeren zou moeten zijn. In het lesmateriaal staan regelmatig teksten die ingevoerd moeten worden op de computer. Deze teksten zijn in een ander lettertype weergegeven zodat het duidelijker is wat er nu wel of juist niet moet worden getypt. Gewone tekst Tekst die ingevoerd moet worden Boxen met tekst erin zoals hierboven worden gebruik om belangrijke punten nog eens extra onder de aandacht te brengen. Deze opmerkingen / statements moet je beheersen om verder te kunnen gaan met de lesstof. In het lesmateriaal worden de volgende symbolen gebruikt: Geeft aan waar je ergens extra informatie kunt vinden. Geeft aan wat er ingeleverd / gemaakt moet worden. Geeft aan dat er een handeling verricht dient te worden. Versie 5 Blz. 2
Al de hoofdstukken in deze reader hebben dezelfde opbouw. Databases / SQL Na de inleiding, krijg je te zien wat van je wordt verwacht als je het hoofdstuk hebt doorgewerkt. Als tweede onderdeel krijg je de syntax (= schrijfwijze van een commando / statement) te zien van alle statements die in dit hoofdstuk besproken worden. Als laatste komt de lesstof aanbod. De toetsen die je voor dit vak krijgt, zijn kennis en vaardigheidstoetsen. In de meeste gevallen mag je GEEN hulpmiddelen gebruiken bij het maken van de toetsen. Versie 5 Blz. 3
Databases / SQL 1. Wat is een database, datamodel en DBMS? 1.1. Inleiding In dit hoofdstuk wordt kort omschreven wat een database is en waarom het belangrijk is dat Applicatie Ontwikkelaars (AO) hiermee om kunnen gaan. Het is voor een belangrijk deel een herhaling van de lesstof die je tot nu toe hebt gekregen bij Basis-informatica / ECDL (Access). Na bestudering van dit hoofdstuk moet je tot het volgende in staat zijn: Het kunnen beschrijven wat een DBMS is. Je kunt uitleggen wat een database is, waaruit deze bestaat en waarvoor je een database zou gebruiken. Het kunnen lezen van een Bachmandiagram. De begrippen integriteit en redundantie kunnen gebruiken en toelichten aan de hand van databases. 1.2. Database Het woord database wordt voor verschillende begrippen gebruikt: De opgeslagen gegevens (=database). De manier waarop de gegevens zijn opgeslagen (=datamodel). De software waarmee databases kunnen worden aangemaakt en benaderd (DataBase Management Systeem of DBMS). Wij bedoelen bij database echter altijd de opgeslagen gegevens. Maar wat is een database dan? Een database is een digitaal opgeslagen archief, ingericht met het oog op flexibele raadpleging en gebruik. Databases spelen een belangrijke rol voor het archiveren en actueel houden van gegevens bij onder meer de overheid, financiële instellingen en bedrijven, in de wetenschap, en worden op kleinere schaal ook privé gebruikt. Een database moet aan de volgende minimale voorwaarden voldoen om als database gezien te worden: Versie 5 Blz. 4
Databases / SQL Gegevens moeten eenvoudig kunnen worden opgeslagen. Gegevens moeten eenvoudig kunnen worden opgezocht en doorzocht. Gegevens moeten gewijzigd kunnen worden. Gegevens moeten verwijderd kunnen worden zonder dat het de werking van dat systeem nadelig beïnvloedt. 1.3. Datamodel Met een datamodel (of gegevensmodel of bachmandiagram) wordt beschreven hoe de gegevens in een informatiesysteem gestructureerd zijn. In een datamodel kun je zien welke gegevens in een informatiesysteem worden vastgelegd en wat de verbanden zijn tussen deze gegevens. Hieronder staat een datamodel van een CD-database. Primaire sleutel Relatie 1.4. Database Management Systeem Een DBMS zal nooit uit zichzelf de gegevens in een database wijzigen of verwijderen. Iemand of iets zal het DBMS daartoe de opdracht moeten geven. Dit kan jij zijn, als gebruiker, maar het kan ook een programma zijn. In het 2 de geval is het programma de gebruiker. Met behulp van speciale talen worden opdrachten aan een DBMS gegeven. Dit soort talen wordt databasetalen genoemd. Opdrachten worden door gebruikers ingevoerd en door het DBMS verwerkt. Elk DBMS, van welke fabrikant dan ook, bezit een databasetaal. Sommige systemen hebben zelfs meer dan 1 databasetaal. Tussen al die talen bestaan verschillen. Deze verschillende talen zijn te verdelen in groepen. Eén van deze groepen wordt gevormd door de relationele databasetalen. Versie 5 Blz. 5
Databases / SQL De belangrijkste relationele databasetaal is SQL (Structured Query Language). Deze taal wordt door haast alle DBMS en ondersteund. Naast de standaard SQL breiden DBMS fabrikanten de taal nog uit met eigen specifieke opdrachten. Deze opdrachten zijn meestal niet uitwisselbaar met andere databaseomgevingen. Een andere belangrijke taak van een DBMS is het handhaven van de integriteit van de databasegegevens. Hiermee wordt ten eerste bedoeld dat het DBMS moet zorgen dat databasegegevens altijd voldoen aan regels die in de werkelijkheid gelden. Als bv een werknemer maar voor 1 afdeling tegelijkertijd mag werken, mag nergens in de database geregistreerd kunnen worden dat een bepaalde werknemer voor 2 of meer afdelingen werkt. Ten tweede wordt met integriteit bedoeld dat 2 verschillende databasegegevens elkaar niet tegenspreken (dit wordt ook wel consistentie van gegevens genoemd). Ook moet het niet mogelijk zijn dezelfde gegevens meerdere malen in te kunnen voeren. Dit noemen we redundantie. Daarnaast mogen twee verschillende databasegegevens elkaar niet tegenspreken. Dit wordt ook wel consistentie van gegevens genoemd. Maak nu opdracht 1.1 + 1.2 Versie 5 Blz. 6