6. Externe Ebene: Anfragesprachen, Updatesprachen
- bisher: Relationenschemata mit Basisrelationen
- jetzt:
- Änderungen in Basisrelationen (Updates)
- Ableiten neuer Relationenschemata (Anfrage, Sicht, Snapshot)
- Anfrage: Folge von Operationen, die aus Basisrelationen eine Ergebnisrelation berechnet;
Ergebnis kann angezeigt werden, kann Grundlage weiterer Anfragen sein
- Sicht: Folge von Anfrage-Operationen, die unter einem (Sicht-)Namen langfristig abgespeichert wird; kann später unter diesem Namen erneut aufgerufen werden, berechnet Ergebnis (Sichtrelation) jedes Mal neu;
in Oracle:
CREATE VIEW viewname AS sfw-Anfrage;
- Snapshot: Ergebnisrelation einer Anfrage, die unter einem Snapshot-Namen abgespeichert wird; wird nie ein zweites Mal berechnet;
in Oracle: CREATE SNAPSHOT snapshotname AS sfw-Anfrage;
6.1 Kriterien für Anfragesprachen
- Abgeschlossenheit: Ergebnis ist wieder Relation, kann wie Basisrelation als Eingabe für weitere Anfragen dienen
- Adäquatheit: Alle Konstrukte des zugrunde liegenden Datenmodells werden unterstützt
- Orthogonalität: Sprachkonstrukte sind in ähnlichen Situationen auch ähnlich anwendbar
- Optimierbarkeit: Sprache besteht aus wenigen, formal definierten Operationen, für die es Optimierungsregeln gibt
- Effizienz: Jede Grundoperation ist effizient ausführbar (im Relationenmodell Komplexität <= O(n2) bei n Tupeln in Relation)
- Mengenorientiertheit: Jede Operation soll auf Mengen von Daten gleichzeitig arbeiten können, nicht nur navigierend auf einzelnen Elementen
- Sicherheit: Keine (syntaktisch korrekte) Anfrage darf ein unendliches Ergebnis liefern oder unendlich lange ausgewertet werden
- Eingeschränktheit: Anfragesprache darf keine komplette Programmiersprache sein
- Vollständigkeit: Anfragesprache muß mindestens die Anfragen ausdrücken können, die eine Standardsprache stellen kann (im Relationenmodell: Relationenalgebra oder Relationenkalkül)
- Deskriptivität: Benutzer soll formulieren, was er haben will, nicht, wie er an das kommt, was er haben will
- Ad-hoc-Formulierung: Benutzer soll Anfrage formulieren können, ohne vollständiges Programm schreiben zu müssen
Anfragesprachen
- im Relationenmodell: Anfragen durch Operationen einer Algebra, eines Kalküls oder einer Anfragesprache stellen
- Entwicklung:
- spätere Techniken: regelbasierte Anfragesprachen (deskriptiv, erlauben Rekursion)
- im Netzwerk-Modell, hierarchischen Modell: keine Anfragesprachen, nur navigierende Operationen
- in objektorientierten Datenbankmodellen: Erweiterungen relat. Anfragesprachen, z.B. OQL
Jutta Goeers
Tue May 27 09:59:36 MET DST 1997