Relasjonsdatabase

En relasjonsdatabase er en digital database som benyttes for elektronisk databehandling i datamaskinsystemer , og er basert på en tabell basert relasjonsdatabase modell . Grunnlaget for begrepet relasjonsdatabaser er forholdet. Det er en matematisk beskrivelse av en tabell og er et veldefinert begrep i matematisk forstand ; se databaseforhold . Operasjoner på disse relasjonene bestemmes av relasjonsalgebra .

Det tilknyttede databasestyringssystemet er referert til som et relasjonelt databasestyringssystem eller RDBMS (Relational Database Management System). Databasespråket SQL (Structured Query Language) brukes hovedsakelig til å spørre og manipulere dataene , hvis teoretiske grunnlag er relasjonsalgebra.

Relasjonsdatabasemodellen ble foreslått for første gang av Edgar F. Codd i 1970 og er fremdeles en etablert standard for databaser til tross for en del kritikk .

Enkle konsepter

Relasjonsdatabasevilkår

En relasjonsdatabase kan betraktes som en samling av tabeller (relasjonene) der dataposter er lagret. Hver rad ( tupel ) i en tabell er en datapost ( post ). Hver tuple består av en serie attributtverdier ( attributter = egenskaper), kolonnene i tabellen. Det forhold ordningen definerer antallet og typen av attributter for en forbindelse. Bildet illustrerer forholdet  R med attributter A 1 til A n i kolonnene.

For eksempel er en bok i et bibliotek beskrevet av posten (bok-ID, forfatter, utgiver, utgivelsesår, tittel, dato for inkludering) . En datapost må være tydelig identifiserbar. Dette gjøres via en eller flere taster ( engelsk nøkkel ). I dette tilfellet inneholder bok-ID nøklene. En nøkkel må aldri endres. Det er relatert til posten og ikke til posisjonen i tabellen.

Eksempel på en relasjon "bok":
Bok-ID forfatter publiseringsfirma Forlagsår tittel Dato
1 Hans produktive forfatter Eksempel på utgiver 2007 Vi lærer SQL 13/01/2007
2 J. Gutenberg Gutenberg og Co. 1452 Enkel utskrift 01/01/1452
3 GI Caesar Håndskriftutgiver −44 Livet mitt med Asterix 16.03. - 44
5 Galileo Galilei Inquisition International 1640 Eppur si muove 1641
Sjette Charles Darwin Vatikanets forlag 1860 Adam og Eva 1862

Forholdet mellom tabeller

Koblinger kan også brukes til å uttrykke forholdet mellom tabeller. En biblioteksdatabase kan implementeres med tre tabeller som følger:

Book bord , som inneholder en rad for hver bok:

  • Hver linje består av kolonnene i tabellen (attributter): bok-ID, forfatter, utgiver, utgivelsesår, tittel, dato for inkludering .
  • Bok-ID-en fungerer som nøkkelen , da den identifiserer hver bok unikt.

Bruker tabellen , som inneholder data fra alle registrerte bibliotekbrukere

  • Attributtene vil være for eksempel: bruker-ID, fornavn, etternavn.
Forholdet "bruker"
bruker-ID Fornavn Etternavn
10 Hans Hyppige lesere
11 Jens Midtleser
12. plass Eric Liten leser
"Lånt" forhold
bruker-ID Bok-ID
10 1
10 2
10 3
12. plass 5
12. plass Sjette

Du trenger også en tredje tabell, lånt , som inneholder informasjon om tilgjengeligheten av boken. Den inneholder attributtene Bruker-ID og Bok-ID . Hver rad i denne lånte tabellen tilordner en bok-ID til en bruker-ID.

Oppføringen (10,3) vil bety at brukeren med ID 10 ("Hans Vielleser") har lånt boka med ID 3 ("Mitt liv med Asterix"). Den samme brukeren lånte også boken "Printing Made Easy", noe som fremgår av tabelloppføringen (10,2) . Sett med attributter (bruker-ID, bok-ID) brukes som nøkkel her . På samme tid, bruker-ID forbinder hver oppføring i Lånt tabellen med en oppføring i Brukere tabellen , og boken ID forbinder hver lånt oppføring med en oppføring i Bok tabellen . Derfor betyr disse attributtene i denne sammenheng utenlandsk nøkkel (Engl. Fremmed nøkkel ). Tabeller uten fremmed nøkkel kalles flate bord .

Begrepet relasjon brukt her beskriver ikke forholdet mellom enheter (som i enhetsforholdsmodellen ), men forholdet mellom attributtene og navnet på relasjonen. I eksemplet ovenfor er Hans fornavnet (attributtet) til brukeren (relasjonsnavn) . I tillegg brukes forhold generelt som et synonym for tabell i relasjonsdatabaser (hovedsakelig oppstått fra enhetstypen i ERM).

Avgrensning

