Hvad er en database? Definition, databasemodeller og eksempler

Lær hvad en database er: klar definition, forklaring af databasemodeller (inkl. relationelle) og konkrete eksempler for udviklere, IT‑ansvarlige og beslutningstagere.

Forfatter: Leandro Alegsa

En database er et system til opbevaring og håndtering af data (enhver form for information). Databaser gør det muligt både at gemme store mængder information og hurtigt at finde, opdatere eller analysere den.

En databasemotor kan sortere, ændre eller levere oplysningerne i databasen. Selve oplysningerne kan lagres på mange forskellige måder; før digitale computere blev der brugt kortmapper, trykte bøger og andre metoder. Nu opbevares de fleste data på computerfiler, men for brugeren præsenteres data typisk gennem et softwaresystem, som sikrer struktur, søgning, sikkerhed og samtidighed.

Et databasesystem er et computerprogram til forvaltning af elektroniske databaser. Et meget simpelt eksempel på et databasesystem er en elektronisk adressebog, hvor du kan søge efter navne, ændre telefonnumre og tilføje nye kontakter.

Dataene i en database er organiseret på en eller anden måde. Før der fandtes computere, blev medarbejderdata ofte opbevaret i arkivskabe. Der var normalt ét kort for hver medarbejder. På kortet kunne man finde oplysninger som f.eks. medarbejderens fødselsdato eller navn. En database har også sådanne "kort". For brugeren vil kortet se ud på samme måde som i gamle dage, blot vil det denne gang være på skærmen. For computeren kan oplysningerne på kortet gemmes på forskellige måder. Hver af disse måder er kendt som en databasemodel. Den mest almindeligt anvendte databasemodel kaldes den relationelle databasemodel. Den bruger relationer og sæt til at lagre dataene. Almindelige brugere, der taler om databasemodellen, vil ikke tale om relationer; i stedet vil de tale om databasetabeller.

Databasemodeller — oversigt

Der findes flere forskellige databasemodeller, som hver især er tilpasset forskellige behov og typer af data:

  • Relationel (RDBMS): Data organiseres i tabeller med rækker og kolonner. Bruges sammen med SQL til forespørgsler, og understøtter typisk transaktioner og ACID-egenskaber. Velegnet til strukturerede data og mange forretningsapplikationer.
  • Dokumentorienteret: Lagrer data som dokumenter (fx JSON eller BSON). Passer godt til semistrukturerede data og applikationer, hvor skemaet kan variere (fx MongoDB).
  • Nøgle‑værdi: Simpel model hvor hvert element gemmes under en nøgle. Meget hurtig til opslag og ofte brugt til caching og sessionstore (fx Redis).
  • Kolonneorienteret: Data gemmes efter kolonner i stedet for rækker. God til analytiske forespørgsler og store datamængder (fx Cassandra, HBase).
  • Grafdatabaser: Specialiseret til netværk af relationer — noder og kanter. Effektiv ved komplekse relationelle forespørgsler som sociale netværk eller afhængighedsanalyser (fx Neo4j).
  • Objektorienteret: Lagrer objekter direkte, ofte brugt i systemer hvor objektmodellen skal bevares uden meget impedance mismatch.
  • Hierarkisk og netværksmodel: Ældre modeller, hvor data organiseres i træer eller netværk; nogle specialiserede systemer bruger stadig disse principper.

Vigtige begreber

  • DBMS (Database Management System): Softwaren, der styrer oprettelse, adgang, sikkerhed, backup og samtidighed. Kendte eksempler: MySQL, PostgreSQL, Oracle Database, Microsoft SQL Server, MongoDB.
  • SQL: Structured Query Language — standard sprog til at udføre forespørgsler i relationelle databaser.
  • Transaktioner: Ensurerer, at en række operationer enten fuldføres helt eller rulles tilbage (ACID: Atomicity, Consistency, Isolation, Durability).
  • Index: Datastrukturer, der forbedrer søgehastigheden, men øger omkostningerne ved indlæsning og opdatering.
  • Normalisering: Proces til at organisere data for at reducere redundans; modsat kan denormalisering bruges for hastighed i læseintensive systemer.
  • Replikation og sharding: Replikation kopierer data til flere noder for høj tilgængelighed; sharding deler data op over flere servere for skalerbarhed.
  • Sikkerhed og backup: Adgangskontrol, kryptering og løbende backups er nødvendigt for at beskytte data mod tab og uautoriseret adgang.

ACID vs. NoSQL / BASE

