Hoppa över navigering

Vad är databaser?

Definitioner, typer och exempel på databaser

Vad är databaser?

En grundläggande definition av en databas är att det är en samling information där data är relaterade till varandra. När du skriver en inköpslista på ett papper skapar du en liten analog databas. Men vad är en databas inom datavetenskap? I det sammanhanget är definitionen av ”databas” en samling information som lagras som data i ett datorsystem, till exempel information om lagret i din lokala livsmedelsbutik.

Vad används databaser till?

Databaser används för att lagra och organisera data så att det blir enklare att hantera och komma åt dem. I takt med att samlingen med data växer blir den också mer komplex, och det blir svårare att skydda och hålla dessa data organiserade och tillgängliga. Då har du hjälp av ett databashanteringssystem (DBMS), som innehåller hanteringsverktyg.

Vad är data?

Data avser all information som samlas in och lagras om en enskild person, plats, sak eller objekt – en så kallad entitet – samt attributen för den entiteten.

Om du till exempel samlar in och lagrar information om lokala restauranger är varje restaurang en entitet och dess namn, adress och öppettider är attribut för den entiteten. All information som du samlar in och lagrar om dina favoritrestauranger är data.

Typer av databaser

Databaser kan grovt delas in i relationsdatabaser och icke-relationsdatabaser. Relationsdatabaser är mycket strukturerade och använder ett programmeringsspråk som kallas SQL (Structured Query Language). Icke-relationsdatabaser är mycket olika och kan ha flera olika datastrukturer. Eftersom många icke-relationsdatabaser inte använder SQL kallas de ofta NoSQL-databaser.

Typer av datastrukturer

Tabellstrukturer är relationsdatabasstrukturer som ordnar data i rader och kolumner – rader innehåller entiteter medan kolumner innehåller entitetsattribut. Breda tabeller, eller breda kolumnarkiv, använder null-optimerade kolumner med tomma attribut för att kraftigt öka det totala antalet kolumner som du kan ha i tabellen. Eftersom vissa utrymmen är tomma är breda tabeller ett exempel på en icke-relationell databasstruktur.

I en linjär struktur ordnas element i följd.

Matris

Länkad lista

Binärt träd

I en trädstruktur är elementen ordnade i en hierarkisk databas med noder som har en överordnad/underordnad-relation som härstammar från en rotnod.

Graph

I en diagramstruktur ordnas element i ett icke-hierarkiskt nätverk med noder som har komplexa relationer till varandra.

Hashtabell

I en hashbaserad struktur mappas nycklar till värden med hjälp av hashfunktioner som associerar relaterade data genom att tilldela index till hashtabeller.

Dokumentorienterade databaser

I en dokumentorienterad databas ordnas olika information om en entitet i ett enda objekt (dokumentet), som är fristående från andra objekt. Objekt behöver inte mappas i förhållande till varandra och en enskilt objekt kan redigeras utan att det påverkar andra objekt.

Relationsdatabaser

I en relationsdatabas (den vanligaste typen av databas) är data ordnade i tabeller som innehåller information om varje entitet och representerar fördefinierade kategorier i rader och kolumner. Dessa strukturerade data går att komma åt på ett effektivt och flexibelt sätt.

SQL Server, Azure SQL, MySQL, PostgreSQL och MariaDB är exempel på relationsdatabaser.

Icke-relationsdatabaser

Icke-relationsdatabaser lagrar ostrukturerade eller halvstrukturerade data. De använder inte tabeller med kolumner och rader som relationsdatabaser. I stället använder de en lagringsmodell som är optimerad för de specifika kraven för den typ av data som lagras. Med icke-relationsdatabaser kan du snabbt komma åt, uppdatera och analysera stora uppsättningar distribuerade data.

MongoDB, Azure Cosmos DB, DocumentDB, Cassandra, Couchbase, HBase, Redisoch Neo4j är exempel på icke-relationsdatabaser.

Vissa icke-relationsdatabaser kallas för NoSQL-databaser. NoSQL refererar till datalager som inte använder någon SQL eller som inte använder endast SQL för frågor. NoSQL-databaser använder i stället andra programmeringsspråk och konstruktioner för att fråga efter data. Många NoSQL-databaser stöder SQL-kompatibla frågor, men kör vanligtvis SQL-frågor på ett annorlunda sätt än en traditionell relationsdatabas.

