WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R 0.005 Vorlesung #9 SQL Zusammenfassung.

Slides:



Advertisements
Ähnliche Präsentationen
Sicherheitsaspekte Sicherheit im DBMS
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
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
SQL als Abfragesprache
SQL als Abfragesprache
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.
Datenintegrität Referentielle Integrität create table
1 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe.
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)
2.2 Definition eines Datenbankschemas (SQL-DDL)
Datenbankentwicklung IV-LK
Relationale Datenbanken III
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 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #6 SQL (Teil 3)
WS 2007/08 Datenbanksysteme Mi 17:00 – 18:30 R Vorlesung #10 Physische Datenorganisation.
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)
WS 2011/12 Datenbanksysteme Mi 15:15 – 16:45 R Vorlesung #9 Physische Datenorganisation.
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 #5 Relationale Anfragesprachen.
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)
Vorlesung #10 Physische Datenorganisation
Relationales Datenmodell und DDL
Structured Query Language
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
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)
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
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.
SQL Basics Schulung –
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Vorlesung #5 SQL (Teil 2).
Vorlesung #6 SQL (Teil 3).
Vorlesung #7 SQL (Teil 4).
Abfragesprache SQL in ORACLE
 Präsentation transkript:

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R „Fahrplan“  Nachtrag  Views (Sichten) - gespeicherte Abfragen  Gewährleistung der logischen Datenunabhängigkeit  Modellierung von Generalisierung  UPDATE-fähige Sichten  Constraints  NOT NULL, CHECK, UNIQUE, PRIMARY KEY  Referentielle Integriät (FOREIGN KEY)  Zusammenfassung  Ausblick Vorlesung #10 Vorlesung #9 - SQL Zusammenfassung© Bojan Milijaš,

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Sichten (VIEWs)  „Aussenstehende“ – d.h. Datenbank-Benutzer wollen wissen, welcher Professor welche Vorlesungen liest?  Benutzer wissen nichts von Schlüsseln (künstliche IDs), JOINs, verschiedenen Tabellen usw. CREATE VIEW ProfVorlesung AS SELECT Name, Titel FROM Professoren, Vorlesungen WHERE PersNr = gelesenVon; Vorlesung #9 - SQL Zusammenfassung© Bojan Milijaš,

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Sichten (2) (+) Wir zeigen den Benutzern genau das, was Sie sehen wollen  Benutzerfreundlichkeit (+) Wir können die Informationen verbergen, die Benutzer nicht sehen wollen oder nicht sehen dürfen  Datenschutz und Sicherheit (+) Wir können darunterliegende Basis-Tabellen verändern. Solange die Sichten angepasst werden, merken die Benutzer nichts  logische Datenunabhängigkeit NAMETITEL KantGrundzuege... SELECT * FROM ProfVorlesung; Vorlesung #9 - SQL Zusammenfassung© Bojan Milijaš,

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Sichten (3) - logische Datenunabhängigkeit Relation 1Relation 2Relation 3 Benutzer 2Benutzer 1 Sicht 1Sicht 2Sicht 3 Physische Datenunabhängigkeit Logische Datenunabhängigkeit Vorlesung #9 - SQL Zusammenfassung© Bojan Milijaš,

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Sichten (4) – Beispiel logische Datenunabhängigkeit Internet-BesucherStudenten ProfVerlesung Dozenten lesen Kurse CREATE VIEW ProfVorlesung AS SELECT Name, Titel AS SELECT Name, Titel FROM Dozenten FROM Dozenten NATURAL JOIN lesen NATURAL JOIN lesen NATURAL JOIN Kurse; NATURAL JOIN Kurse; CREATE VIEW ProfVorlesung AS SELECT Name, Titel FROM Professoren, Vorlesungen WHERE PersNr = gelesenVon; Professoren Vorlesungen Vorlesung #9 - SQL Zusammenfassung© Bojan Milijaš,

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Sichten (5) – UPDATE-Fähigkeit  Sichten sind immer veränderbar im Bezug auf DDL- Operation, hier ist aber DML gemeint!  Sichten sind i.a. nicht UPDATE fähig, da das DBMS bei einer UPDATE, DELETE oder INSERT Operation auf einer Sicht nicht weiß, welche Basis-Tabelle wie zu verändern ist:  wenn Sichten Duplikatelimierung und Aggregatfunktionen (DISTINCT, GROUP BY usw.) beinhalten  wenn der Schlüssel der zugrundeliegenden Tabelle(n) nicht enthalten ist  Wenn durch das INSERT, UPDATE oder DELETE Statement mehr als eine Tabelle referenziert wird Vorlesung #9 - SQL Zusammenfassung© Bojan Milijaš,

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Sichten (6) – UPDATE-Fähigkeit Beispiel einer nicht UPDATABLE View: create view WieHartAlsPrüfer (PersNr, Durchschnittsnote) as select PersNr, avg(Note) from prüfen group by PersNr; alle Sichten theoretisch änderbare Sichten in SQL änderbare Sichten Vorlesung #9 - SQL Zusammenfassung© Bojan Milijaš,

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Datenintegrität  Integitätsbedingungen bis jetzt  Schlüssel  Eindeutigkeit  Beziehungskardinalitäten (min,max Notation)  Attributdomänen (NUMBER, CHAR, DATE)  Inklusion bei Generalisierung (Untertyp immer im Obertyp enthalten)  statische Integritätsbedingungen  Bedingungen an den Zustand der Datenbasis  Mit Datenbank-CONSTRAINTs realisiert  dynamische Integritätsbedingungen  Bedingungen an Zustandsübergänge  Mit Datenbank-TRIGGERn realisiert * engl. CONSTRAINT = Bedingung, TRIGGER = Auslöser Vorlesung #9 - SQL Zusammenfassung© Bojan Milijaš,

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Statische CONSTRAINTs  NOT NULL  UNIQUE  CHECK (Regel)  Vorisicht: CHECK ist auch dann erfüllt, wenn der logische Vergleich einen NULL-Wert zurückliefert CREATE TABLE MyProfessoren ( PersNr NUMBER(5,0) UNIQUE, Name VARCHAR2(30) NOT NULL, Rang CHAR(2) CHECK (Rang IN ('C1', 'C2', 'C3','C4') ) ); Vorlesung #9 - SQL Zusammenfassung© Bojan Milijaš,

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Statische CONSTRAINTs (2)  Man kann CONSTRAINTs nachträglich definieren ALTER TABLE myprofessoren ADD CHECK (Rang IN ('C1', 'C2', 'C3','C4') );  löschen, verändern, suchen, auflisten, ein- und ausschalten, validieren (siehe SQL-Manual des jeweiligen DBMS, hier Oracle Syntax für das Löschen) ALTER TABLE myprofessoren DROP CONSTRAINT sys_c003798;  Dynamische Constraints  mit Triggern nächstes Mal (Vorlesung #9) Vorlesung #9 - SQL Zusammenfassung© Bojan Milijaš,

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Referentielle Integrität  Sorgt dafür, dass die Beziehung zwischen dem Primärschlüssel und dem Fremdschlüssel bestehen bleibt (dass die Referenz - der Verweis - erhalten bleibt)  Fremdschlüssel müssen auf existierende Tupel verweisen oder einen Nullwert enthalten  Beispiel gelesenVon  PersNr CREATE TABLE Professoren (PersNr INTEGER PRIMARY KEY...) (CREATE TABLE Vorlesungen gelesenVon INTEGER REFERENCES Professoren...) Vorlesung #9 - SQL Zusammenfassung© Bojan Milijaš,

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Referentielle Integrität (2)  Schlüsselkandidat UNIQUE CONSTRAINT  Primärschlüssel PRIMARY KEY  Fremdschlüssel FOREIGN KEY (auch implizit durch das Wort REFERENCES in Tabellen- Definition)  FOREIGN KEYs können auch NULL Werte enthalten  UNIQUE FOREIGN KEY modelliert 1:1 Beziehung Vorlesung #9 - SQL Zusammenfassung© Bojan Milijaš,

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Einhaltung referentieller Integrität  Änderung von referenzierten Daten  Default: Zurückweisen der Änderungsoperation  Propagieren der Änderungen: cascade  Verweise auf Nullwert setzen: set null  Dies ergibt folgende Möglichkeiten bei der Festlegung des CONSTRAINTs in der Tabellen- Definition  ON [ UPDATE | DELETE ] [ SET NULL | CASCADE ]  Kaskadierendes Löschen mit Vorsicht geniessen!  Beispiel: wenn in „Vorlesungen“ und „hören“ kaskadierend gelöscht wird, verliert man die beim Löschen eines Professors die Information welcher Student was gehört hat. Vorlesung #9 - SQL Zusammenfassung© Bojan Milijaš,

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R UNI Schema mit Constraints  Kemper Seite 157  In der Vorlesung hat es mit dem „ON DELETE CASCADE“ Beispiel nicht geklappt, weil weitere Tabellen (hören und prüfen) auf Professoren referenzieren und nicht nur Vorlesungen Vorlesung #9 - SQL Zusammenfassung© Bojan Milijaš,

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Fazit und Ausblick  Fazit SQL Teil 1 bis 4  SQL Teil 1 – Datentypen, einfache Abfragen  SQL Teil 2 – komplexe Abfragen, Unterabfragen  SQL Teil 3 – quantifizierte Abfragen  SQL Teil 4 – Rekursion, Views, Constraints  Ausblick SQL Teil 4  Trigger, prozedurale Erweiterungen (PL/SQL)  Einbettung in C,C++,Java  SQL Schnittstellen JDBC,ODBC  Query By Example QBE Vorlesung #9 - SQL Zusammenfassung© Bojan Milijaš,

WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 Ende