Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.



Ähnliche Dokumente
Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Referentielle Integrität

Referentielle Integrität

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

Datenintegrität. Bisherige Integritätsbedingungen

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung

Datenintegrität. Kapitel 5 1

Datenintegrität. Kapitel 5 1

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

Datenbanken. Datenintegrität + Datenschutz. Tobias Galliat. Sommersemester 2012

Datenintegrität. Referentielle Integrität. Referentielle Integrität in SQL. Bisherige Integritätsbedingungen

Kapitel 8: Datenintegrität

Datenbanksysteme 2013

VO Datenmodellierung. Katrin Seyr

Übung 3. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017)

Kapitel 5 Dr. Jérôme Kunegis. SQL: Grundlagen. WeST Institut für Web Science & Technologien

Datenbanksysteme SS 2007

Vorlesung Datenbanksysteme vom

Grundlagen des relationalen Modells

Vorlesungen. Studenten. hören. Grundzüge. Fichte Glaube und Wissen Jonas

Wiederholung: Relationale Algebra

Relationale Anfragesprachen

Entity Relationship Modell

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Wiederholung: Relationale Algebra

Fortsetzung: Projektion Selektion. NULL Werte

Architektur eines DBMS Logische Optimierung

Transaktionsverwaltung read write read write

Studierende, die diese Vorlesung hören, haben sich auch für folgende Lehrveranstaltungen interessiert:

Grundlagen des relationalen l Modells

Wiederholung VU Datenmodellierung

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Wiederholung VU Datenmodellierung

Wie definieren wir das Relationen-

Datenbanksysteme 2009

Referentielle Integrität Fremdschlüssel verweisen auf Tupel einer Relation z.b. gelesenvon in Vorlesungen verweist auf Tupel in Professoren referentie

Teil 1: Deduktive Datenbanken Gerd Stumme Christoph Schmitz

DATENBANKSYSTEME: SQL

Fortsetzung: Kreuzprodukt, Inner Join. Sortierung. Existenzquantor, Mengenvergleich Gruppierung, Aggregate Cast-Operator

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #5. SQL (Teil 3)

Vorlesungen. Studenten. hören. Grundzüge. Fichte Glaube und Wissen Jonas

Referenzielle Integrität SQL

Datenbanksysteme SS 2007

6. Datenintegrität. Integritätsbedingungen

Das relationale Modell

Relationale Darstellung von Entitytypen. Uni-Schema. Grundlagen des relationalen Modells

Grundlagen des relationalen Modells

Grundlagen des relationalen Modells

Grundlagen des relationalen Modells

Anfragebearbeitung 1. Vorlesung Datenbanksysteme vom

Kapitel 7 Dr. Jérôme Kunegis. Logische Kalküle. WeST Web Science & Technologies

Grundlagen des relationalen Modells Seien D 1 ;D 2 ;:::;D n Domänen (Wertebereiche) Relation: R D 1 :::D n Bsp.: Telefonbuch string string integer Tup

Grundlagen des relationalen Modells

SWE4 Slide 1. Software-Engineering. Vorlesung 4 vom Sebastian Iwanowski FH Wedel

Grundlagen des relationalen Modells

Relationale Kalküle. Grundlagen der Datenbanken. Dr. Jérôme Kunegis Wintersemester 2013/14

Termin 12: Datenbanksysteme (2) - Einführung in SQL

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

SQL: statische Integrität

Datenbanksysteme SS 2007

<is web> Information Systems & Semantic Web University of Koblenz Landau, Germany

Historische Entwicklung relationaler DBMS. Ted Codd: A Relational Model of Data for Large Shared Data Banks, Comm. ACM, Juni 1970, S.

Software-Engineering

Software-Engineering

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Grundlagen des relationalen Modells

Objektrelationale Datenbanken

Das relationale Modell

Informatik II. Vorlesung am D-BAUG der ETH Zürich. Dr. Felix Friedrich und Dr. Hermann Lehner

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Datenbanken: Datenintegrität.

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, 2017 Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Informatik II Vorlesung am D-BAUG der ETH Zürich. Vorlesung 12, Datenbanksysteme: Datendefinition in SQL, Kompliziertere Datenbankabfragen

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Datenintegrität, Views und Zugriffsrechte

