Databasskolan: Relationsdatabaser
Introduktion till relationsdatabaser
Det finns olika typer av databaser på marknaden. Relationsdatabaser (RDBMS - Relational DataBase Management System) är överlägset vanligast idag.
Vanliga relationsdatabaser är Oracle, Sybase, DB2 och Microsoft SQL server. Även MS Access betraktas som en enkel relationsdatabas.
Objektorienterade databaser
Den nyaste typen av databas, objektorienterad databas (OODBMS - Object Oriented DataBase Management System) har funnits i cirka 20 år men används mycket begränsat, framförallt till "otraditionell" datalagring som multimedia och CAD/CAM-ritningar.
Tabeller
En relationsdatabas är uppbyggd av tabeller. Dessa består av fält (kolumner) och poster (rader). I exemplet nedan, tabellen "Anställda", är fälten personnummer, namn och lön de uppgifter ett företag vill lagra om sina anställda. Varje anställd är en post/rad i tabellen.
Primärnycklar
Det får inte finnas två likadana rader i en tabell. Därför använder man sig av så kallade primärnycklar (eng. primary key), ett eller flera fält som gör posten unik.
I exemplet nedan är personnummer primärnyckel.
Personnummer Namn Lön 600606-1234 Pelle 30.000 700707-1234 Stina 25.000 800808-1234 Kalle 20.000
I vissa skisser markeras primärnyckel med understrykning. I andra notationer används bl a * (asterisk) framför nyckeln, eller förkortningen p.k., primary key, efter nyckelfältet.
Relationer
Som namnet relationsdatabas antyder har de olika tabellerna relationer med varandra. De kopplas samman via via gemensamma fält. Tabellen över anställda kan t ex innehålla en kod för arbetsplats (huvudkontoret, lokalkontor 1, lokalkontor 2 etc) som kopplar ihop den med en tabell över samtliga arbetsplatser.
Att hämta data med SQL
För att ta fram data ur en relationsdatabas använder man frågespråket SQL (Structured Query Language). Det är standardiserat, men de flesta stora databastillverkare har gjort sina egna tillägg till grundstandarden.
En SQL-fråga kan se ut så här: SELECT Number, Name FROM Employee WHERE Salary > 20000 Denna fråga söker fram personnummer och namn för de poster i tabellen Employee där lönen överstiger 20.000 kr / mån. Man kan också göra mer avancerade frågor med bl a sortering.
Mer om SQL
SQL används också för att ändra data i en tabell, t ex lägga till poster (INSERT), ta bort poster (DELETE) eller ändra befintliga poster (UPDATE).
Man använder också SQL-satser för att skapa databaser, tabeller och relationer. Flera SQL-satser kan kombineras till mindre program, som kallas triggrar (triggers) resp. lagrade procedurer (stored procedures).
I en Windows- eller webbapplikation matar användaren ofta in sökkriterier i ett formulär. En applikation (programkod) tar då hand om uppgifterna och översätter dem till en SQL-fråga, som skickas till databasen. Databasen skickar ett resultatset (result set) med de framsökta posterna tillbaka till applikationen, som presenterar dem på ett förståeligt sätt i användargränssnittet.
En så kallad treskiktslösning är vanlig framför allt i webbmiljö. Logikskiktet kan delas upp ytterligare i logiska eller fysiska skikt, och man talar ofta om flerskiktslösningar.

Systemutveckling
Vill du lära dig mer om systemutveckling?
I vårt databasdokument (pdf) kan du läsa mer om:
- Metoder och modeller för utveckling av databaser och system
- De olika faserna i utvecklingsarbetet: analys och design, normalisering och implementation
Av Maria Brolin, 2002
Böcker i databasteknik:
- Database systems : a practical approach to design, implementation and management. Connolly, Thomas M. & Begg, Carolyn,
3 uppl. Addison-Wesley, 2001.
- An introduction to database systems. Date, C.J., 7 uppl. Addison-Wesley, 1999.
- Fundamentals of database systems. Elmasri, Ramez & Navathe, Shamkant B., 3 uppl. Addison-Wesley, 1999.
Det finns även handböcker om specifika databaser, som Access, Sybase, Oracle etc.


