Databasestyringssystem

Et databasestyringssystem (forkortet til DBMS eller database management system ), i informatikk , er et programvaresystem designet for å tillate opprettelse, manipulering og effektiv spørring av databaser , derfor også kalt " administrator eller motor for databasen ", er vert på dedikert maskinvarearkitektur eller på en enkel datamaskin . Teorien om databaser og DBMS har alltid representert en av de mest solide og viktige trådene innen informatikk .

Beskrivelse

Hvis DBMS tidligere i hovedsak var utbredt blant store selskaper og institusjoner som hadde råd til den økonomiske forpliktelsen fra kjøp av den store maskinvareinfrastrukturen som er nødvendig for å lage et effektivt databasesystem, er bruken i dag utbredt i praktisk talt alle sammenhenger. Uttrykket enterprise application , som i IT-sjargong refererer til applikasjoner knyttet til virksomheten til selskapene som bruker dem, innebærer nesten "per definisjon" tilstedeværelsen av en eller flere databaser administrert av en eller flere DBMS-er.

En DBMS er forskjellig fra det generelle konseptet med databaseapplikasjon ettersom den er designet for flerbrukersystemer: DBMSer er avhengige av kjerner som naturlig støtter multitasking og nettverk , faktisk vil en typisk databasebehandlingsapplikasjon ikke inkludere disse funksjonene, men vil stole på operativsystem for å la brukeren bruke dem.

Et DBMS kan bestå av et komplekst sett med programmer som kontrollerer organisering, lagring og gjenfinning av data ( felt , poster og arkiver) i en database. En DBMS kontrollerer også sikkerheten og integriteten til databasen. DBMS aksepterer forespørsler om data fra applikasjonsprogrammet og "instruerer" operativsystemet til å overføre riktige data. DBMS-er spiller en grunnleggende rolle i en rekke IT-applikasjoner, fra regnskap , personalstyring og økonomi til tekniske sammenhenger som nettverksadministrasjon eller telefoni .

Autorisasjoner

Datasikkerhetssystemet hindrer uautoriserte brukere fra å se eller oppdatere databasen. Gjennom bruk av passord (passord) får brukere tilgang til hele databasen eller til en undergruppe av den: i dette andre tilfellet snakker vi om underskjema . For eksempel kan en database med ansatte inneholde alle dataene om en enkelt person og en gruppe brukere kan få fullmakt til å se kun dataene om lønnen, mens andre brukere kan få fullmakt til å se kun informasjonen om hans arbeidshistorikk og helsesituasjon.

Integritet

DBMS kan opprettholde databaseintegriteten ved ikke å tillate flere brukere å endre den samme posten samtidig (postlåsing). Databasen kan forhindre oppføring av to dupliserte poster; for eksempel kan to kunder med samme identifikasjonsnummer ("nøkkelfelt") hindres fra å komme inn i databasen. Reglene som bestemmer integriteten og konsistensen til en database kalles referanseintegritetsbegrensninger (" ACID "-egenskap).

Spørsmål og endringer

Databasespørringsspråk ( spørringer ) og rapportgeneratorer lar brukere interaktivt spørre databasen og analysere dataene .

Hvis DBMS gir en måte å oppdatere og legge inn nye data i databasen, samt spørre etter dem, lar denne funksjonen deg administrere dine egne databaser. Disse funksjonene gir imidlertid ikke muligheten til å holde styr på revisjoner og gir ikke verktøyene som trengs for å administrere en flerbrukerorganisasjon. Disse kontrollene er bare tilgjengelige når et sett med applikasjonsprogrammer er spesialbygd for å administrere og koordinere hver datainntasting eller endringsfunksjon.

DBMS og informasjonssystemer

Et kommersielt informasjonssystem består av emner (kunder, ansatte, selgere) og aktiviteter (ordre, betalinger, kjøp osv.). Databasedesign er beslutningsprosessen for hvordan disse dataene skal organiseres i posttyper og hvordan hver posttype forholder seg til de andre. DBMS skal gjenspeile organisasjonens datastruktur og effektivt administrere de ulike transaksjonene .

