© A. Kemper / A. Eickler1 Kapitel 5: Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung.

Slides:



Advertisements
Ähnliche Präsentationen
Objekt-relationale und erweiterbare Datenbanksysteme
Advertisements

Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen.
Datenintegrität Integitätsbedingungen Schlüssel
PL/SQL - Programmierung von Programmeinheiten. © Prof. T. Kudraß, HTWK Leipzig Gespeicherte Prozeduren – Eine Prozedur ist ein benannter PL/SQL Block,
1 Datenbankapplikationen 9.1MS Visio 9.2MS Access 9.3Embedded SQL 9.4JDBC 9.5Cold Fusion 9.6PHP.
Kapitel 8 Anfragebearbeitung
© A. Kemper / A. Eickler1 Fehlerbehandlung (Recovery) 1.Lokaler Fehler in einer noch nicht festgeschriebenen (committed) Transaktion Wirkung muss zurückgesetzt.
Moderne Betriebliche Anwendungen von Datenbanksystemen
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Datenbanksysteme Schwerpunkte: Datenbanksystem (DBS): Datenbank (DB):
Datenintegrität, Views und Zugriffsrechte
Kapitel 5 SQL DDL + DML.
Datenintegrität, Views und Zugriffsrechte
SQL::Geschichte/Normen (Übersicht)
Grundlagen Datenbanken
Datensicherheit in DBMS
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Prof. Dr. T. Kudraß1 Integrität in Datenbanken. Prof. Dr. T. Kudraß2 Unterschied Konsistenz - Integrität Konsistenz beschreibt die Korrektheit der DB-internen.
Übung Datenbanksysteme WS 2003/ Übung Datenbanksysteme Hierarchische DBMS
Datenintegrität Referentielle Integrität create table
Information Systems & Semantic Web University of Koblenz Landau, Germany Vorlesung Multimedia-Datenbanken Objekt-relationale Datenbanksysteme (Folien nach.
1 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe.
Kapitel 7: SQL.
1 Kapitel 8: Datenintegrität. 2 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines.
Kapitel 9: Integritätssicherung
3.5.2 Fremdschlüssel/ Referentielle Integrität (6/9)
3.5.2 Fremdschlüssel/ Referentielle Integrität (1/9)
Datenbankentwicklung IV-LK
Vorlesung Datenbanksysteme vom Anfragebearbeitung Kostenmodelle Tuning.
FH-Hof Standard Query Language Richard Göbel. FH-Hof Geschichte der Sprache SQL System/R-Projekts von IBM zu Beginn der 70er Jahre: Entwicklung der Sprache.
Datenintegrität Integitätsbedingungen Schlüssel
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #4 SQL (Teil 1)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #7 SQL (Teil 2)
Vorlesung #4 SQL (Teil 1).
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #8 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #6 SQL (Teil 1)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #8 SQL (Teil 5)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
WS 2013/14 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #9 SQL (Teil 4)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #5 SQL (Teil 2)
WS 2012/13 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #7 SQL (Teil 4)
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #7 SQL (Teil 4)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #8 Wiederholung: Referentielle Integrität/ Embedded SQL.
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #4 SQL (Teil 1)
Datenbanksysteme für hörer anderer Fachrichtungen
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #5 SQL (Teil 2)
Relationales Datenmodell und DDL
Universität Stuttgart Enforcing Constraints and Triggers for Active Data Services Xiaolong Wan Abschlußpräsentation:
Vorlesung #5 SQL (Teil 2).
Integritätsbedingungen (Constraints)
1 Referenzielle Konsistenz (1) Vorgehensweise: Klausel references mit nachfolgender Spezikation eines Attributs einer anderen Tabelle identifiziert ein.
WS 2014/15 Datenbanksysteme D0 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #8 SQL (Teil 5)
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
1 Objektorientierte Datenbanken zBeim vorigen Mal: zODMG-OQL und FastObjects-OQL zIntegritätsbedingungen und Schema-Evolution zHeute: Objektrelationale.
1 Nullwerte Vorgehensweise: Nullwerte als mögliche Belegung eines Attributs können durch die Angabe von not null ausgeschlossen werden. Die Angabe von.
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
Datenbanken Das Relationale Datenmodell Ralf Möller Universität zu Lübeck Institut für Informationssysteme.
 standardisierte -Datendefinitionssprache (DDL) -Datenmanipulationssprache (DML) -Anfragesprache (Query)  derzeit aktueller Standard ist SQL 3  objektrelationale.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #5 SQL (Teil 2).
Vorlesung #6 SQL (Teil 3).
Vorlesung #7 SQL (Teil 4).
Vorlesung #8 SQL (Teil 5).
Datenbanken Das Relationale Datenmodell
 Präsentation transkript:

© A. Kemper / A. Eickler1 Kapitel 5: 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

© A. Kemper / A. Eickler2 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

© A. Kemper / A. Eickler3 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 );

