1 |
I denne opgave skal der opbygges en database: SkoleDB, der skal indeholde oplysninger om vores uddannelse (e.g. datamatiker), med dens fag, studerende og lærere. |
|
Der er givet følgende ER-diagram, der beskriver databasens design: |
Figur 1:
ER-diagrammet for SkoleDB |
|
semester-tabellen |
I forbindelse med dette design, har man gjort sig nogle overvejelser omkring semester-tabellen. Som det ses indeholder den ikke andre attributter end selve primær-nøglen, og man har derfor besluttet, at den ikke skal implementeres. Når man har brug for at skabe relationer mellem semester-numre i andre tabeller, er der ikke noget vundet ved at joine hen over en ellers tom semester-tabel. Man kunne mene at den evt. senere kunne komme til at indeholde andre oplysninger, og det derfor senere vil kræve ændringer som man kunne undgå; hvis man allerede nu indførte tabellen. Man har dog vurderet at dette næppe vil ske, så den skal som sagt ikke implementeres i databasen. Vi står derfor tilbage med de tre resterende tabeller, der skal oprettes i vores nye database: SkoleDB. |
|
Attributterne er i hovedsagen selvforklarende. De forskellige primær-nøgler er, pånær nr i semester-tabellen (der ikke skal implementeres), blot fortløbende numre, der skal genereres af databasen. lektioner i fag-tabellen er antallet af lektioner pr. uge for det pågældende fag. |
1a |
Lav et script, der opretter databasen og dens tabeller, samt indsætter data for studerende, fag og lærere. |
|
Det kunne f.eks. være følgende data (fra foråret 2012): |
|
Studerende på 2. semester: |
|
- Simon Lyhne
- Brian Larsen
- Lars Stauersbøll
- Burak Türkdonmez
- André van Enckevort
- Lars Jensen
- Kasper Petersen
- Rasmus Larsen
- Michael Brøndum
- Mathias Villumsen
- Jens Olsson
- Rasmus Nørgaard
- Jeannie Fagerlund
- Tatiana Popova
|
|
Studerende på 4. semester: |
|
- Simon Ahle
- Stephan Jensen
- Martin Stampe
- Martin Nohns
- Claus Kølbæk
- Sarangan Thillayampalam
- Morten Uldum
|
|
Fag på 2. semester (lektioner pr. uge og lærer i parantes): |
|
- SWD (6, awrp)
- SWK (6, fkj)
- CAOS (6, fkj)
- ITO (2, ker)
|
|
Fag på 4. semester (lektioner pr. uge og lærer i parantes): |
|
- SUM (6, awrp)
- VF1 (7, fkj)
- VF2 (7, ker)
|
|
Visse af oplysningerne omkring antal lektioner pr. uge og fagenes lærere er simplificerede. |
1b |
Lav SQL-sætninger der enten gør, eller besvarer, følgende: |
|
- Find navnene på alle studerende på <semester nummer>.
- Find navnene på alle studerende der har <navn på fag>.
- Hvilken lærer underviser i <navn på fag>?
- Hvilke lærere underviser <semester nummer>?
- Hvilke lærere underviser <studerendes navn>?
- Hvor mange studerende har <navn på fag>?
- Hvor mange fag har <studerendes navn>?
- Slet et fag. Har det nogen konsekvenser for andre tabeller? Hvornår vil sletning af en række i en tabel have konsekvenser for en anden tabel?
- flyt et fag fra et semester til et andet.
- flyt alle studerende fra et semester til et andet.
|
|
Bemærk, at du i de enkelte opgaver skal tage udgangspunkt i de oplysninger der er givet. F.eks. må du i opgave 2 ikke tage udgangspunkt i fagets id — det er fagets navn man har! |