Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

9 Integritätsbedingungen (Constraints) 11-2 Ziele Beschreiben von Constraints Erzeugung und Pflege von Constraints Beschreiben von Constraints Erzeugung.

Ähnliche Präsentationen


Präsentation zum Thema: "9 Integritätsbedingungen (Constraints) 11-2 Ziele Beschreiben von Constraints Erzeugung und Pflege von Constraints Beschreiben von Constraints Erzeugung."—  Präsentation transkript:

1

2 9 Integritätsbedingungen (Constraints)

3 11-2 Ziele Beschreiben von Constraints Erzeugung und Pflege von Constraints Beschreiben von Constraints Erzeugung und Pflege von Constraints

4 11-3 Was sind Constraints? Constraints kontrollieren Regeln auf der Ebene von Tabellen. Constraints verhindern die Löschung von Tabellen, wenn es dort Abhängigkeiten gibt. Die folgenden Constrainttypen sind in Oracle vorhanden: – NOT NULL – UNIQUE – PRIMARY KEY – FOREIGN KEY – CHECK Constraints kontrollieren Regeln auf der Ebene von Tabellen. Constraints verhindern die Löschung von Tabellen, wenn es dort Abhängigkeiten gibt. Die folgenden Constrainttypen sind in Oracle vorhanden: – NOT NULL – UNIQUE – PRIMARY KEY – FOREIGN KEY – CHECK

5 11-4 Constraint Richtlinien Constraints können benannt werden, oder der Oracle Server generiert einen Namen im SYS_Cn Format. Erzeugen eines Constraints: – Zum Zeitpunkt, wenn die Tabelle erzeugt wird. – Nach Erzeugung der Tabelle. Definiere ein Constraint auf Spalten- oder Tabellenebene. Constraints im Data Dictionary verzeichnet. Constraints können benannt werden, oder der Oracle Server generiert einen Namen im SYS_Cn Format. Erzeugen eines Constraints: – Zum Zeitpunkt, wenn die Tabelle erzeugt wird. – Nach Erzeugung der Tabelle. Definiere ein Constraint auf Spalten- oder Tabellenebene. Constraints im Data Dictionary verzeichnet.

6 11-5 Definition von Constraints CREATE TABLE [schema.]table (column datatype [DEFAULT expr] [column_constraint],... [table_constraint][,...]); CREATE TABLE emp( empno NUMBER(4), ename VARCHAR2(10),... deptno NUMBER(7,2) NOT NULL, CONSTRAINT emp_empno_pk PRIMARY KEY (EMPNO));

7 11-6 Definition von Constraints Spalten-Constraint Tabellen-Constraint Spalten-Constraint Tabellen-Constraint column [CONSTRAINT constraint_name] constraint_type, column,... [CONSTRAINT constraint_name] constraint_type (column,...), column,... [CONSTRAINT constraint_name] constraint_type (column,...),

8 11-7 Das NOT NULL Constraint Verbietet Nullwerte in einer Spalte EMP EMPNO ENAME JOB... COMM DEPTNO 7839KINGPRESIDENT BLAKEMANAGER CLARKMANAGER JONESMANAGER NOT NULL Constraint (keine Zeile darf einen Nullwert in dieser Spalte enthalten) Kein NOT NULL Constraint (eine Zeile kann Null in der Spalte enthalten) NOT NULL Constraint

9 11-8 Das NOT NULL Constraint Definiert auf Spaltenebene SQL> CREATE TABLE emp( 2 empno NUMBER(4), 3enameVARCHAR2(10) NOT NULL, 4jobVARCHAR2(9), 5mgrNUMBER(4), 6hiredateDATE, 7salNUMBER(7,2), 8 commNUMBER(7,2), 9deptnoNUMBER(7,2) NOT NULL);

10 11-9 Das UNIQUE Key Constraint DEPT DEPTNO DNAME LOC ACCOUNTINGNEW YORK 20RESEARCHDALLAS 30SALESCHICAGO 40OPERATIONSBOSTON UNIQUE Key Constraint 50SALESDETROIT 60BOSTON INSERT INTO Nicht erlaubt (DNAME existiert bereits) Nicht erlaubt (DNAME  SALES existiert bereits)Erlaubt

11 11-10 Das UNIQUE Key Constraint Definiert auf Tabellen- oder Spaltenebene SQL> CREATE TABLE dept( 2 deptno NUMBER(2), 3dname VARCHAR2(14), 4loc VARCHAR2(13), 5CONSTRAINT dept_dname_uk UNIQUE(dname));

12 11-11 Das PRIMARY KEY Constraint DEPT DEPTNO DNAME LOC ACCOUNTINGNEW YORK 20RESEARCHDALLAS 30SALESCHICAGO 40OPERATIONSBOSTON PRIMARY KEY INSERT INTO 20MARKETINGDALLAS FINANCENEW YORK Nicht erlaubt (DEPTNO20 existiert bereits) Nicht erlaubt (DEPTNO  20 existiert bereits) Nicht erlaubt (DEPTNO ist null)