© A. Kemper / A. Eickler4 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

© A. Kemper / A. Eickler5 Einhaltung referentieller Integrität S 1 2 R 1 2 Originalzustand Änderungsoperationen update R set = ' 1 where = 1 ; delete from R where = 1 ;

© A. Kemper / A. Eickler6 S ' 1 2 R ' 1 2 S 2 R 2 Kaskadieren create table S (..., integer references R on update cascade ); create table S (..., integer references R on delete cascade );

© A. Kemper / A. Eickler7 R ' 1 2 R 2 Auf Null setzen create table S (..., integer references R on update set null ); create table S (..., integer references R on delete set null ); S null 2 S null 2

© A. Kemper / A. Eickler8 Kaskadierendes Löschen Sokrates Logik Mäeutik Ethik Erkenntnistheorie Wissenschaftstheorie Bioethik Schopenhauer Theophrastos Russel Carnap

© A. Kemper / A. Eickler9 create table Vorlesungen (..., gelesenVon integer references Professoren on delete cascade); create table hören (..., VorlNr integer references Vorlesungen on delete cascade);

© A. Kemper / A. Eickler10 Einfache statische Integritätsbedingungen Wertebereichseinschränkungen... check Semester between 1 and 13 Aufzählungstypen... check Rang in ('C2', 'C3', 'C4')...

© A. Kemper / A. Eickler11 Das Universitätsschema mit Integritätsbedingungen create table Studenten ( MatrNrinteger primary key, Namevarchar(30) not null, Semesterinteger check Semester between 1 and 13), create table Professoren ( PersNr integer primary key, Namevarchar(30) not null, Rangcharacter(2) check (Rang in ( ' C2 ', ' C3 ', ' C4 ' )), Raum integer unique );

© A. Kemper / A. Eickler12 create table Assistenten ( PersNrinteger primary key, Namevarchar(30) not null, Fachgebietvarchar(30), Bossinteger, foreign key(Boss) references Professoren on delete set null); create table Vorlesungen ( VorlNrinteger primary key, Titelvarchar(30), SWSinteger, gelesen Voninteger references Professoren on delete set null);

© A. Kemper / A. Eickler13 create table hören ( MatrNrinteger references Studenten on delete cascade, VorlNrinteger references Vorlesungen on delete cascade, primary key (MatrNr, VorlNr)); create table voraussetzen ( Vorgängerinteger references Vorlesungen on delete cascade, Nachfolgerinteger references Vorlesungen on delete cascade, primary key (Vorgänger, Nachfolger));

© A. Kemper / A. Eickler14 create table prüfen ( MatrNrinteger references Studenten on delete cascade, VorlNrinteger references Vorlesungen, PersNrinteger references Professoren on delete set null, Notenumeric (2,1) check (Note between 0.7 and 5.0), primary key (MatrNr, VorlNr));

© A. Kemper / A. Eickler15 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

© A. Kemper / A. Eickler16 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

© A. Kemper / A. Eickler17 Trigger-Erläuterungen: Oracle Konventionen

© A. Kemper / A. Eickler18 Übung: Trigger zur Konsistenzhaltung redundanter Information bei Generalisierung