4.14 Integrität und Trigger
|
|
|
- Leander Huber
- vor 6 Jahren
- Abrufe
Transkript
1 4.14 Integrität und Trigger Im Allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen (IB) erfüllen. Integritätsbedingungen können explizit durch den Benutzer definiert werden, durch die Definition von konkreten Schemata implizit erzwungen werden, oder bereits dem relationalen Datenmodell inhärent sein. Inhärente Bedingungen: Attributwerte sind skalar; Relationen, abgesehen von Duplikaten, verhalten sich wie Mengen, d.h. ohne weitere Angaben haben sie insbesondere keine Sortierung. Implizite Bedingungen: Werte der Attribute eines Primärschlüssels dürfen keine Nullwerte enthalten Explizite Bedingungen: Werden als Teil der CREATE TABLE-Klausel, bzw. der CREATE SCHEMA-Klausel definiert. Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 74
2 Integritätsbedingungen sind von ihrer Natur aus deklarativ: sie definieren die zulässigen Instanzen, ohne auszudrücken, wie eine Gewährleistung der Integrität implementiert werden kann. Eine wichtige Klasse von deklarativen Integritätsbedingungen sind Fremdschlüsselbedingungen, die gewährleisten, dass keine dangling Referenzen zwischen den Tupeln in den Tabellen bestehen. Komplementär zu den deklarativen Bedingungen bieten Datenbanksysteme einen Trigger-Mechanismus an, mit dem in Form von Regeln definiert werden kann, welche Aktionen zur Gewährleistung der Integrität vorgenommen werden sollen, bzw., wie Verletzungen behandelt werden sollen. Mittels Trigger können wir insbesondere die Zulässigkeit von Zustandsübergängen kontrollieren, was mit Integritätsbedingungen aufgrund ihres Bezugs zu gerade einem Zustand nicht möglich ist. Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 75
3 Fremdschlüsselbedingungen Fremdschlüsselbedingungen werden als Teil der CREATE TABLE-Klausel definiert. Sie sind formal sogenannte Inklusionsabhängigkeiten: zu jedem von null verschiedenen Fremdschlüsselwert in einer Zeile der referenzierenden Tabelle, der C- (child-) Tabelle, existiert ein entsprechender Schlüsselwert in einer Zeile der referenzierten Tabelle, der P- (parent-) Tabelle. Man redet hier auch von referentieller Integrität. Zur Definition von Fremdschlüsselbedingungen steht die FOREIGN KEY-Klausel zur Verwendung in der C-Tabelle zur Verfügung. Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 76
4 Die Spalte LCode innerhalb der Tabelle Provinz enthält Werte des Schlüssels LCode der Tabelle Land. Zu jeder Zeile in Provinz muss eine Zeile in Land existieren, deren Schlüsselwert gleich dem Fremdschlüsselwert ist. CREATE TABLE Provinz ( PName VARCHAR(35), LCode VARCHAR(4), Fläche NUMBER PRIMARY KEY (PName, LCode), FOREIGN KEY (LCode) REFERENCES Land (LCode) ) Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 77
5 Die Zeilen der Tabelle Grenze enthalten jeweils zwei unterschiedliche Fremdschlüssel, die beide Werte des Schlüssels LCode der Tabelle Land annehmen. CREATE TABLE Grenze ( LCode1 VARCHAR(4), LCode2 VARCHAR(4), Länge INTEGER, PRIMARY KEY (LCode1, LCode2), FOREIGN KEY (LCode1) REFERENCES Land (LCode), FOREIGN KEY (LCode2) REFERENCES Land (LCode) ) Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 78
6 Für die Tabelle Stadt sind zwei Fremdschlüsselbeziehungen relevant. Einmal müssen die referenzierten Länder in der Tabelle zu Land existieren, und zum andern entsprechend die Provinzen. Letzterer Fremdschlüssel besteht aus zwei Spalten. Die Zuordnung der einzelnen Spalten des Fremd- und Primärschlüssels ergeben sich aus der Reihenfolge des Hinschreibens. CREATE TABLE Stadt (. PRIMARY KEY (SName, LCode, PName), FOREIGN KEY (LCode) REFERENCES Land (LCode), FOREIGN KEY (LCode, PName) REFERENCES Provinz (LCode, PName) ) Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 79
7 referentielle Aktionen im Überblick Zur Gewährleistung der referentiellen Integrität werden sogenannte referentielle Aktionen zur Ausführung bezüglich der C-Tabellen definiert. Aufgabe dieser Aktionen ist die Kompensierung von durch DELETE- und UPDATE-Operationen auf der zugehörigen P-Tabelle verursachten Verletzungen der Integrität. Änderungen der P-Tabelle werden auf die C-Tabelle übertragen (Aktion CASCADE). Die Änderung der P-Tabelle wird im Falle einer Verletzung der referentiellen Integrität einer C-Tabelle abgebrochen (Aktion NO ACTION und Aktion RESTRICT). Der Fremdschlüsselwert der C-Tabelle wird angepaßt (Aktion SET NULL und Aktion SET DEFAULT). Hinweis: Oracle unterstützt nur DELETE-Operationen. Als referentielle Aktionen kann CASCADE und SET NULL, SET DEFAULT gewählt werden - keine Angabe entspricht NO ACTION. Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 80
8 Wird der Code eines Landes geändert oder das Land gelöscht, so sollen die neuen Codes bei den zugehörigen Provinzen nachgezogen werden, bzw. auch die Provinzen des gelöschten Landes gelöscht werden. CREATE TABLE Provinz (. FOREIGN KEY (LCode) REFERENCES Land (LCode) ON DELETE CASCADE ON UPDATE CASCADE ) Werden Provinzen gelöscht, so sollen ihre Städte weiter in der Datenbank bestehen bleiben, wobei der betreffende Fremdschlüsselwert Nullwerte erhält. Änderungen eines Provinzschlüssels sollen auf die betroffenen Städte übertragen werden. CREATE TABLE Stadt (. PRIMARY KEY (SNAME) FOREIGN KEY (LCode, PName) REFERENCES Provinz (LCode, PName) ON DELETE SET NULL ON UPDATE CASCADE ) Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 81
9 Warum werden nur DELETE- und UPDATE-Operationen auf den zugehörigen P-Tabellen betrachtet? Einfügen bezüglich der P-Tabelle oder Löschen bezüglich der C-Tabelle ist für die referentielle Integrität immer unkritisch. Einfügen bezüglich der C-Tabelle oder Ändern bezüglich der C-Tabelle, die einen Fremdschlüsselwert erzeugen, zu dem kein Schlüssel in der P-Tabelle existiert, sind immer primär unzulässig, da von Änderungen in den C-Tabellen im Allgemeinen kein sinnvoller Rückschluss auf Änderungen der P-Tabellen möglich ist; anderenfalls sind die Änderungen unkritisch. Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 82
10 referentielle Aktionen NO ACTION: Die Operation auf der P-Tabelle wird zunächst ausgeführt; ob Dangling References in der C-Tabelle entstanden sind wird erst nach Abarbeitung aller durch die Operation auf der P-Tabelle direkt oder indirekt ausgelösten referentiellen Aktionen überprüft. RESTRICT: Die Operation auf der P-Tabelle wird nur dann ausgeführt, wenn durch ihre Anwendung keine Dangling References in der C-Tabelle entstehen. CASCADE: Die Operation auf der P-Tabelle wird ausgeführt. Erzeugt die DELETE/UPDATE-Operation Dangling References in der C-Tabelle, so werden die entsprechenden Zeilen der C-Tabelle ebenfalls mittels DELETE entfernt, bzw. mittels UPDATE geändert. Ist die C-Tabelle selbst P-Tabelle bezüglich einer anderen Bedingung, so wird das DELETE/UPDATE bezüglich der dort festgelegten Lösch/Änderungs-Regel weiter behandelt. SET DEFAULT: Die Operation auf der P-Tabelle wird ausgeführt. In der C-Tabelle wird der entsprechende Fremdschlüsselwert durch die für die betroffenen Spalten in der C-Tabelle festgelegten DEFAULT-Werte ersetzt; es muss jedoch gewährleistet sein, daß entsprechende Schlüsselwerte in den P-Tabellen existieren. SET NULL: Die Operation auf der P-Tabelle wird ausgeführt. In der C-Tabelle wird der entsprechende Fremdschlüsselwert spaltenweise durch NULL ersetzt. Vorausetzung ist hier, daß Nullwerte zulässig sind. Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 83
11 Bei Verwendung von RESTRICT können in Abhängigkeit von der Reihenfolge der Abarbeitung der FOREIGN KEY-Klauseln in Abhängigkeit vom Inhalt der Tabellen potentiell unterschiedliche Ergebnisse resultieren. CREATE TABLE T1 (... PRIMARY KEY K1) CREATE TABLE T2 (... PRIMARY KEY K2 FOREIGN KEY (K1) REFERENCES T1 (K1) ON DELETE CASCADE) CREATE TABLE T3 (... PRIMARY KEY K3 FOREIGN KEY (K1) REFERENCES T1 (K1) ON DELETE CASCADE) CREATE TABLE T4 (... PRIMARY KEY K4 FOREIGN KEY (K2) REFERENCES T2 (K2) ON DELETE CASCADE FOREIGN KEY (K3) REFERENCES T3 (K3) ON DELETE RESTRICT) Das Beispiel DELETE FROM T1 WHERE K1 = 1 demonstriert, dass bzgl. T4 die RESTRICT-Aktion scheitert, sofern nicht vorher bzgl. T4 die CASCADE-Aktion durchgeführt wurde. T1 K1 T2 K2 K1 T3 K3 K1 T4 K4 K2 K3 1 a 1 b 1 c a b Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 84
12 zum potentiellen Nichtdeterminismus Um nichtdeterministische Ausführungen dieser Art auszuschließen, wird vorgeschlagen, die Implementierung nach einer Strategie vorzunehmen, in der im Wesentlichen vor Berücksichtigung einer RESTRICT-Aktion alle CASCADE-Aktionen ausgeführt werden. Diese Strategie klärt offensichtlich obige Unbestimmtheit. Alternativ können gewisse Kombinationen von referentiellen Aktionen verboten werden. Ersetzt man RESTRICT durch NO ACTION in obigem Beispiel, so wird das Endergebnis wieder eindeutig, unabhängig von der Reihenfolge der betrachteteten referentiellen Aktionen. Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 85
13 Dynamische Integrität und Trigger Dynamische Integrität beschäftigt sich mit der Formulierung von Integritätsbedingungen, die definieren, welche Zustandsübergänge auf den Tabellen zu einem Datenbank-Schema erlaubt sind. Sie müssen es uns dazu ermöglichen, in einem Ausdruck sowohl den alten, wie auch den neuen Zustand der Instanzen ansprechen zu können. Zur Gewährleistung der dynamischen Integrität bietet SQL einen mächtigen Trigger-Mechanismus. Trigger sind ein Spezialfall aktiver Regeln, in denen in Abhängigkeit von eingetretenen Ereignissen, sofern gewisse Bedingungen erfüllt sind, definierte Aktionen auf einer Datenbank ausgeführt werden (EventConditionAction-Paradigma). Innerhalb SQL sind die auslösenden Operationen gerade Einfügungen, Löschungen und Änderungen von Zeilen der Tabellen. Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 86
14 Anwendungen Prüfen der Zulässigkeit von Werten vor der Durchführung von Änderungen, um so im Falle von Integritätsverletzungen diese korrigieren zu können. Protokollieren von auf sicherheitskritischen Tabellen vorgenommene Änderungen, z.b. mit Angabe der Benutzeridentifikation und Zugriffszeit. Implementierung von Änderungsoperationen auf Sichten. Definition von für Anwendungen verbindlichen (Geschäfts-)Regeln. Hinweis: Oracle hat für Trigger eine leicht andere Syntax. Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 87
15 Ändert sich die Einwohnerzahl einer Stadt, dann soll die Einwohnerzahl der betreffenden Provinz angepaßt werden. CREATE TRIGGER EinwohnerzahlAnpassen AFTER UPDATE OF Einwohner ON Stadt REFERENCING OLD AS Alt NEW AS Neu FOR EACH ROW UPDATE Provinz P SET P.Einwohner=P.Einwohner-Alt.Einwohner+ Neu.Einwohner WHERE P.LCode=Alt.LCode AND P.PName=Alt.PName Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 88
16 Die Tabelle Grenze soll antisymmetrisch sein; d.h., für je zwei Länder darf eine Nachbarschaftsbeziehung nur einmal enthalten sein. CREATE TRIGGER antisymgrenze BEFORE INSERT ON Grenze REFERENCING NEW AS Neu FOR EACH ROW WHEN EXISTS ( SELECT * FROM Grenze G WHERE G.LCode1=Neu.LCode2 AND G.LCode2=Neu.LCode1 ) BEGIN SIGNAL SQLSTATE ; SET Message= Grenze bereits vorhanden END Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 89
17 Ergibt die Summe der Anteile an den Kontinenten für ein Land einen kleineren Wert als 100, so wird die Differenz dem Kontinent Atlantis zugeordnet. CREATE TRIGGER Atlantis AFTER INSERT ON Lage FOR EACH STATEMENT WHEN EXISTS ( SELECT * FROM Lage GROUP BY LCode HAVING (SUM(Prozent) < 100) ) BEGIN INSERT INTO Lage SELECT L1.LCode, Atlantis, ( ( SELECT SUM(L2.Prozent) FROM Lage L2 WHERE L2.LCode = L1.LCode) ) FROM Lage L1 GROUP BY L1.LCode HAVING (SUM(L1.Prozent) < 100) END Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 90
18 Trigger Ein Trigger ist einer Tabelle zugeordnet. Er wird aktiviert durch das Eintreten eines Ereignisses (SQL-Anweisung): Einfügung, Änderung und Löschung von Zeilen. Der Zeitpunkt der Aktivierung ist entweder vor oder nach der eigentlichen Ausführung der entsprechenden aktivierenden Anweisung in der Datenbank. Ein Trigger kann die Ausführung der ihn aktivierenden Anweisung verhindern. Ein Trigger kann einmal pro aktivierender Anweisung (Statement-Trigger) oder einmal für jede betroffene Zeile (Row-Trigger) seiner Tabelle ausgeführt werden. Mittels Transitions-Variablen OLD und NEW kann auf die Zeilen- und Tabellen-Inhalte vor und nach der Ausführung der aktivierenden Aktion zugegriffen werden. Im Falle von Tabellen-Inhalten handelt es sich dabei um hypothetische Tabellen, die alle betroffenen Zeilen enthalten. Ein aktivierter Trigger wird ausgeführt, wenn seine Bedingung erfüllt ist. Der Rumpf eines Triggers enthält die auszuführenden SQL-Anweisungen. Bei einem BEFORE-Trigger sind die einzufügenden Tupel nicht sichtbar in der Tabelle; es kann jedoch zu ihnen mittels NEW oder NEW TABLE zugegriffen werden. Bei einem AFTER-Trigger sind sie zusätzlich in der Tabelle zugreifbar. Bei einem BEFORE-Trigger sind die zu löschenden Tupel sichtbar in der Tabelle, bei einem AFTER-Trigger nicht; es kann zu ihnen mittels OLD oder OLD TABLE zugegriffen werden. Bei einem BEFORE- oder AFTER-Trigger kann zu den alten und neuen Werten der zu ändernden Tupel mittels OLD/NEW oder OLD TABLE/NEW TABLE zugegriffen werden. Bei einem BEFORE-Trigger sind die Änderungen nicht sichtbar in der Tabelle, bei einem AFTER-Trigger jedoch. Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 91
19 Bemerkungen Trigger können selbst weitere Trigger aktivieren, wenn ein ausgelöster Trigger eine Tabelle modifiziert, über der selbst Trigger definiert sind. Eine Transaktion kann somit während ihrer Ausführung eine ganze Reihe von Triggern auslösen. Die Reihenfolge der Ausführung dieser Trigger ist ohne weitere Kontrolle nicht vorhersehbar. Um eine deterministische Ausführung zu gewährleisten, sind Einschränkungen an die möglichen Triggerdefinitionen, bzw. Anforderungen an ihre Ausführung zu berücksichtigen. Eine Aktivierungsfolge von Triggern kann insbesonder zyklisch sein (rekursive Trigger); die Terminierung einer solchen Folge ist im Allgemeinen nicht gesichert. Seit SQL:2008 können auch INSTEAD OF-Trigger verwendet werden. Wird ein solcher Trigger aktiviert, dann werden anstelle der auslösenden Operation die Operationen des Triggers ausgeführt. Ein sinnvolles Anwendungsgebiet für INSTEAD OF-Trigger ist die Realisierung von Änderungsoperationen auf Sichten auf den zugehörenden Basistabellen. Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 92
20 Beispiel: Mit Triggern nachgebildete referentielle Aktionen (s. Beispiel Seite 84). /* DELETE CASCADE bei T2->T1 und T3->T1 */ /* Alternative 1: referentielle Aktion scheitert */ CREATE TRIGGER t1delete_t2undt3 AFTER DELETE ON T1 REFERENCING OLD as oldrow FOR EACH ROW BEGIN ATOMIC DELETE FROM T3 WHERE k1=oldrow.k1; DELETE FROM T2 WHERE k1=oldrow.k1; END /* Alternative 2: referentielle Aktion erfolgreich */ CREATE TRIGGER t1delete_t2undt3 AFTER DELETE ON T1 REFERENCING OLD as oldrow FOR EACH ROW BEGIN ATOMIC DELETE FROM T2 WHERE k1=oldrow.k1; DELETE FROM T3 WHERE k1=oldrow.k1; END /* DELETE CASCADE bei T4->T2 */ CREATE TRIGGER t2delete_t4 AFTER DELETE ON T2 REFERENCING OLD as oldrow FOR EACH ROW DELETE FROM T4 WHERE k2=oldrow.k2 /* DELETE RESTRICT bei T4->T3 */ CREATE TRIGGER t3delete_t4 AFTER DELETE ON T3 REFERENCING OLD as oldrow FOR EACH ROW WHEN (0 < (SELECT count(*) FROM T4 WHERE k3 = oldrow.k3)) SIGNAL SQLSTATE 666 SET MESSAGE_TEXT= Dangling Reference Datenbanken und Informationssysteme, WS 2012/ November 2012 Seite 93
Beispiel zur referentiellen Integrität
3. Der SQL-Standard 3.14. Integrität und Trigger Seite 1 Beispiel zur referentiellen Integrität CREATE TABLE T1( k1 NUMERIC NOT NULL PRIMARY KEY); CREATE TABLE T2( k2 NUMERIC NOT NULL PRIMARY KEY, k1 NUMERIC,
Kapitel 7: Referentielle Integrität
Kapitel 7: Referentielle Integrität Im Allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen (IB) erfüllen. Integritätsbedingungen
6. Trigger Charakterisierung von Triggern. 6. Trigger. Trigger definieren automatische Reaktionen auf Ereignisse, die durch Datenmanupilationen
6. Trigger Charakterisierung von Triggern 6. Trigger Trigger definieren automatische Reaktionen auf Ereignisse, die durch Datenmanupilationen auf einer Relation ausgelöst werden. Trigger stellen eine einfache
Datenbanksysteme 2013
Datenbanksysteme 2013 Kapitel 8: Datenintegrität Vorlesung vom 14.05.2013 Oliver Vornberger Institut für Informatik Universität Osnabrück Datenintegrität Statische Bedingung (jeder Zustand) Dynamische
Datenintegrität. Kapitel 5 1
Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische
Datenintegrität. Kapitel 5 1
Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische
Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.
Datenintegrität Arten von Integritätsbedingungen Statische Integritätsbedingungen Referentielle Integrität Integritätsbedingungen in SQL Trigger 1 Datenintegrität Einschränkung der möglichen Datenbankzustände
Kapitel 8: Datenintegrität
Kapitel 8: Datenintegrität Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe einer Domäne Jetzt:
Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung
Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung Statische vs. dynamische Integritätsbedingungen Statische Integritätsbedingungen Bedingungen
Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten
Übung Datenbanksysteme Updates, Integritätsbedingungen, funktionale Abhängigkeiten 12.1.2004 Änderungsoperationen bei SQL (Daten) Einfügen neuer Tupel (schon bekannt) INSERT INTO Table (Spalte1, Spalte2)
Datenbanksysteme I Integrität und Trigger Felix Naumann
Datenbanksysteme I Integrität und Trigger 9.5.2011 Felix Naumann Motivation Aktive Datenbanken 2 Einzufügende Daten können fehlerhaft sein Typographische Fehler, logische Fehler Lösung 1: Bessere Anwendung
Aufgabe 1: Integrität
Aufgabe 1: Integrität Gegeben sei das folgende Schema: Personal: (PNR, Name, Gehalt, Abt, Vorges) a) Geben Sie das CREATE TABLE Statement an, um die Tabelle Personal zu erzeugen. Folgende Integritätsbedingungen
Die Anweisung create table
SQL-Datendefinition Die Anweisung create table create table basisrelationenname ( spaltenname 1 wertebereich 1 [not null],... spaltenname k wertebereich k [not null]) Wirkung dieses Kommandos ist sowohl
Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.
Seminar 2 SQL - DML(Data Manipulation Language) und DDL(Data Definition Language) Befehle. DML Befehle Aggregatfunktionen - werden auf eine Menge von Tupeln angewendet - Verdichtung einzelner Tupeln yu
DB I S. 1 Referentielle Aktionen [10 P.] Gegeben sei folgende Datendefinition:
1 Referentielle Aktionen Gegeben sei folgende Datendefinition: [10 P.] CREATE TABLE Wissenschaftler( SVNr int PRIMARY KEY, Vorname varchar(25) NOT NULL, Nachname varchar(25) NOT NULL, Gehalt int NOT NULL
Referentielle Integrität
Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische
Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr. Praktikum: Datenbanken Woche 7: Noch mehr SQL
Praktikum: Datenbanken Raum: LF230 Abgabe bis 6.-8.6. 2005 Datum Gruppe Vorbereitung Präsenz Rekursive Anfragen In einem vollen SELECT-Statement ist es auch möglich, rekursive Anfragen zu stellen. Rekursive
Wiederholung VU Datenmodellierung
Wiederholung VU Datenmodellierung VU Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester
Wiederholung VU Datenmodellierung
Wiederholung VU Datenmodellierung VL Datenbanksysteme Reinhard Pichler Arbeitsbereich Datenbanken und Artificial Intelligence Institut für Informationssysteme Technische Universität Wien Wintersemester
Datenintegrität. Referentielle Integrität. Referentielle Integrität in SQL. Bisherige Integritätsbedingungen
Datenintegrität eferentielle Integrität Integitätsbedingungen chlüssel Fremdschlüssel verweisen auf Tupel einer elation z.b. gelesenvon in Vorlesungen verweist auf Tupel in Professoren Beziehungskardinalitäten
Referentielle Integrität
Datenintegrität Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Integritätsbedingungen Bedingungen an den Zustand der Datenbasis dynamische
6. Datenintegrität. Integritätsbedingungen
6. Integritätsbedingungen dienen zur Einschränkung der Datenbankzustände auf diejenigen, die es in der realen Welt tatsächlich gibt. sind aus dem erstellten Datenmodell ableitbar (semantisch) und können
Prakt. Datenbankprogrammierung. Sommersemester Was sind Constraints? I,11: Verwendung von Constraints. Festlegung von Constraints
Prakt. Datenbankprogrammierung Sommersemester 2005 I,11: Verwendung von Constraints Was sind Constraints? Constraints stellen Regeln auf Tabellenebene sicher. Constraints verhindern das Löschen aus einer
Foreign Keys. MySQL 4, 5. Kapitel 16: Fremdschlüssel. Marcel Noe
MySQL 4, 5 Kapitel 16: Fremdschlüssel Gliederung 1 Gliederung 1 Fremdschlüssel sichern die Referenzielle Integrität voneinander abhängiger Tabellen. Um Fremdschlüssel definieren zu können, müssen Sie die
Praktische SQL-Befehle 2
Praktische SQL-Befehle 2 Datenbanksysteme I WiSe 2018/2019 Todor Ivanov DB1 WS2018 1 Praktische SQL-Befehle Functions Views Triggers Voraussetzung: Laptop + MySQL/ MariaDB + Workbench! DB1 WS2018 2 Airport
SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99
SQL Früherer Name: SEQUEL SQL: Structured Query Language Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99 SQL ist eine deklarative Anfragesprache Teile von SQL Vier große Teile:
Grundlagen von Datenbanken. Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking
Grundlagen von Datenbanken Referentielle Aktionen, Sichten, Serialisierbarkeit und Locking SQL DDL: Referentielle Aktionen (1/3) Potentielle Gefährdung der referentiellen Integrität durch Änderungsoperationen
SQL: statische Integrität
SQL: statische Integrität.1 SQL: statische Integrität Im allgemeinen sind nur solche Instanzen einer Datenbank erlaubt, deren Relationen die der Datenbank bekannten Integritätsbedingungen erfüllen. Integritätsbedingungen
4.14.3 Bedingungen über Werte. 4.14.4 Statische Integrität. CHECK-Klausel
4.14.3 Bedingungen über Werte 4.14.4 Statische Integrität Zu jeder Tabelle werden typischerweise ein Primärschlüssel und möglicherweise weitere Schlüssel festgelegt (UNIQUE-Klausel). In jeder Instanz zu
VO Datenmodellierung. Katrin Seyr
Datenintegrität Datenintegrität VO Datenmodellierung Katrin Seyr Institut für Informationssysteme Technische Universität Wien Katrin Seyr Seite 1 Datenintegrität 1. Überblick Überblick 1 Überblick 2 Integritätsbedingungen
Finalklausur zur Vorlesung Datenbanksysteme I Wintersemester 2003/2004 Prüfer: Prof. R. Bayer, Ph.D. Datum: Zeit: 16.
Finalklausur zur Vorlesung Datenbanksysteme I Wintersemester 2003/2004 Prüfer: Prof. R. Bayer, Ph.D. Datum: 13.02.2004 Zeit: 16. Uhr Hinweis: Die Bearbeitungszeit beträgt 90 Minuten. Bitte benutzen Sie
Kapitel 8: Zugriffskontrolle
Kapitel 8: Zugriffskontrolle 8. Zugriffskontrolle 8. Datenbanken enthalten häufig vertrauliche Informationen, die nicht jedem Anwender zur Verfügung stehen dürfen. Außerdem wird man nicht allen Anwendern
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 07 Übung zur Vorlesung Grundlagen: Datenbanken im WS16/17 Harald Lang, Linnea Passing ([email protected]
Hochschule Karlsruhe Technik und Wirtschaft Fakultät für Informatik und Wirtschaftsinformatik
1. Aufgabe (Normalisierung, 28 Punkte) Das Maklerbüro Foldur-Estate beschäftigt mehrere Makler, die jeweils unterschiedliche Mietwohnungen im Angebot haben. Jede Wohnung hat einen Vermieter, Vermieter
Datenintegrität. Bisherige Integritätsbedingungen
Datenintegrität Integitätsbedingungen chlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung statische Bedingungen an den Zustand der Datenbasis dynamische Bedingungen an Zustandsübergänge
SQL. DDL (Data Definition Language) Befehle und DML(Data Manipulation Language)
SQL DDL (Data Definition Language) Befehle und DML(Data Manipulation Language) DML(Data Manipulation Language) SQL Abfragen Studenten MatrNr Name Vorname Email Age Gruppe 1234 Schmidt Hans [email protected]
Datenbanken Unit 4: Das Relationale Modell & Datenintegrität
Datenbanken Unit 4: Das Relationale Modell & Datenintegrität 15. III. 2016 Outline 1 Organisatorisches 2 SQL 3 Relationale Algebra Notation 4 Datenintegrität Organisatorisches Erster Zwischentest: nach
11. Integrität und Trigger. Integritätssicherung durch Anwendung. Architekturen zur Integritätssicherung. Anwendung 1. Anwendung n Routinen.
11. Integrität und Trigger Grundlagen und Begriffe Grundlagen und Begriffe Integritätsbedingungen Integritätsregeln in SQL Trigger Integritätsbedingung (IB) = Bedingung für die Zulässigkeit ( Korrektheit
Praktische SQL-Befehle
Praktische SQL-Befehle Datenbanksysteme I WiSe 2018/2019 Todor Ivanov DB1 WS2018 1 Praktische SQL-Befehle Nested Selects Inserts Updates Views Triggers Constraints Functions Voraussetzung: Laptop + MySQL/
Integrität in Datenbanken. Prof. Dr. T. Kudraß 1
Integrität in Datenbanken Prof. Dr. T. Kudraß 1 Unterschied Konsistenz - Integrität Konsistenz beschreibt die Korrektheit der DB-internen Speicherungsstrukturen, Zugriffspfade und sonstigen Verwaltungsinformation
8. Tabellendefinition in SQL 8-1. Tabellendefinitionen
8. Tabellendefinition in SQL 8-1 Tabellendefinitionen 8. Tabellendefinition in SQL 8-2 Inhalt 1. Schlüssel 2. Fremdschlüssel 3. CREATE TABLE-Syntax 4. DROP TABLE 5. ALTER TABLE 8. Tabellendefinition in
Datenbanken im WI-Unterricht mit
Datenbanken im WI-Unterricht mit Inhaltsverzeichnis 1 ER-Modell - Entity Relationship Modell 1 1.1 Entitäten................................................. 2 1.2 Relationen................................................
Datenbanken. Datenintegrität + Datenschutz. Tobias Galliat. Sommersemester 2012
Datenbanken Datenintegrität + Datenschutz Tobias Galliat Sommersemester 2012 Professoren PersNr Name Rang Raum 2125 Sokrates C4 226 Russel C4 232 2127 Kopernikus C3 310 2133 Popper C3 52 2134 Augustinus
DB-Datenbanksysteme. DB SQL-DML 1 Mario Neugebauer
DB-Datenbanksysteme DB-13 043-SQL-DML 1 Mario Neugebauer Einführung Informationsmodellierung Relationales Datenbankmodell Datenbanksprache SQL Einführung Daten-Abfrage-Sprache - DQL Daten-Definitions-Sprache
1 Referentielle Aktionen
1 Referentielle Aktionen Betrachten Sie das folgende Datenbankschema: Person(Vorname, Nachname, DOB, Wohnort, Lieblingsfilm Film.IMDb-ID, Videothek Videothek.VID) Film(IMDb-ID, Titel, (ProduzentVN, ProduzentNN)
Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.
Datenintegrität Arten von Integritätsbedingungen Statische Integritätsbedingungen Referentielle Integrität Integritätsbedingungen in SQL Trigger 1 Datenintegrität Einschränkung der möglichen Datenbankzustände
Datenbanksysteme I WS 18/19 Teillösung Übungsblatt 4-6
Datenbanksysteme I WS 18/19 Teillösung Übungsblatt 4-6 Universität Leipzig, Institut für Informatik Abteilung Datenbanken Prof. Dr. E. Rahm, V. Christen, M. Franke DBS1 Blatt 4 Mitschreibbar 2 Welche Autoren
Erzeugen von Constraints
Erzeugen von Constraints Was sind Constraints? Durch Constraints werden Regeln auf einem bestimmtem Tabellen-Level erzwungen. Die folgenden Constraint-Typen sind in Oracle integriert: NOT NULL UNIQUE Key
Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen
Datenintegrität Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen Formulierung von Integritätsbedingungen ist die wichtigste Aufgabe des DB-Administrators!
Logischer Entwurf. Stufen der Entwicklung einer Datenbank. Inhalt. Übersicht. 1. Datenbank - Entwurf ( ER - Diagramm)
10. Logischer Entwurf 10-1 10. Logischer Entwurf 10-2 Stufen der Entwicklung einer Datenbank 1. Datenbank - Entwurf ( ER - Diagramm) Logischer Entwurf 2. Umsetzen des ER - Diagramms ins relationale Modell
12. Datenschutz: Zugriffsrechte in SQL Datenschutz: Zugriffsrechte in SQL
12. Datenschutz: Zugriffsrechte in SQL 12-1 Datenschutz: Zugriffsrechte in SQL 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten
Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne
Informatik für Ökonomen II: Datenintegrität Prof. Dr. Carl-Christian Kanne 1 Konsistenzbedingungen DBMS soll logische Datenintegrität gewährleisten Beispiele für Integritätsbedingungen Schlüssel Beziehungskardinalitäten
Triggern. Change Data Capture
Triggern. Change Data Capture Triggers Was sind Triggers? Eine bestimmte Art von gespeicherte Prozedur, die automatisch ausgeführt wird wenn eine DML oder DDL Anweisung ausgeführt wird Eine Menge von Aktionen,
SQL. Datenmanipulation. Datenmanipulationssprache. Ein neues Tupel hinzufügen. Das INSERT Statement
SQL Datenmanipulation Datenmanipulationssprache Ein DML Statement wird ausgeführt wenn: neue Tupel eingefügt werden existierende Tupel geändert werden existierende Tupel aus der Tabelle gelöscht werden
Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL
Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell Jetzt: -> Formulierung in DDL Daten-Definitionssprache (DDL) DDL ist Teil von SQL (Structured
3.3. Implementierung in SQL DDL-Grundlagen Constraint-Verzögerung Implementierungs-Strategien
CREATE TABLE SPEND_STAT ( S_STATUS VARCHAR2(1), STAT_TXT VARCHAR2(15), PRIMARY KEY (S_STATUS) ENABLE ) ; 3.3. Implementierung in SQL DDL-Grundlagen Constraint-Verzögerung Implementierungs-Strategien DDL:
Datenschutz: Zugriffsrechte in SQL
12. Datenschutz: Zugriffsrechte in SQL 12-1 12. Datenschutz: Zugriffsrechte in SQL 12-2 Inhalt Datenschutz: Zugriffsrechte in SQL 1. Anforderungen, Allgemeines 2. Die SQL-Befehle GRANT und REVOKE 3. Sichten
Referenzielle Integrität SQL
Referenzielle Integrität in SQL aus Referential Integrity Is Important For Databases von Michael Blaha (Modelsoft Consulting Corp) VII-45 Referenzielle Integrität Definition: Referenzielle Integrität bedeutet
11. Integrität und Trigger
11. Integrität und Trigger Grundlagen und Begriffe Transaktionen Integritätsbedingungen Integritätsregeln in SQL Trigger VL Datenbanken I 11 1 Grundlagen und Begriffe Integritätsbedingung (IB) = Bedingung
Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung
6. Datenintegrität Motivation Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung nur sinnvolle Attributwerte (z.b. keine negativen Semester) Abhängigkeiten
SQL: Weitere Funktionen
Vergleich auf Zeichenketten SQL: Weitere Funktionen LIKE ist ein Operator mit dem in Zeichenketten andere Zeichenketten gesucht werden; zwei reservierte Zeichen mit besonderer Bedeutung sind hier % (manchmal
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 8 Hausaufgabe 1 Übung zur Vorlesung Grundlagen: Datenbanken im WS13/14 Henrik Mühe ([email protected])
Relationales Datenbanksystem Oracle
Relationales Datenbanksystem Oracle 1 Relationales Modell Im relationalen Modell wird ein relationales Datenbankschema wie folgt beschrieben: RS = R 1 X 1 SC 1... R n X n SC n SC a a : i=1...n X i B Information
5.3 Datenänderung/-zugriff mit SQL (DML)
5.3 Datenänderung/-zugriff mit SQL (DML) Hinweis: - DML-Anweisungen sind mengenorientiert - Mit einer Anweisungen kann mehr als ein Tupel eingefügt, geändert, gelöscht oder gelesen werden Benutzungs- und
Übung 01 Tabellen erstellen
UEB-01-1 Übung 01 Tabellen erstellen Die folgende Musterrechnung dokumentiert eine Miniwelt "Rechnung" in einer Firma. 1. Welche Objekte und Beziehungen lassen sich daraus ableiten? 2. Erstellen Sie ein
Datenbanken SQL. Insert, Update, Delete, Drop. Krebs
Datenbanken SQL Insert, Update, Delete, Drop Krebs Inhalt 1. Datensätze einfügen: INSERT 2. Datensätze verändern: UPDATE 3. Datensätze löschen: DROP vs. DELETE Beispiel Datenbank Schule Klasse P_Klasse
4. Objektrelationales Typsystem Kollektionstypen. Nested Table
Nested Table Bei einer Nested Table handelt es sich um eine Tabelle als Attributwert. Im Gegensatz zu Varray gibt es keine Beschränkung bei der Größe. Definition erfolgt auf einem Basistyp, als Basistypen
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen ([email protected])
A Datendenition in SQL ( Punkte)
A Datendenition in SQL (5 + 2 + 1 Punkte) Eine Sportredaktion verwaltet die Ergebnisse der Fuball-Bundesliga in einer Datenbank mit folgendem Schema: Mannschaften (MannschaftID, MannschaftName) Spiele
Datenbanksysteme Kapitel 2: SQL Data Definition Language
Datenbanksysteme Kapitel 2: SQL Data Definition Language Prof. Dr. Peter Chamoni Mercator School of Management Lehrstuhl für Wirtschaftsinformatik, insb. Business Intelligence Prof. Dr. Peter Chamoni -
Datenbanken: Datenintegrität. www.informatikzentrale.de
Datenbanken: Datenintegrität Definition "Datenkonsistenz" "in der Datenbankorganisation (...) die Korrektheit der gespeicherten Daten im Sinn einer widerspruchsfreien und vollständigen Abbildung der relevanten
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Blatt Nr. 07 Übung zur Vorlesung Grundlagen: Datenbanken im WS15/16 Harald Lang, Linnea Passing ([email protected])
Grundlagen von Datenbanken
Grundlagen von Datenbanken Aufgabenzettel 4 SQL-Anfragen Überblick: DB-Entwurf und Modellierung Konzeptioneller Entwurf Anforderungen Informationsmodell PNr. Vorname Nachname Geb.Datum Person n Datum kaufen
Integritätsbedingungen Eindeutige Identifikation (1)
8. Tabellendefinition in SQL 8-1 8. Tabellendefinition in SQL 8-2 Inhalt 1. Schlüssel Tabellendefinitionen 2. Fremdschlüssel 3. CREATE TABLE-Syntax 4. DROP TABLE 5. ALTER TABLE 8. Tabellendefinition in
Create-Table-Befehl. CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung }
Create-Table-Befehl CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung } [, ] ) Liste der wichtigsten Datentypen in SQL INTEGER INT SMALLINT NUMERIC(x,y)
Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15
Vorwort..................................................... 13 Kapitel 1 Einleitung.......................................... 15 Kapitel 2 SQL der Standard relationaler Datenbanken... 19 2.1 Die Geschichte................................
Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13
Auf einen Blick Vorwort... 13 Teil 1 Vorbereitung Kapitel 1 Einleitung... 17 Kapitel 2 SQL der Standard relationaler Datenbanken... 21 Kapitel 3 Die Beispieldatenbanken... 39 Teil 2 Abfrage und Bearbeitung
Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL
Betreuer: Sascha Kriewel, Tobias Tuttas Raum: LF 230 Bearbeitung: 26., 27. und 29. Juni 2006 Datum Team (Account) Vorbereitung Präsenz Aktuelle Informationen, Ansprechpartner und Material unter: http://www.is.inf.uni-due.de/courses/dbp_ss07/index.html
WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R 1.008. Vorlesung #5. SQL (Teil 3)
Vorlesung #5 SQL (Teil 3) Fahrplan Besprechung der Übungsaufgaben Rekursion Rekursion in SQL-92 Rekursion in DBMS- Dialekten (Oracle und DB2) Views (Sichten) - gespeicherte Abfragen Gewährleistung der
Welche Kunden haben die gleiche Ware bestellt? select distinct a1.name, a2.name from Auftrag a1, Auftrag a2 where a1.ware = a2.ware.
*HVFKDFKWHOWH$QIUDJHQ In einer SQL-Anweisung können in der where-klausel, from-klausel, select-klausel wieder SQL-Anweisungen auftreten. Man spricht dann auch von einer geschachtelten Anfrage oder Unteranfrage.
Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15
Vorwort 13 Kapitel 1 Einleitung 15 Kapitel 2 SQL-der Standard relationaler Datenbanken... 19 2.1 Die Geschichte 19 2.2 Die Bestandteile 20 2.3 Die Verarbeitung einer SQL-Anweisung 22 2.4 Die Struktur von
Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13
Auf einen Blick Vorwort 13 Teil 1 Vorbereitung Kapitel 1 Einleitung 17 Kapitel 2 SQL - der Standard relationaler Datenbanken 21 Kapitel 3 Die Beispieldatenbanken 39 Teil 2 Abfrage und Bearbeitung Kapitel
Datenbank- und Informationssysteme - Übungsblatt 6 -
Datenbank- und Informationssysteme - Übungsblatt 6 - Prof. Dr. Klaus Küspert Dipl.-Inf. Andreas Göbel Friedrich-Schiller-Universität Jena Lehrstuhl für Datenbanken und Informationssysteme 0) Vorbereitung
