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

Ähnliche Dokumente
Referentielle Integrität

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. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Referentielle Integrität

Datenintegrität. Bisherige Integritätsbedingungen

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

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

VO Datenmodellierung. Katrin Seyr

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

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

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

Grundlagen des relationalen l Modells

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

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

Wie definieren wir das Relationen-

Datenintegrität, Views und Zugriffsrechte

Kapitel 7: Referentielle Integrität

6. Datenintegrität. Integritätsbedingungen

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007

Referenzielle Integrität SQL

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

Datenbanksysteme I Integrität und Trigger Felix Naumann

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

Objektrelationale Datenbanken

7. Datenbankdefinitionssprachen

Das relationale Modell

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

Konstante Relationen

Kapitel 7 Datenintegrität und

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

Software-Engineering

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

Informations- und Wissensmanagement

6. Datendefinition in SQL

Architektur eines DBMS Logische Optimierung

Einführung in Datenbanksysteme

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

3.13 SQL und Programmiersprachen

Datenintegrität. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Objektrelationale und erweiterbare Datenbanksysteme

SQL-Vertiefung. VU Datenbanksysteme. Reinhard Pichler

Grundlagen des relationalen Modells

Datenbanken SQL. Insert, Update, Delete, Drop. Krebs

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

4. Datenbanksprache SQL

SQL: statische Integrität

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

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

Datenbanksysteme Vorlesung vom noch Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

Datenbanken: Datenintegrität.

Teil VIII Transaktionen, Integrität und Trigger

Aufgabensammlung SQL SW4 1. Einfache Anfragen

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

Funktion definieren Gibt Summe der Gehälter zurück. Aufruf in einem SQL-Statement

Datenbanken und SQL. Kapitel 3. Datenbankdesign Teil 2: Entity-Relationship-Modell. Edwin Schicker: Datenbanken und SQL

4. Structured Query Language (SQL)

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Es wird empfohlen folgendes Material anzusehen:

Views in SQL. 2 Anlegen und Verwenden von Views 2

Kapitel DB:VI (Fortsetzung)

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

5. Datendefinition in SQL

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

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

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

Kapitel 3 Datenintegrität

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

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

Datenbanksysteme 2011

Datenbanksysteme 2015

Von der passiven zur aktiven Datenbank. Checks und Assertions Referentielle Aktionen Trigger

Grober Überblick zu Datendefinitionsanweisungen in SQL

Klausur PI Datenbanken II vom Name: Praktische Informatik (Krägeloh)

Rückblick: Datenbankentwurf

Objektorientierte Datenbanken

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

1 Hartmann Anna Cäcilienstr Köln (0221) Behrens-Hoffmeister Heidi Lindenweg Köln (0221)

Entwicklungsumgebung für die Laborübung

Das relationale Modell

Datenbanksysteme Kapitel: SQL Data Definition Language

Kapitel 3: Datenbanksysteme

Microsoft SQL-Server Enterprise-Manager

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

Web-Technologien. Prof. Dr. rer. nat. Nane Kratzke SQL. Praktische Informatik und betriebliche Informationssysteme

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

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

5. SQL: Erstellen von Tabellen

SQL. Kapitel 4 SQL 121 / 508

DB2 SQL, der Systemkatalog & Aktive Datenbanken

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

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Datendefinition und Datenmanipulation in SQL

Semantische Datenintegrität

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Übungen zu Datenbanksysteme

Seite1 / Aufgabe 2: SQL. Lösungsvorschlag für die zusätzlichen Übungsaufgaben. Seite 2 / Aufgabe 1. Seite1 / Aufgabe 2: SQL. Warengruppe.

Datenbanksysteme Kapitel 7: SQL. Oliver Vornberger. Institut für Informatik Universität Osnabrück

Transkript:

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

Statische vs. dynamische Integritätsbedingungen Statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis 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: Übergang zwischen zwei Zuständen Die Semesterzahl eines Studenten darf nur steigen Professoren dürfen nicht degradiert werden 2. Temporale Bedingungen: Bedingungen an Folgen von Zuständen 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

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 Beispiel: 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 κ α 1 α α 1 R α 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 (..., κ integer references R on update cascade ); create table S (..., κ integer references R on delete cascade );

S κ --- α 2 R α Auf Null setzen S κ α' 1 --- α 2 α 2 R α α 2 create table S (..., κ integer references R on update set null ); create table S (..., κ 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 Rang varchar(30) not null, character(2) check (Rang in (`C2,`C3,`C4 )), Raum integer unique );

create table Assistenten ( PersNr integer primary key, Name Fachgebiet Boss foreign key varchar(30) not null, varchar(30), integer, create table Vorlesungen (Boss) references Professoren on delete set null); ( VorlNr integer primary key, Titel SWS gelesen Von varchar(30), integer, 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