Grundlagen von Datenbanken. Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking

Ähnliche Dokumente
Datenbanken: Datenintegrität.

Kapitel 7: Referentielle Integrität

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

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

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

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

TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Dr. Thomas Neumann

Referentielle Integrität

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

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

Referentielle Integrität

Referenzielle Integrität SQL

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.

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Koordination des Mehrbenutzerbetriebs 9. Koordination des Mehrbenutzerbetriebs

6. Datenintegrität. Integritätsbedingungen

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

VO Datenmodellierung. Katrin Seyr

SQL: statische Integrität

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Datenintegrität. Bisherige Integritätsbedingungen

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

Datenbanksysteme I Integrität und Trigger Felix Naumann

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Kapitel DB:VI (Fortsetzung)

Konstante Relationen

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

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

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

Labor 3 - Datenbank mit MySQL

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

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

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

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

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

Teil VIII Transaktionen, Integrität und Trigger

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

5. Datendefinition in SQL

Views in SQL. 2 Anlegen und Verwenden von Views 2

Tag 4 Inhaltsverzeichnis

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Datenintegrität und Transaktionskonzept

Informations- und Wissensmanagement

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

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

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

6. Datendefinition in SQL

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

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

Software-Engineering und Datenbanken

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

Datenbanken: Transaktionskonzept und Concurrency Control

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

Mehrbenutzer-Synchronisation

Tag 4 Inhaltsverzeichnis

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

Transaktionen und Synchronisation konkurrierender Zugriffe

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

Relationentheorie grundlegende Elemente

Matthias Schubert. Datenbanken. Theorie, Entwurf und Programmierung relationaler Datenbanken. 2., überarbeitete Auflage. Teubner

ACCESS SQL ACCESS SQL

Datenbanken Konsistenz und Mehrnutzerbetrieb III

Übung Datenbanksysteme I Transaktionen, Selektivität und XML. Thorsten Papenbrock

SQL. Fortgeschrittene Konzepte Auszug

SQL,Teil 1: CREATE, INSERT, UPDATE, DELETE, DROP

Kapitel 12 Integrität der Datenbank

... T n T 1 T 2 T 3. Transaktions-Manager. Daten-Manager. Recovery-Manager Puffer-Manager. Datenbank

SQL-Befehlsliste. Vereinbarung über die Schreibweise

SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement

Abfragen (Queries, Subqueries)

SQL und MySQL. Kristian Köhntopp

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

7. Datenbankdefinitionssprachen

DB2 SQL, der Systemkatalog & Aktive Datenbanken

5.8 Bibliotheken für PostgreSQL

Grober Überblick zu Datendefinitionsanweisungen in SQL

MNR NAME VORNAME STRASSE PLZ ORT TELEFON

Datenbank- und Informationssysteme - Übungsblatt 6 -

Kurzanleitung ERwin V Kurzanleitung Erwin

SQL-Anweisungen. SELECT (SQL Data Query Language)

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

DBSP. Vorlesung. Prof. Dr. rer. nat. Nane Kratzke. Unit. Praktische Informatik und betriebliche Informationssysteme

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

SQL structured query language

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

Datenbanksysteme Kapitel: SQL Data Definition Language

SQL: Weitere Funktionen

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

Klausur Datenbanken Wintersemester 2004/2005 Prof. Dr. Wolfgang May 10. Februar 2004, Uhr Bearbeitungszeit: 90 Minuten

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

4. Datenbanksprache SQL

Mehrbenutzersynchronisation

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

1 Transaktionen in SQL. 2 Was ist eine Transaktion. 3 Eigenschaften einer Transaktion. PostgreSQL

Modifikation der Datenbank

Sicherheitsaspekte. Szenarien. Angriffsarten. Discretionary Access Control. Sicherheit im DBMS. Identifikation und Authentisierung

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

Datenbanksysteme I Transaktionsmanagement Felix Naumann

