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 den kontexten syftar en "databas" på 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 organisera informationen och se till att den är tillgänglig. För att underlätta dessa uppgifter kan du använda ett databashanteringssystem (DBMS), som ger tillgång till olika databashanteringsverktyg.
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 väldigt strukturerade och använder ett programmeringsspråk som kallas SQL (Structured Query Language). Icke-relationsdatabaser är mycket olika sinsemellan 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 med data som är ordnade i rader och kolumner – raderna innehåller entiteter och kolumnerna innehåller entitetsattribut. Breda tabeller, eller breda kolumnarkiv, använder sparse-kolumner med tomma attribut, vilket avsevärt ökar antalet kolumner som kan finnas i tabellen. Eftersom vissa celler är tomma är breda tabeller ett exempel på en icke-relationell databasstruktur.
I en linjär struktur är elementen ordnade i följd
Matris
Länkad lista
Binärt träd
I en trädstruktur är databaselementen ordnade i en hierarkisk databas med noder som har en överordnad/underordnad-relation som utgår från en rotnod.
Diagram
I en diagramstruktur är databaselementen ordnade 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 slags information om en entitet i ett enskilt objekt (dokumentet), som är fristående från andra objekt. Objekt behöver inte mappas i förhållande till varandra och ett 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 som 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, Redis och 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 gör det också lättare att hantera data som används i flera program, eller data som finns på flera platser.
Olika databashanteringssystem erbjuder organisation, skalbarhet och tillämpning på olika nivåer. 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 lokalt och i molnet?
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 hybrid molnbaserad 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 ekonomiska rapporter 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 både egenutvecklade motorer och motorer med öppen källkod.
Utforska databaser i Azure och hitta den du behöver
Läs mer om att migrera databaser till Azure
Skapa en hanterad molndatabas med ditt kostnadsfria Azure-konto
Bekanta dig med Azure SQL-familjen med databaser
Skapa en enhetlig 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 databassäkerhet.
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.
Hantera hög trafik effektivt med Azure Cache for Redis
Azure Cache for Redis hjälper dig att blixtsnabbt hantera tusentals samtidiga användare genom att implementera ett lager för snabb cachelagring i appens arkitektur.
Börja skapa med Azure
Prova Azures tjänster för molnbaserad databehandling kostnadsfritt i upp till 30 dagar, eller sätt igång med användningsbaserad betalning. Det finns inga förhandsåtaganden – avsluta när du vill.