Datenintegrität

 Datenbank

 24 views
of 26
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Description
Datenintegrität ã Referentielle Integrität ã create table ã Intgegritätsregeln Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 1…
Share
Transcript
Datenintegrität • Referentielle Integrität • create table • Intgegritätsregeln Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 1 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. Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 2 Beispiel M atr Name Adr Stg. Sem Stg. Regel 98001 Jutta WH1 Inf 2 Inf 9 98002 Emil WH1 FÜ 4 FÜ 8 98003 Fritz WH4 Inf 4 97001 Anna WH5 FÜ 2 IM 10 97002 Else WH2 IM 4 98004 Hans WH4 IM 2 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. Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 3 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. Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 4 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. Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 5 Beispiel M atr Name Adr Stg. Sem Raum Bezeichnung M atr 98001 Jutta WH1 Inf 2 Nr 98002 Emil WH1 FÜ 4 08-012 M ultimedia 98001 98003 Fritz WH4 Inf 4 Lab 97001 Anna WH5 FÜ 2 09-012 Audio Lab 98001 97002 Else WH2 IM 4 09-012 Audio Lab 98002 98004 Hans WH4 IM 2 09-116 Datenbank 98003 Lab Die Matrikel-Nr ist in der „Schließkarten-Tabelle“ ein „Nicht-Schlüssel“ Element Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 6 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. Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 7 Beispiel M atr Vor- Stg Note M atr Name Adr Stg. Sem lesung 98001 Jutta WH1 Inf 2 98001 M ath Inf 1.3 98002 Emil WH1 FÜ 4 98002 Prog FÜ 1.7 98003 Fritz WH4 Inf 4 98003 DatOrg Inf 2.0 97001 Anna WH5 FÜ 2 97001 M ath FÜ 4.0 97002 Else WH2 IM 4 97002 Prog IM 2.3 null DBS1 Inf 4.7 null DBS1 IM 2.0 98001 Prog Inf 2.7 Der Student Hans ist exmatrikuliert worden. In der „Noten-Tabelle“ wird seine Matikel-Nr durch „null“ ersetzt. Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 8 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. Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 9 Beispiel M atr Name Stg. Sem M atr Nr Strasse Ort 98001 Jutta Inf 2 98001 1 Bernburger Str 57/216 06366 Köthen 98001 2 Bahnhofstraße 1 39104 M agdeburg 98002 Emil FÜ 4 98002 1 M agdeburger Str 1 06366 Köthen 98003 Fritz Inf 4 98003 1 Bernburger Str 57/315 06366 Köthen 97001 Anna FÜ 2 98004 1 Hafenstraße 2 06385 Aken 97002 Else IM 4 97001 1 M agdeburger Str 3 06366 Köthen 98004 Hans IM 2 97001 2 Waldstraße 2 30163 Hannover 97002 1 M agdeburger Str 2 39240 Calbe 98004 1 Bernburger Str 57/216 06366 Köthen Zu jedem Studenten gibt es mindestens eine Adresse. Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 10 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. Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 11 create table CREATE TABLE command ::= CREATE TABLE table schema. , ( column datatype ) DEFAULT expr table constraint VollständigeBeschreibung in: Oracle8 SQL Reference Release 8.0 Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 12 Tabellen-Integritätsregeln table_constraint::= CONSTRAINT constraint , UNIQUE | ( column ) PRIMARY KEY , FOREIGN ) | ( column REFERENCES table KEY , schema. ON DELETE ( column ) CASCADE CHECK condition Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 13 Anlegen von Tabellen CREATE TABLE ta_studiengang (Studiengang varchar2(20), Regel number(2) NULL, CONSTRAINT pk_studiengang PRIMARY KEY (Studiengang) ); Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 14 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) ); Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 15 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 ); Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 16 Datenmanipulation INSERT command ::= , INSERT INTO table VALUES ( column ) Update command ::= UPDATE table SET column = expr WHERE condition DELETE command ::= DELETE table FROM schema. WHERE condition VollständigeBeschreibung in: Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Oacle 8.0: Server SQL Language ReferenceManual Seite 17 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‘); Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 18 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 Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 19 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 Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 20 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 ----- ---------- --------- 98001 Math 1,3 98001 Prog 2,7 SQL> delete from ta_student 2 where Matrikel = '98001'; SQL> select * from ta_pruefung; Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Es wurden keine Zeilen ausgewählt Seite 21 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 Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 22 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)); Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 23 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)) ); Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 24 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) Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 25 Zusammenfassung • Referentielle Integrität sorgt für Datenkonsistenz • create table kann Integritätsregeln definieren • Beispiele für – insert – delete – update Worzyk Datenbanksysteme für FÜ WS 2004/2005 FH Anhalt Seite 26
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks