## Änderbare Join-View-Tabelle

Der Begriff der änderbaren Join-View-Tabelle spielt eine wichtige Rolle. Daher soll an dieser Stelle neben der bereits bekannten allgemeinen Definition einer änderbaren Join-View-Tabelle eventuell notwendiges Detailwissen dargestellt werden.

Siehe auch:

CREATE VIEW-Anweisung (create_view_statement)

### Erläuterung

Es wird ohne Beschränkung der Allgemeinheit davon ausgegangen, dass die Definition der Join-View-Tabelle V in der FROM-Klausel die Basistabellen T1,...,Tn (n>1) enthält.

● Seien Ti und Tj zwei von V selektierte Basistabellen.
Rij sei eine referentielle CONSTRAINT-Definition von Ti und Tj, in der Ti die referenzierende Tabelle und Tj die referenzierte Tabelle (referenced_table) ist.
PKj1,...,PKjm seien die Schlüsselspalten von Tj.
FKi1,...,FKim seien die korrespondierenden Fremdschlüsselspalten von Ti.
Die referentielle CONSTRAINT-Definition ist für V relevant, wenn das JOIN-Prädikat (PKj1=FKi1 AND ... AND PKjm=FKjm) Teil der Suchbedingung von V ist.

● Seien Ti und Tj zwei von V selektierte Basistabellen und Rij eine für V relevante referentielle CONSTRAINT-Definition von Ti und Tj.
Ti ist Vorgänger von Tj (Ti<Tj), wenn Rij die einzige für V relevante referentielle CONSTRAINT-Definition von Ti und Tj ist.

● Sei Rij eine für V relevante referentielle CONSTRAINT-Definition.
Rij definiert eine 1:1 Beziehung zwischen Ti und Tj, wenn die Fremdschlüsselspalten von Rij die Schlüsselspalten von Ti bilden.

● Sei Rij eine für V relevante referentielle CONSTRAINT-Definition und s eine Schlüsselspalte von Tj oder eine Fremdschlüsselspalte dieser referentiellen CONSTRAINT-Definition von Ti. Die Spalte s lässt sich aus V ableiten, wenn genau eine der folgenden Bedingungen zutrifft:
- s ist eine selektierte Spalte von V.
- Es existiert eine Schlüsselspalte oder eine Fremdschlüsselspalte s' einer für V relevanten referentiellen CONSTRAINT-Definition, die sich aus V ableiten lässt, und das JOIN-Prädikat s=s' ist Teil der Suchbedingung von V.

● Eine Spalte v von V korrespondiert mit einer Spalte s einer zugrundeliegenden Basistabelle T, wenn eine der folgenden Bedingungen erfüllt ist
- v ist i-te Spalte von V und s ist i-te selektierte Spalte von V
- v korrespondiert mit einer Schlüsselspalte PK von Tj einer für V relevanten referentiellen CONSTRAINT-Definition Rij und s ist die PK zugeordnete Fremdschlüsselspalte von Ti
- v korrespondiert mit einer Fremdschlüsselspalte FK von Ti einer für V relevanten referentiellen CONSTRAINT-Bedingung Rij und s ist die FK zugeordnete Schlüsselspalte von Tj.

Eine Join-View-Tabelle V ist änderbar, wenn die folgenden Bedingungen erfüllt sind:

● Jede Basistabelle Ti (1 <= i <= n) besitzt einen vom Benutzer definierten Schlüssel.

● Das Datenbanksystem muss in der Lage sein, eine Abarbeitungsreihenfolge der zugrundeliegenden Basistabellen zu bestimmen, d.h., es muss eine Anordnung Ti1,...,Tin der Tabellen T1,...,Tn existieren, so dass aus Tij<Tik folgt, dass j < k ist. Die Spalten von V, aus denen sich die Schlüsselspalten von Ti1 ableiten lassen, bilden den Schlüssel von V. Ti1 heißt Schlüsseltabelle von V. Die Anordnung der Tabellen muss nicht eindeutig sein.

● Ausgehend von einer Zeile der Schlüsseltabelle von V, muss es möglich sein, genau eine Zeile jeder zugrundeliegenden Basistabelle zuzuordnen, d.h. für jede Tabelle Tij (1 <= j <= n) gibt es eine Folge von Tabellen Ti1,...,Tij, so dass Ti1 < .. < Tij gilt.
Diese Folge ist für jede von V referenzierte Basistabelle eindeutig.

● Die Schlüsselspalten und Fremdschlüsselspalten aller für V relevanten referentiellen CONSTRAINT-Definitionen müssen aus den Spalten von V ableitbar sein.

● Die für die Erkennung der Relevanz einer referentiellen CONSTRAINT-Definition wichtigen JOIN-Prädikate müssen in Teilen der Suchbedingung liegen, die mit WITH CHECK OPTION definiert sind. Wenn die View-Definition nur Basistabellen enthält, so heißt das, dass die View-Tabelle mit WITH CHECK OPTION definiert sein muss. Ist eine View-Tabelle V aus einer View-Tabelle V' abgeleitet und wurde V' mit WITH CHECK OPTION definiert, so erbt V die CHECK OPTION für den Teil der Qualifikation, der durch V' vererbt wird.