13 11-12 Das PRIMARY KEY Constraint Definiert auf Tabellen- oder Spaltenebene SQL> CREATE TABLE dept( 2 deptno NUMBER(2), 3dname VARCHAR2(14), 4loc VARCHAR2(13), 5CONSTRAINT dept_dname_uk UNIQUE (dname), 6CONSTRAINT dept_deptno_pk PRIMARY KEY(deptno));

14 11-13 Das FOREIGN KEY Constraint DEPT DEPTNO DNAME LOC ACCOUNTINGNEW YORK 20RESEARCHDALLAS... PRIMARY KEY EMP EMPNO ENAME JOB... COMM DEPTNO 7839KINGPRESIDENT BLAKEMANAGER FOREIGN KEY 7571FORDMANAGER FORDMANAGER INSERT INTO Nicht erlaubt (DEPTNO9 existiert nicht in der DEPT Tabelle) Nicht erlaubt (DEPTNO  9 existiert nicht in der DEPT Tabelle)Erlaubt

15 11-14 Das FOREIGN KEY Constraint Definiert auf Tabellen- oder Spaltenebene SQL> CREATE TABLE emp( 2 empno NUMBER(4), 3enameVARCHAR2(10) NOT NULL, 4jobVARCHAR2(9), 5mgrNUMBER(4), 6hiredateDATE, 7salNUMBER(7,2), 8 commNUMBER(7,2), 9deptnoNUMBER(7,2) NOT NULL, 10CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno) 11REFERENCES dept (deptno));

16 11-15 FOREIGN KEY Constraint Schlüsselwörter FOREIGN KEY Definiert die Spalte in der Detailtabelle als Fremdschlüssel auf Tabellenebene REFERENCES Identifiziert Tabelle und Spalte in der Mastertabelle ON DELETE CASCADE Beim Löschen in der Mastertabelle werden die davon abhängigen Zeilen in der Detailtabelle gelöscht FOREIGN KEY Definiert die Spalte in der Detailtabelle als Fremdschlüssel auf Tabellenebene REFERENCES Identifiziert Tabelle und Spalte in der Mastertabelle ON DELETE CASCADE Beim Löschen in der Mastertabelle werden die davon abhängigen Zeilen in der Detailtabelle gelöscht

17 11-16 Das CHECK Constraint Definiert eine Bedingung, die jede Zeile erfüllen muß Bestimmte Ausdrücke sind nicht erlaubt: – Verwendung von CURRVAL, NEXTVAL, LEVEL und ROWNUM Pseudospalten – Aufruf von SYSDATE, UID, USER, etc. – Anfragen, die auf andere Zeilen verweisen Definiert eine Bedingung, die jede Zeile erfüllen muß Bestimmte Ausdrücke sind nicht erlaubt: – Verwendung von CURRVAL, NEXTVAL, LEVEL und ROWNUM Pseudospalten – Aufruf von SYSDATE, UID, USER, etc. – Anfragen, die auf andere Zeilen verweisen..., deptnoNUMBER(2), CONSTRAINT emp_deptno_ck CHECK (DEPTNO BETWEEN 10 AND 99),...

18 11-17 Hinzufügen eines Constraints Hinzufügen (ADD) oder Löschen (DROP) aber keine Modifikation eines Constraints Einschalten (ENABLE) oder Ausschal- ten (DISABLE) von Constraints Hinzufügen (ADD) oder Löschen (DROP) aber keine Modifikation eines Constraints Einschalten (ENABLE) oder Ausschal- ten (DISABLE) von Constraints ALTER TABLE table ADD [CONSTRAINT constraint] type (column); ALTER TABLE table ADD [CONSTRAINT constraint] type (column);

19 11-18 Hinzufügen von Constraints Füge ein FOREIGN KEY Constraint zur EMP Tabelle hinzu, um auszudrücken, daß ein Manager als ein gültiger Angestellter in der EMP Tabelle existiert. SQL> ALTER TABLE emp 2 ADD CONSTRAINT emp_mgr_fk 3 FOREIGN KEY(mgr) REFERENCES emp(empno); Table altered.

20 11-19 Löschen eines Constraint Lösche das Manager-Constraint aus der EMP Tabelle. SQL> ALTER TABLE emp 2 DROP CONSTRAINT emp_mgr_fk; Table altered. SQL> ALTER TABLE emp 2 DROP CONSTRAINT emp_mgr_fk; Table altered. Lösche das PRIMARY KEY Constraint auf der DEPT Tabelle und lösche das assoziierte FOREIGN KEY Constraint auf der Spalte EMP.DEPTNO Spalte. SQL> ALTER TABLEdept 2 DROP PRIMARY KEY CASCADE; Table altered. SQL> ALTER TABLEdept 2 DROP PRIMARY KEY CASCADE; Table altered.

21 11-20 Zusammenfassung Arten von Constraints: – NOT NULL – UNIQUE – PRIMARY KEY – FOREIGN KEY – CHECK Arten von Constraints: – NOT NULL – UNIQUE – PRIMARY KEY – FOREIGN KEY – CHECK


Herunterladen ppt "9 Integritätsbedingungen (Constraints) 11-2 Ziele Beschreiben von Constraints Erzeugung und Pflege von Constraints Beschreiben von Constraints Erzeugung."

Ähnliche Präsentationen


Google-Anzeigen