Vad är en databas? Definition, databasmotorer och modeller
Lär dig vad en databas är — definition, databasmotorer, relations- och andra databasmodeller med tydliga exempel och praktiska tips.
En databas är ett system för att lagra och hantera data (vilken typ av information som helst). En databas kan innehålla allt från en enkel adresslista till stora mängder affärsdata, sensordata eller innehåll för webbplatser och appar.
En databasmotor kan sortera, ändra eller tillhandahålla informationen i databasen. Själva informationen kan lagras på många olika sätt; före digitala datorer användes kortfiler, tryckta böcker och andra metoder. Nu lagras de flesta uppgifter i datafiler. Databasmotorn (eller DBMS, Database Management System) är programvaran som ansvarar för att spara, hämta, uppdatera och skydda dessa filer.
Ett databassystem är ett datorprogram för hantering av elektroniska databaser. Ett mycket enkelt exempel på ett databassystem är en elektronisk adressbok. Databassystem kan vara fristående program (t.ex. SQLite) eller klient–server-system (t.ex. MySQL, PostgreSQL, Oracle).
Uppgifterna i en databas är organiserade på något sätt. Innan det fanns datorer förvarades uppgifter om anställda ofta i arkivskåp. Det fanns vanligtvis ett kort för varje anställd. På kortet kunde man hitta information som t.ex. den anställdes födelsedatum eller namn. En databas har också sådana "kort". För användaren kommer kortet att se likadant ut som förr i tiden, fast den här gången kommer det att finnas på skärmen. För datorn kan informationen på kortet lagras på olika sätt. Var och en av dessa metoder kallas för en databasmodell. Den vanligaste databasmodellen kallas relationsdatabasmodellen. Den använder relationer och uppsättningar för att lagra data. Normala användare som talar om databasmodellen kommer inte att tala om relationer, utan i stället om databastabeller.
Bildgalleri
5 BilderVad gör en databasmotor och ett databassystem?
- Lagring: organiserar data på skiva eller i minne.
- Frågor och hämtning: tillåter att data söks upp och hämtas genom språk som SQL eller API:er.
- Uppdateringar: hanterar insättning, ändring och borttagning av poster.
- Transaktioner och integritet: säkerställer att operationer sker helt eller inte alls (ACID-egenskaper i relationsdatabaser).
- Indexering: skapar index för att snabba upp sökningar.
- Åtkomstkontroll och säkerhet: hanterar användare, rättigheter och kryptering.
- Säkerhetskopiering och återställning: ger mekanismer för backup och återställning efter fel.
- Replikering och skalbarhet: möjliggör kopiering och distribution av data för hög tillgänglighet och bättre prestanda.
Vanliga databasmodeller
Olika modeller passar olika behov. Här är några vanliga:
- Relationsdatabas (RDBMS): data organiseras i tabeller med rader och kolumner. Nyckelbegrepp är primärnyckel, främmande nyckel, normalisering och SQL. Exempel: MySQL, PostgreSQL, SQLite, Oracle.
- Dokumentdatabas: lagrar dokument (ofta JSON-liknande strukturer). Bra för flexibla scheman. Exempel: MongoDB, CouchDB.
- Nyckel–värde (Key–Value): enkel modell för mycket snabba läs-/skrivoperationer. Exempel: Redis, DynamoDB.
- Kolumnfamiljsdatabas: optimerad för stora mängder data och snabba aggregeringar över kolumner. Exempel: Cassandra, HBase.
- Grafdatabas: modellerar relationer mellan entiteter som noder och kanter. Bra för sociala nätverk, rekommendationer och grafalgoritmer. Exempel: Neo4j, JanusGraph.
- Hierarkisk och nätverksmodell: äldre modeller där data organiseras i träd eller nätverk; används fortfarande i vissa specialfall.
Nyckelbegrepp i relationsdatabaser
- Tabeller: motsvarar entitetstyper (t.ex. kunder, produkter).
- Rader (poster): enskilda objekt i tabellen.
- Kolumner: attribut eller fält som beskriver raderna.
- Primärnyckel: unik identifierare för en rad.
- Främmande nyckel: referens till primärnyckeln i en annan tabell för att modellera relationer.
- Join: operation som kombinerar rader från flera tabeller baserat på relationer.
- Normalisering: process för att minska redundans och förbättra dataintegritet.
När ska man välja vilken typ av databas?
- Relationsdatabas: när datamodellen är väldefinierad, integritet och transaktioner är viktiga.
- Dokumentdatabas: när schemat är flexibelt eller när objekt naturligt representeras som dokument.
- Key–Value: för cachning eller enkla, snabba läs/skrivbehov.
- Grafdatabas: för komplexa relationer och grafberäkningar.
- Kolumnfamilj: vid mycket stora datamängder med behov av snabb aggregering per kolumn.
Praktiska exempel och populära system
Några välkända databashanterare är MySQL, PostgreSQL, SQLite, Oracle Database, Microsoft SQL Server (relationsdatabaser), MongoDB (dokument), Redis (key–value), Cassandra (kolumnfamilj) och Neo4j (graf). Valet påverkas av krav på skalbarhet, konsistens, prestanda och kostnad.
Säkerhet, prestanda och drift
Att drifta databaser innebär planering för:
- Säkerhetskopior och återställning (backup/restore).
- Övervakning av prestanda (latens, genomströmning).
- Indexstrategier och optimering av frågor.
- Åtkomstkontroll och kryptering (av data i vila och under överföring).
- Replikering och failover för hög tillgänglighet.
Sammanfattning
En databas är ett organiserat sätt att lagra information, medan en databasmotor/databassystem är programvaran som hanterar data, sökningar, uppdateringar och säkerhet. Olika databasmodeller (relations-, dokument-, key–value, kolumnfamilj, graf osv.) passar olika användningsfall. Vid val av databas bör man väga faktorer som datamodell, transaktionskrav, skalbarhet och driftkostnad.
Användning av databassystem
Databassystem används bland annat för följande ändamål:
- De lagrar data och ger möjligheter (verktyg) att söka efter specifika poster i en viss uppsättning data.
- De lagrar särskild information som används för att hantera data. Denna information kallas metadata och visas inte för alla som tittar på uppgifterna.
- De kan lösa fall där många användare vill komma åt (och eventuellt ändra) samma uppgifter.
- De hanterar åtkomsträttigheter (vem får se uppgifterna, vem kan ändra dem).
- När många användare ställer frågor till databasen måste frågorna besvaras snabbare. På så sätt kan den sista personen som ställer en fråga få ett svar inom rimlig tid.
- Vissa attribut är viktigare än andra och kan användas för att hitta andra uppgifter. Detta kallas indexering. Ett index innehåller alla viktiga uppgifter och kan användas för att hitta andra uppgifter.
- De säkerställer att uppgifterna alltid har ett sammanhang. Det finns många olika regler som kan läggas till för att tala om för databassystemet om uppgifterna är meningsfulla. En av reglerna kan vara att november har 30 dagar. Detta innebär att om någon vill ange den 31 november som datum kommer denna ändring att avvisas.
Ändring av uppgifter
I databaser ändras vissa uppgifter ibland. Det kan uppstå problem när data ändras, till exempel kan ett fel ha uppstått. Felet kan göra uppgifterna oanvändbara. Databassystemet tittar på uppgifterna för att se till att de uppfyller vissa krav. Det gör det genom att använda en transaktion. Det finns två tidpunkter i databasen, tiden innan uppgifterna ändrades och tiden efter att uppgifterna ändrades. Om något går fel när data ändras sätter databassystemet helt enkelt tillbaka databasen till det tillstånd som rådde innan ändringen skedde. Detta kallas för en rollback. När alla ändringar har gjorts framgångsrikt bekräftas de. Detta innebär att uppgifterna blir meningsfulla igen; bekräftade ändringar kan inte längre göras ogjorda.
För att kunna göra detta följer databaser ACID-principen:
- Alla. Antingen är alla uppgifter i en given uppsättning (en transaktion) utförda eller så är ingen av dem utförd. Detta är känt som atomicitet.
- Komplett. Uppgifterna i databasen är alltid begripliga. Det finns inga halvfärdiga (ogiltiga) uppgifter. Detta kallas konsistens.
- Oberoende. Om många personer arbetar med samma data kommer de inte att se (eller påverka) varandra. Var och en av dem har sin egen vy av databasen, som är oberoende av de andra. Detta kallas isolering.
- Uppfyllt. Transaktioner måste bekräftas när de är klara. När de väl är bekräftade kan de inte göras ogjorda. Detta kallas för hållbarhet.
Databasmodell
Det finns olika sätt att representera data.
- Enkla filer (så kallade plattfiler): Detta är den enklaste formen av databassystem. Alla data lagras i en fil i klartext. Varje del av informationen kan separeras med en ny rad eller ett kommatecken osv.
- Hierarkisk modell: Uppgifterna är organiserade som en trädstruktur. De intressanta uppgifterna finns i trädets blad. Relationerna mellan dataposterna är sådana att vissa poster är direkt beroende av andra poster.
- Nätverksmodell: Använd poster och uppsättningar för att lagra data. Liknar den hierarkiska modellen, men har en mycket mer komplex struktur.
- Relationell modell: Den använder mängdteori och predikatlogik. Den används ofta. Data ser ut att vara organiserade i tabeller. Dessa tabeller kan sedan fogas samman så att enkla frågor kan väljas från dem.
- Objektorienterad modell: Data representeras i form av objekt som används i objektorienterad programmering. De kan interagera direkt med det OOP-språk som används, eftersom båda har samma representation av data internt.
- Objektrelationell modell: Detta är en blandning av den objektorienterade modellen och den relationella modellen.
- NoSQL-modell: Detta är en ny typ av databasmodell som används alltmer inom industrin för stora data och webbtillämpningar i realtid. Data i denna modell lagras som nyckel-värdepar utan någon strikt hierarki som i andra modeller. NoSQL-system kallas också för "Not only SQL" eftersom de inte tillåter att strukturerade frågespråk liknande frågespråk används.
Sätt att organisera uppgifterna
Precis som i verkligheten kan samma data betraktas ur olika perspektiv och organiseras på olika sätt. Det finns olika saker att ta hänsyn till när man organiserar data:
- Varje uppgift ska lagras så få gånger som möjligt. Tänk dig att en ogift kvinna finns i länsregistret, i delstatens motorfordonsregister, i det federala socialförsäkringsregistret och i det internationella passregistret. Om hon gifter sig och bestämmer sig för att byta namn måste alla dessa avdelningar underrättas. Om alla avdelningar är kopplade och hennes namn lagras på ett enda ställe är det enkelt att uppdatera.
- Om uppgifterna lagras i flera olika databaser kan de motsäga varandra.
- Detta problem gör att det går långsammare att hitta data. Om det finns mycket data tar detta problem med att lagra en data på många olika ställen mycket utrymme i anspråk. I vårt exempel fanns det fyra databaser för en person. Det blir åtta ändringar om en andra person har exakt samma problem.
- Om du har det här problemet har en metod som kallas databasnormalisering utvecklats för att lösa det. För närvarande finns det sex normalformer. Dessa är sätt att göra vissa databaser snabbare och få data att ta mindre plats.
Relaterade sidor
Frågor och svar
F: Vad är en databas?
S: En databas är ett system för att lagra och ta hand om data (vilken typ av information som helst). Den kan användas för att sortera, ändra eller betjäna den information som lagras i den.
F: Hur lagrade människor data före digitala datorer?
S: Före digitala datorer användes kortfiler, tryckta böcker och andra metoder för att lagra data.
F: Vad är ett databassystem?
S: Ett databassystem är ett datorprogram för hantering av elektroniska databaser. Det kan användas för att organisera data på något sätt.
F: Hur ser ett "kort" ut i ett gammaldags arkivskåp?
S: I ett gammaldags arkivskåp fanns det vanligtvis ett kort för varje anställd med information som födelsedatum eller namn.
F: Hur ser den moderna motsvarigheten till detta "kort" ut?
S: Den moderna motsvarigheten till detta "kort" visas på skärmen snarare än i fysisk form.
F: Vad är en databasmodell?
S: En databasmodell avser olika sätt på vilka informationen på "kortet" kan lagras av datorn. Den vanligaste modellen kallas relationsdatabasmodellen som använder relationer och uppsättningar för att lagra data.
F: Hur hänvisar vanliga användare till dessa modeller när de talar om dem? S: Vanliga användare hänvisar vanligtvis till dessa modeller som "databastabeller" snarare än att använda tekniska termer som relationer eller uppsättningar när de diskuterar dem.
Relaterade artiklar
Författare
AlegsaOnline.com Vad är en databas? Definition, databasmotorer och modeller Leandro Alegsa
URL: https://sv.alegsaonline.com/art/25650