Relationales Datenmodell Spezialfall der logikorientierten Datenmodelle: Anfrageprogramme : Sichtrelationen : semantische Bedingungen : nur bezüglich Basisrelationen kein Relationensymbol wird rekursiv verwendet. kein Relationensymbol wird rekursiv verwendet. funktionale Abhängigkeiten (functional dependencies) Y = Y' :- R(X 1,...,X k,y,z 1,...,Z l ), R(X 1,...,X k,y',z' 1,...,Z' l )., Stellen der Relationensymbole durch Attribute (attributes) (Spaltenüberschriften der Tabellen) semantischen Bereichsnamen Domänen (domains) bestimmen bei semantischen Bedingungen unterscheiden: lokale oder innerrelationale globale oder zwischenrelationale Ansatz, mit negativer Information umzugehen. mehrwertige Abhängigkeiten (multivalued dependencies) R(X 1,...,X k,y' 1,...,Y' l,z 1,...,Z m ) :- R(X 1,...,X k,y 1,...,Y l,z 1,...,Z m ), R(X 1,...,X k,y' 1,...,Y' l,z' 1,...,Z' m )., Verbundabhängigkeiten (join dependencies) Enthaltenseinsabhängigkeiten (inclusion dependencies) R1(X 1,...,X k ) :- S1(X 1,...,X k ) R1 und S1 Projektionen von Basisrelationen R und S 7.1 7.2
Schreibweisen A R,S,...,X,Y,Z B C unendliche Menge der Attribute endliche Mengen von Attributen Menge der semantischen Bereichsnamen unendliche Menge der Konstantenzeichen b : B C ordnet semantischen Bereichsnamen Domänen zu µ : X C Tupel mit dom µ := X endlich A Definitionsbereich für X = {A 1,...,A n } kann man µ aufschreiben als: A 1 A 2 µ = µ(a 1 ) µ(a... A n 2 ) µ(a n ) µ = (µ(a 1 ),...,µ(a n )). ; R Menge der Relationensymbole. µ Y mit µ Y : dom µ Y C, µ Y(A) := µ(a) für A dom µ Y Einschränkung von µ auf Y r endlich {µ µ : X C} für ein X A Relation dom r := dom µ für µ r Definitionsbereich 7.3 7.4
Relationenschema und Instanz Syntax <R X SC> (Relationen-) Schema mit R R X endlich A SC Semantik Relationensymbol, Attribute, lokale semantische Bedingungen (d,r) Instanz (oder gültige Ausprägung) zu <R X SC> :gdw i) d endlich C ii) dom r = X und r endlich {µ µ : X d} iii) (d,r) ist Modell von SC sat <R X SC> := {r r ist Instanz zu <R X SC>} r LOGO := { R(µ(A 1 ),...,µ(a n )). µ r } zugeordnete Grundfakten Relationales Datenbankschema und Instanz Syntax RS = <<R 1 X 1 SC 1 >,...,<R n X n SC n > SC a > (relationales Datenbank-) Schema mit <R i X i SC i > Relationenschema, wobei für i j ebenfalls R i R j, SC (globale) semantische Bedingungen, a : i=1,...,n X i BVereinbarung der semantischen Bereichsnamen Semantik M = (d,r 1,...,r n ) Instanz (oder gültige Ausprägung) zu RS :gdw i) d endlich C ii) (d,r i ) ist Instanz zu <R i X i SC i > iii) (d,r 1,...,r n ) ist Modell von SC iv) falls µ r i und A X i, dann gilt µ(a) b a (A). sat RS := { (d,r 1,...,r n ) (d,r 1,...,r n ) ist Instanz zu RS } M LOGO := i=1,...,n { R i (µ(a i,1 ),...,µ(a i,ni )). µ r i } 7.5 7.6
Person Eltern Kind RS = < < {, } { ª } >, < {,, } >, < ELT {, Eltern} > {π () π (), π () π (), π (ELT) π (), Behandlung Elternschaft π Eltern (ELT) π () } a () := a () := a () := a (Eltern) :=, a () :=, a () := > b () := Σ* C b () := {, weib } C b () := { untersuchung, beratung, hausbesuch, labor, röntgen } C 7.7 7.8
Tabellengerüste zum relationalen Datenbankschema Eine Instanz zum relationalen Datenbankschema ELT Eltern ELT Eltern wilhelmine fritz hugo alfons weib weib weib weib hugo alfons wilhelmine fritz wilhelmine fritz fritz labor hausbesuch röntgen untersuchung labor beratung beratung röntgen 7.9 7.10
Schema als Selbstbeschreibung mit den gleichen Techniken wie die Instanzen behandeln Schlüsselzugehörigkeit die als zeitunabhängig angesehenen Gegebenheiten des gedachten Unternehmens relationale Datenbank mit Hilfe der semantischen Begriffe modellieren Attribut Relationensymbol Stellenbezeichnung Relationensymbol Stellenbezeichnung Attribut 1 1 Typ Enthaltensein Teilmenge Obermenge semantischer Bereichsname 1 1 Relationensymbol Stellenbezeichnung Attribut Werte Domäne 7.11 7.12
Metaschema für relationale Datenbanken RS Schema = < < RELATION {Symbol, Attribut, Schlüssel} {Symbol, Attribut ª Schlüssel} >, < TYP {Attribut, SemBereich} {Attribut ª SemBereich} >, < WERTE {SemBereich, Domäne} {SemBereich ª Domäne} >, < ENTHALTEN {Teil_Symbol, Teil_Attribut, Ober_Symbol, Ober_Attribut} Ø > {π Τειλ_Symbol, Teil_Attribut (ENTHALTEN) π Symbol, Attribut (RELATION), π Ober_Symbol, Ober_Attribut (ENTHALTEN) π Symbol, Attribut (RELATION) } a (Symbol) := a (Teil_Symbol) := a (Ober_Symbol) := RelationenId, a (Attribut) := a (Teil_Attribut) := a (Ober_Attribut) := AttributId, a (SemBereich) := SemBereich, a (Domäne) := Domäne, a (Schlüssel) := SchlüsselInd >, wobei etwa b (RelationId) := b (AttributId) := b (SemBereich) := Σ* C, b (Domäne) := {boolean, integer, cardinal, real, string,...} C, b (SchlüsselInd) := {false, } C. Hypergraph zum relationalen Datenbankschema für Schemas ( Metaschema ) RelationenId Teil_Symbol Ober_Symbol Symbol AttributId Teil_Attribut Ober_Attribut Attribut SemBereich Domäne ENTHALTEN Schlüssel TYP WERTE RELATION 7.13 7.14
Eine Instanz zum relationalen Datenbankschema für Schemas: Entwurfsumgebung Arbeitsplatzumgebung Programmierumgebung Netzumgebung Einsatz- n interaktiv, selbständig eingebettet RELATION Symbol Attribut Schlüssel RelationenId AttributId SchlüsselInd ELT ELT Eltern false Datendefinitionssprache (DDL)... Vereinbarungen Sicht_i Schema Änderungen Sprachanalyse Datenmanipulationssprache (DML) Anfragen Aufbereitung von Antworten Antworten Erklärungen Informationssystem- TYP Attribut SemBereich AttributId SemBereich Eltern Gechlecht WERTE SemBereich Domäne SemBereich Domäne string weib ubhlr ENTHALTEN Teil_Symbol Teil_Attribut Ober_Symbol Ober_Attribut Relationen (Klassen), Tupel (Objekte) konzeptionelle Schicht (mengenorientiert, mit Optimierung) Zugriffsstrukturen, Tupelidentifikatoren (Surrogate), Datensätze interne Schicht (Datensatz-orientiert) Transaktionsverwaltung Mengen- Tupel- RelationenId AttributId RelationenId AttributId ELT ELT Eltern (virtueller) flüchtiger und dauerhafter Speicher Speicher- Geräte- Speichergeräte 7.15 7.16