I tillegg til den relasjonelle databasemodellen, er det forskjellige alternative konsepter som gjør det mulig å administrere data i andre strukturer. Disse konseptene er ofte av liten betydning eller har ennå ikke fanget opp. Likevel tilbyr de en enklere tilkobling til dataene som skal administreres for visse applikasjoner. Såkalt NoSQL har blitt stadig mer populært de siste årene .

Eldre tilnærminger

På 1960- og 1970-tallet ble hierarkiske databasesystemer og nettverksdatabasesystemer brukt til databehandling av bedrifter . Med disse er data- eller tabellstrukturen definert i designfasen og kan ikke varieres under spørringen. De brukes fortsatt i dag i spesielle tilfeller.

Objektorienterte databaser

Med fremkomsten av objektorienterte programmeringsspråk ble objektdatabaser i økende grad tilbudt. Dette betyr at objekter fra OO-språk som Java kan holdes direkte i databasen - det er da ikke lenger nødvendig å kartlegge objektene til relasjonstabellstrukturen, objekt-relasjonskartleggingen . Denne tilnærmingen har fordeler i forhold til relasjonsdesign hvis du vil lagre komplekse dataobjekter som er vanskelige å kartlegge på de flate relasjonelle tabellstrukturene. Objektdatabaser har imidlertid fremdeles ulemper sammenlignet med relasjonsdatabaser når de behandler store datamengder. Dette skyldes for eksempel tilgangsveier til objekter over flere banetyper (f.eks. Arv og tilknytning). Dette fører til eksponentiell kompleksitet i låseadministrasjonsskrivoperasjoner og dermed dårlig ytelse. Ytelsesproblemene ble tatt opp i objektrelasjonsdatabasene, der kun konstruksjonene fra objektorienterte databaser med lavere kompleksitet (f.eks. ) Ble adoptert.

Objektrelasjonelle databaser

Noen leverandører legger til objektorienterte egenskaper i deres relasjonsdatabaser, og kaller dem deretter objektrelasjonsdatabaser . Imidlertid er disse ikke ment for direkte kartlegging av objekter fra programmeringsspråket - de bruker bare begrepet arv når man definerer og spørrer tabeller med lignende feltstrukturer og dermed forenkler håndteringen. SQL-99-standarden ble utvidet til å omfatte objektrelasjonelle språkelementer.

Semistrukturerte databaser

De semistrukturerte databasene er nyere konsepter . De skiller seg fra konvensjonelle databasemodeller ved at de ikke har et forhåndsdefinert skjema. Databasen er strukturert hierarkisk, tre-aktig, og hver databaseenhet ( engelsk enhet ) av samme type kan ha forskjellige sett med attributter .

Typiske representanter for denne typen er XML-databaser , som administrerer dataene som XML-fragmenter. XML-dataene er ordnet hierarkisk og kan inneholde alle strukturer så lenge de er godt formet i henhold til XML-definisjonen. Dataene kan spørres via XQuery eller XPath . Proprietære språkutvidelser brukes i dag til manipulering. Ulempen med nåværende XML-databaser er lavere ytelse sammenlignet med relasjonelle systemer.

Semistrukturerte databaser kan også implementeres med relasjonell DB via utvidelser eller serverprogrammering, men relasjonsmodellen brukes ikke lenger.

Relasjonell databaseteori

Grunnlaget for den relasjonelle databaseteorien ble lagt av Edgar F. Codd på 1960- og 1970-tallet og beskrevet i sin artikkel A Relational Model of Data for Large Shared Data Banks . I teorien er alle operasjoner basert på relasjonsalgebra.

Forståelse av relasjonsalgebra

Den relasjons algebra er et algebraisk modell som beskriver data som er lagret, kan hentes fram og manipulert. Hovedoperasjonene som alle andre operasjoner kan hentes fra er følgende:

Alle spørsmål som blir gjort til en relasjonsdatabase ved hjelp av SQL, blir kartlagt til disse operatørene av databasesystemet, det vil si oversatt. I praksis er det andre operatører, som deltaoperatøren , som imidlertid også bare representerer en kombinasjon av kryssprodukt, utvalg og projeksjon.

Begrensninger av relasjonsalgebra

Relasjonsalgebra støtter ikke beregning av rekursive spørsmål ( transitive skrog ). Dette betyr for eksempel at det ikke er mulig å beregne alle forfedrene til en person i ett spørsmål hvis disse er lagret i en Person- relasjon og er tilknyttet den respektive forfederen personlig via en AncestorVon- relasjon . Forfedrene kan bare bestemmes gjennom en rekke henvendelser.

Med introduksjonen av SQL-99 ble det imidlertid også introdusert en utvidet relasjonsalgebra, som tillater en operasjon for å beregne den transitive konvolutten.

Databaseskjema og modellering

Et ER-diagram i Chen-notasjon

En viktig del av en relasjonsdatabase er skjemaet . Skjemaet definerer hvilke data som er lagret i databasen og hvordan disse dataene forholder seg til hverandre. Prosessen med å lage et skjema kalles datamodellering .