3 Arbeiten mit geographischen Daten

Transkript:

Grundlagen von Datenbanken Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking

SQL DDL: Referentielle Aktionen (1/3) Potentielle Gefährdung der referentiellen Integrität durch Änderungsoperationen Referentielle Integrität: Einfügen/Ändern von FS-Attributen an der Sohn-Relation (Kauf) Prüfung ob PS zu FS-Wert vorhanden ist Operation wird verhindert falls referentielle Integrität verletzt Buch Buch Buch.ISBN Kauf Person Person Person.PNR Reaktion auf Einfügen/Ändern/Löschen an den Vater-Relationen (Person/Buch) falls abhängige Tupel in der Sohn-Relation existieren Operation verbieten? Tupel rekursiv ändern/löschen? FS-Wert in der Sohn-Relation auf NULL setzen? 2

SQL DDL: Referentielle Aktionen (2/3) Syntax <referential triggered action> ::= <update rule> [ <delete rule> ] <delete rule> [ <update rule> ] <update rule> ::= ON UPDATE <referential action> <delete rule> ::= ON DELETE <referential action> <referential action> ::= CASCADE SET NULL SET DEFAULT NO ACTION RESTRICT Beispiel CREATE TABLE Kauf ( Person int, Buch varchar(13), CONSTRAINT pk_kauf PRIMARY KEY (Person, Buch), CONSTRAINT fk_pers FOREIGN KEY (Person) REFERENCES Person(PNR) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT fk_buch FOREIGN KEY (Buch) REFERENCES Buch (ISBN) ON DELETE RESTRICT ON UPDATE RESTRICT); 3

SQL DDL: Referentielle Aktionen (3/3) Löschen eines Fachbereichs erst links : Löschen in FB Löschen in PROF Löschen in PRUEFUNG Löschen in STUDENT Zugriff auf PRÜFUNG: Wenn ein Student bei einem FB-fremden Professor geprüft wurde Rücksetzen ON DELETE CASCADE Fach Fachbereich.FID Prof Fachbereich ON DELETE CASCADE Fach Fachbereich.FID Student erst rechts : Löschen in FB Löschen in STUDENT Zugriff auf PRÜFUNG: Wenn ein gerade gelöschter Student eine Prüfung abgelegt hatte Rücksetzen Löschen in PROF Löschen in PRUEFUNG ON DELETE CASCADE Prüfer Prof.PID Prüfung Reihenfolge-abhängiges Ergebnis kein sicheres Schema ON DELETE RESTRICT Prüfling Student.SID 4

Sichtendefinition SQL DDL CREATE TABLE StudentIn ( MNR int PRIMARY KEY, Vorname varchar(50), Nachname varchar(50) NOT NULL, Fach varchar(50) NOT NULL, Studiengang varchar(50) NOT NULL, Semester int NOT NULL ) SQL DDL CREATE VIEW InformatikerIn AS SELECT * FROM StudentIn WHERE Fach= Informatik 5

Änderbarkeit in Sichten (1/2) Sichten gelten als NICHT änderbar, wenn: der Primärschlüssel fehlt eine Gruppierung und/oder Aggregation angewendet wird mehrere Tabellen mit Join oder Kreuzprodukt verknüpft werden Um sicherzustellen, dass geänderte Tupel nicht aus der Sicht verschwinden, werden Check Options verwendet (wir betrachten nur den Typ CASCADED Check Option). Ist eine Sicht mit einer Check Option versehen, muss das geänderte Tupel alle Bedingungen der betreffenden Sicht und alle Bedingungen der Sichten, auf denen die betreffende Sicht aufbaut, erfüllen, damit die Änderungsoperation zulässig ist. 6

