1 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe.

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping (ORM). Objektmodell - Datenbankmodell.
Advertisements

Objekt-relationale und erweiterbare Datenbanksysteme
Sicherheitsaspekte Sicherheit im DBMS
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
1 Datenbankapplikationen 9.1MS Visio 9.2MS Access 9.3Embedded SQL 9.4JDBC 9.5Cold Fusion 9.6PHP.
PL/SQL - Kurze Einführung -.
System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
© A. Kemper / A. Eickler1 Kapitel 5: Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung.
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
Datenintegrität, Views und Zugriffsrechte
Datenintegrität, Views und Zugriffsrechte
SQL::Geschichte/Normen (Übersicht)
Grundlagen Datenbanken
Objekt-relationale und erweiterbare Datenbanksysteme
SQL als Abfragesprache
Datensicherheit in DBMS
IS: Datenbanken, © Till Hänisch 2000 Tabellen In relationalen DB werden Daten in Tabellen organisiert Jede Spalte enthält eine bestimmte Art von Information,
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
Datenintegrität Referentielle Integrität create table
Oracle interMedia Audio Vortrag für das Seminar Oracle Zusatzoptionen Chris Haußmann.
Information Systems & Semantic Web University of Koblenz Landau, Germany Vorlesung Multimedia-Datenbanken Objekt-relationale Datenbanksysteme (Folien nach.
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
Information Systems & Semantic Web University of Koblenz Landau, Germany Vorlesung Multimedia-Datenbanken Objekt-relationale Datenbanksysteme (Folien nach.
Relationale Datenbanken III
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
Advanced Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
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 2013/14 Datenbanksysteme Do 17:00 – 18:30 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 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 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
Structured Query Language
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 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
1 Objektorientierte Datenbanken zBeim vorigen Mal: zODMG-OQL und FastObjects-OQL zIntegritätsbedingungen und Schema-Evolution zHeute: Objektrelationale.
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian.
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).
Sichten.
Datenbanken Das Relationale Datenmodell
 Präsentation transkript:

1 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe einer Domäne Jetzt: Check-Klauseln Referentielle Integrität Trigger

2 Check-Klauseln create table Professoren ( Name varchar(20) not null, Rang char(2) check (Rang in (C2,C3,C4)), Raum int unique check (Raum between 100 and 200) )

3 Referentielle Integrität R, S zwei Relationen mit Schemata R,S Primärschlüssel von R S heißt Fremdschlüssel : s. nur null oder nur ungleich null s. ungleich null r R mit r. = s.

4 Erlaubte Änderungen Einfügen in S Fremdschlüssel verweist auf Tupel in R Ändern in S neuer Fremdschlüssel verweist auf Tupel in R Ändern des Primärschlüssels in R kein Fremdschlüssel aus S hatte auf ihn verwiesen Löschen des Primärschlüssels in R kein Fremdschlüssel aus S hatte auf ihn verwiesen

5 Referentielle Integrität in SQL Unique Schlüsselkandidat primary keySchlüssel (not null) foreign keyFremdschlüssel (kann auch null sein) boss int references Professoren on update cascade on delete cascade on update set null on delete set null

6 Referentielle Integrität im Uni-Schema Professor darf nicht geändert oder entfernt werden: references Professoren Vorlesung darf geändert werden, Vorlesung darf nicht entfernt werden: references Vorlesung on update cascade Student darf geändert und entfernt werden: references Student on update cascade on delete cascade

7 Studenten CREATE TABLE Studenten( MatrNr INTEGER PRIMARY KEY, Name VARCHAR(20) NOT NULL, Semester INTEGER, GebDatum DATETIME )

8 Professoren CREATE TABLE Professoren( PersNr INTEGER PRIMARY KEY, Name VARCHAR(20) NOT NULL, Rang CHAR(2) CHECK (Rang in ('C2','C3','C4')), Raum INTEGER UNIQUE, Gebdatum DATETIME )

9 Assistenten CREATE TABLE Assistenten ( PersNr INTEGER PRIMARY KEY, Name VARCHAR(20) NOT NULL, Fachgebiet VARCHAR(20), Boss INTEGER REFERENCES Professoren, GebDatum DATETIME )

10 Vorlesungen CREATE TABLE Vorlesungen ( VorlNr INTEGER PRIMARY KEY, Titel VARCHAR(20), SWS INTEGER, gelesenVon INTEGER REFERENCES Professoren )

11 hoeren CREATE TABLE hoeren ( MatrNr INTEGER REFERENCES Studenten ON UPDATE CASCADE ON DELETE CASCADE, VorlNr INTEGER REFERENCES Vorlesungen ON UPDATE CASCADE, PRIMARY KEY (MatrNr, VorlNr) )

12 voraussetzen CREATE TABLE voraussetzen ( Vorgaenger INTEGER REFERENCES Vorlesungen ON UPDATE CASCADE, Nachfolger INTEGER REFERENCES Vorlesungen ON UPDATE CASCADE, PRIMARY KEY (Vorgaenger, Nachfolger) )

13 pruefen CREATE TABLE pruefen ( MatrNr INTEGER REFERENCES Studenten ON UPDATE CASCADE ON DELETE CASCADE, VorlNr INTEGER REFERENCES Vorlesungen ON UPDATE CASCADE, PersNr INTEGER REFERENCES Professoren, Note NUMERIC(3,1) CHECK (Note between 0.7 and 5.0), PRIMARY KEY (MatrNr, VorlNr) )

14 on delete cascade create table hoeren ( vorlnr int references Vorlesungen on delete cascade ) create table Vorlesung ( gelesenvon int references Professoren on delete cascade ) Sokrates Ethik Mäeutik Logik Theophrastos Schopenhauer

15 Trigger Einer Tabelle zugeordnet: after {update | delete | insert} Einer Tabelle oder Sicht zugeordnet: instead of {update | delete | insert} Temporäre Tabellen deleted und inserted

16 Trigger korrigieredegradierung create trigger korrigieredegradierung on Professoren after update as if update(Rang) begin update professoren set rang = d.rang from professoren p, deleted d where p.persnr = d.persnr and p.rang < d.rang end

17 Trigger verhinderedegradierung create trigger verhinderedegradierung on Professoren instead of update as update professoren set rang = i.rang from deleted d, inserted i where professoren.persnr = d.persnr and d.persnr = i.persnr and (d.rang=null or d.rang < i.rang)

18 Trigger befoerderung create trigger befoerderung on hoeren after insert, update as update professoren set rang='C4' where persnr in (select persnr from professoren p, vorlesungen v, hoeren h where p.persnr = v.gelesenvon and v.vorlnr = h.vorlnr group by p.persnr having count(*) > 10)

19 View Geburtstagsliste create view Geburtstagsliste as select Name, datediff(year,gebdatum,getdate()) as Jahre from Person

20 Trigger Geburtstag create trigger Geburtstag on Geburtstagsliste instead of insert as insert into Person (name,gebdatum) select i.name, dateadd(year, -i.jahre, getdate()) from inserted i