Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Datenbanksysteme für FÜ WS 2004/2005 Seite 1 Worzyk FH Anhalt Datenintegrität Referentielle Integrität create table Intgegritätsregeln.

Ähnliche Präsentationen


Präsentation zum Thema: "Datenbanksysteme für FÜ WS 2004/2005 Seite 1 Worzyk FH Anhalt Datenintegrität Referentielle Integrität create table Intgegritätsregeln."—  Präsentation transkript:

1 Datenbanksysteme für FÜ WS 2004/2005 Seite 1 Worzyk FH Anhalt Datenintegrität Referentielle Integrität create table Intgegritätsregeln

2 Datenbanksysteme für FÜ WS 2004/2005 Seite 2 Worzyk FH Anhalt Referenzielle Integrität Stehen zwei Relationen so miteinander in Beziehung, daß ein (Nicht-)Schlüssel- Attribut der einen Relation das Schlüssel-Attribut der anderen Relation ist, so muß das relationale Datenbanksystem dafür sorgen, daß die Beziehung zwischen den Relationen keinen undefinierten Zustand annimmt.

3 Datenbanksysteme für FÜ WS 2004/2005 Seite 3 Worzyk FH Anhalt Beispiel Der Studiengang ist in der Studenten-Tabelle ein Nicht- Schlüsssel und in Regelstudienzeit-Tabelle ein Schlüssel. Das DBMS muß dies Inhalte der Tabellen konsistent halten.

4 Datenbanksysteme für FÜ WS 2004/2005 Seite 4 Worzyk FH Anhalt Fremdschlüssel Ein Attribut einer Tabelle, welches in einer anderen Tabelle das Schlüsselattribut ist, wird Fremdschlüssel genannt. Das gleiche gilt für eine Menge von Attributen.

5 Datenbanksysteme für FÜ WS 2004/2005 Seite 5 Worzyk FH Anhalt Integritätsregeln Die Zusammenhänge zwischen Tabelleninhalten können der Datenbank bekannt gemacht werden. Die Datenbank sorgt dann dafür, dass diese Regeln beim Einfügen, Ändern und Löschen von Daten eingehalten werden.

6 Datenbanksysteme für FÜ WS 2004/2005 Seite 6 Worzyk FH Anhalt Beispiel Die Matrikel-Nr ist in der Schließkarten-Tabelle ein Nicht-Schlüssel Element

7 Datenbanksysteme für FÜ WS 2004/2005 Seite 7 Worzyk FH Anhalt Integritätsregeln bei DELETE Restricted Delete (Verbotenes Löschen) Ein Student wird exmatrikuliert und sein Eintrag gelöscht. Das ist nur möglich, wenn der Student die Schließkarten abgegeben hat, die ihm Zugang zu Sonderräumen ermöglichen.

8 Datenbanksysteme für FÜ WS 2004/2005 Seite 8 Worzyk FH Anhalt Beispiel Der Student Hans ist exmatrikuliert worden. In der Noten-Tabelle wird seine Matikel-Nr durch null ersetzt.

9 Datenbanksysteme für FÜ WS 2004/2005 Seite 9 Worzyk FH Anhalt Integritätsregeln bei DELETE Nullifies Delete (Nicht-definiert Löschen) Ein Student wird exmatrikuliert und sein Eintrag gelöscht. Die Einträge in seinen Noten werden auf null gesetzt und bleiben so zu statistischen Zwecken erhalten.

10 Datenbanksysteme für FÜ WS 2004/2005 Seite 10 Worzyk FH Anhalt Beispiel Zu jedem Studenten gibt es mindestens eine Adresse.

11 Datenbanksysteme für FÜ WS 2004/2005 Seite 11 Worzyk FH Anhalt Integritätsregeln bei DELETE Cascades Delete (Verschachteltes Löschen): ein Student wird exmatrikuliert und sein Eintrag gelöscht. Dann werden alle dazugehörenden Adressen gelöscht.

