P8000/WEGA/contrib/ingres/dbs/sys/man/view

55 lines
2.4 KiB
Plaintext

VIEW(QL) DABA16 VIEW(QL)
NAME
view - Definieren einer Sicht (virtuellen Relation)
UEBERSICHT
define view name (target_list) [ where qual ]
BESCHREIBUNG
Die Syntax der view Anweisung ist die der retrieve into An-
weisung fast identisch. Die Daten werden jedoch physisch
abgelet. Stattdessen wird die Definition gespeichert.
Wenn die Sicht mit dem Namen name spaeter benutzt wird,
erfolgt die Konvertierung der Anfrage, um mit den in
der target_list spezifizierten Domaenen zu operieren.
Alle Formen des Wiederauffindens auf die Sicht werden voll-
staendig unterstuetzt. Nur eine begrenzte Menge von Aende-
rungen auf Sichten werden zugelassen, weil Anomalien auftre-
ten duerfen. Keine Aenderungen auf Sichten, die sich auf
mehr als eine Relation beziehen, sind moeglich. Es werden
keine Aenderungen unterstuetzt, die auf Domaenen ausgefuehrt
werden sollen, die in der Qualifikation der Anfrage enthal-
ten sind und nicht auf solche, die sich auf Domaenen der
Sicht beziehen, die nicht in einfache Attribute ueberfuehrt
werden koennen.
Allgemein gilt, dass Aenderungen dann und nur dann unter-
stuetzt werden, wenn garantiert ist (ohne Pruefung der ak-
tuellen Daten), dass das Ergebnis der Aenderung der Sicht
identisch zur Aenderung der korrespondierenden Basis-
Relationen ist.
Sichten koennen auf DBA- und private Relationen erstellt
werden. Jeder kann eine Sicht definieren. Ob sie bei der
Abarbeitung einer Anfrage benutzt wird, ist davon abhaengig,
ob die entsprechenden Befugnisse vorliegen.
Define erstellt Eintraege fuer Sichten, Befugnisse und In-
tegritaetsbedingungen nur, wenn die Anfragemodifikations-
Unterstuetzung (QRYMOD, Query Modification) eingeschaltet
wurde (Sollte sie stets!).
BEISPIEL[E]
range of p is personal
range of a is abt
define view persabt (pname = p.name, p.gehalt, aname =
a.name)
where p.leiter = a.leiter
SIEHE AUCH
retrieve(ql), destroy(ql)