Traditionelle relationelle systemer prioriterer ofte ACID-egenskaber for dataintegritet. Mange moderne NoSQL-databaser vælger i stedet en mere fleksibel tilgang (ofte kaldet BASE: Basically Available, Soft state, Eventual consistency) for at opnå bedre skalerbarhed og performance i distribuerede miljøer.

Praktiske anvendelser og eksempler

  • Web‑ og mobilapplikationer: relationelle databaser (MySQL, PostgreSQL) eller dokumentdatabaser (MongoDB).
  • Real‑time caching og køer: nøgle‑værdi lagre som Redis eller Memcached.
  • Større analytiske workloads og datalakes: kolonneorienterede databaser og big data‑platforme (Cassandra, Hadoop-økosystemet).
  • Netværks- og anbefalingssystemer: grafdatabaser (Neo4j).
  • Backup, replikering og cloud‑tilbud: administrerede databaser i skyen (f.eks. Amazon RDS, Azure SQL, Google Cloud SQL) giver enkel drift og automatiske backups.

Hvornår vælger man hvilken model?

Valget afhænger af kravene:

  • Har du velstrukturerede data og behov for transaktionel integritet? — relationel database.
  • Skemaet ændrer sig ofte eller er fleksibelt? — dokumentdatabase.
  • Behøver du ekstremt hurtige opslag? — nøgle‑værdi lagre.
  • Arbejder du med tætte relationer mellem objekter? — grafdatabase.
  • Skal systemet skal kunne skalere horisontalt til store mængder data? — overvej NoSQL-løsninger med sharding eller kolonneorienterede databaser.

Afsluttende bemærkninger

En database er mere end blot en fil med data — det er et system der organiserer, beskytter og giver adgang til information på effektive måder. Når du vælger en databaseløsning, skal du vurdere krav til integritet, ydeevne, skalerbarhed og driftsomkostninger. Kombinationer af databaser (polyglot persistence) er også almindelige: bruge den rigtige type database til hver opgave i samme system.




 

Anvendelse i databasesystemer

Databasesystemer anvendes bl.a. til følgende formål:

  • De lagrer data og giver mulighed for at søge efter specifikke poster i et givet datasæt.
  • De gemmer særlige oplysninger, der bruges til at administrere dataene. Disse oplysninger kaldes metadata og vises ikke for alle de personer, der ser på dataene.
  • De kan løse tilfælde, hvor mange brugere ønsker at få adgang til (og eventuelt ændre) de samme data.
  • De administrerer adgangsrettigheder (hvem har lov til at se dataene, hvem kan ændre dem)
  • Når der er mange brugere, der stiller spørgsmål til databasen, skal spørgsmålene besvares hurtigere. På denne måde kan den sidste person, der stiller et spørgsmål, få et svar inden for en rimelig tid.
  • Visse attributter er vigtigere end andre og kan bruges til at finde andre data. Dette kaldes indeksering. Et indeks indeholder alle de vigtige data og kan bruges til at finde andre data.
  • De sikrer, at dataene altid har en sammenhæng. Der kan tilføjes en masse forskellige regler, der kan fortælle databasesystemet, om dataene giver mening. En af reglerne kan sige, at november har 30 dage. Det betyder, at hvis nogen ønsker at indtaste 31. november som dato, vil denne ændring blive afvist.

 

Ændring af data

I databaser ændres nogle data lejlighedsvis. Der kan opstå problemer, når data ændres; der kan f.eks. være opstået en fejl. Fejlen kan gøre dataene ubrugelige. Databasesystemet ser på dataene for at sikre, at de opfylder visse krav. Det gør det ved hjælp af en transaktion. Der er to tidspunkter i databasen, nemlig tiden før dataene blev ændret, og tiden efter dataene blev ændret. Hvis der går noget galt, når dataene ændres, sætter databasesystemet simpelthen databasen tilbage til den tilstand, der var før ændringen fandt sted. Dette kaldes en rollback. Når alle ændringerne er gennemført med succes, bliver de bekræftet. Det betyder, at dataene giver mening igen; commit-ændringer kan ikke længere fortrydes.

For at kunne gøre dette følger databaser ACID-princippet:

  • Alle. Enten er alle opgaver i et givet sæt (kaldet en transaktion) udført, eller også er ingen af dem udført. Dette er kendt som atomicitet.
  • Komplet. Dataene i databasen giver altid mening. Der er ingen halvfærdige (ugyldige) data. Dette er kendt som konsistens.
  • Uafhængig. Hvis mange personer arbejder med de samme data, vil de ikke se (eller påvirke) hinanden. De har hver især deres egen opfattelse af databasen, som er uafhængig af de andre. Dette er kendt som Isolation.
  • Færdig. Transaktioner skal bekræftes, når de er færdige. Når de først er begået, kan de ikke gøres om. Dette er kendt som holdbarhed.

 

