09.11.2012 Aufrufe

Skript Datenbanken I - Praktische Informatik Universität Kassel

Skript Datenbanken I - Praktische Informatik Universität Kassel

Skript Datenbanken I - Praktische Informatik Universität Kassel

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.

Kapitel 4 – Die relationale Abfragesprache SQL 83<br />

weder LOC noch ID haben UNIQUE-Klausel! Jetzt referentielle<br />

Integrität über mehrere Spalten<br />

CREATE TABLE EMPLOYEE<br />

(NUMBER CHAR(5),<br />

ELOC CHAR(5),<br />

DEPT_ID CHAR(5),<br />

FOREIGN KEY (ELOC, DEPT_ID) REFERENCES<br />

DEPARTMENT(LOC, ID))<br />

Einfügen oder Ändern einer Angestelltenzeile nur, wenn entweder<br />

ELOC oder DEPT_ID ungleich DB-Null und der Wert ungleich<br />

DB-Null existiert in DEPARTMENT.<br />

• geschachteltes SELECT in FROM-Klausel (in-line View)<br />

• Sichtenmaterialisierung (View einer View mit berechneten und<br />

umsortierten Spalten und Zeilen)<br />

• Tabellenkonstanten<br />

• SET SCHEMA Anweisung erzeugt Gültigkeitsbereich (Scope) für<br />

Namen<br />

• Unterabfragen in CHECK-Klausel, z. B.<br />

CREATE TABLE LKW<br />

(GROESSE INTEGER,<br />

KFZNR CHAR(5) PRIMARY KEY)<br />

CREATE TABLE PKW<br />

(MODEL CHAR(10),<br />

KFZNR CHAR(5) PRIMARY KEY,<br />

CHECK(NOT EXISTS SELECT * FROM LKW<br />

WHERE PKW.KFZNR = LKW.KFZNR))<br />

verlangt, daß nach jeder Änderung geprüft wird, daher kann Einschränkung<br />

(engl. constraint) an Tabelle LKW oder PKW hängen.<br />

• daher auch „freistehende“ Zusicherungen (engl. assertions), z. B.<br />

CREATE ASSERTION KFZNR_REGEL<br />

CHECK(NOT EXISTS SELECT * FROM PKW, LKW<br />

WHERE PKW.KFZNR = LKW.KFZNR)<br />

• An- und Abschalten von Zusicherungen

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!