71 6 Databases MySQL MySQL draait onder Unix. Maak bijvoorbeeld met telnet een verbinding met de facultaire server: ursus.bio.vu.nl Met volgende opdracht wordt het programma gestart: mysql –h mysql –u bionr -ppass waarbij nr een nummer is en pass een password dat verstrekt wordt op het practicum. U kunt alleen datatbases aanmaken met uw eigen usernaam bionr. Documentatie over MySQL is te vinden op http://dev.mysql.com/doc/ Opgave 6.1 Normalisatie (a) Men wil in een bedrijf een database opzetten. Van medewerkers zijn de volgende gegevens beschikbaar: -personeelsnummer -mednr -naam -mednm -afdeling -afd -chef van de afdeling -chef -projectnummer -projnr -projectnaam -projnm -gewerkte uren aan project -uren Normaliseer dit gegevensmodel en onderstreep de sleutels. Er is gegeven dat ieder medewerker aan meerdere projecten ook buiten de afdeling kan werken en maar tot één afdeling met maar één chef behoort. (b) Stel dat je een database wil opzetten voor een plantencollectie. Er zijn de volgende gegevens beschikbaar: -taxonnummer -taxonnr -taxonnaam -taxonnm -familie -fam -verspreidingsgebied -range -plantnummer -plantnr -geslacht -sex -locatie van plant -loca -synoniemen voor taxonnaam -syn -persoon die plant gevonden heeft -source 72 Elke plant behoort tot één taxon en een taxon behoord tot één familie. Per taxon kunnen er meerdere individuen aanwezig zijn en van elk taxon kunnen meerdere synoniemen worden opgeslagen. Normaliseer dit gegevensmodel en onderstreep de sleutels. 73 Opgave 6.2 Verschillende database-bewerkingen. a) Creëer drie tabellen Arts, Patient en Behandel zoals gegeven in de syllabus. Gebruik create table. Voeg bij de tabel Patient en Arts ook nog velden toe voor het adres. b) Bekijk de structuren van de tabel. Gebruik describe. c) Voer de tabellen in zoals gegeven in syllabus. Gebruik insert into. d) Bekijk alle gegevens in de verschillende tabellen. Gebruik select * from. Opgave 6.3 Projectie en selectie a) Print van tabellen Arts een lijst waarop de namen en de nummers van de artsen staan. Gebruik select veld from. b) Bekijk een overzicht van alle vrouwelijke patiënten. Gebruik select * from table where. c) Druk een lijst af van alle behandelingen die zijn geslaagd. Selectie en projectie kunnen ook in één commando worden gecombineerd. d) Print een lijst van vrouwelijke patienten. Opgave 6.4 Mutaties van gegevens in een databasebestand. a) b) c) Verwijder een record uit een tabel. Verander de naam van een vrouwelijke patiënt. Mogen er uit een ziekenhuisadministratie zomaar records uit het Patient-tabel worden verwijderd? Opdracht 6.5 Gegevens in meerdere tabellen opgeslagen. Dat betekent dat op de een of andere manier de gegevens ook weer gekoppeld moeten kunnen worden. Dat gaat via een zogenaamde join. a) Druk een lijst af van alle behandelingen met de behandelende arts en behandelde patient en daarnaast het resultaat. Gebruik select. Opdracht 6.6 Haal van de website de file computerkunde.dmb op. Dit is een Access database file met dezelfde tabellen als de MySQL database die aangemaakt is in opdracht 6.2.