Database model

Der er forskellige måder at repræsentere data på.

  • Enkle filer (såkaldte flade filer): Dette er den mest enkle form for databasesystem. Alle data gemmes i en fil i almindelig tekst. Hver oplysning kan adskilles med en ny linje eller et komma osv.
  • Hierarkisk model: Dataene er organiseret som en træstruktur. De interessante data befinder sig i træets blade. Relationerne mellem dataene er af en sådan art, at nogle data er direkte afhængige af andre data.
  • Netværksmodel: Brug records og sæt til at gemme data. Svarer til hierarkisk model, men har en meget mere kompleks struktur.
  • Relationel model: Denne model anvender mængdelogik og prædikatlogik. Den er meget anvendt. Data ser ud som om de er organiseret i tabeller. Disse tabeller kan så sammenføjes, så der kan vælges enkle forespørgsler ud fra dem.
  • Objektorienteret model: Dataene repræsenteres i form af objekter, som det er tilfældet i objektorienteret programmering. De kan interagere direkte med det anvendte OOP-sprog, da de begge har den samme repræsentation af dataene internt.
  • Objekt-relationel model: Dette er en hybrid af den objektorienterede model og den relationelle model.
  • NoSQL-model: Dette er en ny form for databasemodel, som i stigende grad anvendes i industrien i big data- og realtidswebapplikationer. Dataene i denne model lagres som nøgle-værdipar uden noget strengt hierarki som i andre modeller. NoSQL-systemer kaldes også "Not only SQL", fordi de ikke tillader brug af forespørgselssprog, der ligner Structured Query Language.

 

Måder at organisere dataene på

Ligesom i virkeligheden kan de samme data ses fra forskellige perspektiver, og de kan organiseres på forskellige måder. Der er forskellige ting at tage hensyn til, når man organiserer dataene:

  • Hver enkelt oplysning skal gemmes så få gange som muligt. Forestil dig, at en ugift kvinde er opført i amtets registre, statens motorkøretøjsafdeling, den føderale socialsikringsafdeling og den internationale pasafdeling. Hvis hun gifter sig og beslutter sig for at ændre sit navn, skal alle disse afdelinger underrettes. Hvis alle afdelingerne var forbundet, og hendes navn kun var gemt ét sted, ville det være nemt at opdatere det.
  • Hvis dataene er gemt i flere forskellige databaser, kan de modsige sig selv.
  • Dette problem gør det langsommere at finde data. Hvis der er mange data, vil dette problem med at lagre et enkelt datastykke mange steder optage meget plads. I vores eksempel var der fire databaser for én person. Det vil være otte ændringer, hvis en anden person har nøjagtig samme problem.
  • Hvis du har dette problem, er der udviklet en metode, der hedder databasernormalisering, for at løse det. I øjeblikket findes der seks normalformer. Det er metoder til at gøre nogle databaser hurtigere og få dataene til at fylde mindre.

 

Relaterede sider

 

Spørgsmål og svar

Q: Hvad er en database?


A: En database er et system til opbevaring og håndtering af data (enhver form for information). Den kan bruges til at sortere, ændre eller betjene de oplysninger, der er gemt i den.

Spørgsmål: Hvordan lagrede folk data før digitale computere?


Svar: Før digitale computere blev der brugt kortmapper, trykte bøger og andre metoder til at lagre data.

Spørgsmål: Hvad er et databasesystem?


Svar: Et databasesystem er et computerprogram til forvaltning af elektroniske databaser. Det kan bruges til at organisere dataene på en eller anden måde.

Spørgsmål: Hvordan ser et "kort" ud i et gammeldags arkivskab?


A: I et gammeldags arkivskab var der normalt et kort til hver medarbejder med oplysninger som f.eks. fødselsdato eller navn på.

Spørgsmål: Hvordan ser den moderne pendant til dette "kort" ud?


A: Den moderne pendant til dette "kort" vises på skærmen i stedet for i fysisk form.

Spørgsmål: Hvad er en databasemodel?


A: En databasemodel henviser til de forskellige måder, hvorpå oplysningerne på "kortet" kan lagres af computeren. Den mest almindeligt anvendte model kaldes den relationelle databasemodel, som anvender relationer og mængder til at lagre data.

Spørgsmål: Hvordan refererer normale brugere til disse modeller, når de taler om dem? A: Almindelige brugere vil typisk omtale disse modeller som "databasetabeller" i stedet for at bruge tekniske udtryk som relationer eller mængder, når de taler om dem.


Søge
AlegsaOnline.com - 2020 / 2025 - License CC3