Enhetsforholdsmodellen brukes også til å modellere relasjonsdatabaser . Den brukes til å designe et konseptuelt skjema som kan implementeres ved hjelp av et databasestyringssystem (DBMS). Dette trinnet er kjent som logisk design eller datamodellkartlegging og resulterer i et databaseskjema i implementeringsdatamodellen til DBMS.

Et viktig trinn i modelleringsprosessen er normalisering . Dette er ment for å redusere permitteringer og forhindre avvik for å forenkle vedlikeholdet av en database og for å sikre konsistensen av dataene. Edgar F. Codd har foreslått fire normale former, som siden har blitt brukt i relasjonell databasedesign og har blitt supplert med flere.

Kritikk av relasjonsdatabasemodellen

segmentering
I relasjonsrepresentasjonen lagres et objekt segmentert på mange forskjellige forhold. Applikasjonsobjektene er vanligvis komplekse , det vil si at de selv består av objekter eller lister over objekter. Siden relasjonsmodellen kun kjenner sett med tupler som består av verdier , må komplekse applikasjonsobjekter gjenopprettes fra de individuelle relasjonene ved hjelp av mange sammenføyninger når et spørsmål blir gjort av DBMS . Dette kan føre til forvirrende spørsmål, som må sjekkes med alle strukturendringer i applikasjonsobjektet for behov for justering. Bruk av sammenføyninger, som må støttes av godt egnede databaseindekser , gjør objekttilgang mer kompleks enn z. B. i en objektdatabase , både når det gjelder ressurskrav og utviklingsinnsats.
Kunstige nøkkelegenskaper
I noen tilfeller må kunstige nøkler brukes til å identifisere tupler unikt . Denne brukes f.eks. For eksempel for å redusere størrelsen på nøkkelen hvis den skal brukes som en fremmed nøkkel, eller for å implementere tilhørighetsrelasjoner. Attributter er inkludert i forholdet som ikke har noe å gjøre med den abstrakte beskrivelsen av et applikasjonsobjekt, men er "bare" administrativ informasjon.
Eksternt programmeringsgrensesnitt
Siden det i mange relasjonsdatabaser bare er tilgjengelige databehandlingsspråk med begrenset kraft, er grensesnitt til kraftigere programmeringsspråk vanligvis nødvendige. Denne forbindelsen kan føre til en upraktisk håndtering, f.eks. B. hvis den set-orienterte SQL skal behandles i den set-orienterte C ++ , se Objekt-relasjonell impedans mismatch .
Imidlertid er det også relasjonsdatabaser med kraftige programmeringsspråk, for eksempel PL / SQL i Oracle eller PL / pgSQL i PostgreSQL eller T / SQL i Microsoft SQL Server ; I begge databasesystemene tillater de respektive språkene for datamanipulering integrering av andre programmeringsspråk. PL / SQL muliggjør f.eks. B. bruk av Java-programmer eller C ++ -programmer innen PL / SQL-programmer. PL / pgSQL muliggjør i sin tur serverprogrammering med andre språk som PHP , Tcl eller Python .
Objektegenskaper og atferd kan ofte ikke kartlegges
Den typiske applikasjonsatferden til et objekt kan ikke beskrives i relasjonsdatabasen. Denne beskrivelsen kan derfor bare lages utenfor databasen i applikasjonsprogramvare. Hvis flere applikasjoner bruker samme database, kan dette føre til en overflødig implementering.

Samlebegrepet NoSQL betegner ikke-relasjonelle databasemodeller som har til hensikt å løse problemer som de som er nevnt ved hjelp av alternative tilnærminger.

Sammenligning av grunnleggende vilkår

Relasjonsdatabase Relasjonsmodell Enhetsrelasjonsmodell (ERM) Unified Modeling Language (UML)
Verdiområde (domene, domene)
Overskrift Forholdstype / forholdsformat Enhetstype Klasse, objekttype
kolonne Egenskap Egenskap Egenskap
bord forhold Enhetssett (-sett) Objektsett, instansesett, klasse
Kolonneoverskrift (er) Utenlandsk nøkkel funksjonelt forhold assosiasjon
rad Tuple enhet Objekt , forekomst
celle Attributtverdi

Se også

litteratur

  • Edgar F. Codd: Relasjonsmodellen for databasestyring. Versjon 2. Addison-Wesley, Reading et al. 1990, ISBN 0-201-14192-2 .
  • Alfons Kemper, André Eickler: Databasesystemer. En introduksjon. R. Oldenbourg Verlag, München 2004, ISBN 3-486-27392-2 .
  • Andreas Meier: Relasjons- og postrelasjonsdatabaser . 7. utgave. Springer-Verlag, Heidelberg 2010, ISBN 978-3-642-05255-2 ( online ).

weblenker

Individuelle bevis

  1. ^ Edgar F. Codd : En relasjonsmodell for data for store delte databanker . I: Kommunikasjon av ACM . ACM Press, 13. juni 1970, ISSN  0001-0782 , s. 377-387 .