Tärningens RDBMS

Relationsdatabasens förhistoria

Vad man vet användes orden "data base" tillsammans för första gången i november 1963, i namnet på ett föredrag: "Development and Management of a Computer-centered Data Base". Det sammansatta ordet "database" började snart användas framförallt i Europa. Det liknande ordet "databank" användes av bland annat Washington Post redan 1966. Men efterhand började alla att använda ordet databas.

När datorer började användas inom affärsvärlden på 1960-talet blev det viktigt att kunna spara data på ett säkert sätt. En pionjär var Charles Bachman, som ville ersätta långsam seriell lagring på hålkort eller magnetband med något bättre. Ungefär samtidigt uppstod två olika modeller: den hierarkiska modellen och nätverksmodellen.

CODASYL utvecklade nätverksmodellen som var mest lik Bachman's idéer, samtidigt som North American Rockwell utvecklade den hierarkiska modellen, vilken IBM senare övertog i sin IMS-databas som bland annat användes i Apolloprogrammet. I en hierarkisk datamodell lagras data i en trädstruktur som gör den snabb att hitta men svår att manipulera. I en nätverksmodell lagras poster med pekare till andra poster.

Relationsdatabasens bakgrund

1970 publicerade IBM's Dr. Edgar F. Codd en artikel i Association for Computing Machinery (ACM) journal. Denna artikel kom att bli den accepterade grunden för relationsdatabashanteringssystem (engelska: relational database management system), förkortat RDBMS.

Under 1970 influerades Donald D. Chamberlin och Raymond F. Boyce vid IBMs forskningscenter i San Jose av Codd's artikel när de utvecklade "System R". För att manipulera och extrahera data ifrån System R konstruerade de 1974 Structured English Query Language, eller SEQUEL. Akronymen SEQUEL bytes senare ut mot SQL eftersom 'SEQUEL' var ett varumärke som den brittiska flygplanstillverkaren Hawker-Siddeley ägde.

Den första icke kommersiella relationsdatabasen utvecklades på U.C. Berkeley 1974, och fick namnet Ingres.

Under 1978 började IBM utveckla en kommersiell produkt som implementerade SQL-standarden och som baserades på deras prototyp av System R. I augusti 1979 släpptes den kommersiella varianten som hette System/38. System/38 följdes av SQL/DS 1981 och DB2 1983.

Samtidigt läste Larry Ellison, Bob Miner och Ed Oates också Codd's artikel och grundade 1977 företaget Software Development Laboratories som bytte namn till Relational Software, Inc 1979. 1983 bytte man återigen namn, till Oracle. Oracle specialskrev sin RDBMS för US Navy, CIA och andra myndigheter. Sommaren 1979 lanserade Oracle V2 (Version2) för VAX-datorer. V2 var den första kommersiella implementationen av SQL, ett par veckor före System/38.

Under samma period grundlades tanken på en fullt skalbar, parallell databasplattform. Mellan 1976 och 1979 skedde ett tankeutbyte och samarbete mellan forskare på California Institute of Technology (Caltech) och ingenjörer på Citibank, som ledde till att Teradata grundades 1979 av Jack Shemer mfl. 1983 levererades det första systemet till Wells Fargo, och 1984 lanserades världens första parallella databasplattform.

Relationsdatabasens grunder

Relationsdatabasen lagrar all data i tabeller, även kallade relationer. Dessa består av rader och kolumner, vilka ibland även kallas för poster och fält. Tabellen kan användas direkt för att söka och manipulera data. Idag kan data av en mängd olika typer sparas, inte bara text och numeriska data utan också bilder, ljud och video.

Vyer är ett sätt att ge indirekt åtkomst till tabellernas data. En vy är en lagrad fråga som man kan använda precis som en tabell vid sökning. Däremot bör/kan vyer inte användas vid manipulering.

För att minimera söktiden använder databasmotorn index på de kolumner som oftast används vid sökning. Ett index håller endast reda på innehållet i den indexerade kolumnen, vilket gör att omfattande och långsamma s.k. table scans kan undvikas.

För att garantera att en post är unik använder man en primärnyckel i tabellen. Definitionen av en primärnyckel är den innehåller ett unikt värde. I moderna databaser skapar databasmotorn automatiskt ett index på primärnyckeln.

Man kan låta en tabell relatera till en annan tabell, genom att ett fält innehåller den andra tabellens primärnyckel. Detta kallas för främmande nyckel. Om man kräver att fältet enbart får innehålla värden som förekommer som primärnyckel i den andra tabellen har man skapat en constraint.

I moderna databaser kan man använda triggers vid manipulering. Det är en funktion som aktiveras antingen direkt före eller efter en addering, uppdatering eller radering. Idag brukar man avråda från att använda triggers, såvida man inte vet exakt vad man gör, eftersom det lätt blir fel.

En viktigare komponent är transaktionshantering. Det är funktion som låser önskade delar medan en uppdatering pågår, för att garantera att datat är konsistent. Med andra ord att datat hänger ihop och relationerna är korrekta. Dessa egenskaper kallas även ACID (Atomicity, Concistency, Isolation & Durability), myntat av Andreas Reuter and Theo Härder 1983.

Relationsdatabasens språk

För att fråga, manipulera, definiera och styra åtkomst till data används språket SQL, som är standardiserat av ANSI sedan 1986.

Mer: SQL

källa: sv.wikipedia.org/wiki/Databas mfl

Sidan skapad 10 maj 2007
Uppdaterat 29 augusti 2014 (om Teradata, SQL till egen sida)
Uppdaterat 18 mars 2020 (Om ACID)
Sammanställt av Christer Tärning.