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.
Det är en vanlig missuppfattning att data och databaser inte fanns innan datorernas intåg. Databaser har funnits sedan mycket lång tid tillbaka. ända sedan man började samla in data och ordna den systematiskt, exempelvis i form av arkiv och kartotek. I och med att datorerna kom fick man möjlighet att behandla data maskinellt automatiskt, även kallat administrativ data behandling (ADB).
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.
De första databaserna var hierarkiska där data lagras i en struktur anpassad till dåtidens linjära lagringsmedia som magnetband. Data var lagrad i en trädstruktur som gjorde den snabb att hitta men svår att manipulera. North American Rockwell utvecklade den hierarkiska modellen, vilken IBM senare övertog i sin IMS-databas som bland annat användes i Apolloprogrammet. Hierarkiska databaser används fortfarande i tillämpningar som kräver snabb access likt banktillämpningar och telekomsystem.
CODASYL utvecklade nätverksmodellen, som var mest lik Bachman's idéer, med poster som lagrar pekare till andra poster i en trädstruktur. Den användes under 1970-talet, tex i DEC VAX DBMS, men ersattes på 1980-talet ofta av relationsdatabasen (RDBMS), som erbjuder samma eller bättre funktioner med ett deklarativt gränssnitt på en högre nivå med ett generellt frågespråk (SQL). Sedan dess har relationsdatabasen blivit den vanligaste typen av databas.
Mer: RDBMS
Vid sidan av relationsdatabasen har det funnits ett (ökande) behov av andra lagringsmodeller. Den klassiska nätverksmodellen, även kallad nätverksdatabas, har utvecklats till grafdatabaser som passar bra för lagring av komplexa relationer. De har utvecklats vidare till vektordatabaser som idag används för att lagra vektorer för Generativ AI.
När objektorientering blev standard inom programutveckling på 1990-talet uppstod ett behov av att lagra objekt, med möjlighet att anropa funktioner direkt på datat, och den objektorienterade databasen skapades. De fick ett nytt uppsving på 2000-talet när objektorienterade open source databaser blev tillgängliga.
När Internet slog genom i stor skala på 2000-talet uppstod ett behov av att lagra så kallad ostrukturerad data från webbloggar och liknande. Datat är förstås inte helt ostrukturerat, men passar ofta inte in i relationsdatabasens fasta strukturer, och dessutom kan dess struktur ofta ändras över tiden. Det innebar att dokument-orienterade databaser, key-value stores, och wide-value stores började användas.
Inom maskininlärning (machine learning) finns det behov att spara data som vektorer, vilket är matematiska representioner av data med många dimensioner, där varje dimension korresponderar med en viss egenskap hos datat. Man kan lagra alla typer av data, inklusive ord, dokument, bilder, ljud och filmer som vektorer. Dessa har nyligen fått nytt intresse eftersom de används inom Generativ AI.
Dessa databastyper kallas ofta för NoSQL-databaser eftersom SQL normalt inte används som frågespråk.
Relationsdatabasen lagrar data i tabeller, som har ett strukturerat format med rader och kolumner. Varje rad representerar en logisk entitet, och varje kolumn representerar dess logiska attribut. Relationen mellan olika entiteter hanteras normalt med hjälp av primära och främmande nycklar i tabellerna. SQL (Structured Query Language) används för frågor och manipulering.
Relationsdatabasens fördelar:
Relationsdatabasens nackdelar:
Relationsdatabasens användningsfall:
Relationsdatabaser:
Nätverksdatabasen lagrar data som noder och hörn (edges) i nätverkslika strukturer med komplexa relationer. De tillåter bland annat varierande många-till-många relationer mellan de logiska entiterna, ungefär som ett mänskligt kontaktnätverk.
Nätverksdatabasens fördelar:
Nätverksdatabasens nackdelar:
Nätverksdatabasens användningsfall:
Nätverksdatabaser:
Grafdatabasen lagrar data som noder och hörn (edges), och är designad för att hantera komplexa relationer. De passar utmärkt till situationer där relationen mellan datat är minst lika viktigt som själva datat. SQL kan normalt inte användas som frågespråk.
Grafdatabasens fördelar:
Grafdatabasens nackdelar:
Grafdatabasens användningsfall:
Grafdatabaser:
Objektdatabasen lagrar data som objekt, av samma typ som inom objektorienterad programmering. Ett objekt består av två element, data (eller attribut) och metoder (funktioner som definierar vilka operationer som kan användas på datat). Objekt kan grupperas i klasser, och kan ärva (inherit) egenskaper från andra klasser, vilket gör det möjligt att återanvända programkod
Objektdatabasens fördelar:
Objektdatabasens nackdelar:
Objektdatabasens användningsfall:
Objektdatabaser:
Dokumentdatabasen lagrar data utan schema, dvs utan krav på fast struktur. Varje dokument kan ha sin egen struktur och sparas typiskt i format som JSON eller XML. Med en extremt flexibel strukturen kan allt sparas, men samtidigt måste man förstå den unika strukturen varje gång man läser datat.
Dokumentdatabasens fördelar:
Dokumentdatabasens nackdelar:
Dokumentdatabasens användningsfall:
Dokumentdatabaser:
Key-value Stores lagrar data som enkla par med nyckel och värde. De erbjuder snabb och effektiv datahämtning baserad på unika nycklar, och används ofta för caching och sessionshantering på webbplatser och dataspel.
Key-value Stores fördelar:
Key-value Stores nackdelar:
Key-value Stores användningsfall:
Key-value Stores:
Wide-value Stores lagrar data i tabeller, rader och dynamiska kolumner, vilket ger dem stor skalbarhet och effektivietet för hantering av stora datamängder. De dynamiska kolumnerna ger dem flexibilitet för att kunna hantera förändringar i datats strukturer. De är även konstruerade för att stora mängder data som distribueras över många servrar.
Wide-value Stores fördelar:
Wide-value Stores nackdelar:
Wide-value Stores användningsfall:
Wide-value Stores:
Vektordatabasen lagrar data i vektorer, vilket är matematiska representioner av data med många dimensioner, där varje dimension korresponderar med en viss egenskap hos datat. Man kan lagra alla typer av data, inklusive ord, dokument, bilder, ljud och filmer som vektorer.
Vektordatabasens fördelar:
Vektordatabasens nackdelar:
Vektordatabasens användningsfall:
Vektordatabaser:
Den hierarkiska databasen lagrar data i en hierarkisk trädliknande struktur med förälder-barn (parent-child) relationer. Varje post har en enda förälder och kan ha flera barn. Passar data med klar hierarisk karaktär som organisationsschema eller filsystem. De var mer vanliga förr, men de används fortfarande i mainframes och inom vissa branscher.
Den hierarkiska databasens fördelar:
Den hierarkiska databasens nackdelar:
Den hierarkiska databasens användningsfall:
Hierarkiska databaser:
Databastyp | Datakomplexitet | Skalbarhet | Flexibilitet | Frågekomplexitet | Användningsfall |
---|---|---|---|---|---|
Relationsdatabaser (SQL) | Strukturerat data | Skalbara | Begränsad | Komplexa, ACID-stöd | Affärssystem, Finans, CRM |
Nätverksdatabaser | Många-till-många | Begränsad | Begränsad | Komplexa relationer | Sociala medier, telekom, flygbokning |
Grafdatabaser | Komplexa relationer | Skalbara | Flexibla | Komplexa relationsfrågor | Sociala nätverk, Rekommendationer |
Objektdatabaser | Komplex data | Skalbara | Flexibla | Komplexa | Objektorientering, multimedia |
Dokumentdatabaser | Halvstrukturerad | Skalbara | Flexibla | Komplexa | Sociala medier, E-handel |
Key-Value Stores | Enkla data | Högt skalbara | Begränsad | Enkel snabb läsning | Caching, sessionshantering |
Wide-Value Stores | Strukturerat data | Skalbara | Flexibla kolumner | Komplexa | Big Data, Tidsserier |
Vektordatabaser | Komplex data | Skalbara | Flexibla | Komplexa matriser | Maskininlärning, Generativ AI |
Hierarkiska databaser | Hierarkiskt data | Begränsad | Begränsad | Begränsade relationer | Organisationsschema, filsystem |
källa: sv.wikipedia.org/wiki/Databas mfl
Sidan skapad 10 maj 2007 (som RDBMS.html)
Uppdaterat 2 december 2024 (som egen sida, med olika databastyper)
Sammanställt av Christer Tärning.