60 likes | 167 Views
Motivation. Relationales Datenmodell ist beherrschend: Riesige Datenbestände und damit hohe Investitionen. Die große Mehrzahl der Anwendungen arbeitet mit weitgehend strukturierten Daten. Das relationale Modell ist einfach in der Handhabung durch Nicht-Experten.
E N D
Motivation • Relationales Datenmodell ist beherrschend: • Riesige Datenbestände und damit hohe Investitionen. • Die große Mehrzahl der Anwendungen arbeitet mit weitgehend strukturierten Daten. • Das relationale Modell ist einfach in der Handhabung durch Nicht-Experten. • Das relationale Modell ist wohlfundiert, die Architektur und Implementierung der Systeme folgt allgemein akzeptierten Regeln und ist ausgereift. • Mit SQL besteht ein Sprachstandard mit Vorbildfunktion für viele andere Datenmodelle. • Überwinden der Schwächen durch Anbinden anderer Datenmodelle an Tupelkomponenten: • Beispielsweise Binden objektorientierter Domänen an Attribute. • Einbetten entsprechender Sprachkonstrukte in relationale Anfragen.
Polymorphe Typen Typkonstruktoren tupel ::= [sel:Typ, ..., sel:Typ] relation ::= {tupel} • Typ: Vereinigungsmenge aus atomaren und konstruierten Typen. • Es lassen sich beliebig kompliziert verschachtelte Tupelstrukturen vereinbaren.
Objektdomänen • Falls TypObjekttyp: Gängige Vereinbarung. • Beispiel: type Punkt(PID, X, Y, Z) method addition (p Punkt) returns Punkt, method distanz (p Punkt) returnsreal, method nullDistanz () returnsreal; relation GeoPunkt of Punkt; • Trennung zwischen Methodensignatur und -implementierung • Besonderheiten: • Typen können in einer Typhierarchie angeordnet werden, dies verbunden mit einer strukturellen Vererbung. • Die Objekte besitzen wahlweise Kopier- oder Referenzsemantik. • Im ersten Fall wird das Objekt in das Tupel eingebettet (engl.: embedding), im zweiten Fall wird ein Objektidentifikator vergeben und als Wert in das Tupel eingetragen (engl.: linking).
Benutzerdefinierte Typen (1) • Verallgemeinerung auf beliebige konstruierte Typen: • Dann Einschränkung auf Vereinbarung der Struktur. • Man spricht von user-defined types (UDT). • Falls monomorphe Operatoren mit dem Typ verbunden werden sollen: • Getrennte Vereinbarung der Operatoren. • Bindung an Typ nur lose, indem der Typ als nicht besonders ausgezeichneter Parametertyp vorkommt. • Man spricht von user-defined functions (UDF). • Objektdomänen sind dann Spezialfall mit Zusammenfassung von UDT und UDF.
Benutzerdefinierte Typen (2) • Einfaches Beispiel: relation ArtikelArt(ANr, AName, Menge, Lieferant, Gewicht); relation LagerortArt(LoaNr, Länge, Breite, Höhe, MaxGewicht); procedure ErmittleArtikelName(in anr char(8), out aname char(25)) procedure ÄndereArtikelName(in anr char(8), in neuerAName char(25)) function grundfläche( loanr char(8) ) returnsinteger
Aktuelle Entwicklungen • Text und XML als UDT. • Ergänzung der Anfragesprachen um entsprechende Elemente. • Gegenstand der Standardisierung relationaler Sprachen.