Vorlesung. Grundlagen betrieblicher Informationssysteme. Prof. Dr. Hans Czap. Lehrstuhl für Wirtschaftsinformatik I

Acknowledgments. Datenmodellierung VU , WS Das Relationale Modell: Begriffsklärung. Übersicht. Das relationale Modell

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Konstante Relationen

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

Schlüssel bei temporalen Daten im relationalen Modell

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Bedingungen über Werte Statische Integrität. CHECK-Klausel

Web Science & Technologies University of Koblenz Landau. Grundlagen der Datenbanken. Integrität. Dr. Jérôme Kunegis Wintersemester 2013/14

5.3 Datenänderung/-zugriff mit SQL (DML)

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.

Relationale Abfragesprachen

Objektorientierte Datenbanken

DATENBANKSYSTEME: DAS ENTITY RELATIONSHIP MODELL UND DAS RELATIONALE MODELL

Transkript:

Datenintegrität Arten von Integritätsbedingungen Statische Integritätsbedingungen Referentielle Integrität Integritätsbedingungen in SQL Trigger 1

Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen ist die wichtigste Aufgabe des DB- Administrators! 2

Statische vs. dynamische Integritätsbedingungen Statische Integritätsbedingungen Bedingungen an (jeden) einzelnen Zustand der Datenbasis dynamische Integritätsbedingungen Bedingungen an Folgen von Datenbankzuständen Transitionale Bedingungen: Übergang zwischen zwei Zuständen Temporale Bedingungen: Zustandsfolgen beliebiger Länge 3

Statische vs. dynamische Integritätsbedingungen Statische Integritätsbedingungen Die in der Relation hören referenzierten Studenten und Vorlesungen müssen als Tupel in den entsprechenden Relationen existieren Vorlesungen müssen mindestens drei Hörer haben dynamische Integritätsbedingungen 1. Transitionale Bedingungen Die Semesterzahl eines Studenten darf nur steigen Professoren dürfen nicht degradiert werden 2. Temporale Bedingungen Studenten müssen mindestens alle zwei Semester eine Prüfung ablegen Temporale Bedingungen können auf transitionale zurückgeführt werden - daher betrachten wir nur transitionale Bedingungen. Prüfe zu Beginn jedes Semesters (globale Relation lfdsemester), wann jeder Student seine letzte Prüfung abgelegt hat 4

Statische Integritätsbedingungen Attributdomänen Schlüssel Kandidatenschlüssel Primärschlüssel Fremdschlüssel Beziehungskardinalitäten Inklusion bei Generalisierung Referentielle Integrität 5

Referentielle Integrität Fremdschlüssel verweisen auf Tupel einer Relation z.b. gelesenvon in Vorlesungen verweist auf Tupel in Professoren referentielle Integrität Fremdschlüssel müssen auf existierende Tupel verweisen oder einen Nullwert enthalten 6

Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 2126 Russel C4 232 2127 Kopernikus C3 310 2133 Popper C3 52 2134 Augustinus C3 309 2136 Curie C4 36 2137 Kant C4 7 voraussetzen Vorgänger Nachfolger 5001 5041 5001 5043 5001 5049 5041 5216 5043 5052 5041 5052 5052 5259 prüfen MatrNr VorlNr PersNr Note 28106 5001 2126 1 25403 5041 2125 2 27550 4630 2137 2 Studenten MatrNr Name Semester 24002 Xenokrates 18 25403 Jonas 12 26120 Fichte 10 26830 Aristoxenos 8 27550 Schopenhauer 6 28106 Carnap 3 29120 Theophrastos 2 29555 Feuerbach 2 hören MatrNr VorlNr 26120 5001 27550 5001 27550 4052 28106 5041 28106 5052 28106 5216 28106 5259 29120 5001 29120 5041 29120 5049 29555 5022 25403 5022 Vorlesungen VorlNr Titel SWS gelesen Von 5001 Grundzüge 4 2137 5041 Ethik 4 2125 5043 Erkenntnistheorie 3 2126 5049 Mäeutik 2 2125 4052 Logik 4 2125 5052 Wissenschaftstheo rie 3 2126 5216 Bioethik 2 2126 5259 Der Wiener Kreis 2 2133 5022 Glaube und Wissen 2 2134 4630 Die 3 Kritiken 4 2137 Assistenten PersNr Name Fachgebiet Boss 3002 Platon Ideenlehre 2125 3003 Aristoteles Syllogistik 2125 3004 Wittgenstein Sprachtheorie 2126 3005 Rhetikus Planetenbewegung 2127 3006 Newton Keplersche Gesetze 2127 7

