Databaser og SQL: fredagsopgave
Denne fredag er sat af til følgende:
- Færdiggør de af ugens opgaver, du ikke har nået.
- Lav den nedenstående opgave, hvor du skal implementere et bibliotekssystem inspireret af datamodellen fra normaliseringsartiklen.
Bibliotekssystem i Postgres
Den overordnede opgavebeskrivelse lyder således:
Vi skal have konstrueret en database til et simpelt bibliotek. Derfor begynder vi med at analysere os frem til en datamodel og fylde lidt data i. Datamodellen skal selvfølgelig være på 3. normalform.
Vi har en række forespørgsler, som vi gerne vil kunne trække ud af databasen. F.eks.
- Find en låner ud fra et specifikt laaner_id.
- Find alle lånere, og vis deres data inklusive postnummer og by.
- Find alle bøger, og deres forfattere. Vi vil gerne vise alle data på bøgerne og forfatterne i samme udtræk.
- Find alle lånere og de bøger de har lånt. Medtag også bogtitler og evt. forfatter
- Vis alle de udlån, som har at gøre med en bestemt bog. F.eks. “Den gamle mand og havet” af Ernest Hemmingway.
Her er nogle punkter, som kan hjælpe dig på vej:
- Kig normaliseringsartiklen igennem og lav en skitse på papir over hvilke tabeller, du har brug for for at bygge bibliotekssystemet. Fordi artiklen gradvist normaliserer tabellerne, skal du holde tungen lige i munden. Hint: Det virker fornuftigt med 5 tabeller
- Opret database i Postgres. Lav dernæst et ERD i Postgres’ diagram-editor, som svarer til din skitse. Den skal naturligvis være på 3NF.
- “Forward engineer” diagrammet til databasen ved at bruge SQL-knappen i din ERD editor, som generer et script.
- Fyld lidt data i tabellerne. Kig evt. i artiklen for at finde inspiration til bogtitler og lånere.
- Lav følgende SQL-forespørgsler i Query Tool:
- Find en låner ud fra et specifikt laaner_id.
- Find alle lånere, og vis deres data inklusive postnummer og by.
- Find alle bøger, og deres forfattere
- Find alle lånere og de bøger de har lånt. Medtag også bogtitler og evt. forfatter
- Vis alle de udlån, som har at gøre med en bestemt bog. F.eks. “Den gamle mand og havet” af Ernest Hemmingway.
- Lav følgende DML sætninger i Query Tool:
- Indsæt en ny låner (insert)
- Opret et nyt udlån af en bog (insert)
- Fjern et udlån (delete)
- Rediger en bogtitel (update)
Eksempel SQL-kode til opgaverne
Her er vejledende løsninger: