=Polymorphes Typsystem= |
==Polymorphes Typsystem= |
Atomare Typen: char(n), int, numeric(p,q), float(p), date, time, timestamp Typkonstruktoren: tupel ::= [sel: atomarerTyp, ..., sel: atomarerTyp] relation::= {tupel} |
Atomare Typen: char(n), int, numeric(p,q), float(p), date, time, timestamp |
Typkonstruktoren: tupel ::= [sel: atomarerTyp, ..., sel: atomarerTyp] relation::= {tupel} |
==Polymorphe Konsistenzbedingungen= |
key::= relation x (sel ^n --> atomarerTyp^n) --> tupel refcon::= (relation x sel^n --> atomarerTyp^n) <= (relation x sel^n --> atomarerTyp^n) ==Polymorphe Operatoren= Um das relationale Datenmodell abzuschliessen, müssen noch Operatoren spezifiziert werden, die auf den Relationen arbeiten. Hierbei kann man ein logisches Kalkül spezifizieren oder auf Relationale Algebra zurückgreifen: Selektion: relation x Theta --> relation Projektion: relation x attributfolge --> relation Kartesisches Produkt: relation x relation --> relation Vereinigung: relation x relation --> relation Differenz: relation x relation --> relation Durchschnitt: relation x relation --> relation Theta Verbindung: relation x Theta x relation --> relation Natürliche Verbindung: relation x relation --> relation Division: relation x -relation --> relation |
Polymorphes Typsystem | ![]() |
Relationale Datenmodelle arbeiten auf einem polymorphen Typsystem. Das heisst, dass sowohl die Typen als auch die Typkonstruktoren atomar sind. Die Polymorphie der Konstruktoren liefert zusammengesetzte Typen.
Atomare Typen: char(n), int, numeric(p,q), float(p), date, time, timestamp
Typkonstruktoren: tupel ::= [sel: atomarerTyp, ..., sel: atomarerTyp] relation::= {tupel}
Polymorphe Konsistenzbedingungen | ![]() |
key::= relation x (sel ^n --> atomarerTyp^n) --> tupel
refcon::= (relation x sel^n --> atomarerTyp^n) <= (relation x sel^n --> atomarerTyp^n)
Polymorphe Operatoren | ![]() |
Um das relationale Datenmodell abzuschliessen, müssen noch Operatoren spezifiziert werden, die auf den Relationen arbeiten.
Hierbei kann man ein logisches Kalkül spezifizieren oder auf Relationale Algebra zurückgreifen:
Selektion: relation x Theta --> relation
Projektion: relation x attributfolge --> relation
Kartesisches Produkt: relation x relation --> relation
Vereinigung: relation x relation --> relation
Differenz: relation x relation --> relation
Durchschnitt: relation x relation --> relation
Theta Verbindung: relation x Theta x relation --> relation
Natürliche Verbindung: relation x relation --> relation
Division: relation x -relation --> relation