Introductie
Introductie tot de cursus
Voordat u begint met het bestuderen van de cursus Databases, willen wij u in deze introductie informeren over de bedoeling van de cursus, de opzet van het cursusmateriaal en de werkwijze die wij van u verwachten. 1
Plaats en functie van de cursus
De cursus Databases is een cursus van het eerste niveau met een studielast van 100 uur (4,3 EC). De cursus is opgenomen in het Startpakket en volgt daarin op de cursus Inleiding informatica. Verder is de cursus onderdeel van de lijn ‘Informatiesystemen en bedrijfsprocessen’, die binnen de propedeuse verder nog de volgende cursussen omvat: – Model-driven development − Ontwikkelpracticum – Objectgeoriënteerd analyseren en ontwerpen. De cursus Databases draagt in belangrijke mate bij aan het kunnen uitvoeren van het Propedeusepracticum, dat is gericht op het ontwikkelen van een informatiesysteem via internet. Doelgroepen
De cursus is een verplicht onderdeel van alle informaticadiplomaprogramma’s. Verder is deze cursus geschikt als losse cursus voor diegenen die een degelijke introductie willen op het gebied van databases, of die praktische vaardigheden willen opdoen in het werken met relationele databases en SQL.
Voorkennis
Deze cursus vereist geen specifieke voorkennis. 2
Inhoud van de cursus
2.1
LEERDOELEN
De leerdoelen omschrijven welke kennis, inzichten en vaardigheden u zich door het bestuderen van de cursus zou moeten eigen maken. Na het bestuderen van deze cursus wordt verwacht dat u – de functie kent van databasetalen en hun subtalen – inzicht hebt in het relationele model – een gegeven relationele structuur kunt normaliseren – vaardig bent met SQL (DDL, DML en DCL) – SQL-vraagstellingen methodisch weet aan te pakken – inzicht hebt in transacties, ook in een multi-useromgeving – eenvoudige triggers en stored procedures kunt schrijven – in staat bent tot een praktische benadering van (relationele) optimalisatiekwesties – inzicht hebt in relationele metadata (de datadictionary)
7
Open Universiteit
Databases
Veel van de praktische oefeningen waarmee aan deze leerdoelen wordt gewerkt, worden uitgevoerd met behulp van het relationeel databasemanagementsysteem Firebird. Het SQL-dialect van Firebird sluit vrij nauw aan bij de ANSI/ISO-standaard SQL3. De taal SQL heeft een belangrijk aandeel in deze cursus, en zeker niet alleen om ermee te leren werken: het dient ook als ‘kapstok’ om essentiële aspecten van relationele databases (en van databases in het algemeen) aan op te hangen. 2.2
OPBOUW VAN DE CURSUS
De cursus bestaat uit achttien leereenheden, gegroepeerd in vijf blokken, die verdeeld zijn over drie cursusdelen (de cursusboeken). Blok 1 ‘Verkenning’ 1 leereenheid
Blok 1 ‘Verkenning’ omvat één leereenheid ‘Databases: typen en architecturen’, waarin een overzicht wordt gegeven van het vakgebied ‘databases’. De onderwerpen van de volgende blokken komen hierin in vogelvlucht aan de orde, maar ook wordt juist aandacht geschonken aan onderwerpen die verderop niet worden behandeld, zoals oudere databasearchitecturen, fysieke aspecten van gegevensopslag en n-tierarchitecturen.
Blok 2 ‘Relationele databases’ 5 leereenheden
Blok 2 ‘Relationele databases’ omvat vijf leereenheden. – Leereenheid 2 ‘Relationele databases: structuur’ en leereenheid 3 ‘Relationele databases: regels’ behandelen aan de hand van voorbeelden de structuur van relationele databases, de regels (constraints) die beperkingen opleggen aan de mogelijke inhoud ervan, en de regels die te maken hebben met databasegedrag (veranderingen in de tijd). – Leereenheid 4 ‘Communicatie met een relationele database’ gaat over de communicatie met het beheerprogramma voor relationele databases (het relationeel databasemanagementsysteem). Dit komt grotendeels neer op een inleiding in de relationele gegevenstaal SQL (Structured Query Language) en het leren werken met de Boekverkenner (zie paragraaf 2.3). – Leereenheid 5 ‘Null’s’ en leereenheid 6 ‘Normalisatie’ behandelen relationele databases vanuit een meer theoretisch perspectief, hoewel hiermee juist ook licht wordt geworpen op een aantal praktische kwesties. Onder meer worden behandeld: null’s (over ‘ontbrekende waarden’), driewaardige logica en normalisatie (over relationele structuurtransformaties).
Blok 3 ‘Relationele databases bevragen en bewerken’ 5 leereenheden
In blok 3 ‘Relationele databases bevragen en bewerken’ wordt in vijf leereenheden de relationele theorie van blok 2 uitgediept en praktisch toegepast bij het leren van de DML-subtaal (Data Manipulation Language) van SQL. – Leereenheid 7 ‘Informatie uit één tabel’, leereenheid 8 ‘Informatie uit meerdere tabellen: joins’, leereenheid 9 ‘Statistische informatie’ en leereenheid 10 ‘Subselects en views’ gaan over het bevragen van een relationele database met het SQL-select-statement. – Leereenheid 11 ‘Wijzigen van een database-inhoud’ behandelt het wijzigen van de inhoud van een relationele database met de SQLcommando’s insert, update en delete. Ook komt het transactiemechanisme in een single-useromgeving aan bod.
Blok 4 ‘Relationele databases beheren’ 3 leereenheden
In blok 4 ‘Relationele databases beheren’ worden in drie leereenheden uiteenlopende beheeraspecten van relationele databases behandeld.
8
Introductie
–Leereenheid 12 ‘Definitie van gegevensstructuren’ gaat over het aanmaken of wijzigen van databasestructuren met de DDL-subtaal (Data Definition Language) van SQL. – Leereenheid 13 ‘Autorisatie’ heeft databaserechten als onderwerp, ofwel ‘wie mag wat?’. − Leereenheid 14 ‘Query-optimalisatie’ gaat over de vraag hoe het gebruik van tijd en geheugen binnen de perken kan worden gehouden.
Nominale studielast
Blok 5 Verdieping 4 leereenheden
Blok 5 ‘Verdieping’ bevat vier leereenheden over uiteenlopende onderwerpen: − Leereenheid 15 ‘Transacties en concurrency’ gaat over samengestelde acties die als één geheel door een database worden afgehandeld. Voor een multi-useromgeving wordt behandeld hoe wordt gezorgd dat gebruikers elkaar niet in de weg zitten. −In leereenheid 16 ‘Triggers en stored procedures’ wordt geïllustreerd hoe databaseregels waarvoor SQL ontoereikend is, met programmaatjes in een ‘triggertaal’ kunnen worden afgedwongen. – In leereenheid 17 ‘De data dictionary’ wordt getoond hoe structuurinformatie over een relationele database (metagegevens) zelf ook weer relationeel wordt opgeslagen. − Leereenheid 18 ‘Commerciële databases’ sluit dit blok af. Deze leereenheid gaat over grote, commerciële databases, in het bijzonder Oracle.
Tentamenvoorbereiding
Voor de tentamenvoorbereiding kunt u gebruikmaken van een eindtoets in deel 3 en enkele voorbeeldtentamens op de cursussite. Deze bestrijken zeker niet alle mogelijke tentamenonderwerpen, maar geven een goede indruk van aard en niveau van mogelijke vragen.
Bijlagen voorbeelddatabases
Elk cursusdeel bevat achterin een bijlage met diagrammen van de in dat deel gebruikte voorbeelddatabases. Bij elke leereenheid staat de nominale studielast vermeld. Het is mogelijk dat de werkelijke studielast per doelgroep (bijvoorbeeld reguliere studenten of scholingscursisten) verschillend is. 2.3
LEERMIDDELEN
Het cursusmateriaal bestaat uit een set van drie cursusboeken, cursussoftware en aanvullend materiaal op de cursussite. Cursusboeken De cursusboeken omvatten in principe de volledige tentamenstof. Raadpleeg de cursussite voor eventuele facultatieve onderdelen of voor aanvullingen. Software De software omvat het relationele databasemanagementsysteem Firebird, een SQL-querytool (IQU) en de Boekverkenner. Firebird IQU
Firebird is een open source SQL-databaseserver, die zich snel en simpel laat installeren en eenvoudig is in gebruik. IQU (Interactive Query Utility) is een krachtige en gebruiksvriendelijke SQL-omgeving.
9
Open Universiteit
Databases
Boekverkenner
De Boekverkenner is een applicatie vanwaaruit het cursusboek en Firebird op allerlei manieren kunnen worden benaderd. Naast de volledige tekst van de cursus biedt de Boekverkenner onder meer: – diverse manieren om de tekst te doorzoeken – alle voorbeelddatabases, met hun beschrijving, diagrammen en SQLscripts – schakelmogelijkheden tussen tekst, voorbeelden en IQU – uitvoeren van de SQL-opdrachten direct vanuit de tekst, in IQU – meting van de databasebelasting van SQL-opdrachten. Door de snelle schakelmogelijkheden tussen tekst, voorbeelden en IQU, en door het moeiteloos kunnen installeren en herinstalleren van de voorbeelddatabases, is de Boekverkenner een erg handig studieinstrument. 3
Aanwijzingen voor het bestuderen van de cursus
3.1
OPBOUW VAN EEN LEEREENHEID
Leereenheid
Een blok is verdeeld in leereenheden. Dit zijn afgeronde delen van de stof die u meestal in een of twee dagdelen kunt bestuderen. Elke leereenheid wordt voorafgegaan door een inhoudsopgave en bestaat verder uit een introductie, een leerkern, een zelftoets en een terugkoppeling.
Introductie Leerdoelen
De introductie van een leereenheid geeft kort aan wat de inhoud van de leereenheid is en schept een kader waarin de leerinhouden beter begrepen kunnen worden. In de introductie vindt u de leerdoelen. Zij stellen u in staat na te gaan welke kennis, inzichten en vaardigheden u zich eigen moet maken door bestudering van de leereenheid.
Leerkern
De leerkern van een leereenheid bevat de feitelijke leerstof.
Opgave
Op bepaalde plaatsen in de leerkern treft u opgaven aan. Werk bij voorkeur elke opgave uit tijdens het bestuderen van de leereenheid. Vergelijk uw antwoord met het antwoord in de ‘terugkoppeling’ aan het eind van de leereenheid. Probeer de opgaven zoveel mogelijk op eigen kracht te maken. Blijf echter nooit te lang ‘ploeteren’ en raadpleeg tijdig de uitwerkingen. Markeer lastige opgaven om deze in een later stadium alsnog zelfstandig te maken.
Samenvatting
Direct na de leerkern staat een samenvatting waarin de belangrijkste zaken uit de leerkern nog eens worden opgesomd.
Zelftoets
De zelftoets van een leereenheid bestaat uit opgaven die bedoeld zijn om u te helpen beoordelen of u, na bestudering van de leerkern, de leerdoelen inderdaad hebt bereikt.
Terugkoppeling
De terugkoppeling bevat uitwerkingen van de opgaven en van de zelftoets. Twijfel niet te snel aan uw eigen uitwerking: een opgave heeft vaak meerdere goede uitwerkingen.
10
Introductie
Kernbegrippen Studeeraanwijzingen
Grijsteksten
Dit is een voorbeeld van een studeeraanwijzing.
Elke pagina heeft aan de linkerkant twee margekolommen. In de meest linkse kolom treft u kernbegrippen aan. Deze kolom maakt het gemakkelijk om bepaalde tekstonderdelen snel terug te vinden. In de tweede margekolom staan korte studeeraanwijzingen. Dat kunnen toelichtingen zijn, aanwijzingen hoe de tekst gelezen moet worden of verwijzingen. Grijsteksten Sommige teksten worden afgedrukt op een grijze achtergrond. Veelal bevatten deze een inhoudelijk ‘terzijde’ of een aanvulling op de hoofdtekst. 3.2
APPARATUURSPECIFICATIES EN INSTALLEREN VAN DE SOFTWARE
Voor het practicum moet u beschikken over een computer waarop u Windows kunt draaien. Voor communicatie met medestudenten en docenten en voor download van de software hebt u een internetverbinding nodig. De software kunt u downloaden via de cursussite. Er zijn twee downloads: één voor installatie van Firebird en de Boekverkenner en één voor twee extra voorbeelddatabases met een grote, realistische omvang. 3.3
LITERATUUR EN RELEVANTE WEBSITES
Aanbevolen literatuur We noemen één standaardwerk uit het overweldigende aanbod: – Elmasri, R.E. en S.B. Navathe, Fundamentals of database systems. Benjamin/Cummings, 6e druk, 2011. Websites en verdere bronnen – De Firebird-site http://www.ibphoenix.com. – Firebird-handleiding, SQL-guide en Programmer’s guide (beschikbaar via de Boekverkenner) – De Oracle-site http://www.oracle.com. 4
Cursussite
Discussiegroep
Cursussite en studiebegeleiding
Cursussite De cursus is geschikt voor zelfstudie. Na inschrijving krijgt u toegang tot de cursussite op Studienet. Hier vindt u aanvullingen op de cursustekst, artikelen, links naar webbronnen, errata, een eindtoets en actuele informatie zoals tentamendata en nieuws over de begeleiding. Voor toegang tot Studienet moet u beschikken over een gebruikersnaam (uw studentnummer) en een wachtwoord. Het wachtwoord en juiste webadres worden u verstrekt bij uw eerste aanmelding voor een cursus die van Studienet gebruikmaakt. Discussiegroep Een belangrijk onderdeel van de cursussite is de discussiegroep. Hierin kunt u uw eigen problemen bij de bestudering van deze cursus voorleggen aan medestudenten en begeleiders of kennisnemen van opmerkingen, aanmerkingen en problemen van anderen.
11
Open Universiteit
Databases
Begeleidingsbijeenkomsten Tweemaal per jaar wordt begeleiding verzorgd in de vorm van maximaal negen online begeleidingsbijeenkomsten van circa 1½ uur. Daarnaast worden − bij voldoende belangstelling − nog twee cycli van vijf bijeenkomsten van 2½ à 3 uur in Utrecht gegeven. De begeleidingsdata worden bekendgemaakt via de cursussite, in de studiegids en in (e-)Modulair, het tijdschrift voor studenten van de Open Universiteit. 5
Schriftelijk tentamen
Tentaminering
De cursus wordt afgesloten met een geheim, schriftelijk tentamen van 3 uur, dat bestaat uit 8 à 12 open vragen. De tentamendata vindt u op de cursussite, in de studiegids of in (e-)Modulair. Openboektentamen
Het tentamen is een openboektentamen. Er mag tijdens het tentamen gebruik worden gemaakt van ‘schone’ cursusboeken (voor de precieze betekenis van ‘schoon’ verwijzen we u naar Studienet). Dit betekent wel dat de gestelde vragen niet louter reproduceerbare kennis zullen toetsen, maar dat van u verlangd wordt dat u actief met de bestudeerde stof kunt omgaan.
Consequente stijl
Voor zover de vragen SQL-code of triggercode als antwoord verlangen, is het volgende van belang: de code die u schrijft moet voldoen aan de huisstijl van de cursus of aan een andere duidelijke, consequente stijl.
12