Når et DBMS brukes, kan informasjonssystemene tilpasses svært enkelt til organisasjonens endrede informasjonskrav. Nye kategorier av data kan legges til databasen uten å forstyrre det eksisterende systemet.

Arkitektur

Organisasjoner kan bruke en DBMS til å administrere den normale daglige transaksjonsprosessen og senere flytte detaljene til en annen datamaskin som bruker en annen DBMS som er mer egnet for å håndtere tilfeldige spørringer og analyser. Globale beslutninger om informasjonssystemarkitektur håndteres av systemanalytikere og dataadministratorer. Den detaljerte utformingen av databasen er overlatt til databaseadministratorene.

De tre vanligste organisasjonstypene er den hierarkiske modellen , nettverksmodellen og den relasjonelle modellen . Den dominerende modellen i dag er relasjonsmodellen, vanligvis brukt med SQL -spørringsspråket . Mange DBMS-er støtter Open Database Connectivity (ODBC) eller Java Database Connectivity (JDBC, standarden for Java ) applikasjonsprogrammeringsgrensesnitt (API ) , som gir programmerere standardiserte verktøy for tilgang til databaser.

Databaseservere er datamaskiner som er optimalisert for å være vert for programmene som utgjør den virkelige databasen og som bare DBMS og programvaren relatert til den kjører på, i virkelige situasjoner utfører disse datamaskinene ofte andre funksjoner som ikke er relatert til databaseadministrasjon. Vanligvis er dette multiprosessormaskiner og med harddisker konfigurert i RAID -modus for stabil og pålitelig datalagring for å sikre kontinuitet i tjenesten selv i tilfelle en komponentfeil (feiltolerante eller svært pålitelige og tilgjengelige systemer ). I miljøer hvor transaksjoner med spesielt store datamengder behandles, brukes også maskinvarekomponenter som har den spesifikke funksjonen som databaseakseleratorer og som er koblet til en eller flere servere gjennom fortrinnsvise kanaler med høy overføringshastighet .

Stadig oftere er vi vitne til integrering av databaser og Internett : en stor klasse av nettapplikasjoner bruker informasjon som finnes i databaser; eksempler på denne typen bruksområder spenner fra bedriftskataloger til nettutgaver av aviser og aviser. For å sikre et modelleringsspråk som lar deg gå fra å visualisere data i et format som er kompatibelt med databaser til en konseptuell "visning" av den fremtidige nettsiden, finnes det et spesifikt språk kalt WebML .

Tjenester implementert

Et DBMS er et verktøy for effektiv opprettelse og administrasjon av store datamengder som gjør at den kan lagres sikkert over lengre perioder. En DBMS gir brukerne disse tjenestene:

To forskjellige typer brukere vurderes:

I arkitekturen til et DBMS har vi følgende seksjoner:

  1. Disker og filer
  2. Lagringssjef
  3. Buffersjef
  4. Indeks / fil / postbehandler
  5. Utførelsesmotor
  6. Spørringskompiler
  7. Samtidig kontroll
  8. Logging / gjenoppretting
  9. Transaksjonsleder
  10. Gjenopprettingsledelse

En forenklet (men delvis) alternativ underavdeling, nyttig for generell forståelse av oppførselen til et DBMS, kan være dette:

  1. Spørringsansvarlig
  2. Tilgangsmetodebehandler
  3. Buffersjef

Query Manager

Den tar for seg å behandle brukerforespørsler, vanligvis uttrykt i SQL, derfor i et deklarativt typespråk (en type språk som dataene som skal innhentes er beskrevet på), og oversette dem til et sett med operasjoner (en prosedyre), som deretter gjennomføres effektivt. Det er vanligvis flere forskjellige måter å oversette en spørring på, og hovedfunksjonen til spørringsbehandleren er å velge den beste fra de ulike alternativene, det vil si den som krever mindre behandlingstid og mindre minneopptak. For eksempel består en optimalisering i store databaser i alltid å forutse utvalgsoperasjonene, for å redusere antall poster som skal behandles fra begynnelsen, med åpenbare forbedringer i minneopptak og hastighet. En annen optimalisering er i tilfellet med en liten database, når du utfører SQL-setninger, vil en peker rulle og velge dataradene i den berørte tabellen, og skrive ut søkeresultatene på en ny tabell, uten å opprette en midlertidig tabell. Andre optimaliseringer gjøres alltid basert på statistiske kriterier: størrelsen på en tabell, hvordan tabellene fysisk lagres osv. På slutten av behandlingen vil spørringssjefen gi instruksjoner til tilgangsmetodebehandleren for å finne tuplene.