En objektdatabas är en typ av icke-relationsdatabas som använder objektorienterad programmering. Objekt kodas med ett tillstånd som lagras i ett fält eller en variabel och ett beteende som visas via en metod eller funktion. Objekt kan lagras permanent i beständig lagring och läsas och mappas direkt utan ett API eller verktyg, vilket ger snabbare åtkomst till data och bättre prestanda. Objektdatabaser är dock inte lika populära som andra databastyper och kan vara svåra att stödja.

Minnesinterna databaser och cacheminnen

Alla data i en minnesintern databas lagras i en dators RAM-minne. När du kör frågor mot eller uppdaterar den här typen av databas kommer du åt huvudminnet direkt. Ingen disk berörs. Data läses in snabbt eftersom det går mycket snabbare att komma åt huvudminnet (som ligger nära processorn på moderkortet) än att komma åt en disk.

Minnesinterna databaser används ofta för att lagra kopior av information som används ofta, till exempel information om priser och lager. Detta kallas för cachelagring. När du cachelagrar data lagrar du en kopia av data på en tillfällig plats så att de kan läsas in snabbare nästa gång de begärs. Läs mer om cachelagring.

Databasexempel

Många är osäkra på vad en databas egentligen är. Ändå interagerar de flesta av oss med databaser varje dag. Här följer några vanliga exempel på relationsdatabaser, NoSQL-databaser och minnesbaserade databaser:

Ekonomiska transaktioner

Banker använder databaser för att hålla reda på kundtransaktioner. Det kan vara allt från saldofrågor till överföringar mellan konton. Dessa transaktioner måste ske nästan omedelbart, och data från stora mängder transaktioner måste alltid vara uppdaterade. För dessa ändamål använder banker system för transaktionsbearbetning online som är byggda med relationsdatabaser, som kan hantera ett stort antal kunder, frekventa dataändringar från transaktioner och snabba svarstider.

Näthandelskataloger

Om du har en näthandelswebbplats innehåller din katalog enskilda produkter som var och en har olika attribut. I en dokumentorienterad databas, som är ett exempel på en icke-relationell databas, används enskilda dokument för att beskriva alla attribut för en enskild produkt. Du kan ändra attributen i dokumentet utan att det påverkar någon av dina andra produkter. Minnesbaserade databaser används ofta för att cachelagra näthandelsdata som används ofta, till exempel information om lager och priser, för att kunna hämta data snabbare och minska belastningen på databasen.

Sociala nätverk

När du går med i ett socialt nätverk läggs din information till i en icke-relationell databas för alla som använder nätverket. När du interagerar med andra i nätverket blir du en del i ett socialt diagram. Det gör att du kan se en filtrerad lista över dina vänner eller arbetskontakter och hitta nya personer som dina vänner och kontakter känner.

Anpassade resultat

Icke-relationsdatabaser används för att personanpassa innehåll, vilket har blivit så vanligt att du kanske inte ens märker det. Om du bokar en flygresa på nätet visas även alternativ för att boka hotell och hyrbil. Webbplatsens databas innehåller en mängd ostrukturerad information, till exempel flyginformation, resepreferenser, tidigare bil- eller hotellbokningar, och informationen används för att ge dig personliga förslag så att du kan spara tid, kraft och pengar. Minnesbaserade databaser används på liknande sätt som ett sessionslager för att effektivt lagra tillfälliga användardata, till exempel sökinställningar eller kundvagnen, under tiden programmet används.

Företagsanalys

När en organisation vill utvinna kunskaper från egna data kan relationsdatabaser vara till hjälp vid hantering av analyser. En IT-supportavdelning kan till exempel spåra kundproblem i olika dimensioner, till exempel problemtyp, tiden det tar att lösa problemet och kundnöjdhet. I en relationsdatabas med en tabellstruktur ordnas kundproblemdata med bara två dimensioner åt gången, men med ett OLAP-system kan supportavdelningen se mer än en tabell åt gången och använda flerdimensionella analyser för att snabbt bearbeta stora mängder data.

Databashanteringssystem