Referentielle Integrität in SQL Kandidatenschlüssel: unique Primärschlüssel: primary key Fremdschlüssel: foreign key Beispiel: create table R ( integer primary key,... ); create table S (..., integer references R ); 8

Einhaltung referentieller Integrität Änderung von referenzierten Daten Default: Zurückweisen der Änderungsoperation Propagieren der Änderungen: cascade Verweise auf Nullwert setzen: set null 9

Einhaltung referentieller Integrität Originalzustand S R 1 1 2 2 Änderungsoperationen update R set = ' 1 where = 1 ; delete from R where = 1 ; 10

Kaskadieren S R S R 1 1 ' 1 ' 1 2 2 2 2 create table S (..., integer references R on update cascade ); update R set = ' 1 where = 1 ; 11

Kaskadieren S R S R 1 1 2 2 2 2 create table S (..., integer references R delete from R where = 1 ; on delete cascade ); 12

Auf Null setzen S R S R 1 1 --- ' 1 2 2 2 2 create table S (..., update R integer references R on update set null ); set = ' 1 where = 1 ; 13

Auf Null setzen S R S R 1 1 --- 2 2 2 2 create table S (..., integer references R delete from R where = 1 ; on delete set null ); 14

Kaskadierendes Löschen Sokrates Logik Mäeutik Ethik Schopenhauer Theophrastos Russel Erkenntnistheorie Wissenschaftstheorie Bioethik Carnap 15

Integritätsbedingungen in SQL create table Vorlesungen (..., gelesenvon integer references Professoren on delete cascade); create table hören (..., VorlNr integer references Vorlesungen on delete cascade); 16

Einfache statische Integritätsbedingungen Wertebereichseinschränkungen... check Semester between 1 and 13 Aufzählungstypen... check Rang in (`C2, `C3, `C4 )... 17

Das Universitätsschema mit Integritätsbedingungen create table Studenten ( MatrNr integer primary key, Name varchar(30) not null, Semester integer check Semester between 1 and 13), create table Professoren ( PersNr integer primary key, Name Rang varchar(30) not null, character(2) check (Rang in (`C2,`C3,`C4 )), Raum integer unique ); 18

create table Assistenten ( PersNr integer primary key, Name varchar(30) not null, Fachgebiet varchar(30), Boss integer, foreign key (Boss) references Professoren on delete set null); create table Vorlesungen ( VorlNr integer primary key, Titel varchar(30), SWS integer, gelesen Von integer references Professoren on delete set null); 19

create table hören ( MatrNr integer references Studenten on delete cascade, VorlNr integer references Vorlesungen on delete cascade, primary key (MatrNr, VorlNr)); create table voraussetzen ( Vorgänger integer references Vorlesungen on delete cascade, Nachfolger integer references Vorlesungen on delete cascade, primary key (Vorgänger, Nachfolger)); 20

create table prüfen ( MatrNr integer references Studenten on delete cascade, VorlNr PersNr Note integer references Vorlesungen, integer references Professoren on delete set null, numeric (2,1) check (Note between 0.7 and 5.0), primary key (MatrNr, VorlNr)); 21

Komplexere Konsistenzbedingungen: Leider selten / noch nicht unterstützt Studenten können sich nur über Vorlesungen prüfen lassen, die sie vorher gehört haben Bei jeder Änderung und Einfügung wird die check- Klausel ausgewertet Operation wird nur durchgeführt, wenn der check true 22

Datenbank-Trigger create trigger keine Degradierung before update on Professoren for each row when (old.rang is not null) begin if :old.rang = 'C3' and :new.rang = 'C2' then :new.rang := 'C3'; end if; if :old.rang = 'C4' then :new.rang := 'C4' end if; if :new.rang is null then :new.rang := :old.rang; end if; end 23

Trigger-Erläuterungen: Oracle Konventionen 24

Gleicher Trigger in DB2 / SQL:1999- Syntax 25

Übung: Trigger zur Konsistenzhaltung redundanter Information bei Generalisierung 26