Access Method Handler

Den omhandler å identifisere blokken der tuppelen av interesse er til stede.

En bruker med administratorrettigheter erklærer til systemet hvordan man administrerer tilgang, gjennom en CRUD-tabell .

DBMS skal tillate skrivetilgang til en generisk datamaskinressurs til kun én bruker om gangen. Hvis to brukere får tilgang til samme ressurs og gjør endringer, er det to tilfeller:

  1. hvis de samtidig lagrer arbeidet sitt, oppstår det en utgavekonflikt;
  2. hvis de lagrer endringer til forskjellige tider, overskriver utgiveren sist forrige brukers arbeid.

DBMS kan inkludere verktøy for å flette mellom forskjellige versjoner av samme ressurs.

Buffer manager

Et DBMS må håndtere en stor mengde data, og i løpet av behandlingen vil plassen som kreves for datablokkene ofte være større enn tilgjengelig minneplass. For dette er det behov for å administrere et minneområde for å laste og losse blokkene. Bufferansvarlig er hovedsakelig opptatt av å styre operasjonene knyttet til lagring og lasting av blokker. Faktisk er operasjonene som bufferadministratoren gjør tilgjengelig:

Før du introduserer de 2 siste kommandoene må det forutses at DBMS kan operere i 2 moduser: FORCE og NOT FORCE. Når du arbeider i FORCE-modus, skjer lagring på disk i synkron modus med utførelsen av en transaksjon. Når du arbeider i NOT FORCE-modus, skjer lagring fra tid til annen asynkront. Kommersielle databaser opererer generelt i NOT FORCE-modus fordi dette gir mulighet for en økning i ytelsen: blokken kan gjennomgå flere endringer i minnet før den lagres, så kan du velge å lagre når systemet er mer ubelastet.

Feilhåndtering

Gjenopprettingslederen er ansvarlig for å sikre konsistens, atomitet, utholdenhet og implementere grunnleggende transaksjonskommandoer som begynne transaksjon, avslutte transaksjon, forplikte arbeid, tilbakeføringsarbeid.

Målet til gjenopprettingslederen er å administrere tilbakeføringen av en transaksjon, å rekonstruere en konsistent tilstand av DB og som respekterer semantikken til transaksjonene, etter en feil i DBMS.

Typer av feil

En DBMS må være i stand til å håndtere ulike typer feil:

En systemfeil kan være et systemkrasj på grunn av en programvare- eller maskinvarefeil, en applikasjonssystemfeil, for eksempel på grunn av en divisjon med null, en feil generert av de logiske forholdene under utførelsen av en transaksjon. Denne typen feil forårsaker tap av dataene i bufferen, men masseminnet er fortsatt gyldig.

En sekundær minnefeil er mer kompleks å håndtere og kan være forårsaket av katastrofale hendelser som ikke lar deg ha et gyldig minne. Denne typen feil forårsaker fysisk tap av lagrede data, men ikke av loggene som er lagret i stabilt minne.

Metoder brukt av DBMS

For å løse problemet med feil bruker DBMS følgende metoder:

Operasjoner

For å gjenopprette inkonsekvente situasjoner som stammer fra systemkrasj, har DBMS tilgjengelig gjenta-operasjonen og angre-operasjonen som kan brukes ved å lese loggen.

For transaksjoner som er i forpliktet tilstand på tidspunktet for en feil, siden persistensegenskapen må garanteres, vil det være nødvendig å gjøre om handlingene som er lagret i loggen ved å bruke redo-instruksjonen.

For transaksjoner som ikke er forpliktet, er det nødvendig å avbryte operasjonene de utførte gjennom angreoperasjonen.

Retningslinjer for oppdatering

Hoved eksisterende systemer

Relaterte elementer

Andre prosjekter

Eksterne lenker