Databasadministratörer använder en databashanterare (DBMS) för att kontrollera data, särskilt när de arbetar med stordata. Stordata avser stora volymer strukturerade och ostrukturerade data som ofta tas emot av systemet i realtid eller nästan i realtid. Ett databashanteringssystem hjälper också till att hantera data som används i flera program, eller data som finns på flera platser.

Olika databashanteringssystem erbjuder olika nivåer av organisation, skalbarhet och applikation. Vilket databashanteringssystem du ska använda beror inte bara på vilken typ av data du vill ordna och hur du vill komma åt dem, utan även på vilken typ av arkitektur databasen har och hur du tänker hantera skalning.

Lagrar du dina data lokalt, i molnet, eller både och?

I en lokal databas lagras data lokalt på privat maskinvara (det kallas ofta för ett privat moln). För att lägga till datakapacitet måste databasadministratörer antingen se till att servrarna på plats har tillräckligt med tillgängligt utrymme eller skapa mer utrymme genom att utöka infrastrukturen med ny maskinvara.

I en molnbaserad databas finns strukturerade eller ostrukturerade data på en privat, offentlig eller hybridbaserad databehandlingsplattform (dvs. en plattform som kombinerar privat och offentlig molnlagring). Eftersom molndatabaser är utformade för en virtualiserad miljö har de både hög skalbarhet och tillgänglighet. De bidrar också till att sänka kostnaderna eftersom du inte behöver köpa lika mycket maskinvara och bara betalar för den lagring som du använder.

Är din databasarkitektur centraliserad, distribuerad eller federerad?

I en centraliserad databas finns alla data i ett enda system, på ett och samma ställe. Systemet fungerar som åtkomstpunkt för alla användare.

En distribuerad databas kan omfatta både relationsdatabaser och icke-relationsdatabaser. I distribuerade databaser lagras data på flera fysiska platser, antingen på flera lokala datorer eller i ett nätverk med sammankopplade datorer.

I en federerad databas slås flera olika databaser som körs på oberoende servrar samman till ett enda stort objekt. En blockkedja är en typ av federerad databas som används för säker hantering av finansiella redovisningar och andra transaktionsposter.

Kommer du att växa med dina data genom att skala upp eller skala ut?

En uppskalning (eller nedskalning) (även kallad ”vertikal skalning”) innebär att du lägger till resurser, till exempel minne eller kraftfullare processorer, till en befintlig server.

En utskalning (eller inskalning) (även kallad ”horisontell skalning”) innebär att du lägger till fler datorer i din resurspool.

Vid en horisontell skalning (inte vertikal) förlängs livscykeln för befintlig maskinvara så att du kan uppgradera utan att vara låst till en specifik leverantör, sänka kostnaderna och skapa långsiktig flexibilitet.

Azure-databaser

Förenkla dina dataåtgärder med fullständigt hanterade databaser som automatiserar skalbarhet, tillgänglighet och säkerhet. Välj bland relationsdatabaser, NoSQL-databaser och minnesinterna databaser som omfattar egenutvecklade motorer samt motorer med öppen källkod.

Bekanta dig med Azure SQL-familjen med databaser

Förena din SQL-portfölj utan att offra kompatibilitet. Migrera, modernisera och distribuera program på ditt sätt, från nätverksgränsen till molnet, med hjälp av välbekant SQL Server-teknik.

Skala tryggt med Azure Database for PostgreSQL

Azure Database for PostgreSQL hjälper dig att snabbt och tryggt skala din arbetsbelastning med hög tillgänglighet, AI-driven prestandaoptimering och avancerad säkerhet.

Läs mer om Azure PostgreSQL

Skapa högpresterande appar med Azure Cosmos DB

Azure Cosmos DB är en fullständigt hanterad NoSQL-databas med öppna API:er och garanterad hastighet i valfri skala.

Läs mer om Azure Cosmos DB

Hantera hög trafik effektivt med Azure Cache for Redis

Azure Cache for Redis hjälper dig att hantera tusentals samtidiga användare med blixtsnabb hastighet genom att lägga till ett snabbt cachelagringslager i appens arkitektur.

Mer information om Azure Cache for Redis
Kan vi hjälpa dig?