Formaler Datenbankentwurf - Informatixx
Formaler Datenbankentwurf - Informatixx
Formaler Datenbankentwurf - Informatixx
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
c Professor Dr. Georg Lausen, 2001: Vorlesung Datenbanken SQL: statische Integrität.8<br />
Bemerkungen:<br />
Eine Basistabellenbedingung zu einer Tabelle T der Form CHECK (Y) ist äquivalent<br />
zu der allgemeinen Bedingung<br />
NOT EXISTS (SELECT * FROM T WHERE NOT (Y))<br />
Solange T leer ist, ist somit jede beliebige Bedingung Y, sowohl beispielsweise<br />
widersprüchliche oder auch Bedingungen der Form “T nicht leer” immer erfüllt.<br />
c Professor Dr. Georg Lausen, 2001: Vorlesung Datenbanken SQL: statische Integrität.10<br />
Beispiel:<br />
Jedes (gelieferte) Teil muß in mindestens 100 Einheiten geliefert werden:<br />
CHECK (100 =< ALL<br />
(SELECT SUM(Menge) FROM LT GROUP BY TNr));<br />
Wird diese Integritätsbedingung als Basistabellenbedingung von LT realisiert,<br />
so ist eine Verletzung bei Löschungen von Tupeln in LT möglich.<br />
Jedes Teil wird auch geliefert:<br />
CHECK (TNr IN<br />
(SELECT TNr FROM LT));<br />
Wird diese Integritätsbedingung als Spaltenbedingung zu TNr bzgl. Teil<br />
realisiert, so ist eine Verletzung bei Änderung von LT möglich.<br />
c Professor Dr. Georg Lausen, 2001: Vorlesung Datenbanken SQL: statische Integrität.9<br />
Zusammenfassung:<br />
Typ wo deklariert wann überprüft Gültigkeit<br />
Spalten- Attribut einer bei insert eines Tupels in die Basistabelle, nicht garantiert bei<br />
bedingung Basistabelle bzw. update der betreffenden Spalte Verwendung von<br />
Teilanfragen<br />
Basistabellen- Basistabelle bei insert eines Tupels in die Basistabelle, nicht garantiert bei<br />
bedingung bzw. update eines Tupels Verwendung von<br />
Teilanfragen<br />
allgemeine Datenbank- bei Änderung des Zustands irgendeiner garantiert<br />
Bedingung schema Relation des Schemas<br />
c Professor Dr. Georg Lausen, 2001: Vorlesung Datenbanken SQL: statische Integrität.11<br />
Beispiel:<br />
Fremdschlüsselbedingungen (referentielle Integrität)<br />
CREATE TABLE LT ...<br />
PRIMARY KEY (LNr, TNr),<br />
FOREIGN KEY (LNr) REFERENCES Lieferant<br />
FOREIGN KEY (TNr) REFERENCES Teil<br />
Fremdschlüsselbedingungen sind formal Inklusionsabhängigkeiten: zu jedem<br />
von NULL verschiedenen Fremdschlüsselwert der referenzierenden Tabelle, der<br />
C- (child-) Tabelle, existiert ein entsprechender Schlüsselwert der referenzierten<br />
Tabelle, der P- (parent-) Tabelle.