En database består af tabeller med en rækker og koloner, ligesom I delvist kender det fra Excel. Før vi går i gang med at modellere vores data, skal vi have det grundlæggende på plads.
Tabeller er opbygget af rækker og koloner, som du kan se i nedenstående eksempel. Lidt forsimplet kan man sige, at rækkerne er de enkelte enheder, udgør tabellen, og kolonerne er de egenskaber eller attributter, som hver enhed har.
I et eksempel med en elevliste dannes der en række for hver elev (entity), og i de tilhørende kolonner bliver de tilhørende attributter opskrevet. Hver entity gives et unikt nummer i tabellen. Her kan ses et eksempel på en elevtabel:
Og et eksempel på en medarbejdertabel fra samme skole:
Med et SQL-databaseværktøj kan man lave en ny liste fx med de lærere, der kan undervise i engelsk. De personer der bor i Korsbæk eller en ny liste med relationen de elever, der undervises af kunstlæreren Ernst Nyborg.
I en database kan man gemme data og læse data. Nævn to andre ting, man også kan gøre?
Der kommer en ny dreng ind i Daniel Skjerns klasse. Han hedder Ulrik Jensen. Han bor Branddammen 2 i Korsbæk. Ulrik Jensen skal have de tre fag Virksomhedsøkonomi (virk), Engelsk (eng) og Informatik (IT). Nu er der pludselig to elever med samme fornavn i tabellen – hvorfor er det ikke et problem?
Opdater elevtabellen, så Ulrik Jensen kommer med!
En søgning med et SQL-værktøj ville kunne finde alle de lærere, der underviser i engelsk. Det kan vi ikke her, men gå listerne igennem manuelt og find navnene på de lærere, der underviser i engelsk.
En søgning med et SQL-værktøj ville kunne finde alle de elever, der bliver undervist af Ernst Nyborg. Hvordan kan det lade sig gøre? Hvilken relation skal der opstilles mellem tabellerne?
Angiv navnene på de lærere, der bor i Korsbæk
Angiv medarbejdernummeret for den lærer, der underviser i Engelsk OG bor i Korsbæk
Angiv medarbejdernumrene for de lærere, der underviser i Engelsk ELLER bor i Korsbæk
Før man kan oprette tabeller i en relationsdatabase skal man lave en analyse og en model over den data, som databasen skal afspejle. En sådan model vil indeholde entiteter, deres attributter og relationerne mellem entiteterne.
For at bevare overblikket laver man skitser af de forskellige entiteter, deres attributter og deres indbyrdes relationer. En såkaldt E/R-model (Entities og Relationer). Denne model skal indeholde alle de entiteter (tabeller), som databasen skal indeholde; alle de attributter (koloner), som entiteterne skal have og vise hvilke relationer (nøgler), der er mellem de enkelte entiteter.
Her er et eksempel på en simpel E/R-model over en database for en skole med entiteterne elev, lærer og hold.
Lav en analyse af Spotify med E/R-modellen. Dvs. du skal finde ud af…
hvilke entiteter der er.
hvilke attributter disse entiteter har.
hvilke relationer disse entiteter har med hinanden.
Lav derefter en E/R-model over jeres resultater.
draw.io er et glimrende redskab til at modellere E/R-modeller. Alternativt kan I bruge Power Point, men det kommer hurtigt til kort, når modellerne bliver store.