Relationsdatabas - vad är det?
Förord
Denna artikel är en kort och lätt introduktion till relationsdatabaser. Den är riktad mot dig som aldrig har hållit på med relationsdatabaser förut.
Vad är Data?
Uppgifter.
Vad är en Databas?
En samling av uppgifter som är sorterade och sökbara.
Vad är en RelationsDatabas ?
MS SQL-Server är en sk relationsdatabas. Kort sammanfattning:En databas där datan organiseras i tabeller som består av kolumner och rader. Tabeller består av kolumner (fält) . Kolumnerna i en tabell ska vara relaterade till samma ämne, tex Anställda. Varje kolumn i en tabell måste vara av en viss valfri datatyp, vilken datatyp man
använder varierar efter kolumnens art.
Tabellen Anställda |
---|
AnstNr |
Förnamn |
Efternamn |
Adress |
PostNr |
Ort |
RiktNr |
Tele |
En tabell kan bestå av en till flera Rader/Poster.
En rad är värdena i tabellens kolumner som är relaterade till samma ojbekt
tex den anställde Per Persson.
Tabellen Anställda | |||||||
---|---|---|---|---|---|---|---|
AnstNr | Förnamn | Efternamn | Adress | PostNr | Ort | RiktNr | Tele |
1 | Per | Persson | Solgatan | 79134 | Falun | 023 | 12345 |
För att en rad lätt ska kunna identifieras använder man sig av sk Primärnycklar. En primärnyckel måste ha ett unikt värde. Dessa primärnycklar gör att varje rad blir unik. I tabellen Anställda är det kolumnen AnstNr som är den unika primärnyckeln.
Tabellen Anställda är långt från fullständig, den borde innehålla fler kolumner. Den anställde vill säkert ha lön, och borde ha löneuppgifter. Dessa uppgifter skulle tex kunna vara kolumnerna; LönegruppId, Lön. Eftersom många av dessa uppgifter skulle vara desamma för flera anställda skulle det inte vara optimerat ifall man skrev in dem på alla anställda. Man skapar därför fler tabeller med relaterade ämnen. Tex tabellen Lönegrupp
Hur går det då till att koppla/referera data från flera tabeller?
Man använder sig av något som kallas för främmande nycklar, dessa är kolumner som refererar till primära nycklar. Data som har kopplats med nycklar måste vara av kompatibel datatyp.Det skulle kunna se ut på detta viset;
Tabellen Anställda |
---|
AnstNr (Primär nyckel) |
LönegruppId (Främmande Nyckel) |
SkatteTabell (Främmande Nyckel) |
Förnamn |
Efternamn |
Ort |
RiktNr |
Tele |
Tabellen Lönegrupp |
---|
LönegruppId (Primär nyckel) |
Lön |
I tabellen Anställda är LönegruppId den främmande nyckeln som refererar till lönegruppId i tabellen Lönegrupp.
Observera att i tabellen Anställda är kolumnen Skattetabell också en främmande nyckel, alltså den relaterar till en kolumn i en tabell som skulle kunna heta Skatt och som skulle innehålla relaterade uppgifter om skatt. Tack vare denna koppling kan man nu be databasen att visa anställningsuppgifter och löneuppgifter relaterade till den anställde Per Persson.
Detta sätt att organisera relaterad data i tabeller som inte innehåller överflödig återkommande data kallas för Normalisering.
Jag hoppas att jag har lyckats ge dig en bild på vad en relationsdatabas är.
Avslutningsvis
För att jag skall veta om kursen är bra eller om den måste skrivas om så rösta gärna här uppe till höger. Skicka gärna ett iMail om du vill kommentera något som är felaktigt eller du tycker borde förtydligas./Kenneth Hedman
0 Kommentarer