Änderbarkeit in Sichten (2/2) Semester>15 Langzeit Diplom InformatikerIn Studiengang=Diplom Diplom InformatikerIn CHECK OPTION Fach=Informatik InformatikerIn StudentIn SQL DDL CREATE TABLE StudentIn ( MNR int PRIMARY KEY, Vorname varchar(50), Nachname varchar(50) NOT NULL, Fach varchar(50) NOT NULL, Studiengang varchar(50) NOT NULL, Semester int NOT NULL ) 7

SQL-DML: Änderungen/Löschen/Einfügen Einfügen (Beispiel) INSERT INTO StudentIn (MNR, Vorname, Nachname, Fach, Studiengang, Semester) VALUES (47, Müller, Hamburg, Japanologie, Diplom, 9); Ändern (Beispiel) UPDATE StudentIn SET Fach = Informatik WHERE MNR = 47; Löschen (Beispiel) DELETE FROM StudentIn WHERE MNR = 47; 8

Transaktionsverwaltung: Abhängigkeiten Zwei Transaktionen sind voneinander abhängig, wenn: - beide Transaktionen auf dasselbe Objekt zugreifen und - mindestens eine der Transaktionen auf dieses Objekt schreibt T 1 w 1 (x) Abhängigkeit (T 1 vor T 2 ) T 2 r 2 (x) 9

Transaktionsverwaltung: Serialisierbarkeit Eine parallele Ablauffolge, bestehend aus n Transaktionen ist serialisierbar, wenn: - eine serielle Ablauffolge dieser Transaktionen existiert, welche die gleichen Abhängigkeiten enthält => (keine Abhängigkeitszyklen existieren) T 1 w 1 (x) w 1 (y) T 1 w 1 (x) w 1 (x) T 2 r 2 (x) T 2 r 2 (x) serialisierbar (äquivalente serielle Ablauffolge: T 1 T 2 ) NICHT serialisierbar! 10

RX-Sperrverfahren Sperrmodi Sperrmodus des Objektes: NL (no lock), R (read), X (exclusive) Sperranforderung einer Transaktion: R, X Kompatibilitätsmatrix bestehender Sperrmodus angeforderte Sperre NL R X R + + - X + - - Falls Sperre nicht gewährt werden kann, muss die anfordernde TA warten, bis das Objekt freigegeben wird (durch Commit/Abort der sperrenden TA) 11

2-Phasen-Sperrprotokoll (2PL) 2 Phasen Lock-Phase (hier werden alle Sperren gesetzt) Unlock-Phase (hier werden alle Sperren freigegeben) Prinzip: Es werden erst alle Sperren gesetzt, bevor wieder eine Sperre freigegeben werden darf Vorteil: Gewährleistet einen serialisierbaren Schedule Nachteil: Kann verklemmen Sperranforderung und -freigabe #Sperren BOT EOT 12

RX-Sperrverfahren mit 2PL S 1 =w 1 (a) r 2 (c) r 3 (a) r 1 (b) c 1 w 2 (c) r 3 (b) c 2 c 3 Zeit T 1 T 2 T 3 a b c Bemerkungen 0 NL NL NL 1 lock(a,x) X 1 NL NL 2 write(a) lock(c,r) X 1 NL R 2 3 read(c) lock(a,r) X 1 NL R 2 T 3 wartet auf Freigabe von a 4 lock(b,r) X 1 R 1 R 2 5 read(b) lock(c,x) X 1 R 1 X 2 6 unlock(a) write(c) R 3 R 1 X 2 Benachritigung von T 3 7 unlock(b) unlock(c) read(a) R 3 NL NL 8 commit commit lock(b,r) R 3 R 3 NL 13

RX-Sperrverfahren - Deadlocks Deadlocks/Verklemmungen Auftreten von Verklemmungen ist inhärent und kann bei pessimistischen Methoden (blockierende Verfahren) nicht vermieden werden Beispiel eines nicht-serialisierbaren Schedules, der zu einer Verklemmung führt T1 w(a) w(c) Warte-Beziehungen: T2 r(c) r(b) T1 T2 T3 w(b) r(a) T3 14

Fragen? 15