Modellering

Att modellera en databas betyder att man bestämmer vilken data den ska innehålla och hur den datan ska organiseras.

Modellering sker generellt i tre steg – men stegen flyter ofta ihop:

  • Konceptuell modellering. Man går från idé till en struktur, och bestämmer vilka koncept som ska vara med.

  • Logisk modellering. Man tar strukturen och anpassar den efter en specifik databasmodell – oftast relationsmodellen.

  • Fysisk modellering. Man tar den anpassade datastrukturen och skapar den i det faktiska databassystem som man ska använda, t.ex. MySQL eller SQLite.

Den konceptuella modelleringen följer normalt stegen nedan – man börjar med en beskrivning, en "story" som förklarar det system man ska modellera. Därifrån försöker man hitta alla objekt, alla relationer och alla egenskaper som ska modelleras, och hur de hänger ihop.

Ofta beskriver man allt detta i ett ER-diagram.

Den logiska modelleringen för relationsdatabaser handlar generellt om att normalisera modellen och eventuellt lägger till nycklar. Ofta sker det i samband med att man skapar databasens tabeller.

Beskrivning

Generellt börjar man med ett case; en beskrivning av det system som ska byggas och där databasen ska lagra informationen.

Exempel: En hemsida för filmrecensioner. Användare kan registrera sig och logga in. Inloggade användare kan skriva recensioner och skriva kommentarer på andras recensioner. De kan också trycka "tumme upp" på andras kommentarer.

Både inloggade och icke inloggade kan läsa recensioner.

Det finns två grupper av användare; vanliga och admins. Admins kan ta bort andra användares recensioner/kommentarer, göra användare till admins, och lägga till nya filmer.

Beskrivningen bör vara så komplett och tydlig som möjligt, men det händer ofta att man senare upptäcker att den behöver kompletteras.

Objekt eller entiteter

Vilka saker ska databasen hålla reda på? Leta i beskrivningen och försök hitta alla konkreta objekt eller entiteter. Gör en lista.

Exempel: Användare, grupper, recensioner, kommentarer, filmer.

Relationer

Hur hänger entiteterna ihop? Leta återigen i beskrivningen efter ledtrådar.

Exempel: Användare och grupper har en relation: en grupp innehåller användare, användare ingår i grupper.

Användare och kommentarer har en relation: varje kommentar är skriven av en användare, varje användare kan ha skrivit många kommentarer.

Det finns tre kategorier av relationer:

  • En-till-en (1:1): Sällsynt, finns inte i recensions-hemsideexemplet. Men man kan t.ex. tänka sig en databas över anställda och kontorsrum, där varje person bara har ett rum och varje rum bara innehåller en person. Skrivs ibland som "1-1".

  • En-till-många (1:N): Vanligast. Varje recension hör ihop med en film, men varje film kan ha många recensioner.

  • Många-till-många (N:M): Varje kommentar kan få tumme upp från flera olika användare, och varje användare kan ge tumme upp till flera olika kommentarer.

Egenskaper

Vilka egenskaper hos varje objekt ska databasen hålla reda på?

Exempel: en användares för- och efternamn, mailadress och lösenord. En films titel och synopsis.

Last updated