|
Article on other languages:
|
Et database-system gør det muligt, at gemme en større mængde af information på en form, så informationen er maskinel omkostningslet at tilgå og opdatere. I modsætning til data, der er gemt i en fil kan flere programmer opdatere de samme data uden information tabes på grund af overskrivninger.
Krav til et databasesystemEt databasesystem skal stille følgende faciliteter til rådighed:
På engelsk kaldes disse krav om bestemte egenskaber for ACID-properties efter forbogstaverne i de engelske betegnelser atomicy, consistency, isolation og durability. Atomare transaktionerHvis en transaktion kun omfatter læsning, vil den altid kunne startes forfra. Resten af afsnittet handler om transaktioner, der omfatter skrivning til databasen. Der findes flere måder at implementere atomare transaktioner på, men det almindeligste er at bruge en "skriv-foran-log" (write ahead log). Denne log vil i det følgende blive omtalt som en transaktionslog. Først skrives en beskrivelse af ændringen i transaktionsloggen og derefter gennemføres ændringen i selve databasen. Når en transaktion er gennemført, markeres den som gennemført i loggen. Fejl håndteres forskelligt alt efter om det er fejl, der opdages af databasesystemet eller det er fejl, der opdages af det opdaterende program. Hvis fejl opdages af programmet, markeres transaktionen som fejlbehæftet, og alle opdateringer føres tilbage til udgangspunktet ved hjælp af oplysningerne i transaktionsloggen. Selvom databaseprogrammet finder en fejl, skal transaktionen så vidt muligt gennemføres. Hvis det er lykkedes at skrive transaktionen i loggen, gennemføres den fra oplysningerne her, ellers ikke. I visse tilfælde kan hensynet til korrekt isolation gøre, at en transaktion ikke kan gennemføres. I disse tilfælde bliver ændringerne ført tilbage, og det opdaterende program må forsøge at gennemføre transaktionen på ny. IsolationDer opstår forskellige problemer, hvis forskellige programmer, der bruger den samme database, kan se hinandens ændringer inden de er helt gennemførte. Løsningen er, at isolere de enkelte databasetransaktioner fra hinanden. En høj grad af isolation sikrer, data hænger rigtigt sammen, men begrænser også parallelle opdateringer, hvilket kan give lange afviklingstider for de opdaterende programmer. De mest gængse niveauer af isolation er fra det laveste til det højeste:
I mange tilfælde er niveauet "læs gennemførte" tilstrækkeligt. VarighedFor at sikre, at data opbevares i databasen så længe, det er nødvendigt, er sikkerhedskopiering en nødvendighed. Det er i den sammenhæng vigtigt, at data hænger rigtigt sammen (er konsistente) inden backup foretages. Løsningen er, at etablere et kontrolpunkt (checkpoint). Etablering af et kontrolpunkt kan ske på denne måde:
Nogle databasesystemer kan sætte transaktioner i kø under oprettelse af et kontrolpunkt. Anvendelse af en databaseFor at et databasesystem skal kunne bruges, skal flere ting være på plads. Der skal oprettes en database med en passende struktur. Det skal sikres, at de rette brugere har adgang til de dele af databasen der er relevant for dem. Der skal eventuelt fyldes data i fra en anden kilde som for eksempel et sæt filer. Når databasen er på plads, kan man læse, oprette, ændre eller slette data i den. Ofte sker det med et program, der afvikles uden for databaseprogrammet som en klient/server-løsning. Forskellige slags databaserDer findes overordnet nogle forskellige måder at implementere eller tilgå en database på. De præsenteres i de følgende afsnit. Relationel databaseI en relationel database kan man oprette tabeller. Tabeller består af rækker af felter. De felter, i hver kolonne, der står i samme række, kaldes en post. Relationerne mellem tabellerne udgør den enkelte databases struktur. Det teoretiske grundlag for den relationelle datamodel er mængdelæren. I praksis er det dog de færreste systemer, der lever helt op til reglerne om mængder. For eksempel er det ofte muligt at have resultater af forespørgsler, der indeholder dubletter af rækker. Data i en relationel database skal som minimum overholde følgende:
Ved læsning af data bruges tre grundlæggende operationer.
Operationerne kan kombineres, så man kan lave forespørgsler i stil med "Kombiner persontabellen og og adressetabellen. Find fornavn, efternavn og adresse på dem, der er 42 år gamle". Med det meget udbredte forespørgselssprog SQL kunne det se sådan ud: SELECT fornavn, efternavn, gade, husnr, postnr FROM persontb, adressetb WHERE persontb.adresseID = adressetb.adresseID AND persontb.alder = 42 Hierarkisk databaseDen hierarkiske databasetype er en af de ældste med en oprindelse tilbage i 1960'erne. Data er, som navnet siger, ordnet hierarkisk i træstrukturer med forældre/børn-relationer. Til nogle formål er det den klart hurtigste databasetype der findes, men ulempen er, at data kun effektivt kan tilgås i den orden som den hierarkiske struktur dikterer. Ændres måden man vil tilgå data på, skal databasen reelt set omdesignes og data konverteres. I dag er den hierarkiske databasetype stort set erstattet af den relationelle pga. dennes større fleksibilitet. NetværksdatabaseObjektorienteret databaseEn objekt orienteret database er database baseret på objekter i en form svarende til den der bruges i objekt orienteret programmering. Der er meget få databasesystemer, der fungerer på denne måde, men der findes flere programmeringsværktøjer, der giver mulighed for automatisk opdatering af en relationel database på baggrund af objekter. Som programmør slipper man ikke for at tænke på databasen, men meget af den trivielle programmering kan automatiseres. Kilder
|
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net