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 een DBMS - DataBase Management System. We bekijken eerst een eenvoudige database over ‘bieren’, die uit slechts een tabel bestaat. Elke rij van die tabel noem we een record. Elke kolom is een veld. 1 Download de database 'bieren.mdb' en bewaar het bestand in c:\werkmap van je computer. 2 Open de database 'bieren.mdb' en beantwoord voor deze database de volgende vragen. Verwerk de antwoorden op de volgende vragen in een Word document. Probeer de antwoorden te achterhalen met zo weinig mogelijk muisklikken of toetsaanslagen. Het is de bedoeling dat je efficiënt met een DBMS leert omgaan. Maak dus gebruik van het filter, sorteren, enzovoorts. Met het selectiefilter kan je gemakkelijk op de items van een bepaald veld (kolom) selecteren. Met filter in/uitschakelen hef je de selectie weer op. Door op een bepaald veld te sorteren kan je gemakkelijk gewenste items vinden. Met zoeken kan je gemakkelijk op een bepaald item zoeken. Let goed op de statusbalk onderin om gegevens over je zoek opdracht te vinden (hoef je niet zelf te tellen ;-) Probeer deze verschillende mogelijkheden met de database even uit alvorens je de verschillende vragen gaat beantwoorden. 3 Open een WORD document, typ de titel 'Bieren & Brouwers' vet en sla het document op als Praktijk07_DBMS in de werkmap. Bewaar aan het einde van de les het document in je ePortfolio op de ELO. 4 Neem de volgende teksten over (na de titel) en vul op de ........ het juiste antwoord in. Gebruik de database 'bieren.mdb' om de antwoorden te vinden. 4a
De brouwerij die het bier maakt met de naam Tonneke heet ........
4b
Het alcoholpercentage van Teutenbier is ........
4c
Het aantal brouwerijen dat bier maakt met de kleur zwartbruin is ........
4d
Het aantal bieren waarbij in het veld Gisting het woord 'lage' staat is ........
4e
De namen van de bieren met hoge gisting, blonde kleur en 6,6% alcoholpercentage zijn ........ en ........ .
Je hebt zojuist gewerkt met een heel eenvoudige database bestaande uit slechts één tabel. In het vervolg van deze praktijkopdracht gaan we een stapje verder en bekijken de opbouw van een relationele database met primaire sleutels en vreemde sleutels. Dat zijn de databases die in de
praktijk vaak gebruikt worden bij instellingen en bedrijven. Net zoals de grondstof voor een website HTML is, is de grondstof voor een database SQL. Elke database kan je dus creëren, beheren en bevragen met de taal SQL. SQL staat voor Structured Query Language. Leerlingen die het examenvak informatica hebben gekozen krijgen in 5/6-vwo een uitgebreide cursus SQL, waarmee ze elke willekeurige database kunnen aanmaken, bevragen en beheren. Daarnaast is het goed om een en ander te weten over privacy en beveiliging van grootschalige databases (denk eens aan het elektronisch patiënten dossier, de databases van Google en Facebook enzovoorts) en hoe die gegevens door anderen misbruikt kunnen worden. Antwoorden bij opdracht 4 zodat je kan controleren of je goed om kunt gaan met het DBMS Access: Brouwerij: Contreras percentage: 7,5% aantal: 9 aantal: 163 namen: Leffe blonde en Cuvée de Ciney blonde Relationele databases Het hart van elk informatiesysteem wordt gevormd door een database. Belangrijk dus dat je wat meer weet over wat een database tegenwoordig voorstelt, hoe zoiets opgebouwd is en wat je er mee kan.
Databases tref je bijvoorbeeld aan bij politie en justitie, in het navigatiesysteem voor een auto, bij de apotheek of ziekenhuis, op school (de leerlingenadministratie), in robotsystemen, bij de bank, in het gevangeniswezen, bij Google, bij Facebook, het elektronisch patiëntendossier (EPD) en noem maar op. Belangrijk dat zo’n database goed beveiligd is om de privacy te waarborgen van diegenen die erin staan. Helaas gaat het met die beveiliging nogal eens mis. Er zijn dus goed opgeleide mensen nodig, met voldoende kennis van informatica (ICT), die daar rekening mee houden. Technisch inzicht in de werking van moderne informatiesystemen is tegenwoordig dan ook voor iedereen groot belang.
DBMS Eerder heb je geleerd dat je een database kon beschouwen als een elektronische kaartenbak met gegevens. Maar dat is niet helemaal waar. Een moderne database bevat heel wat meer mogelijkheden, de gegevens in de database zijn vaak afhankelijk van elkaar en er bestaat een groot aantal mogelijkheden om de gegevens in de database te controleren op juistheid. We spreken van een relationele database
omdat de gegevens aan elkaar gerelateerd zijn. Een (relationele) database kun je maken met behulp van een DataBase Management Systeem, kortweg een DBMS. Een DBMS bestaat uit een programmapakket waarmee je een database kunt maken, kunt bevragen en kunt beheren (gegevens toevoegen, verwijderen, muteren). Het DBMS is dus niet de database zelf. MS Access, MySQL, Filemaker, Oracle en MS SQL server zijn voorbeelden van DBMS'n, die in het dagelijkse leven bij tal van bedrijven en instellingen gebruikt worden.
Opbouw van een relationele database Een relationele database bestaat uit een of meer tabellen, waarbij de tabellen aan elkaar gerelateerd kunnen zijn. Elke rij van de tabel noemen we een record (ook wel tupel) en elke kolom noemen we een veld. Als voorbeeld gaan we uit van een database gemaakt in MS Access voor ruitervereniging 'Infodata'. De database voor ruitervereniging 'Infodata' bestaat uit drie tabellen: Leden, Paarden en Combinaties.
Elk record van een tabel moet uniek te identificeren zijn. Daartoe krijgt elk record een primaire sleutel die uniek moet zijn. De primaire sleutel van de tabel leden is het veld lidnr, van de tabel paarden het paardnr en van de tabel combinatie de velden lidnr, paardnr en disc gezamenlijk. Daarnaast zijn de drie tabellen gekoppeld (het betreft immers een relationele database). Een groot voordeel van een relationele database is dat de gegevens zoveel mogelijk op één plaats bewaard worden en dat op die manier redundantie (overtolligheid) voorkomen wordt. Het gevolg daarvan is dat het DBMS een aantal logische fouten volautomatisch kan voorkomen. Als er bijvoorbeeld een nieuw paard ingevoerd wordt dan is het verplicht dat de eigenaar van dat paard in het systeem al bestaat. Als een nieuwe combinatie ingevoerd wordt dan moeten zowel het lid als het paard al in de database zijn ingevoerd. Het DBMS controleert of dat het geval is. Zo niet dan wordt het invoeren van de (foutieve) gegevens geblokkeerd. Het controleren van deze koppelingen noemen we het bewaken van de referentiële integriteit (integriteit = betrouwbaarheid). Met een strokendiagram wordt de opbouw van de database grafisch in beeld gebracht. Een dubbele pijl geeft een primaire sleutel (primary key) aan. Een pijl van de ene tabel naar de andere tabel is een vreemde sleutel (foreign key).
De velden lidnr, paardnr en winstp zijn numeriek. De overige velden zijn alfanumeriek (tekstvelden). legenda tv = tussenvoegsel, bijvoorbeeld van of van der gebdat = geboortedatum, bijvoorbeeld 29021956 gesl = geslacht, bijvoorbeeld m of v disc = discipline, bijvoorbeeld dressuur, springen of mennen rubr = rubriek, bijvoorbeeld B, L, M, Z of ZZ winstp = winstpunten, bijvoorbeeld 3 of 7 gebdatum = geboortedatum, bijvoorbeeld 12052001 schofthoogte = grootte paard tot schouder, bijvoorbeeld 168 cm geslacht = geslacht, bijvoorbeeld hengst, merrie of ruin foto = foto en bevat een bmp afbeelding van het paard combinatie = de combinatie van een lid (lidnr) met een bepaald paard (paardnr)
Met het DBMS Microsoft Access kun je de relaties tussen de tabellen definiëren via het relatievenster. Als je de gegevens uit het strokendiagram goed verwerkt krijg je de afgebeelde relaties in het database-ontwerp. Zie je het verband met het strokendiagram? 5
Ga na wat de gebruikte symbolen uit het relatievenster betekenen en verwerk je antwoord in het WORD document.
6
Omschrijf in eigen woorden (parafraseer) met behulp van het strokendiagram hoe de database 'Infodata' is opgebouwd.
7
Kan volgens het strokendiagram en relatievenster ... 7a ... een eigenaar twee paarden hebben? 7b ... een eigenaar drie paarden hebben? 7c ... een paard twee eigenaren hebben? 7d ... een paard drie eigenaren hebben? 7e ... een paard in de database zijn opgenomen zonder dat er een eigenaar is? 7f ... een lid in de database zijn opgenomen zonder dat deze aan een paard gekoppeld is?
8
Kan volgens het strokendiagram en relatievenster ... 8a ... een combinatie in een bepaalde discipline (bijvoorbeeld dressuur) zowel uitkomen in de rubriek L als de rubriek Z? 8b ... een combinatie in een bepaalde rubriek (bijvoorbeeld M) zowel uitkomen in de discipline dressuur als de discipline springen. 8c ... een combinatie in de database zijn opgenomen met een lid met een lidnr dat nog niet in de tabel leden bestaat? 8d ... een combinatie in de database zijn opgenomen met een paard met paardnr dat nog niet in de tabel paarden bestaat? 8e ... een combinatie in de database opgenomen zijn met twee dezelfde disciplines?
9
Bouw in deze opdracht de database 'Infodata' met het DBMS Microsoft Access. Eventueel laat je de foto’s van de paarden weg in de database.
9a Bouw met behulp van Microsoft Access de database 'Infodata' overeenkomstig het gegeven strokendiagram en het relatievenster. Kies de datatypen zoals onder het strokendiagram is aangegeven. Kies voor de veldlengten een redelijke waarde. 9b Pas als het ontwerp van de database helemaal gereed is begin je met het invullen van de records van de database. Als voorbeelden voor de gegevens van leden, paarden en combinaties maak je gebruik van de data uit de voorgaande tabellen. Op de informaticasite tref je een gezipt bestand aan met de afbeeldingen van paarden om op te nemen in de paardentabel. De afbeeldingen staan in het .bmp-formaat. Download zo nodig nog een aantal afbeeldingen van paarden van Internet en pas de grootte en het formaat aan via Irfan View als dat nodig is (dus opslaan als .bmp-formaat). 9c Controleer het bewaken van de referentiële integriteit door het DBMS. Probeer maar eens een paard in te vullen waarvan de eigenaar nog niet in de database bestaat en bekijk hoe het DBMS daarop reageert. Met een programmeertaal kan je een ‘gebruiksvriendelijke interface’ om de database bouwen, zodat de gebruiker van het informatiesysteem er gemakkelijk mee kan werken. Dat kan in een serversided programmeertaal zoals PHP, waardoor je database ook via Internet te raadplegen is. Het kan ook met een clientsided programmeertaal. In dat laatste geval is de database enkel te raadplegen als deze zich bevindt op de computer waaraan je werkt. Een voorbeeld. De basis van een webshop is een database met artikelen, bestellingen, gegevens van de klanten en nog veel meer. Bij een webshop (e-commerce, webwinkel) maakt men gebruik van een serversided programmeertaal, omdat de webshop vanuit heel veel verschillende clients op Internet bereikbaar moet zijn om er bestellingen te kunnen doen. In 5/6-vwo leer je bij het vak informatica zelf een webshop maken, hoe je een gebruiksvriendelijke interface maakt en hoe die webshop vanuit Internet gebruikt kan worden. Handig als je ooit nog eens een eigen zaak wil beginnen. Maar ook goed dat je enig inzicht hebt hoe jouw gegevens in een webshop opgeslagen worden in het kader van privacy en beveiliging. Op de informaticasite nog enkele uitgewerkte voorbeelden… Voorbeelduitwerkingen op de informaticasite. Unzip het bestand en plaats de map prjGalop in de werkmap op station C:.