27.12.2012 Aufrufe

Formaler Datenbankentwurf - Informatixx

Formaler Datenbankentwurf - Informatixx

Formaler Datenbankentwurf - Informatixx

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!