12 Datenbanksysteme für FÜ WS 2004/2005 Seite 12 Worzyk FH Anhalt create table CREATE TABLE command ::= CREATE TABLE schema. table (column datatype DEFAULT expr ) table constraint, VollständigeBeschreibung in: Oracle8 SQL Reference Release 8.0

13 Datenbanksysteme für FÜ WS 2004/2005 Seite 13 Worzyk FH Anhalt Tabellen-Integritätsregeln table_constraint::= ) ) CONSTRAINT constraint UNIQUE PRIMARY KEY | ( column, REFERENCES table ON DELETE CASCADE schema. FOREIGN KEY | ( column,, ( column ) CHECK condition

14 Datenbanksysteme für FÜ WS 2004/2005 Seite 14 Worzyk FH Anhalt Anlegen von Tabellen CREATE TABLE ta_studiengang (Studiengang varchar2(20), Regel number(2) NULL, CONSTRAINT pk_studiengang PRIMARY KEY (Studiengang) );

15 Datenbanksysteme für FÜ WS 2004/2005 Seite 15 Worzyk FH Anhalt Anlegen von Tabellen CREATE TABLE ta_student (Matrikel char(5), Name varchar2(10), Adresse varchar2(10) null, Studiengang varchar2(20) null, Semester number(2) null, CONSTRAINT pk_student PRIMARY KEY (Matrikel), CONSTRAINT fk_student FOREIGN KEY (Studiengang) REFERENCES ta_studiengang(Studiengang) );

16 Datenbanksysteme für FÜ WS 2004/2005 Seite 16 Worzyk FH Anhalt Anlegen von Tabellen CREATE TABLE ta_pruefung (Matrikel char(5), Vorlesung varchar2(10), Note number (2,1), CONSTRAINT pk_pruefung PRIMARY KEY (Matrikel, Vorlesung), CONSTRAINT fk_pruefung FOREIGN KEY (Matrikel) REFERENCES ta_student(Matrikel) ON DELETE CASCADE );

17 Datenbanksysteme für FÜ WS 2004/2005 Seite 17 Worzyk FH Anhalt Datenmanipulation INSERT command ::= INSERT INTOtableVALUES (column ), Update command ::= DELETE command ::= VollständigeBeschreibung in: Oacle 8.0: Server SQL Language ReferenceManual DELETE schema. table WHERE condition FROM column = exprSET WHERE condition UPDATEtable

18 Datenbanksysteme für FÜ WS 2004/2005 Seite 18 Worzyk FH Anhalt Integritätsregeln bei INSERT CREATE TABLE ta_studiengang (Studiengang varchar2(20), Regel number(2) NULL, CONSTRAINT pk_studiengang PRIMARY KEY (Studiengang)); CREATE TABLE ta_student (Matrikel char(5), Name varchar2(10), Studiengang varchar2(20) null, CONSTRAINT pk_student PRIMARY KEY (Matrikel), CONSTRAINT fk_student FOREIGN KEY (Studiengang) REFERENCES ta_studiengang(Studiengang)); INSERT INTO ta_studiengang VALUES ('Inf', 9); INSERT INTO ta_student VALUES ('98002','Emil',,'Inf);

19 Datenbanksysteme für FÜ WS 2004/2005 Seite 19 Worzyk FH Anhalt Integritätsregeln bei INSERT SQL> insert into ta_studiengang 2 values ('Inf', 9); SQL> insert into ta_student 2 values('98002','Emil','WH1','FÜ',2); insert into ta_student * FEHLER in Zeile 1: ORA-02291: Verstoß gegen Integritätsregel (WORZYK.FK_STUDENT). Übergeordn. Schlüssel nicht gefunden

20 Datenbanksysteme für FÜ WS 2004/2005 Seite 20 Worzyk FH Anhalt Beispiel ohne Namenskonzept SQL> create table t1(spalte1 number, 2 primary key (spalte1)); SQL> create table t2 (spalte1 char, spalte2 number, 2 foreign key (spalte2) references t1(spalte1)); SQL> insert into t2 values ('a', 1); FEHLER in Zeile 1: ORA-02291: Verstoß gegen Integritätsregel (WORZYK.SYS_C004317). Übergeordn. Schlüssel nicht gefunden

21 Datenbanksysteme für FÜ WS 2004/2005 Seite 21 Worzyk FH Anhalt Integritätsregeln bei DELETE SQL> insert into ta_student 2 values('98001','Jutta','WH1','Inf',2); SQL> insert into ta_pruefung 2 values('98001','Math',1.3); SQL> insert into ta_pruefung 2 values('98001','Prog',2.7); SQL> select * from ta_pruefung; MATRI VORLESUNG NOTE Math 1, Prog 2,7 SQL> delete from ta_student 2 where Matrikel = '98001'; SQL> select * from ta_pruefung; Es wurden keine Zeilen ausgewählt

22 Datenbanksysteme für FÜ WS 2004/2005 Seite 22 Worzyk FH Anhalt Integritätsregeln bei UPDATE SQL> update ta_studiengang set studiengang = 'Informatik' 2 where studiengang = 'Inf'; FEHLER in Zeile 1: ORA-02292: Verstoß gegen Integritätsregel (WORZYK.FK_STUDENT). Untergeordneter Datensatz gefunden. SQL> update ta_student set studiengang = 'Informatik' 2 where studiengang = 'Inf'; FEHLER in Zeile 1: ORA-02291: Verstoß gegen Integritätsregel (WORZYK.FK_STUDENT). Übergeordn. Schlüssel nicht gefunden

23 Datenbanksysteme für FÜ WS 2004/2005 Seite 23 Worzyk FH Anhalt Anelgen und Löschen von Tabellen DROP TABLE ta_student; DROP TABLE ta_studiengang; CREATE TABLE ta_studiengang Studiengang varchar2(20), Regel number(2) NULL, CONSTRAINT pk_studiengang PRIMARY KEY (Studiengang)); CREATE TABLE ta_student (Matrikel char(5), Studiengang varchar2(20) null, CONSTRAINT pk_student PRIMARY KEY (Matrikel), CONSTRAINT fk_student FOREIGN KEY (Studiengang) REFERENCES ta_studiengang(Studiengang));

24 Datenbanksysteme für FÜ WS 2004/2005 Seite 24 Worzyk FH Anhalt CHECK CREATE TABLE ta_pruefung (Matrikel char(5), Vorlesung varchar2(10), Note number (2,1), CONSTRAINT pk_pruefung PRIMARY KEY (Matrikel, Vorlesung), CONSTRAINT fk_pruefung FOREIGN KEY (Matrikel) REFERENCES ta_student(Matrikel) ON DELETE CASCADE, CONSTRAINT check_note CHECK (note in (1.0, 1.3, 1.7, 2.0, 2.3, 2.7, 3.0)) );

25 Datenbanksysteme für FÜ WS 2004/2005 Seite 25 Worzyk FH Anhalt CHECK Beispiel SQL> insert into ta_pruefung values('98001','Prog',3.7); FEHLER in Zeile 1: ORA-02290: Verstoß gegen CHECK-Regel (WORZYK.CHECK_NOTE)

26 Datenbanksysteme für FÜ WS 2004/2005 Seite 26 Worzyk FH Anhalt Zusammenfassung Referentielle Integrität sorgt für Datenkonsistenz create table kann Integritätsregeln definieren Beispiele für –insert –delete –update


Herunterladen ppt "Datenbanksysteme für FÜ WS 2004/2005 Seite 1 Worzyk FH Anhalt Datenintegrität Referentielle Integrität create table Intgegritätsregeln."

Ähnliche Präsentationen


Google-Anzeigen