Referentielle Integrität

Ähnliche Dokumente
Referentielle Integrität

Datenintegrität. Bisherige Integritätsbedingungen

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

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

Datenintegrität. Kapitel 5 1

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

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

Datenintegrität. Kapitel 5 1

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

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

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

Kapitel 8: Datenintegrität

Datenbanksysteme 2013

VO Datenmodellierung. Katrin Seyr

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

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

Wiederholung VU Datenmodellierung

Wiederholung VU Datenmodellierung

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

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

Referenzielle Integrität SQL

6. Datenintegrität. Integritätsbedingungen

Grundlagen des relationalen l Modells

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

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

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

Datenbanksysteme SS 2007

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

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

Datenintegrität, Views und Zugriffsrechte

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

SQL: statische Integrität

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

Vorlesung Datenbanksysteme vom

Objektrelationale Datenbanken

Datenbanken: Datenintegrität.

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

Entity Relationship Modell

Aufgabensammlung SQL SW4 1. Einfache Anfragen

Fortsetzung: Projektion Selektion. NULL Werte

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

Konstante Relationen

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

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

Wiederholung: Relationale Algebra

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten

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

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

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

4.14 Integrität und Trigger

DATENBANKSYSTEME: SQL

Schlüssel bei temporalen Daten im relationalen Modell

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

Kapitel 7: Referentielle Integrität

Integrität in Datenbanken. Prof. Dr. T. Kudraß 1

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

5. SQL: Erstellen von Tabellen. Erzeugen und Löschen von Tabellen. Umgang mit Bedingungen (Constraints) Einfügen und Löschen von Daten

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

Architektur eines DBMS Logische Optimierung

Kapitel DB:VI (Fortsetzung)

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

Kapitel 7 Datenintegrität und

Die Anweisung create table

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

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

Foreign Keys. MySQL 4, 5. Kapitel 16: Fremdschlüssel. Marcel Noe

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Datenbanksysteme 2015

5. Datendefinition in SQL

Datenbanken in der Praxis 6. Integrität, DBS-Architektur, Sichten

Transkript:

Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische Integritätsbedingungen Bedingungen an Zustandsübergänge

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

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

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

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

Kaskadieren S κ R α S κ R α α' 1 α' 1 α 2 α 2 α 2 α 2 create table S create table S (..., (..., κ integer references R on update cascade ); κ integer references R on delete cascade );

Auf Null setzen S κ --- R α α' 1 α 2 S κ --- α 2 R α α 2 α 2 create table S create table S (..., (..., κ integer references R on update set null ); κ integer references R on delete set null );

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

create table Vorlesungen (..., gelesenvon integer references Professoren on delete cascade); create table hören (..., VorlNr integer references Vorlesungen on delete cascade);

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

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 varchar(30) not null, Rang character(2) check (Rang in (`C2,`C3,`C4 )), Raum integer unique );

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);

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));

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

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 ergibt

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

Trigger-Erläuterungen: Oracle Konventionen

Gleicher Trigger in DB2 / SQL:1999- Syntax

Übung: Trigger zur Konsistenzhaltung redundanter Information bei Generalisierung

Temporale Daten System-versionierte Daten transaction time Versionierung

Zustand der Relation nach Abschaffung der Studien-Gebühren in Bayern

Abfragen gegen temporale Daten

Temporale Daten nach Anwendungszeit

Explizit kontrollierter Zustand der Datenbasis

Automatische Erzeugung der Zeitintervalle

Erweiterte SQL Syntax für Anfragen gegen Zeitintervalle Contains Precedes Succeeds Immediately precedes Immediately succeeds overlaps