datenbanksysteme i - documents online | …lips.informatik.uni-leipzig.de/files/2003-26.pdf · zur...
Post on 18-Sep-2018
216 Views
Preview:
TRANSCRIPT
Datenbanksysteme I
Sommersemester 2003
http://dbs.uni-leipzig.de
Prof. Dr. E. Rahm
Universität Leipzig
Institut für Informatik
DBS1
1 - 2(C) Prof. E. Rahm DBS1
Lehrveranstaltungen zu "Datenbanken"
DBS 1 DBS 2 (SS, 2+1) (WS, 2+1)
Implementierung
DB-Praktikum Problemseminar;
SS03ist Voraussetzung für
Workflow-Manage-
vorteilhafte Reihenfolge
Einführungs-vorlesungen
Vertiefungs-vorlesungen
Praktika* /
* Detaillierter Praktikumsschein wird ausgestellt
Datenschutz undDatensicherheit
von DBS 1 Implementierung
von DBS 2
Geoinformations-systeme 1
Data Warehousingu. D.M.
Geoinformations-systeme 2 ment / E-Services
Mehrrechner-DBS(Kern und
Schwerpunkt),
wechselnde Themen
(Grund- bzw.Kernstudium),
Seminare
DBS 1 (WINF)(WS, 2+1)
DBS 2 (WINF)(SS, 2+1)
DBS1 DBS2DBS2
IDBS1 IDBS2
je 2+0 SWS
je 2+1 SWS
Diplomandenseminar;DB-Oberseminar
z.B. Bio-Datenbanken, Datenintegration
(WS)
1 - 3(C) Prof. E. Rahm DBS1
Zur Vorlesung allgemeinn Vorlesungsumfang: 2 + 1 SWS
n Vorlesungsskript- im WWW abrufbar unter http://dbs.uni-leipzig.de (PDF, PS und HTML)
- ersetzt keinesfalls die Vorlesungsteilnahme !- ersetzt nicht zusätzliche Benutzung von Lehrbüchern
n Übungen- Durchführung in zweiwöchentlichem Abstand- selbständige Lösung der Übungsaufgaben wesentlich für Lernerfolg
- Übungsblätter im Web; Übungen zu SQL am Rechner (SQL-Trainer) - Ausgabe der Übungsblätter: 14.4., 5.5., 19.5., 2.6., 23.6.- keine Abgabe von Lösungen
n Übungsscheinvergabe (obligatorisch für Vordiplom Informatik)- Zwischenklausur am 26. Mai 2003 +- Abschlussklausur im Juli 2003
1 - 4(C) Prof. E. Rahm DBS1
Zur Vorlesung (2)n Übungsgruppen (Eintragung im Web)
n Ansprechpartner DBS1- Prof. Dr. E. Rahm: während/nach der Vorlesung,
Sprechstunde (Donn. 14-15 Uhr), HG 3-56 , rahm@informatik.uni-leipzig.de- Wissenschaftliche Mitarbeiter: Timo Böhme, boehme@informatik.uni-leipzig.de, HG 3-01- Web-Angelegenheiten: S. Jusek, juseks@informatik.uni-leipzig.de, Raum HG 3-02
Nr. Termin Woche Hörsaal Termine
1 Mo, 15:15 A HS 21 5.5., 19.5., 2.6., 16.6., 30.6.
2 Mo, 15:15 B HS 21 28.4., 12.4., 26.4., 23.6., 7.7.
3 Di, 17:15 A SG 3-11 6.5., 20.5., 3.6., 17.6., 1.7.
4 Di, 17:15 B SG 3-11 29.4., 13.5., 27.5., 24.6., 8.7.
5 Do, 11:15 A SG 3-11 8.5., 22.5., 5.6., 19.6., 3.7.
1 - 5(C) Prof. E. Rahm DBS1
Vorlesungszielen Vermittlung von Kenntnissen, Fähigkeiten und Fertigkeiten
- in der Nutzung von Informations- und Datenmodellen, insbesondere - Entity/Relationship-Modell und Erweiterungen
- Relationenmodell und SQL
- objektorientierte /objekt-relationale DBS und XML-DBS (-> Vorl. DBS2)
- in der Modellierung von anwendungsbezogenen Realitätsausschnitten (Miniwelten, Diskursbe-reiche)
- in der Programmierung von DB-Anwendungen (Vorl. DBS2)- im Entwerfen, Aufbauen und Warten von Datenbanken
n Voraussetzung für Übernahme von Tätigkeiten: - Entwicklung von datenbankgestützten Anwendungen
- Nutzung von Datenbanken unter Verwendung von (interaktiven) Datenbanksprachen- Systemverantwortlicher für Datenbanksysteme, insbesondere Datenbank-, Datensicherungs-,
Anwendungs- und Unternehmensadministrator
n DBS-Grundkenntnisse in fast allen IT-Berufen erforderlich
1 - 6(C) Prof. E. Rahm DBS1
Vorläufiges Inhaltsverzeichnis DBS11. Einführung / Grundlagen von DBS
- DBS vs. Dateisysteme - Eigenschaften von DBS
- Datenmodelle - Transaktionskonzept (ACID) - Aufbau von DBS: ANSI/SPARC-Modell, Schichtenmodell
- historische Entwicklung- Einsatzformen: OLTP, OLAP, Data Mining
2. Informationsmodellierung: Entity-Relationship-Modell / UML - Stufen des DB-Entwurfs
- Grundkonzepte des ER-Modells- Beziehungstypen, Kardinalitätsrestriktionen- Generalisierung und Aggregation
- UML (Klassendiagramme)
1 - 7(C) Prof. E. Rahm DBS1
Vorläufiges Inhaltsverzeichnis (2)3. Grundlagen des Relationalen Datenmodells
- Relationale Invarianten- Relationenalgebra
4. Einführung in die Standardsprache SQL- Befehlsübersicht
- Anfragemöglichkeiten (SELECT) - Vergleich SQL - Relationenalgebra
5. Datenmanipulation, -definition, und -kontrolle
- SQL-Änderungsoperationen- Datendefinition, Sichtkonzept (Views) - Integritätsbedingungen und Trigger - Zugriffskontrolle
6. Entwurf eines relationalen DB-Schemas (Normalformenlehre)
1 - 8(C) Prof. E. Rahm DBS1
Lehrbücher (Auswahl)
Autoren Titel Verlag Auflage Jahr
Kemper, A.; Eickler, A. Datenbanksysteme Oldenbourg-Verlag 4 2001
Heuer, A.; Saake, G. Datenbanken mitp 2 2000
Elmasri, R.; Navathe, S.B. Fundamentals of Database Systems
Addison-Wesley 3 1999
Ramakrishnan, R.; Gehrke, J. Database Management Systems McGraw Hill 3 2002
Ullman, J.D.; Widom, J. A First Course in Database Systems
Prentice Hall 2 2001
1 - 9(C) Prof. E. Rahm DBS1
Lernziele Kapitel 1n Begriffsdefintionen: Datenbank, Datenbanksystem, Datenbankverwal-
tungssystem n Vergleich DBS - Dateiverwaltungn Merkmale von DBSn Erläuterung des Transaktionskonzeptsn Erläuterung der 3-Schema-Architektur nach ANSI/SPARC und ihrer Be-
deutung im Hinblick auf Datenunabhängigkeit n Darlegung des internen DBS-Aufbaus n Historische Entwicklung von DBSn Erläuterung der wichtigsten Datenmodelle mit ihren Vor- und Nachteilenn Merkmale wichtiger DBS-Einsatzgebiete:
- Transaktionsverarbeitung (OLTP) - Entscheidungsunterstützung (OLAP)
1 - 10(C) Prof. E. Rahm DBS1
Persistente Datenhaltung n Programmiersprachen
- übliche Datenstrukturen: Arrays, Records, Listen, Bäume, Graphen ...- Speicherung im Hauptspeicher, d.h. Bestand nur für die Dauer einer Programmausführung
(“transiente” Daten)
n persistente Datenspeicherung: innerhalb von Dateien oder Datenbanken - Nutzung von Hintergrundspeicher (Magnetplattenspeicher) - Daten bleiben über Programmende, Rechnereinschaltung etc. hinaus erhalten - andere Arten des Zugriffs: Lese- und Schreiboperationen auf Einheiten von Blöcken und Sätzen- inhaltsbasierter Zugriff auf Daten vielfach erforderlich
1 - 11(C) Prof. E. Rahm DBS1
DBS als Kern von Informationssystemen
n IS = DBS + Anwendungssysteme + Benutzerschnittstellen
n DBS = DB + Datenbankverwaltungssystem (DBVS, DBMS) - DB: Menge der gespeicherten Daten - Datenbankverwaltungssystem (DBVS): Software-System zur Definition, Verwaltung, Verarbeitung und
Auswertung der DB-Daten. Es kann mittels geeigneter Parametrisierung an die speziellen Anwendungsbe-dürfnisse angepaßt werden.
Computer-
Hardware
Datenbank-
system
Betriebs-
system
Anwendungssysteme
Informationssystem (CIS)
unterstütztes
1 - 12(C) Prof. E. Rahm DBS1
Beispiele für Informationssysteme / Anwendungen
n Universitätsdatenbank- Verwaltung von Fakultäten, denen sowohl Studenten als auch Professoren zugeordnet sind- Studenten belegen Vorlesungen von Professoren und legen bei ihnen Prüfungen ab
- Anwendungen sind z.B.: Immatrikulation, Rückmeldung, Exmatrikulationen, Stundenplaner-stellung und Planung der Raumbelegung, Ausstellen von (Vor)diplomzeugnissen, Statistikenüber Höhrerzahlen / Prüfungsergebnisse, etc.
n Datenbank einer Bank- Eine Bank gliedert sich gewöhnlich in mehrere Zweigstellen, denen die Angestellten und Bank-
kunden zugeordnet sind- Verwaltung verschiedenartiger Konten der Bankkunden, z.B. Girokonten, Sparkonten, Hypo-
thekenkonten, Kleinkreditkonten, Wertpapierkonten, etc.
- Anwendungen sind z.B.: Kontoeinrichtung / -auflösung, Buchung von Zahlungsvorgängen,Kreditgewährung, Zinsberechnung und -verbuchung, Personalverwaltung (Gehaltsabrechnungetc.)
1 - 13(C) Prof. E. Rahm DBS1
Beispiele (2)n Datenbank eines Produktionsbetriebes
- Verwaltung verschiedener Abteilungen und deren Beschäftigte - Die Angestellten arbeiten an verschiedenen Projekten mit. Jedes Projekt benötigt für seine
Durchführung bestimmte Teile. Jedes Teil kann von Lieferanten bezogen werden.
- Die in einem Betrieb hergestellten Endprodukte setzen sich i.a. aus mehreren Baugruppen undEinzelteilen zusammen.
- Typische Anwendungen sind z.B.: Personalverwaltung (Einstellung / Entlassung, Lohn- undGehaltsabrechnung), Bestellung und Lieferung von Einzelteilen, Verkauf von Fertigprodukten,Lagerhaltung, Bedarfsplanung, Stücklistenauflösung, Projektplanung
n Datenbank einer Fluggesellschaft- Verwaltung von Flugstrecken / Flugzeugen / Personal (Piloten, Bord- und Bodenpersonal)
- Auf Flugstrecken werden Flugzeuge bestimmter Typen mit dafür ausgebildetem Personal ein-gesetzt
- Typische Anwendungen sind z.B.: Flugbuchungen von Passagieren, Erstellung von Passagier-listen, Personaleinsatzplanung, Materialeinsatzplanung, Flugplanerstellung, Überwachung derWartefristen, Gehaltsabrechnung
1 - 14(C) Prof. E. Rahm DBS1
Nutzung von Dateisystemenn einfach nutzbarer Ansatz /
weit verbreitet, aber erhebli-che Probleme
n wiederholte Speicherung glei-cher Daten => Redundanz
- erhöhter Speicherplatzbedarf - Konsistenzprobleme !
n enge Bindung von Daten-strukturen an Programmstruk-turen (geringe "Datenunabhängigkeit")
n Verantwortung des Programmierers für - Aufbau/Inhalt der Dateien, Effizienz des Zugriffs- Integrität der Daten, Sicherheit der Daten
n Lösung gleicher Aufgaben in allen Anwendungsprogrammen - Speicherverwaltung, Änderungsdienst, Retrieval, Schutzfunktionen
n Annahmen: Alles bleibt stabil ! Alles geht gut !
redundante Daten
Kommunikation notwendig für Änderungen
P1 P2
Datei 1 Datei 2 Datei 3
1 - 15(C) Prof. E. Rahm DBS1
Aufgaben/Eigenschaften von Daten-banksystemen
Generell: effiziente und flexible Verwaltung großer Mengen persistenter Daten (z.B. GBytes - T Bytes)
1. Zentrale Kontrolle über die operationalen Daten
2. Hoher Grad an Datenunabhängigkeit
3. Hohe Leistung und Skalierbarkeit
4. Mächtige Datenmodelle und Anfragesprachen / leichte Handhabbarkeit
5. Transaktionskonzept (ACID), Datenkontrolle
6. Ständige Betriebsbereitschaft (hohe Verfügbarkeit und Fehlertoleranz) - 24-Stundenbetrieb - keine Offline-Zeiten für DB-Reorganisation u.ä.
1 - 16(C) Prof. E. Rahm DBS1
Zentrale Kontrolle der Daten n Alle (operationalen) Daten können/müssen gemeinsam benutzt werden
- keine verstreuten privaten Dateien- Querauswertungen aufgrund inhaltlicher Zusammenhänge
n Eliminierung der Redundanz- Vermeidung von Inkonsistenzen- keine unterschiedlichen Änderungsstände
n Datenbankadministrator (DBA) hat zentrale Verantwortung für Daten
n einfache Entwicklung neuer Anwendungen auf der existierenden DB; Erweiterung/Anpassung der DB (Änderung des Informationsbedarfs)
IntegrieteDatenbank
Anwendungen
zentraleDatenbank P1
P2
P3
zentrale DBstatt verteilter Dateien
1 - 17(C) Prof. E. Rahm DBS1
Datenunabhängigkeitn Datenunabhängigkeit = Maß für die Isolation zwischen Anwendungspro-
grammen und Daten
n Konventionelle Anwendungsprogramme (AP) mit Dateizugriff- Nutzung von Kenntnissen der Datenorganisation und Zugriffstechnik- kann gutes Leistungsverhalten ermöglichen, aber ..........
n Datenabhängige Anwendungen sind äußerst unerwünscht- verschiedene Anwendungen brauchen verschiedene Sichten auf dieselben Daten- Änderungen im Informationsbedarf sowie bei Leistungsanforderungen erfordern Anpassungen
bei den Speicherungsstrukturen und Zugriffsstrategien
-> möglichst starke Isolation der Anwendungsprogramme von den Daten
sonst: extremer Wartungsaufwand für die Anwendungsprogramme
n Minimalziel: physische Datenunabhängigkeit - Unabhängigkeit gegenüber Geräteeigenschaften, Speicherungsstrukturen, Indexstrukturen, ...
n logische Datenunabhängigkeit- Unabhängigkeit gegenüber logischer Strukturierung der Daten- i.a. nur teilweise erreichbar
1 - 18(C) Prof. E. Rahm DBS1
Hohe Leistung und Skalierbarkeitn hoher Durchsatz / kurze Antwortzeiten für DB-Operationen auf großen
Datenmengen - „trotz“ hoher Datenunabhängigkeit, d.h. möglichst loser Bindung der Programme an die Daten
n Leistungsverhalten- DBS-Problem, nicht Anwendungsproblem- Zugriffsoptimierung für DB-Anfragen durch das DBS (Query-Optimierung) - Festlegung von Zugriffspfaden (Indexstrukturen), Datenallokation etc. durch den DBA (idea-
lerweise durch das DBS)- automatische Nutzung von Mehrprozessorsystemen, parallelen Plattensystemen etc. (-> Paral-
lele DBS)
n Hohe Skalierbarkeit - Anpassung an gewachsene Leistungsanforderungen (wachsende Datenmengen und Anzahl der
Benutzer)- Nutzung zusätzlicher/schnellerer Hardware-Ressourcen
1 - 19(C) Prof. E. Rahm DBS1
Mächtige Datenmodellen Datenmodell/DBS-Schnittstelle
- Operationen zur Definition von Datenstrukturen (Data Definition Language, DDL), Festlegung eines DB-Schemas
- Definition von Integritätsbedingungen und Zugriffskontrollbedingungen (Datenschutz)- Operationen zum Aufsuchen und Verändern von Daten (Data Manipulation Language DML)
n Datenstrukturierung- Beschreibung der logischen Aspekte der Daten, neutral gegenüber Anwendungen- Anwendung erhält logische auf ihren Bedarf ausgerichtete Sicht auf die Daten - formatierte Datenstrukturen, feste Satzstruktur- Beschreibung der Objekte durch Satztyp, Attribute und Attributwerte (Si/Aj/AWk)
- jeder Attributwert AWk wird durch Beschreibungsinformation (Metadaten) A j und Si in seinerBedeutung festgelegt.
1 - 20(C) Prof. E. Rahm DBS1
Mächtige Anfragesprachen n Art der Anfragesprache (query language)
- formale Sprache- navigierend oder deskriptiv, abhängig von Datenmodell
- satz- oder mengenorientiert- einfache Verknüpfung mehrerer Satztypen („typübergreifende“ Operationen)
n Strukturierung ermöglicht Einschränkung des Suchraumes für Anfragensowie effiziente Indexunterstützung
n Wünschenswert - deskriptive Problemformulierung- leicht erlernbar <-> hohe Auswahlmächtigkeit- DB-Zugrif im Dialog und von Programmen aus - Standardisierung (SQL)
n Erweiterung der Benutzerklassen- Systempersonal - Anwendungsprogrammierer- Anspruchsvolle Laien - Parametrische Benutzer- Gelegentliche Benutzer
1 - 21(C) Prof. E. Rahm DBS1
Hierarchisches Datenmodell
FACH PDATUM NOTE
FNR FNAME DEKAN
PNR PNAME FACHGEB MATNR SNAME STUDBEG
MATNR PNR FACH PDATUM NOTE
FAK
PROF STUDENT
ABGEHALTENE-PRUEFUNG
ABGELEGTE-PRUEFUNG
6780 FA 219.9.1999
1234 DBS 217.4.2000
196 481 15.10.1998 1DBS
196 481 25.3.2000 3TI
654 711 19.9.1999 2FA
654 711 17.4.2000 2DBS
6780 TI 325.3.2000
1234 DBS 115.10.1998
MI Mathematik/Informatik 2223
225 332 MÜLLER 15.4.20006780 GERBER
1234 RAHM
TI
DBS196 481 MAIER 23.10.1996
654 711 ABEL 15.10.1995
SchemaUni-DB:
Ausprägungen:
1 - 22(C) Prof. E. Rahm DBS1
Hierarchisches Datenmodell (2)n Beispielanfragen mit IBM IMS (Anfragesprache DL1)
Finde alle Studenten der Fakultät MI, die ihr Studium vor 1995 begonnen haben:
Finde alle Studenten der Fakultät MI, die im Fach DBS eine Note 2 oder besser erhielten:
GU FAK (FNR = ’MI’); { GET UNIQUE }NEXT: GNP STUDENT(STUDBEG < ’1.1.1998’); {GET NEXT WITHIN PARENT }
IF END_OF_PARENT THEN EXIT;PRINT STUDENT RECORD;GOTO NEXT;
GU FAK (FNR = ’MI’); NEXT: GNP STUDENT;
IF END_OF_PARENT THEN EXIT;GNP ABGELEGTE_PRUEFUNG (FACH = ’DBS’) AND (NOTE ’2’);IF END_OF_PARENT THEN GOTO NEXT;PRINT STUDENT RECORD;
GOTO NEXT;
≤
1 - 23(C) Prof. E. Rahm DBS1
RelationenmodellFAK
PROF STUDENT
PRUEFUNG
FNAME DEKANFNR
PNR PNAME FNR FACHGEB MATNR SNAME FNR STUDBEG
NOTEDATUMFACHMATNRPNR
FAK
FNR FNAME DEKAN
MI Mathematik/Informatik
2223
PROF
PNR PNAME FNR FACHGEB
1234 RAHM MI DBS
2223 GÜNTHER MI AN
6780 GERBER MI TI
STUDENT
MATNR SNAME FNR STUDBEG
654 711 ABEL MI 15.10.1995
196 481 MAIER MI 23.10.1996
225 332 MÜLLER MI 15.4.2000
PRUEFUNGPNR MATNR FACH DATUM NOTE
6780 654 711 FA 19.9.1999 2
1234 196 481 DBS 17.4.1998 4
1234 654 711 DBS 17.4.2000 2
6780 196 481 TI 25.3.2000 3
1 - 24(C) Prof. E. Rahm DBS1
Relationenmodell (2)n Beispielanfragen mit SQL
Finde alle Studenten der Fakultät MI, die ihr Studium vor 1995 begonnen haben:
Finde alle Studenten der Fakultät MI, die im Fach DBS eine Note 2 oder besser erhielten:
SELECT *FROM STUDENTWHERE FNR = ’MI’ AND STUDBEG < ’1.1.1998’
SELECT S.*FROM STUDENT S, PRUEFUNG PWHERE S.FNR = ’MI’ AND P.FACH = ‘DBS’ AND P.NOTE AND S.MATNR = P.MATNR2≤
1 - 25(C) Prof. E. Rahm DBS1
Transaktionskonzeptn Kontrollstruktur: Transaktionen mit den vier ACID-Eigenschaften
Eine Transaktion besteht aus einer Folge von DB-Operationen, für die das DBS folgende Eigen-schaften garantiert
- Atomicity: Alles-oder-Nichts- Consistency: Gewährleistung der Integritätsbedingungen- Isolated Execution: "logischer Einbenutzerbetrieb"- Durabiliy: Persistenz aller Änderungen
n Atomarität: mögliche Ausgänge einer TransaktionBOT BOT BOT
Op1
Op2
Op3
Opn
COMMIT
•••
normales Ende
ROLLBACK
abnormales Ende
Systemausfall,Programm-,fehler usw.
erzwungenes ROLLBACK
erzwungenes, abnormales Ende
Op1
Op2
Opk
•••
Op1
Op2
Op3
1 - 26(C) Prof. E. Rahm DBS1
Transaktionskonzept / Zugriffskontrollen Consistency: Erhaltung der logischen Datenintegrität
n Erhaltung der physischen Datenintegrität- Führen von Änderungsprotokollen für den Fehlerfall (Logging)- Bereitstellen von Wiederherstellungsalgorithmen im Fehlerfall (Recovery)
n Kontrollierter Mehrbenutzer-Betriebs (Ablaufintegrität) - logischer Einbenutzer-Betrieb für jeden von n parallelen Benutzern (Leser + Schreiber)- Synchronisation / Isolation i.a. durch Sperrverfahren - wichtig: Lese- und Schreibsperren mit angepaßten Sperreinheiten (Sperrgranulate) - Ziel: möglichst geringe gegenseitige Behinderung
n Automatisierte Zugriffskontrollen (Datenschutz)- separat für jedes Datenobjekt- unterschiedliche Rechte für verschiedene Arten des Zugriffs- Idealziel: "least priviledge principle"
1 - 27(C) Prof. E. Rahm DBS1
Modell einer Miniwelt: Grobe Zusammenhänge
n Transaktion: - garantiert ununterbrechbaren Übergang von M nach M'- implementiert durch Folge von DB-Operationen
n Integritätsbedingungen: - Zusicherungen über A und M- Ziel: möglichst gute Übereinstimmung von R und M
Vorgang
Transaktion
R R
M M'
A Abbildung
'
R: Realitätsausschnitt (Miniwelt)
M: Modell der Miniwelt (beschriebendurch DB-Schema)
A: Abbildung aller wichtigen Objek-te und Beziehungen (Entities und Rela-tionships)
=> Abstraktionsvorgang
1 - 28(C) Prof. E. Rahm DBS1
3-Ebenen-Architektur nach ANSI-SPARC • • •
KonzeptionellesSchema
InternesSchema
ExterneSchemata
Konzeptionelles Schema:
- logische Gesamtsicht aufdie Struktur der Daten-bank
- Beschreibungssprache:DDL (Data DefinitionLanguage)
- abtrahiert von internemSchema (-> physischeDatenunabhängigkeit)
Internes Schema:
- legt physische Strukturder DB fest (physischeSatzformate, Zugriffspfa-de etc.)
- Beschreibungssprache:SSL (Storage StructureLanguage)
Externes Schema:
- definiert spezielle Benut-zersicht auf DB-Struktur(für Anwendungspro-gramm bzw. Endbenut-zer)
- abtrahiert von konzeptio-nellem Schema (ermög-licht partiell logische Da-teunabhängigkeit)
1 - 29(C) Prof. E. Rahm DBS1
Stark vereinfachtes Beispiel für die Daten-beschreibung in der 3-Schema-Architektur
n Sichtenbildung durch das Externe Schema- Anpassung der Datentypen an die der Wirtssprache (DBS wird "multi-lingual")- Zugriffsschutz: Isolation von Attributen, Relationen, ...- Reduktion der Komplexität: Anwendung sieht nur die erforderlichen Daten
Extern (PL/1) DCL 1 PERSP,
2 PERS# CHAR(6),3 SAL FIXED BIN(31)
Extern (COBOL) 01 PERSC.
02 PNR PIC X(6).02 DEPTNO PIC X(4).
Konzeptionelles Schema: PERSONAL
PERSONAL_NUMMER CHARACTER (6)ABTEILUNGS_NUMMER CHARACTER (4)SALARY NUMERIC (5)
Internes Schema:
STORED_PERS LENGTH=18PREFIX TYPE=BYTE(6), OFFSET=0PNUM TYPE=BYTE(6), OFFSET=6, INDEX=PNRABT# TYPE=BYTE(4), OFFSET=12PAY TYPE=FULLWORD, OFFSET=16
1 - 30(C) Prof. E. Rahm DBS1
Grobaufbau eines DBS
Speichersystem
Zugriffssystem
Satzzugriffe
Seitenzugriffe
Datensystem
deskriptive Anfragen(Zugriff auf Satzmengen)
DB
Transaktions-verwaltung:
Logging, Recovery,
Synchronisation,Integritäts-sicherung
Metadaten-verwaltung
Log, Archiv- DDkopien ...
DBMS
DB•••
Zugriffs-kontrolle
1 - 31(C) Prof. E. Rahm DBS1
Speichersystem
Zugriffssystem
Satzzugriffe
Seitenzugriffe
Datensystem
deskriptive AnfragenZugriff auf Satzmengen
Übersetzung und Opti-mierung von Anfragen
Verwaltung von physischen Sätzen und
Systempuffer- und Extern-speicher-Verwaltung
Zugriffspfaden
DB+DD
• • •
DML-Operationen
Einfüge Satz; Modifiziere Index
Stelle Seite bereit;
Gib Seite frei
Lese / Schreibe Seite
Schichtenmodell Dynamischer Kontrollflußeiner DB-Operation
(B*-Baum)
1 - 32(C) Prof. E. Rahm DBS1
Historische Entwicklung
4. Gen1980
3. Gen1970
2. Gen1965
1. Gen1960
relationale DBS
"Datei"-Verwaltungssystem
Datei-Zugriffsmethoden
DBVS
Betriebssystem
Anwendungs-orientierung
Anwendung
5. Gen1995
objektorientierte /
hierarchische u.netzwerkartige DBS
Daten / DB
0. Gen1956
Externspeicher
relationale DBS
objektrelationale DBS
1 - 33(C) Prof. E. Rahm DBS1
Einsatzformen von DBS n dominierende DBS-Nutzung im Rahmen von Transaktionssystemen
(OLTP, Online Transaction Processing) sowie E-Business: Ausführungvorgeplanter Anwendungen
n Eine Online-Transaktion ist die Ausführung eines Programmes, das mitHilfe von Zugriffen auf eine gemeinsam genutzte Datenbank (DB) einei.a. nicht-triviale Anwendungsfunktion erfüllt, z.B.
- Bearbeiten einer Bestellung- Platzreservierung für einen Flug- Kontostandsabfrage; Abbuchen eines Geldbetrages; Überweisung - Anmelden eines Autos- Abwickeln eines Telefonanrufes, ...
n weitere DBS-Einsatzfelder / -Ausprägungen- Decision Support: OLAP (Online Analytical Processing), Data Warehousing, Data Mining- Multimedia-, Geo-, Volltext-DBS - Deduktive DBS, Wissensbankverwaltungssysteme
- Architektur: zentralisierte DBS vs. Mehrrechner-DBS (Verteilte/Parallele/Heterogene DBS), ...
1 - 34(C) Prof. E. Rahm DBS1
Grobaufbau eines zentralisierten Transaktionssystemes (ca. 1985)
Anwen-
DATENBANK
DBVS
DC-System
TP-Monitor dungs-
programme
Groß- rechner
Aufruf vonTransaktionsprogrammen Ad-Hoq-Queries
(DB-System +DC-System)
1 - 35(C) Prof. E. Rahm DBS1
3-stufige Client/Server-Architektur zur Transaktionsverarbeitung
Anwendungen + System-Middleware wie TP-Monitor bzw. Applikations-Server
1 - 36(C) Prof. E. Rahm DBS1
Transaktionsverarbeitungn Prinzipieller Ablauf
n Merkmale:- Benutzung im Dialog: “parametrischer” Benutzer- wenige kurze Transaktionstypen: hohe Wiederholrate- Vorgang besteht i.a. aus mehreren Dialogschritten - sehr viele Benutzer gleichzeitig
- gemeinsame Datenbestände mit größtmöglicher Aktualität- kurze Antwortzeiten als Optimierungsziel vor Auslastung- stochastisches Verkehrsaufkommen
- hohe Verfügbarkeit des Systems
TAP1
TAP2Benutzer
Transaktionsystem
TAP-Aufruf + Vorgangsdaten
Transaktionskennung +Eingabedaten
TAP = Transaktions-programm
1 - 37(C) Prof. E. Rahm DBS1
Entscheidungsunterstützende Systeme(Decision Support Systems, DSS)
n OLAP (Online Analytical Processing) vs. OLTP (Online Transaction Pro-cessing)
- Analyse betrieblicher Datenbestände
n häufiger Einsatz von Data Warehouses- Bereitstellung der Datenbestände eines Unternehmens für den Endbenutzer, so daß nicht nur ein
vorgegebener Blickwinkel auf die Daten unterstützt wird
- Datenbestand und aufbauende Werkzeuge für nahezu alle anfallenden Fragestellungen- Bsp.: Umsatzentwiclung nach Zeit, Produktklasse, Region, etc.
n Data Mining: Aufspüren von inhärenten Daten-/Informationsmustern ausgroßen dynamischen Datenbeständen
- oft synonym: KDD (Knowledge and Data Discovery)
1 - 38(C) Prof. E. Rahm DBS1
Data Warehouse-Umfeld
Metadata Repository
Data Mining
OperationalLayerDB2DB2
Data Warehouse
Data Warehouse
Data martsData martsData marts
I M S
Adhoc-Query Navigation OLAP
TechnicalMetadata
BusinessMetadata
Data WarehouseLayer
BusinessLayer
Flat Files
1 - 39(C) Prof. E. Rahm DBS1
Zusammenfassungn Datenverwaltung durch Dateisysteme unzureichend
n DBS-Charakteristika- Effiziente Verwaltung persistenter und strukturierter Daten - Datenstrukturierung und Operationen gemäß Datenmodell/DB-Sprache- Transaktionskonzept (ACID): Atomarität, Konsistenzerhaltung, kontrollierter Mehrbenutzerbe-
trieb (Isolation), Persistenz erfolgreicher Änderungen- zentrale (integrierte) Datenbank mit hohem Grad an Datenunabhängigkeit
n DB-Schnittstellen/-Sprachen- satzorientierte DB-Schnittstelle -> hierarchische / netzwerkartige DBS- hierarchische Modellierung führt zu hoher Redundanz - mengenorientierte DB-Schnittstelle -> relationale DBS
n 3-Ebenen-Architektur (ANSI/SPARC) - Externes Schema- Konzeptionelles Schema- Internes Schema
1 - 40(C) Prof. E. Rahm DBS1
Zusammenfassung (2)n Schichtenmodell eines DBVS
- interne Schichten für Seiten, Sätze und Satzmengen mit zugeschnittenen Operationen- Querschnittsaufgaben: Transaktionsverwaltung und Metadaten
n Haupt-Einsatzformen von DBS in Unternehmen: - Transaktionssysteme (OLTP) / E-Business- Entscheidungsunterstützung (OLAP, Data Mining)
n zahlreiche weitere DBS-Einsatzfelder: - Geoinformationssysteme, Genomdatenbanken, - Multimedia-Archive, Wissensverwaltungssysteme, - Speicherung von XML-Dokumenten ...
2 - 1(C) Prof. E. Rahm DBS1
2. Informationsmodellierung mit Entity-Relationship-Modell und UML
n Einführung Modellierung / Abstraktionskonzepte
n Entity-Relationship-Modell- Entity-Mengen- Attribute und Wertebereiche
- Primärschlüssel- Relationship-Mengen- Klassifikation der Beziehungstypen (1:1, n:1, 1:n, n:m) - Kardinalitätsrestriktionen- Schwache Entity-Mengen
n Generalisierung / Spezialisierung
n Aggregation
n Modellierung mit UML (Klassendiagramme)
2 - 2(C) Prof. E. Rahm DBS1
Lernziele Kapitel 2n Kenntnis der Vorgehensweise beim DB-Entwurf
n Grundkonzepte des ER-Modells sowie von UML-Klassendiagrammen
n Kenntnis der Abstraktionskonzepte, insbesondere von Generalisierungund Aggregation
n Fähigkeit zur praktischen Anwendung der Konzepte - Erstellung von ER-Modellen und -Diagrammen bzw. UML-Modellen für gegebene Anwen-
dungsszenarien - Festlegung der Primärschlüssel, Beziehungstypen, Kardinalitäten, Existenzabhängigkeiten etc. - Interpretation gegebener ER- bzw. UML-Modelle
(C) P
rof.
E. R
ahm
DB
S1
3 -
3
Informations- und Datenmodellierung (DB-Entwurf)
Ziele:
- modellhafte Abbildung eines anwendungsorientierten Ausschnitts der realen Welt (Miniwelt)- Entwurf der logischen und physischen DB-Struktur (DB-Entwurf) - Nachbildung von Vorgängen durch Transaktionen
Nebenbedingungen:
- Vollständigkeit- Korrektheit- Minimalität- Lesbarkeit- Modifizierbarkeit
Schrittweise Ableitung: (Verschiedene Sichten)
1) Information in unserer Vorstellung
2) Informationsstruktur: Organisationsform der Information
3) Logische (zugriffspfadunabhängige) Datenstruktur (Was-Aspekt)
4) Physische Datenstruktur (Was- und Wie-Aspekt)
An
ford
eru
ng
serm
ittlu
ng
un
d -
anal
yse
Ko
nze
pti
one
ller
En
twu
rf(I
nfo
rmat
ion
smo
del
lieru
ng
)
Log
isch
er E
ntw
urf
(DB
-Sc
hem
a, e
xte
rne
Sch
.)
ph
ysis
cher
En
twu
rf
Ver
wen
du
ng
Au
swer
tun
g u
nd
inkr
.
Mod
fika
tio
nen
Tes
t, A
usw
ertu
ng
real
es(O
bje
kt-)
Sys
tem
Entwurf Implementierung
Sys
tem
kon
stru
ktio
n u
nd
-int
egra
tio
n
(in
tern
es S
chem
a)
Info
rmat
ion
ssys
tem
Entwurf Implementierung
Leb
ensz
yklu
s e
ine
s In
form
atio
nss
yste
ms
2 - 5(C) Prof. E. Rahm DBS1
Informationsmodellierung
n Darstellungselemente + Regeln:- Objekte (Entities) und Beziehungen (Relationships)- Klassen von Objekten / Beziehungen- Eigenschaften (Attribute)
n Informationen über Objekte und Beziehungen nur wenn:- unterscheidbar und identifizierbar- relevant- selektiv beschreibbar
Gegenstände
Personen
SachverhalteZusammenhänge
Informationen
Tatsachen
Vorgänge,Veränderungen
(“Systemanalyse”)Formalisierung, Diskretisierung Attribute
(Eigenschaften)
Beziehungen
Objekte
Wirklichkeitsausschnitt (“Miniwelt”)Informationsmodell
2 - 6(C) Prof. E. Rahm DBS1
Abstraktionskonzepten Informations- und Datenmodelle basieren auf grundlegenden Abstrakti-
onskonzepten der Klassifikation, Aggregation und Generalisierung (bzw.Spezialisierung)
n Klassifikation: faßt Objekte (Entities, Instanzen) mit gemeinsamen Eigen-schaften zu einem neuen (Mengen-) Objekt (Entity-Menge, Klasse, Ob-jekttyp) zusammen. Instanzen/Objekten einer Klasse unterliegen
- gleicher Struktur (Attribute)- gleichen Operationen- gleichen Integritätsbedingungen
- mathematisch: Mengenbildung
n Aggregation: Zusammenfassung potentiell unterschiedlicher Teilobjekte(Komponenten) zu neuem Objekt
- mathematisch: Bildung von kartesischen Produkten
n Verallgemeinerung / Generalisierung: Teilmengenbeziehungen zwischenElementen verschiedener Klassen
- mathematisch: Bildung von Potenzmengen (bzw. Teilmengen)- wesentlich: Vererbung von Eigenschaften an Teilmengen
2 - 7(C) Prof. E. Rahm DBS1
Entity-Relationship-Modelln entwickelt von P. P. Chen (ACM Transactions on Database Systems 1976)
n Konzepte:- Entity-Mengen- Beziehungsmengen (Relationship-Mengen)- Attribute - Wertebereiche- Primärschlüssel
n unterstützt die Abstraktionskonzepte der Klassifikation und Aggregation
n graphische Darstellung durch Diagramme
n zahlreiche Erweiterungsvorschläge
n weite Verbreitung über konzeptionellen DB-Entwurf hinaus: Systemana-lyse, Unternehmensmodellierung
2 - 8(C) Prof. E. Rahm DBS1
Entity-Mengen n Entity (Entität, Gegenstand): repräsentiert abtraktes oder physisches Ob-
jekt der realen Welt
n Gleichartige Entities (d.h. Entities mit gemeinsamen Eigenschaften) wer-den zu Entity-Mengen (Gegenstandstypen, Objekttypen) zusammengefaßt(Klassifikation) => Entit ies sind Elemente einer (homogenen) Menge: e ∈ E
z.B. Personen, Projekte ...
Bücher, Autoren ...
Kunden, Vertreter, Wein, Behälter
n DB enthält endlich viele Entity-Mengen:E1, E2, . . . , En ; nicht notwendigerweise disjunkt
z.B. E 1 ... Personen, E2 ... Kunden: E2 ⊆ E1
n Symbol für Entity-Menge E: E
2 - 9(C) Prof. E. Rahm DBS1
Attribute und Wertebereiche n Attribute und Attributwerte:
- Eigenschaften von Entity-Mengen werden durch Attribute bestimmt- Eigenschaften einzelner Entities sind durch Attributwerte festgelegt - Nullwert: spezieller Attributwert, dessen Wert unbekannt oder nicht möglich ist (z.B. private
Tel.Nr.)
n Jedem Attribut ist ein Wertebereich (Domain) zugeordnet, der festlegt,welche Attributwerte zulässig sind (Integritätsbedingung !)
E (A1: D1 , A2 : D2 , . . . An : Dn )
- Attribute ordnen damit jedem Entity einen Attributwert aus dem Domain zu, d.h., ein AttributA entspricht einer mathematischen Funktion
A : E --> dom (A)
n Attributsymbol in ER-Diagrammen: Attr.Name
2 - 10(C) Prof. E. Rahm DBS1
Attributartenn einfache vs. zusammengesetzte Attribute
- Beispiele: NAME [Vorname: char (30), Nachname: char (30) ]ANSCHRIFT [Strasse: char (30), Ort: char (30), PLZ: char (5) ]
- Domain für einfache Attribute: dom (A) = W(A)- Domain für zusammengesetztes Attribut A [A1, A2, ... Ak]:
dom (A) = W (A1) x W (A2) x ... x W (Ak)
n einwertige (single-valued) vs. mehrwertige (multi-valued) Attribute- Beispiele: AUTOFARBE: {char (20)}
KINDER: {[Name: char (30), Alter: int]}- Domain für mehrwertiges Attribut A: {W(A)}: dom (A) = 2W (A)
n Symbol für mehrwertige Attribute: Attr.Name
2 - 11(C) Prof. E. Rahm DBS1
Primärschlüssel n Schlüsselkandidat oder kurz Schlüssel (key)
- einwertiges Attribut oder Attributkombination, die jedes Entity einer Entity-Menge eindeutigidentifiziert
- ggf. künstlich erzwungen (lfd. Nr.)
n Definition: A = {A1, A2, ..., Am} sei Menge der Attribute zu Entity-Menge E
K ⊆ A heißt Schlüsselkandidat von E⇔ K minimal; ∀ ei, ej ∈ E mit ei ≠ ej ---> K(ei) ≠ K(ej)
n keine Nullwerte!
n Entity-Menge kann mehr als einen Schlüsselkandidaten haben- Beispiel: Professor (Zi-Nr, Sekr-TelNr, Vorname, Name, PNR)
=> Auswahl eines Primärschlüssels
n Primärschlüsselattribute werden durch Unterstreichung gekenn-zeichnet Attr.Name
2 - 12(C) Prof. E. Rahm DBS1
Relationshipsn Relationship-Menge: Zusammenfassung von gleichartigen Beziehungen
(Relationships) zwischen Entities, die jeweils gleichen Entity-Mengen an-gehören
n Beispiel: Beziehungen"Vorlesungsbesuch" zwi-schen "Student" und "Vor-lesung"
n Relationship-Menge R ent-spricht einer math. Relation zwischen n Entity-Mengen EiR ⊆ E1 x E
2 x ... x E
n, d.h. R = {r = [e1, e2, ..., en] e1 ∈ E1, ..., en ∈ En}
gewöhnlich: n=2 oder n=3
n Symbol:
• •
• •
•
• • •
STUDENTVORLESUNG
s1
s2
s3
v1
v2
v3
• • •
VORLESUNGS-TEILNAHME
E1 E2R
2 - 13(C) Prof. E. Rahm DBS1
Relationships (2)n Relationship-Mengen können auch Attribute besitzen
R ⊆ E1 x E2
x ... x En x dom (A1) x ... x dom (Am)
d.h. R = {r = [e1, e2, ..., en, a1, a2, ... am] ei ∈ Ei, aj ∈ dom (Aj) }
n Beispiel
PROF (Pnr, Pname, Fach)
STUDENT (Matnr, Sname, Immdatum)
PRUEFUNG ( PROF, STUDENT, Datum, Note)
n Entities ei können durch ihre Primärschlüssel ersetzt werden
PROF STUDENTPRUEFUNG
Datum NoteDatum Note
2 - 14(C) Prof. E. Rahm DBS1
Relationships (3)n keine Disjunktheit der beteiligten Entity-Mengen gefordert
(rekursive Beziehungen)VERHEIRATET ⊆ PERSON x PERSON
VORGESETZTER ⊆ PERSON x PERSON
n Einführung von Rollennamen möglich (Reihenfolge !)VORGESETZTER (Chef: PERSON, Mitarbeiter: PERSON)
e2
e3 e4
e5
r1 r2
r3 r4
e1
e2
e3
e4
e5
• • • • •
r1
r2
r3
r4
• • • •
e1
PERSON VORGESETZTER
2 - 15(C) Prof. E. Rahm DBS1
Relationships (4)n Beispiel einer 3-stelligen Relationship-
Menge
n nicht gleichwertig mit drei 2-stelligen (binären) Relationship-Mengen!
LieferungLieferant Projekt
Teil
BeliefertLieferant Projekt
Teil
Liefert Bezieht
Beispiel:
L1 liefert T1, L1 beliefert P1,P1 bezieht T1
impliziert nicht notwendigerweise
Lieferung (L1, P1, T1)
2 - 16(C) Prof. E. Rahm DBS1
Relationships (5)n Beziehungen zwischen Relationship-Mengen werden im ERM nicht un-
terstützt (mangelnde Orthogonalität)
n Beispiel
Reise-Tourist Führer
Sehens-
gruppe
würdigkeit
Besich-tigung
2 - 17(C) Prof. E. Rahm DBS1
Kardinalität von Beziehungenn Festlegung wichtiger struktureller Integritätsbedingungen
n Unterschiedliche Abbildungstypen für binäre Beziehung zwischen Entity-Mengen Ei und Ej
- 1:1 eineindeutige Funktion (injektive Abbildung)
- n:1 mathematische Funktion (funktionale Abbildung)
- 1:n invers funktionale Abbildung
- n:m mathematische Relation (komplexe Abbildung)
n Abbildungstypen implizieren nicht, daß für jedes e ∈ Ei auch tatsächlichein e’ ∈ Ej existiert!
- n:1- sowie 1:1-Beziehungen repräsentieren somit i.a. nur partielle Funktionen
n Präzisierung der Kardinalitätsrestriktionen durch Min-Max-Notation
2 - 18(C) Prof. E. Rahm DBS1
1:1-Beziehungenn 1:1-Beziehung zwischen unterschiedlichen Entity-Mengen
n rekursive 1:1-Beziehung
• •
• •
•
• •
•PERS
1:1 LEITET/WIRD-GELEITET: PERS <---> ABT
PERS ABT
ABT
1 1
LEITET WIRD-G.
• •
• •PERS •
1:1 VERHEIRATET: PERS <---> PERS
PERS
MANN
FRAU
11
2 - 19(C) Prof. E. Rahm DBS1
n:1-Beziehungenn n:1-Beziehung zwischen unterschiedlichen Entity-Mengen
n rekursive n:1-Beziehung
PERS
• •
ABT
• • •
• •
••n:1 ARBEITET-FÜR/MITARBEITER: PERS ---> ABT
PERS ABT
ARB.-FÜR MITARB.
n 1
• •
•PERS •
••
n : 1 UNTERGEB./VORGESETZTER_VON: PERS ---> PERS
PERS
UNTERG.
VORGES.
n1
2 - 20(C) Prof. E. Rahm DBS1
n:m-Beziehungenn n:m-Beziehung zwischen unterschiedlichen Entity-Mengen
n rekursive n:m-Beziehung
• •
• •
•
• • •PERS
PROJEKT
n:m ... ARBEITET_FÜR/MITARBEIT: PERS --- PROJEKT
PERS PROJEKTn m
ARB.-FÜR MITARB.
TEIL • •
• •
••
n : m SETZT_SICH_ZUSAMMEN_AUS/GEHT_EIN_IN : TEIL --- TEIL
TEIL
SETZT-S-Z-A
GEHT-EIN
nm
2 - 21(C) Prof. E. Rahm DBS1
Kardinalitätsrestriktionen: Min-Max-Notation n bisher: grobe strukturelle Festlegung der Beziehungen
- z.B.: 1:1 bedeutet “höchstens eins zu höchstens eins” - nur zweistellige Beziehungen klassifizierbar
n Verfeinerung der Semantik eines Beziehungstyps durch Min-Max-Kardi-nalitätsrestriktionen
n Definition: sei R ⊆ E1 x E2 x ... x En Kardinalitätsrestrikt ion kard(R,Ei ) = [min,max] bedeutet, daß jedes Element aus E i in wenigstens min und höchstens max Ausprägungen von R enthalten sein muß
(mit 0 <= min <= max, max >= 1)
n Diagrammdarstellung:
n Min-Max-Notation erlaubt Unterscheidung, ob Teilnahme eines Entitiesan einer Beziehung optional (Mindestkardinalität 0) oder obligatorisch(Mindestkardinalität >= 1 ) ist
E2
[min2,max2]RE1
[min1,max1]
e1 nimmt an [min1,max1] Beziehungen von Typ R teil
e2 nimmt an [min2,max2] Beziehungen von Typ R teil
2 - 22(C) Prof. E. Rahm DBS1
Min-Max-Kardinalitätsrestriktionen: Beispiele
R E1 E2klass.
Beziehungstyp kard (R, E1) kard (R, E2)
Abt.Leitung ABT PERS
Proj.Mitarbeit PERS PROJEKT
Parteimitglied PARTEI PERS
Verheiratet FRAU MANN
V.teilnahme VORL STUDENT
Belegung PERS ZIMMER
Eltern PAARE KIND
PERSAbt.-
ABT Zugehörig-keit1 n
2 - 23(C) Prof. E. Rahm DBS1
Schwache Entity-Mengen (weak entities)n Entity-Menge mit Existenzabhängigkeit zu anderer Entity-Menge
- kein eigener Schlüsselkandidat, sondern Identifikation über Beziehung zur übergeordnetenEntity-Menge
n Bsp.: Entity-Menge Raum (Nummer, Größe) abhängig von Gebäude n Konsequenzen
- i.a. n:1 bzw. 1:1-Beziehung zwischen schwacher Entity-Menge und Vater-Entity-Menge- jedes schwache Entity muß in Relationship-Menge mit Vater-Entity-Menge vertreten sein (ob-
ligatorische Beziehungsteilnahme, minimale Kardinalität 1)- Primärschlüssel ist zumindest teilweise von Vater-Entity-Menge abgeleitet
n ER-Symbole:
n Beispiel:
E V
RAUMhatGebäude1 n
2 - 24(C) Prof. E. Rahm DBS1
Definition von Entity- und Relationship-Mengen
n Entity-Typ = Deklaration einer Entity-Menge umfaßt
- eindeutigen Namen E- Festlegung aller Attribute A mit Wertebereichen / Domains - Angabe des Primärschlüssels
n Relationship-Typ = Deklaration einer Relationship-Menge umfaßt
- eindeutigen Namen R- Grad der Beziehung n- Festlegung der beteiligten Entity-Typen E1 ... En- ggf. Festlegung von Rollennamen - Festlegung des Abbildungs/Beziehungstyps - Festlegung der Kardinalitätsrestriktionen- Festlegung von Relationship-Attributen A mit Wertebereichen
2 - 25(C) Prof. E. Rahm DBS1
Überblick über ER-Diagrammsymbole
E2[min2,max2]
RE1[min1,max 1]
schwache
E1 E21 n
R
Entity-Menge
Attribut
Entity-MengeRelationship-
Menge
Schlüssel-attribut
mehrwertigesAttribut zusammengesetztes
Attribut
Kardinalitätsangaben
E ER
A A A
A
A1 A2 A3
2 - 26(C) Prof. E. Rahm DBS1
ERM: AnwendungsbeispielEine Bibliothek besteht aus Büchern und Zeitschriften.
- Jedes Buch kann ggf. mehrere Autoren haben und ist eindeutig durch seine ISBN gekennzeich-net. Die Bibliothek besitzt teilweise mehrere Exemplare eines Buches.
- Zeitschriften dagegen sind jeweils nur einmal vorhanden. Sie erscheinen in einzelnen Heftenund werden jahrgangsweise gebunden.
- Die in Zeitschriften publizierten Artikel sind ebenso wie Bücher einem oder mehreren Fachge-bieten (z.B. Betriebssysteme, Datenbanksysteme, Programmiersprachen) zugeordnet.
- Ausgeliehen werden können nur Bücher (keine Zeitschriften).
Zeitschrift
Autor
Buch
Artikel
FachgebietBuchexemplar
Leser
ISBN
TitelZNR
Name
Jahrgang
Heft
Titel
n
1
n
1
n
1
nm
n
m n
m
n
m
2 - 27(C) Prof. E. Rahm DBS1
Generalisierung / Spezialisierungn Is-A-Beziehung zwischen Entity-Mengen führt zu Hierarchie von Super-
und Subklassen
- E1 is-a E2 bedeutet, daß jedes Entity e aus E1 auch ein Entity aus E2 ist, jedoch mit zusätzlichenstrukturellen Eigenschaften
- Substitutionsprinzip: alle Instanzen einer Subklasse sind auch Instanzen der Superklasse
n Generalisierung: Bottom-Up-Vorgehensweise- Bildung allgemeinerer Superklassen aus zugrundeliegenden Subklassen- Übernahme gemeinsamer Eigenschaften und Unterdrückung
spezifischer Unterschiede - rekursive Anwendbarkeit => Generalisierungshierarchie
n Spezialisierung: Top-Down-Vorgehensweise- zuerst werden die allgemeineren Objekte (Superklassen), dann
die spezielleren (Subklassen) beschrieben
n Vererbung von Eigenschaften (Attribute, Integritätsbedingungen, Metho-den ...) der Superklasse an alle Subklassen
Superklasse
is-a≡
Subklasse2
is-a
Subklasse1
Superklasse
Subklasse2Subklasse1
is-a
Fahrzeug
LKW PKW
KennzeichenHalter
Baujahr
2 - 28(C) Prof. E. Rahm DBS1
Generalisierung / Spezialisierung (2)n Vorteile des Vererbungsprinzips
- Wiederverwendbarkeit- Erweiterbarkeit - keine Wiederholung von Beschreibungsinformation, abgekürzte Beschreibung- Fehlervermeidung
n keine reine Hierarchien, sondernNetzwerke (n:m)
- eine Klasse kann Subklasse mehrerer Su-perklassen sein
- ein Objekt kann gleichzeitig Instanz ver-schiedener Klassen sein
- Zyklen nicht erlaubt/sinnvoll (A is-a B, B is-a A)
n führt u.a. zum Problem der Mehr-fach-Vererbung (multiple inheri-tance)
- Namenskonflikte möglich - benutzergesteuerte Auflösung, z.B. durch Umbenennung
Universitäts-angehöriger
Bediensteter Student
AngestellterBeamter
stud.Hilfskraft
NameGeburtstag
WochenstundenKostenstelle
Pnr
is-a
MatnrFakultätFakultät
2 - 29(C) Prof. E. Rahm DBS1
Spezialisierung: Definitionenn Klasse: Menge von Entities (Entity-Mengen, Superklassen, Subklassen)
n Subklasse: Klasse S, deren Entities eine Teilmenge einer Superklasse Gsind (is-a-Beziehung), d.h.
S ⊆ G
d.h. jedes Element (Ausprägung) von S ist auch Element von G.
n Spezialisierung: Z = {S1, S2, ... Sn}Menge von Subklassen S i mit derselben Superklasse G
n Zusätzliche Integritätsbedingungen: Vollständigkeit (Überdeckung) undDisjunktheit von Spezialisierungen
Z heißt vollständig (complete), fal ls gi l t : G = ∪ S i (i = 1..n)
andernfalls partiell (incomplete).
Z ist disjunkt (disjoint), fal ls S i ∩ S j = { } für i ≠ j
andernfalls überlappend (overlapping).
2 - 30(C) Prof. E. Rahm DBS1
Arten von Spezialisierungen
n disjunkte Spezialisierungen (Partitionierung)
X
ZY
Superklasse
Subklassen
(Spezialisierungstyp)
Y ZX
ZX
Y
partiell, disjunkt (incomplete, disjoint)vollständig, disjunkt (complete, disjoint)
2 - 31(C) Prof. E. Rahm DBS1
Arten von Spezialisierungen (2)
n überlappende Spezialisierungen
X
ZY
Superklasse
Subklassen
(Spezialisierungstyp)
Y ZX
Z
X
Y
partiell, überlappend vollständig, überlappend (complete, overlapping) (incomplete, overlapping)
2 - 32(C) Prof. E. Rahm DBS1
Aggregation n Objekte werden als Zusammensetzung von anderen Objekten angesehen
- eine Kombination von einfachen (atomaren, d.h. nicht weiter zerlegbaren) Objekten (Element,Teil) wird betrachtet als zusammengesetztes Objekt (Aggregatobjekt)
- Einfache Formen der Aggregation: m zusammengesetzte Attributem Entity-Typ als Aggregation verschiedener Attribute
- Erweiterung auf Beziehung zwischen Entity-Typen / Klassen
n Zwischen Komponentenobjekten besteht Part-of-Beziehung (Teil-von-Beziehung)- Elemente einer Subkomponente sind auch Elemente aller Superkomponenten dieser Subkomponente- Referenzsemantik ermöglicht, daß ein Objekt gleichzeitig Elemente verschiedener Komponenten bzw. Sub-
komponente von mehreren Superkomponenten sein -> Netzwerke, (n:m) !- Wertesemantik (Komposition): Teil-Objekt gehört genau zu einem Aggregat-Objekt; Existenzabhän-
gigkeit!
Aggregatklasse
part-of≡
Komp.klasse2
part-of
Komp.klasse1
Aggregatklasse
Komp.klasse2Komp.klasse1
Aggregatklasse
Komp.klasse2Komp.klasse1
oder
Komposition
2 - 33(C) Prof. E. Rahm DBS1
Aggregation (2)
n Unterstützung komplex-strukturierter Objekte
n heterogene Komponenten möglich
n keine Vererbung !
Fahrräder
Rahmen
Rohre
Räder
part-of
part-of
Gewicht
part-of
part-of
Lenker Felgen Speichen
part-of
part-of
2 - 34(C) Prof. E. Rahm DBS1
Kombination von Generalisierung und Aggregation
Fahrräder
Rahmen
Rohre
Räder
Lenker Felgen Speichen
Fahrzeuge
unmotor. motoris.FahrzeugeFahrzeuge
Roller LKW PKW
2 - 35(C) Prof. E. Rahm DBS1
Unified Modeling Language (UML)n standardisierte graphische Notation/Sprache zur Beschreibung objektori-
entierter Software-Entwicklung
n Kombination unterschiedlicher Modelle bzw.Notationen, u.a.
- Booch - Rumbaugh (OMT) - Jacobson (Use Cases)
n Standardisierung durch Herstellervereinigung OMG (Object ManagementGroup)
- Nov. 1997: UML 1.1- Nov. 1999: UML 1.3 - Mai 2001: UML 1.4 - UML 2.0 in Vorbereitung
n Infos: - Web: http://www.uml.org- Buch-Tipp:
M. Hitz, K. Kappel: UML@Work, dpunkt-Verlag, 2. Auflage 2003
2 - 36(C) Prof. E. Rahm DBS1
UML-Bestandteilen UML umfasst
- Modellelemente: Klassen, Interfaces, Komponenten, Anwendungsfälle (use cases) ...- Beziehungen (relationships): Assoziationen, Generalisierung, Abhängigkeiten (dependencies) ... - Diagramme: Klassendiagramme, Use Case-Diagramme, Interaktionsdiagramme, Paketdiagramme, Zu-
standsdiagramme (state chart diagrams), Aktivitätsdiagramme (activity diagrams), Verteilungsdiagramme(deployment diagrams) ...
n Generelle Sichtweisen- Klassen- vs. Instanzsicht (Objekt ist Instanz
einer Klasse bzw. Klasse klassifiziert Instan-zen)
- Spezifikations- vs. Implementierungssicht(Interface spezifiziert Klasse, Klasse reali-siert Interface)
- Analyse- vs. Entwurf- vs. Laufzeit-Sichten
n (Statische) Strukturdiagramme- Festlegung von Elementen (Klassen, Inter-
faces, ...), deren interne Struktur sowie vonBeziehungen
- Klassendiagramme vs. Objektdiagramme
Anforderungen
Analyse
Entwurf
Implementierung
Anwendungsfälle
Klassendiagramme,
Klassendiagramme(verfeinert)
Modularisierung
KomponentendiagrammeCode (Klassendefin.)
SW-Entwicklung
Objektstruktur Objektverhalten
Aktivitäten
Szenarien,Sequenzdiagr.
Kooperations-, Zustandsdiagr.
Verteilungsdiagr.Code (Methoden)
2 - 37(C) Prof. E. Rahm DBS1
Darstellung von Klassen und Objektenn Klassensymbol: Angabe von Klassenname, Attribute (optional), Metho-
den (optional)- i.a. werden nur relevante Details gezeigt
n analoge Darstellung von Klasseninstanzen (Objekten)
- keine Methodenangabe
StudentStudent
Semester (): intSummeSWS (): short
StudentMatNr: intName: StringImmat: Date
Student
Semester (): intSummeSWS (): short
MatNr: intName: StringImmat: Date
s2: StudentMatNr = 98765432Name = „Jennifer Meyer“
studi :Student
Immat= 2002/10/1
2 - 38(C) Prof. E. Rahm DBS1
Darstellung von Klassen (2)n Detaildarstellung auf Implementierungsebene
- Attributspezifikation: Sichtbarkeit Name: Typ = Default-Wert { Eigenschaften }- Operationen: Sichtbarkeit Name (Parameterliste) : Rückgabeausdruck { Eigenschaften }- Deklaration der Sichtbarkeit : öffentlich / public (+), geschützt / protected (#), privat (-)- unterstrichen: Klassen-Attribute / -Operationen
n Darstellung von Bedingungen (Constraints) innerhalb geschweifter Klam-mern { }
- Formulierung der Bedingungen in beliebiger Sprache möglich - OCL (Object Contraint Language) Teil der UML
Window
display ()
size:Areavisibility:Boolean
hide ()
Window
Window
+default-size:Rectangle#maximum-size:Rectangle
+create ()
+display ()
+size:Area = (100,100)#visibility:Boolean = invisible
+hide ()
-xptr: XWindow*
-attachXWindow(xwin:Xwindow*)
{abstract,author=Joe}
2 - 39(C) Prof. E. Rahm DBS1
Assoziationenn Repräsentation von Beziehungen (relationships)
n optional: Festlegung eines Assoziationsnamens, seiner Leserichtung( bzw. ), von Rollennamen, Sichtbarkeit von Rollen (+, -, #) sowieKardinalitätsrestriktionen
n Kardinalitätsrestriktionen (multiplicity) - Definition: „multiplicity specifies the number of target instances that may be associated with a single source
instance across the given association“ (betrifft also „gegenüberliegende“ Klasse)
- kein Default-Wert (fehlende Angabe bedeutet “unspezifiziert”) - x..y mindestens x, maximal y Objekte nehmen an der Beziehung teil - * “viele” - 0..* optionale Teilnahme an der Beziehung- 1..*- 0..1- 1 genau 1
Assoziationsname
Rolle 1Klasse 1 Klasse 2Rolle 2
2 - 40(C) Prof. E. Rahm DBS1
Assoziationen (2)n Assoziations-Klassen
- notwendig für Beziehungen mit eige-nen Attributen
- gestrichelte Linie- Name der A.-Klasse entspricht dem
der Assoziation
n Verwendung einer Assoziationsklasse unterscheidet sich i.a. von Nutzungeiner „normalen“ Klasse
**Prof Student
Prüfungstermin
**
Prof Student
Prüfungstermin
11
2 - 41(C) Prof. E. Rahm DBS1
Assoziationen (3)n 3-stellige Beziehung
- Multiplizitätsangabe einer Klasse regelt bei n-stelligen Beziehungen die Anzahl möglicher In-stanzen (Objekte) zu einer fixen Kombination von je einem Objekt der übrigen n-1 Assoziati-onsenden
n gerichtete Assoziation- Einschränkung der Navigierbarkeit: keine direkte Navigationsmöglichkeit in umgekehrter
Richtung (einfachere Implementierung) - auf konzeptioneller Ebene nicht notwendigerweise festzulegen
**Teil Projekt
Lieferant*
0..1PERS ABTarbeitetIn
2 - 42(C) Prof. E. Rahm DBS1
UML-Darstellung Generalisierung
n Angabe von Diskriminatoren sowie Spezialierungsart (overlapping/dis-joint, incomplete/complete)
Shape
SplineEllipsePolygon
Separate Target Style
. . .
Shape
SplineEllipsePolygon
Shared Target Style
. . .
Vehicle
WindPoweredVehicle
MotorPoweredVehicle
LandVehicle
WaterVehicle
venuevenuepower
power
SailboatTruck
{overlapping} {overlapping}
Tree
Oak Elm Birch
species
2 - 43(C) Prof. E. Rahm DBS1
Aggregation (UML)n Aggregation: spezielle Assoziation zwischen 2 Klassen, in der eine Klas-
se eine andere vollständig (whole) enthält
n Komposition: Aggregation, bei der eine Klasse ein Attribut einer anderen ist - Teil-Objekt gehört genau zu einem Aggregat-Objekt- Existenzabhängigkeit
n Unterschiedliche Darstellungsarten zur Komposition
Aggregation Komposition
Part Part
By-Reference Whole By-Value Whole
Window
scrollbar [2]: Slidertitle: Headerbody: Panel
Windowscrollbar:Slider
Window
2
title:Header1
body:Panel1
2 - 44(C) Prof. E. Rahm DBS1
Kommentare / abgeleitete Attribute
Person Company
boss
{Person.employer =Person.boss.employer}
employerworker employee
0..1∗ ∗ 0..1
representsan incorporated entity
Persongeburtstag/alter{alter = currentDate - geburtstag}
2 - 45(C) Prof. E. Rahm DBS1
Beispiel UML-Klassendiagramm
Student
Semester (): intSummeSWS (): short
MatNr: intName: StringImmat: Date
Vorlesung
AnzHörer (): int
VorlNr: intName: StringSWS: int
Professor
LehrStundenzahl (): intRang: String
PrüfungDatum: DateNote: Decimal
Assistent
Resturlaub (): intPromotionsgebiet: String
Beschäftigte
Gehalt (): short
PersNr: intName: String
arbeitetFür* 1
1
*
Prüfling Prüfungsstoff*
*
setztVoraus*
*
hörtHörer
3..* *
liest
Dozent
*
1
* 1 Prüfer
2 - 46(C) Prof. E. Rahm DBS1
Zusammenfassungn DB-Entwurf umfaßt
- Informationsanalyse- konzeptioneller Entwurf (-> Informationsmodell)- logischer Entwurf (-> logisches DB-Schema)- physischer Entwurf (-> physisches DB-Schema)
n Informationsmodellierung mit dem ER-Modell- Entity-Mengen und Relationship-Mengen- Attribute, Wertebereiche, Primärschlüssel- Beziehungstypen (1:1, n:1, n:m) und Kardinalitätsrestriktionen- Diagrammdarstellung
n UML-Klassendiagramme: Unterschiede zu ER-Modell- standardisiert- Spezifikation von Verhalten (Methoden), nicht nur strukturelle Aspekte - Unterstützung der Abstraktionskonzepte der Generalisierung / Spezialisierung, Aggregation /
Komposition
n keine festen Regeln zur eigentlichen Informationsmodellierung (i.a. meh-rere Modellierungsmöglichkeiten einer bestimmten Miniwelt)
(C) Prof. E. Rahm DBS13 - 1
3. Grundlagen des Relationalen Daten-modells
Grundkonzepte
Relationale Invarianten
- Primärschlüsselbedingung
- Fremdschlüsselbedingung (referentielle Integrität)
- Wartung der referentiellen Integrität
Abbildung ERM → RM
Nachbildung der Generalisierung und Aggregation im RM
Relationenalgebra
- Mengenoperationen
- relationale Operatoren: Selektion, Projektion, Join
Kapitel 4: Die Standard-Anfragesprache SQL
Kapitel 5: Logischer DB-Entwurf (Normalformenlehre)
Kapitel 6: Datenmanipulation, -definition, und -kontrolle
Kapitel 7: DB-Anwendungsprogrammierung (evtl. in DBS2)
(C) Prof. E. Rahm DBS13 - 2
LernzieleGrundbegriffe des Relationenmodells
Relationale Invarianten, insbesondere Vorkehrungen zur Wahrung der re-ferentiellen Integrität
Abbildung von ER-Diagrammen in Relationenschema (und umgekehrt)
Operationen der Relationenalgebra: Definition und praktische Anwen-dung
(C) Prof. E. Rahm DBS13 - 3
Relationenmodell - ÜbersichtEntwicklungsetappen
- Vorschlag von E.F. Codd (Communications of the ACM 1970)
- 1975: Prototypen: System R (IBM Research), Ingres (Berkeley Univ.)
- seit 1980: kommerzielle relationale DBS
Datenstruktur: Relation (Tabelle)
- einzige Datenstruktur (neben atomaren Werten)
- alle Informationen ausschließlich durch Wertedargestellt
- Integritätsbedingungen auf/zwischen Relationen:relationale Invarianten
Operatoren auf (mehreren) Relationen
- Vereinigung, Differenz
- Kartesisches Produkt
- Projektion
- Selektion
- zusätzlich: Änderungsoperationen (Einfügen, Löschen, Ändern)
(C) Prof. E. Rahm DBS13 - 4
Relationenmodell - Grundkonzepte
Def.: normalisierte Relation
- Relation = Untermenge des kartesischen Produktes der Attributwertebereiche
- nur einfache Attibute (atomare Werte) !
Darstellungsmöglichkeit für R: n-spaltige Tabelle (Grad der Relation: n)
Relation ist eine Menge: Garantie der Eindeutigkeit der Zeilen/Tupel
-> Primärschlüssel (ggf. mehrere Schlüsselkandidaten)
Attribut
Definitionsbereich wie im ERM
Primärschlüssel
Entity-Typ
Relation
Relationship-Typ
Attribut
Definitionsbereich wie im ERM
Primärschlüssel
R A1
A2
… An
, , ,( ) W A1
( ) W A2
( ) … W An
( )×××⊆
Di
Dj
Dk
(C) Prof. E. Rahm DBS13 - 5
Normalisierte Relationen in Tabellendarstellung
Grundregeln:
- Jede Zeile (Tupel) ist eindeutig und beschreibt ein Objekt (Entity) der Miniwelt
- Die Ordnung der Zeilen ist ohne Bedeutung; durch ihre Reihenfolge wird keine für den Benutzerrelevante Information ausgedrückt
- Die Ordnung der Spalten ist ohne Bedeutung, da sie einen eindeutigen Namen (Attributnamen)tragen
- Jeder Datenwert innerhalb einer Relation ist ein atomares Datenelement
- Alle für den Benutzer bedeutungsvollen Informationen sind ausschließlich durch Datenwerteausgedrückt
Darstellung "relationenübergreifender" Information durch Fremdschlüs-sel (foreign key)
- Attribut, das in Bezug auf den Primärschlüssel einer anderen (oder derselben) Relation definiertist (gleicher Definitionsbereich)
- Beziehungen werden durch Fremdschlüssel und zugehörigen Primärschlüssel dargestellt!
FAK
FNR FNAME ...
WI Wirtschaftswiss. ...
MI Math./Informatik ...
MATNR SNAME FNR STUDBEG
123 766 Coy MI 1. 10. 00
654 711 Abel WI 1. 10. 01
196 481 Maier MI 1. 4. 00
226 302 Schulz MI 1. 10. 00
STUDENT
(C) Prof. E. Rahm DBS13 - 6
Anwendungsbeispiel
PrüfungProf Student
Fakultät
gehört-zu ist-eingeschr.-
in
1 1
nn
n m
ER-Diagramm
Relationales Schema
Dekan
1
1
FAK
PROF
STUDENT
PRUEFUNG
FNAME DEKANFNR
PNR PNAME FNR FACHGEB
MATNR SNAME FNR STUDBEG
NOTEDATUMFACHMATNRPNR
(C) Prof. E. Rahm DBS13 - 7
Relationale Invarianteninhärente Integritätsbedingungen des Relationenmodells (Modellbedin-gungen)
1. Primärschlüsselbedingung (Entity-Integrität)
- Eindeutigkeit des Primärschlüssels
- keine Nullwerte!
2. Fremdschlüsselbedingung (referentielle Integrität):
- zugehöriger Primärschlüssel muß existieren
- d.h. zu jedem Wert (ungleich Null) eines Fremdschlüsselattributs einer Relation R2 muß eingleicher Wert des Primärschlüssels in irgendeinem Tupel von Relation R1 vorhanden sein
DDL-Spezifikation in SQL:CREATE TABLE FAK (FNR CHAR(4), ...,PRIMARY KEY (FNR)CREATE TABLE STUDENT (MATNR CHAR (9), ... , FNR CHAR(4), ...,
PRIMARY KEY (MATNR), FOREIGN KEY (FNR) REFERENCES FAK
Graphische Notation: STUDENT FAKFNR
referenzierende referenzierteRelation Relation
(C) Prof. E. Rahm DBS13 - 8
Relationale Invarianten (2)Fremdschlüssel und zugehöriger Primärschlüssel tragen wichtige inter-
relationale (manchmal auch intrarelationale) Informationen
- sie sind auf dem gleichen Wertebereich definiert
- sie gestatten die Verknüpfung von Relationen mit Hilfe von Relationenoperationen
Fremdschlüssel
- können Nullwerte aufweisen, wenn sie nicht Teil eines Primärschlüssels sind.
- ein Fremdschlüssel ist zusammengesetzt, wenn der zugehörige Primärschlüssel zusammenge-setzt ist. (FS-Wert = "Null" bedeutet dann, daß alle Komponenten auf "Null" gesetzt sind)
eine Relation kann mehrere Fremdschlüssel besitzen, die die gleiche oderverschiedene Relationen referenzieren
Zyklen sind möglich (geschlossener referentieller Pfad)
eine Relation kann zugleich referenzierende und referenzierte Relationsein ("self-referencing table").
(C) Prof. E. Rahm DBS13 - 9
Wartung der referentiellen IntegritätGefährdung bei INSERT, UPDATE, DELETE
Fall 0: INSERT auf R1, DELETE auf R2
Fall 1: INSERT bzw. UPDATE auf FS der referenzierenden (abhängigen)Relation R2: Ablehnung falls kein zugehöriger PS-Wert in referenzierterRelation R1 besteht
Fall 2: DELETE auf referenzierter Relation R1 bzw. UPDATE auf PS vonR1. Unterschiedliche Folgeaktionen auf referenzierender Relation R2möglich, um referentielle Integrität zu wahren
R1 (FAK)
R2 (STUDENT)
FNR
(C) Prof. E. Rahm DBS13 - 10
Wartung der referentiellen Integrität (2)SQL92-Standard erlaubt Spezifikation der referentiellen Aktionen für je-den Fremdschlüssel (FS)
Sind Nullwerte verboten?- NOT NULL
Löschregel für Zielrelation (referenzierte Relation R1):
ON DELETE {NO ACTION | CASCADE | SET NULL | SET DEFAULT }
Änderungsregel für Ziel-Primärschlüssel (Primärschlüssel oder Schlüssel-kandidat):
ON UPDATE {NO ACTION | CASCADE | SET NULL | SET DEFAULT}
Dabei bedeuten:
- NO ACTION: Operation wird nur zugelassen, wenn keine zugehörigen Sätze (Fremdschlüssel-werte) vorhanden sind. Es sind folglich keine referentiellen Aktionen auszuführen
- CASCADE: Operation "kaskadiert" zu allen zugehörigen Sätzen
- SET NULL: Fremdschlüssel wird in zugehörigen Sätzen zu “Null” gesetzt
- SET DEFAULT: Fremdschlüssel wird auf einen benutzerdefinierten Default-Wert gesetzt
(C) Prof. E. Rahm DBS13 - 11
AnwendungsbeispielCREATE TABLE TEIL (TNR, BEZEICHNUNG, . . . ), PRIMARY KEY (TNR)
CREATE TABLE LIEFERANT (LNR, LNAME, ORT, . . . ) PRIMARY KEY (LNR)
CREATE TABLE LIEFERUNG (TNR, LNR, MENGE, DATUM) PRIMARY KEY (TNR, LNR),
FOREIGN KEY (TNR) REFERENCES TEIL, NOT NULL,
ON DELETE OF TEIL NO ACTION
ON UPDATE OF TEIL.TNR CASCADE,
FOREIGN KEY (LNR) REFERENCES LIEFERANT, NOT NULL,
ON DELETE OF LIEFERANT NO ACTION,
ON UPDATE OF LIEFERANT.LNR CASCADE
TEIL LIEFERANT
LIEFERUNG
(C) Prof. E. Rahm DBS13 - 12
Abbildung ERM -> RM
Kriterien
- Informationserhaltung
- Minimierung der Redundanz
- Minimierung des Verknüpfungsaufwandes
aber auch:
- Natürlichkeit der Abbildung
- keine Vermischung von Objekten
- Verständlichkeit
Regeln:
- Jeder Entity-Typ muß als eigenständige Relation (Tabelle) mit einem eindeutigen Primärschlüs-sel definiert werden.
- Relationship-Typen können als eigene Relationen definiert werden, wobei die Primärschlüsselder zugehörigen Entity-Typen als Fremdschlüssel zu verwenden sind.
RE1 E2
Relation 1 Relation 2 Relation 3?
(C) Prof. E. Rahm DBS13 - 13
2 Entity-Typen mit n:1 - Verknüpfung
1.) Verwendung von drei Relationen
ABT (ANR, ANAME, ...)
PERS (PNR, PNAME, ...)
ABT-ZUGEH (PNR, ANR, )
2.) Besser: Verwendung von zwei Relationen
ABT (ANR, ANAME, ...)
PERS (PNR, PNAME, ..., ANR)
Regel: n:1-Beziehungen lassen sich ohne eigene Relation darstellen.
- Hierzu wird in der Relation, der maximal 1 Tupel der anderen Relation zugeordnet ist, der Pri-märschlüssel der referenzierten Relation als Fremdschlüssel verwendet
ABT PERSABT-ZUGEH1 n
[0, *] [0, 1]
(C) Prof. E. Rahm DBS13 - 14
1 Entity-Typ mit 1:1 - Verknüpfung
1.) Verwendung von zwei Relationen
PERS (PNR, PNAME, ...)
EHE ( PNR , GATTE, ...)
2.) Verwendung von einer Relation
PERS (PNR, PNAME, ..., GATTE)
Unterscheidung zu n:1 ?
EHEPERS
Ehemann1
Ehefrau1
(C) Prof. E. Rahm DBS13 - 15
1 Entity-Typ mit m:n - Verknüpfung
Darstellungsmöglichkeit im RM:TEIL (TNR, BEZ, MAT, BESTAND)
STRUKTUR ( , , ANZAHL)
Teil Struktur
n
m
Stückliste
OTNR UTNR
TNR BEZ MAT BESTAND A Getriebe - 10 B Gehäuse Alu 0 C Welle Stahl 100 D Schraube Stahl 200 E Kugellager Stahl 50 F Scheibe Blei 0 G Schraube Chrom 100
OTNR UTNR ANZAHLA B 1A C 5A D 8B D 4B G 2C D 4C E 2
A
D
B
G
C
E
1
22 4 4
5
8
Regel: Ein n:m-Relationship-Typ muß durch eine eigene Relation darge-stellt werden. Die Primärschlüssel der zugehörigen Entity-Typen tretenals Fremdschlüssel auf.
TEIL STRUKTURGozinto-Graph
(C) Prof. E. Rahm DBS13 - 16
3 Entity-Typen mit m:n - Verknüpfung
LIEFERANT (LNR, LNAME, LORT, ...)
PROJEKT (PRONR, PRONAME, PORT, ...)
TEIL (TNR, TBEZ, GEWICHT, ... )
LIEFERUNG (LNR, PRONR, TNR, ANZAHL, DATUM)
LieferungTeil Projektmn
Lieferant
p
(C) Prof. E. Rahm DBS13 - 17
Abbildung mehrwertiger Attributebzw. schwacher Entity-Typen
Entity-Typ
PERS (PNR, NAME, {Lieblingsessen}, {Kinder (Vorname, Alter)})
P1, Müller, {Schnitzel, Rollmops}, - P2, Schulz, {Pizza}, {(Nadine, 5), (Philip, 2)}
Darstellungsmöglichkeit im RM
PERS (PNR, NAME ...)
L.ESSEN (PNR, GERICHT)
KINDER (PNR, VORNAME, ALTER)
(C) Prof. E. Rahm DBS13 - 18
Abbildung von Generalisierung undAggregation im RM
RM sieht keine Unterstützung der Abstraktionskonzepte vor
- keine Maßnahmen zur Vererbung (von Struktur, Integritätsbedingungen, Operationen)
- "Simulation" der Generalisierung und Aggregation eingeschränkt möglich
Generalisierungsbeispiel:
BeamteANGESTELLTEBAT: String
UNI-ANGEHID: int
Name: String
TECHNIKERErfahrung: String
WISS-MADiplom: String
Spezial-Gebiet: String
(C) Prof. E. Rahm DBS13 - 19
Generalisierung - relationale Sichtpro Klasse 1 Tabelle
Lösungsmöglichkeit 1: vertikale Partitionierung
- jede Instanz wird entsprechend der Klassenattribute in der IS-A-Hierarchie zerlegt und in Teilenin den zugehörigen Klassen (Relationen) gespeichert.
- nur das ID-Attribut wird dupliziert
Eigenschaften
- geringfügig erhöhte Speicherungskosten, aber hohe Aufsuch- und Aktualisierungkosten
- Integritätsbedingungen: TECHNIKER.ID ⊆ ANGESTELLTE.ID, usw.
- Instanzenzugriff erfordert implizite oder explizite Verbundoperationen
- Beispiel: Finde alle TECHNIKER-Daten TECHNIKER ANGESTELLTE UNI-ANGEH
UNI-ANGEH
ID Name
007 Garfield
123 Donald
333 Daisy
765 Grouch
111 Ernie
TECHNIKER
ID Erfahrung
123 Sun
WISS-MA
ID Diplom SPEZ-GEB
007 Informatik ERM
765 Mathe OO
ANGESTELLTE
ID BAT
007 Ib
123 IVa
333 VII
765 IIa
ID=ID ID=ID
(C) Prof. E. Rahm DBS13 - 20
Generalisierung - relationale Sicht (2)Lösungsmöglichkeit 2: horizontale Partitionierung
- Jede Instanz ist genau einmal und vollständig in ihrer "Hausklasse" gespeichert.
- keinerlei Redundanz
Eigenschaften
- Niedrige Speicherungskosten und keine Änderungsanomalien
- Eindeutigkeit von ID zwischen Relationen aufwendiger zu überwachen
- Retrieval kann rekursives Suchen in Unterklassen erfordern.
- Explizite Rekonstruktion durch Relationenoperationen (π, ∪ )
=> Beispiel: Finde alle ANGESTELLTE:πID, NAME, BAT(TECHNIKER) ∪ π ID, NAME, BAT(WISS-MA) ∪ ANGESTELLTE
UNI-ANGEH
ID Name
111 ErnieTECHNIKER
ID Erfahrung NAME BAT
123 SUN Donald IVa
WISS-MA
ID Diplom SPEZ-GEB NAME BAT
007 Informatik ERM Garfield IIa
765 Mathe OO Grouch IIa
ANGESTELLTE
ID NAME BAT
333 Daisy VII
(C) Prof. E. Rahm DBS13 - 21
Generalisierung - relationale Sicht (3)Lösungsmöglichkeit 3: volle Redundanz
- Eine Instanz wird wiederholt in jeder Klasse, zu der sie gehört, gespeichert.
- Sie besitzt dabei die Werte der Attribute, die sie geerbt hat, zusammen mit den Werten der Attri-bute der Klasse
Eigenschaften
- Sehr hoher Speicherplatzbedarf und Auftreten von Änderungsanomalien.
- Sehr einfaches Retrieval, da nur die Zielklasse (z. B. ANGESTELLTE) aufgesucht werden muß
UNI-ANGEH
ID Name
007 Garfield
123 Donald
333 Daisy
765 Grouch
111 ErnieTECHNIKER
ID NAME BAT Erfahrung
123 Donald IVa Sun
WISS-MA
ID NAME BAT Diplom SPEZ-GEB
007 Garfield IIa Informatik ERM
765 Grouch IIa Mathe OO
ANGESTELLTE
ID NAME BAT
007 Garfield Ib
123 Donald IVa
333 Daisy VII
765 Grouch IIa
(C) Prof. E. Rahm DBS13 - 22
Aggregation - relationale Sicht
Komplexe Objekte erfordern Zerlegung über mehrere Tabellen
UNIVERSITÄTName: String
Gründung: int#Fak: int Rechenzentrum
Leiter: String
#PC: int
Institut
FakultätName: String
#Profs: int
1
1
Institut
IID FID Name
1234 123 Neutestamentliche Wissenschaft
1235 123 Alttestamentliche Wissenschaft
1236 123 Praktische Theologie
1322 132 InformatikFakultät
FID Uni Name #Profs
123 UL Theologie 14
132 UL Mathematik/Informatik 28
Universität
ID Name Gründung #Fak
UL Univ. Leipzig 1409 14
TUD TU Dresden 1828 14
(C) Prof. E. Rahm DBS13 - 23
Sprachen für das RelationenmodellDatenmodell = Datenobjekte + Operatoren
Unterstützung verschiedener Benutzerklassen:
- Anwendungsprogrammierer
- DBA
- anspruchsvolle Laien
- parametrische Benutzer
- gelegentliche Benutzer
im RM wird vereinheitlichte Sprache angestrebt für:
- Anfragen (Queries) im ’Stand-Alone’-Modus
- Datenmanipulation und Anfragen eingebettet in eine Wirtssprache
- Datendefinition
- Zugriffs- und Integritätskontrolle
Verschiedene Grundtypen:
- Formale Ansätze: Relationenalgebra und Relationenkalkül
- Abbildungsorientierte Sprachen (z.B. SQL)
- Graphik-orientierte Sprachen (z.B. Query-by-Example)
(C) Prof. E. Rahm DBS13 - 24
RelationenalgebraAlgebra: ein System, das aus einer nichtleeren Menge und einer Familievon Operationen besteht
Relationen sind Mengen
Operationen auf Relationen arbeiten auf einer oder mehreren Relationenals Eingabe und erzeugen eine Relation als Ausgabe (Abgeschlossen-heitseigenschaft) => mengenorientierte Operationen
Operationen:
Klassische Mengenoperationen:
- Vereinigung
- Differenz
- kartesisches Produkt
- Durchschnitt (ableitbar)
Relationenoperationen:
- Restriktion (Selektion)
- Projektion
- Verbund (Join) (ableitbar)
- Division (ableitbar)
(C) Prof. E. Rahm DBS13 - 25
Selektion (Restriktion)Auswahl von Zeilen einer Relation über Prädikate, abgekürzt σP
P = log. Formel (ohne Quantoren !) zusammengestellt aus:
Konstanten
a) Operanden
Attributnamen
b) Vergleichsoperatoren θ ∈ {< , = , > , < , ≠, > }
c) logische Operatoren: ∨ , ∧ , ¬
Eigenschaften: grad (σP
(R)) = grad (R); card (σP
(R)) <= card (R)
Beispiele:
σANR=’K55’ ∧ GEHALT > 50000
(PERS)
σGEHALT < PROVISION
(PERS)
σP
(R) = { t | t ∈ R ∧ P(t)}
(C) Prof. E. Rahm DBS13 - 26
ProjektionAuswahl der Spalten (Attribute) A1, A2, . . . , Ak aus einer Relation R
(Grad n >= k)
Eigenschaften:
- Wichtig: Duplikate werden entfernt ! (Mengeneigenschaft)
- grad (πA
(R)) <= grad (R);
- card (πA
(R)) <= card (R)
Beispiel:
πA1
, A2
, . . . , Ak
(R) = { p | ∃ t ∈ R : p = < t [ A1
] , . . . , t [ Ak
] >}
πNAME, GEHALT (PERS)
(C) Prof. E. Rahm DBS13 - 27
Relationenalgebra: Beispiel-DB
Finde alle Angestellten ausAbteilung K55, die mehr als 40.000 verdienen
Finde alle Abteilungsorte
Finde den Abteilungsnamen von Abteilung K53
Finde alle Angestellten (PNR, ALTER, ANAME), die in einer Abteilungin Frankfurt arbeiten und älter als 30 sind.
ABT
ANR ANAME ORT
K51 Planung Leipzig
K53 Einkauf Frankfurt
K55 Vertrieb Frankfurt
PERS
PNR Name Alter Gehalt ANR MNR
406 Abel 47 50700 K55 123
123 Schulz 32 43500 K51 -
829 Müller 36 40200 K53 406
574 Schmid 28 36000 K55 123
(C) Prof. E. Rahm DBS13 - 28
Klassische MengenoperationenVoraussetzung: Vereinigungsverträglichkeit der beteiligten Relationen:
Gleicher Grad - Gleiche Bereiche: => W(Ai) = W(B
i) : i = 1, n
(A1, A2 , . . . , An) (B1, B2 , . . . , Bn)
Di Dj . . . Dk
Vereinigung (UNION): R ∪ S = { t | t ∈ R ∨ t ∈ S }- card (R ∪ S) <= card (R) + card (S)
Differenz: R - S = { t | t ∈ R ∧ t ∉ S }
- card (R − S) <= card (R)
Durchschnitt (INTERSECTION): R ∩ S =R - (R-S)={ t | t ∈ R ∧ t ∈ S }
- card (R ∩ S) <= min (card (R), card (S))
(C) Prof. E. Rahm DBS13 - 29
(Erweitertes) Kartesisches ProduktR (Grad r) und S (Grad s) beliebig
! k = x | y = < x1, . . . , x
r, y
1, . . . , y
s>
nicht <<x1, . . . , x
r> , <y
1, . . . , y
s>> wie übliches kart. Produkt
- grad (R x S) = grad (R) + grad (S); card (R x S) = card (R) x card (S)
R x S={ k | ∃ x ∈ R, y ∈ S : k = x | y }
Beispiel
R
A B C
a γ 1
d α 2
b β 3
R x S
S
D E F
b γ 3
d α 2
(C) Prof. E. Rahm DBS13 - 30
Verbund (Join, Θ-Join)grob:
- Kartesisches Produkt zwischen zwei Relationen R (Grad r) und S (Grad s).
- eingeschränkt durch Θ-Bedingungen zwischen Attribut A von R und Attribut B von S.
Θ-Verbund zwischen R und S:
Bemerkungen:
- Gleichverbund (Equijoin): θ = ’=’ :
- Ein Gleichverbund zwischen R und S heißt verlustfrei, wenn alle Tupel von R und S am Ver-bund teilnehmen. Die inverse Operation Projektion erzeugt dann wieder R und S (lossless join).
=
mit Θ ∈ {<, =, >, ≤ , ≠ , ≥}(arithm. Vergleichsoperator)
AΘBR S σ
AΘBR S×( )
(C) Prof. E. Rahm DBS13 - 31
Natürlicher Verbund (Natural Join)grob: Gleichverbund über alle gleichen Attribute und Projektion über dieverschiedenen Attribute
Natürlicher Verbund zwischen R und S:
gegeben: R (A1, A2, . . . , Ar-j+1, . . . , Ar)
S (B1, B2, . . ., Bj, . . . , Bs)
o.B.d.A.:(sonst. Umsortierung: B1 = Ar-j+1B2 = Ar-j+2
Bj = Ar
= Zeichen für Natural Join ⇒ Θ = ’=’
Bemerkung: Attribute sind durch Übereinstimmungsbedingung gegeben
…
πA1
… Ar
Bj 1+
… Bs
, , , , , σ R.Ar j– 1+
S.B1
=( ) … R.Ar
S.Bj
=( )∧ ∧ (R x S) S =R
(C) Prof. E. Rahm DBS13 - 32
Äußerer Verbund (Outer Join)Ziel:Verlustfreier Verbund soll erzwungen werden
Bisher:R S T liefert nur "vollständige Objekte"
- Bei R S T sollen auch Teilobjekte als Ergebnis geliefert werden (z.B. komplexe Objekte).
- Trick: Einfügen einer speziellen Leerzeile zur künstlichen Erzeugung von Verbundpartnern
Def.: Seien A die Verbundattribute, {≡} der undefinierte Wert und
R’ := R ∪ ((πA(S) - πA(R)) × {≡} × ... × {≡}) S’ := S ∪ ((πA(R) - πA(S)) × {≡} × ... × {≡})
zweimalige Anwendung des äußeren Gleichverbundes liefertgewünschtes Ergebnis
R
S
T
R S :=R.A = S.A
R’R’.A = S’.A
S’
Äußerer Gleichverbund
R S := R’ S’
Äußerer natürlicher Verbund
R S T
(C) Prof. E. Rahm DBS13 - 33
Outer Join (2)Linker äußerer Gleichverbund
- Bei bei dieser Operation bleibt die linke Argumentrelation verlustfrei, d.h. bei Bedarf wird einTupel durch Nullwerte “nach rechts” aufgefüllt.
Rechter äußerer Gleichverbund
- Dabei bleibt analog die rechte Argumentrelation verlustfrei; fehlende Partnertupel werden durchAuffüllen mit Nullwerten “nach links” ergänzt
Zusammenfassung
- Die Anwendung des äußeren Gleichverbundes liefert die maximale Information bezüglich derOperationsfolge. Selbst isolierte Tupel werden zu einem Pfad expandiert.
- Der Einsatz des Gleichverbundes mit bringt das Minimum an Information;nur vollständig definierte Pfade werden ins Ergebnis übernommen.
- Mit dem linken (rechten) äußeren Gleichverbund werden nur Pfade zurückgeliefert, die am “lin-ken (rechten) Rand” definiert sind.
R S :=R.A = S.A
RR.A=S’.A
S’Linker äußerer Gleichverbund:
R S :=R.A = S.A
R’R’.A = S.A
SRechter äußerer Gleichverbund:
R S T
(C) Prof. E. Rahm DBS13 - 34
Outer Join - Beispiel
PERS ABT[0,1] [0,*]
PERS
PERS
PNR ANR ...
P1 A1
P2 A1
P3 A2
P4 -
P5 -
ABT
ANR ANAME ...
A1 A
A2 B
A3 C
PERS ABT
PNR ANR ANAME ...
PERS ABT
PNR ANR ANAME ...
PERS ABT
PNR ANR ANAME ...
PERS ABT
PNR ANR ANAME ...
(C) Prof. E. Rahm DBS13 - 35
DivisionBeantwortung von Fragen, bei denen eine "ganze Relation" zur Qualifika-tion herangezogen wird
Simulation des Allquantors => ein Tupel aus R steht mit allen Tupeln ausS in einer bestimmten Beziehung
Definition Sei R vom Grad r und S vom Grad s, r > s und s ≠ 0.
t sei (r-s)-Tupel, u sei s-Tupel; S-Attribute ⊂ R-Attribute
Dann gilt: R ÷ S = { t | ∀ u ∈ S : t u ∈ R }
Zusammenhang zwischen Division und kartesischem Produkt:( R x S ) ÷ S = R
Beispiel LNR
L1L1L2
PNR TNR
P1P2P1
L2L2
P1P2
T1T1T1T2T1
PNR TNR
P1P1P2
T1T2T1
LPT PT÷
Welche Lieferanten beliefern alle Projekte ?
Welche Lieferanten liefern alle Teile ?
(C) Prof. E. Rahm DBS13 - 36
Beispiel-DB: BÜHNE
TITEL U-ORT U-JAHR AUTOR
DRAMA
SCHAUSPIELER
PNR W-ORT NAME
ROLLE
PNR FIGUR A-JAHR A-ORT THEATER
DARSTELLER
FIGUR TITEL R-TypDarsteller
SCHAU-
ROLLE
1
n
DRAMA
n
SPIELER
m
(C) Prof. E. Rahm DBS13 - 37
BeispielanfragenWelche Darsteller (PNR) haben im Schauspielhaus gespielt?
Finde alle Schauspieler (NAME, W-ORT), die einmal im ’Faust’ mitgespielt haben.
Finde die Schauspieler (PNR), die nie gespielt haben
Finde alle Schauspieler (NAME), die alle Rollen gespielt haben.
(C) Prof. E. Rahm DBS13 - 38
Beispielanfragen (2)Finde alle Schauspieler (NAME, W-ORT), die bei in Weimar uraufgeführten Dramen an ihremWohnort als ’Held’ mitgespielt haben.
Q = (πNAME W-ORT, σW-ORT AORT= SCHAUSPIELER( )( πPNR AORT, DARSTELLER(
πFIGUR σRTyp ‘HELD‘= ROLLE( )( ) σU-ORT ‘WEIMAR‘= DRAMA( )
πNAME W-ORT,
σW-ORT AORT=
πPNR A-ORT,
πFIGUR
σU-ORT=‘Weimar‘σRTyp ‘HELD‘=
SCHAUSPIELER DARSTELLER ROLLE DRAMA
Operatorbaum:
(C) Prof. E. Rahm DBS13 - 39
Zusammenfassung Relationenalgebrasaubere mathematische Definition
mengenorientierte Opertationen
keine Änderungsoperationen!
für Laien nicht leicht verständlich
abc
xy
aabbcc
xyxyxy
Restriktion Projektion Produkt
Vereinigung (Union) Durchschnitt (intersection) Differenz
a1a2a3
b1b1b2
b1b2b3
c1c2c3
a1a2a3
b1b1b2
c1c1c2
aaabc
xyzxy
xz
a
(Nat.) Verbund (Join) Division
4 - 1(C) Prof. E. Rahm DBS1
4. SQL-Einführungn Grundlagen: Anfragekonzept, Einsatzbereiche, Befehlsübersicht
n mengenorientierte Anfragen deskriptiver Art (SELECT)- einfache Selektions-, Projektions- und Join-Anfragen- geschachtelte Anfragen, Aggregatfunktionen, Gruppenanfragen - Suchbedingungen: Vergleichs-, LIKE-, BETWEEN-, IN-Prädikate, Nullwertbehandlung,
quantifizierte Prädikate (ALL/ANY, EXISTS)- mengentheoretische Operationen: UNION, INTERSECT, EXCEPT- Join-Ausdrücke- Verallgemeinerte Verwendung von Sub-Queries- Vergleich mit der Relationenalgebra
Kap. 6: Datendefinition und -manipulation in SQL- Datendefinition (DDL): Datentypen, Domains- Erzeugen/Ändern/Löschen von Tabellen, Sichtkonzept- Änderungsoperationen (INSERT, DELETE, UPDATE)- Integritätsbedingungen
Kap. 7: Kopplung mit einer Wirtssprache
4 - 2(C) Prof. E. Rahm DBS1
Entwicklung von SQLn seit 1975 viele Entwürfe für relationale Anfragesprachen
- SEQUEL: Structured English Query Language (System R) - QUEL (Ingres), . . .
n Sprachentwicklung von SQL- Entwicklung einer vereinheitlichten DB-Sprache für alle Aufgaben der DB-Verwaltung- leichter Zugang durch verschiedene "Sprachebenen"- einfache Anfragemöglichkeiten für den gelegentlichen Benutzer, mächtige Sprachkonstrukte
für den besser ausgebildeten Benutzer, spezielle Sprachkonstrukte für den DBA
n Standardisierung von SQL durch ANSI und ISO- erster ISO-Standard 1987- verschiedene Addenda (1989)- 1992: Verabschiedung von „SQL2“ bzw. SQL-92 (Entry, Intermediate, Full Level) - 1999/2003: SQL:1999 („SQL3“) und SQL:2003 („SQL4“) mit objektorientierten Erweiterun-
gen etc. (-> objekt-relationale DBS)
n SQL "intergalactic data speak"
4 - 3(C) Prof. E. Rahm DBS1
Möglichkeiten der Anfrage in SQLn SQL: strukturierte Sprache, die auf englischen Schlüsselwörtern basiert
- Zielgruppe umfaßt auch Nicht-Programmierer- Auswahlvermögen äquivalent der Relationenalgebra (relational vollständig)
n Grundbaustein
Abbildung: Ein bekanntes Attribut oder eine Menge von Attributen wird durch Angabe von Be-dingungen (WHERE) mit Hilfe einer Relation (FROM) in ein gewünschtes Attribut oder eineMenge von Attributen abgebildet
n Allgemeines Format <Spezifikation der Operation> <Liste der referenzierten Tabellen> [WHERE Boolescher Prädikatsausdruck]
SELECT PNR
FROM PERS Abbildung
WHERE ANR = ’K55’
Bildbereich
Definitions-bereich
4 - 4(C) Prof. E. Rahm DBS1
Erweiterungen zu einer vollständigen DB-Sprache
n Möglichkeiten der Datenmanipulation- Einfügen, Löschen und Ändern von individuellen Tupeln und von Mengen von Tupeln- Zuweisung von ganzen Relationen
n Möglichkeiten der Datendefinition- Definition von Wertebereichen, Attributen und Relationen- Definition von verschiedenen Sichten auf Relationen
n Möglichkeiten der Datenkontrolle- Spezifikation von Bedingungen zur Zugriffskontrolle- Spezifikation von Zusicherungen (assertions) zur semantischen Integritätskontrolle
n Kopplung mit einer Wirtssprache- deskriptive Auswahl von Mengen von Tupeln- sukzessive Bereitstellung einzelner Tupeln
Stand-Alone
Eingebettete
Retrieval Manipulation Daten- Daten-
DB-Sprache
DB-Sprache
definition kontrolle
SQLRA
SQL
SQL
SQL
SQL
SQL
SQL
SQL
4 - 5(C) Prof. E. Rahm DBS1
Befehlsübersicht (Auswahl)Datenmanipulation (DML):
SELECTINSERTUPDATEDELETEAggregatfunktionen: COUNT, SUM, AVG, MAX, MIN
Datendefinition (DDL):
CREATE SCHEMACREATE DOMAINCREATE TABLECREATE VIEWALTER TABLEDROP SCHEMADROP DOMAINDROP TABLEDROP VIEW
Datenkontrolle:
Constraints-Definitionen bei CREATE TABLECREATE ASSERTION DROP ASSERTION GRANTREVOKE COMMITROLLBACK
Eingebettetes SQL:
DECLARE CURSORFETCHOPEN CURSORCLOSE CURSOR SET CONSTRAINTSSET TRANSACTIONCREATE TEMPORARY TABLE
4 - 6(C) Prof. E. Rahm DBS1
Anfragemöglichkeiten in SQL
n Mit SELECT * werden alle Attribute der spezifizierten Relation(en)ausgegeben
n FROM-Klausel spezifiziert die Objekte (Relationen, Sichten), die verar-beitet werden sollen
n WHERE-Klausel kann eine Sammlung von Prädikaten enthalten, die mitNOT, AND und OR verknüpft sein können
n dabei sind Vergleichsprädikate der Form Ai θ ai bzw. Ai θ Aj möglich(θ ∈ { = , <>, <, <, >, > } )
select-expression ::=SELECT [ALL | DISTINCT] select-item-listFROM table-ref-commalist[WHERE cond-exp][GROUP BY column-ref-commalist][HAVING cond-exp][ORDER BY order-item-commalist ]
select-item ::= derived-column | [range-variable.] * derived-column ::= scalar-exp [AS column]order-item ::= column [ ASC | DESC ]
4 - 7(C) Prof. E. Rahm DBS1
SQL-Trainer n http://sql-trainer.uni-leipzig.de
n entstanden im Rahmen des Projekts„Bildungsportal Sachsen“ durch studen-tische Hilfskräfte
n Inhalt - „freies Üben“ auf einer SQL-Datenbank
(nur SELECT-Anweisungen)- „aktives“ SQL-Tutorial - geplant: Übungsblätter mit Online-Bearbeitung
n Realisierung auf Basis von Postgres
n Gast-Login mit Zugriff auf 1 Datenbank (user: gast, PW: gast)
4 - 8(C) Prof. E. Rahm DBS1
Test-Datenbank
- buch_aut.rolle kann sein: Herausgebers (H), Verfasser (V), Übersetzer (U), Mitarbeiter (M) - buch_aut.rang: Position des Autors in der Autorenliste (z.B. 1 für Erstautor) - autor.zusatz: Namenszusatz wie „von“ oder „van“ - buch.signatur entspricht der Signatur in der IfI-Bibliothek (Stand 1998)
n Mengengerüst (> 18.000 Sätze) - "buch" : 4873 Datensätze, "verlag" : 831 Datensätze- "autor" : 5045 Datensätze, "buch_aut" : 5860 Datensätze- "schlagwort" : 843 Datensätze, "buch_sw" : 789 Datensätze
4 - 9(C) Prof. E. Rahm DBS1
Einfache Selektionen und ProjektionenQ1: Welche (Berliner) Verlage gibt es?
Q2: Welche Bücher erschienen vor 1980 in einer Neuauflage?
4 - 10(C) Prof. E. Rahm DBS1
Ausgabebearbeitungn Sortierte Ausgabe (ORDER BY-Klausel)
Q3: Q2, jedoch sortiert nach Jahr (absteigend), Titel (aufsteigend)
SELECTFROMWHERE
- ohne ORDER-BY ist die Reihenfolge der Ausgabe durch das DBS bestimmt (Optimierung derAuswertung)
- statt Attributnamen können in der ORDER BY-Klausel auch relative Positionen der Attributeaus der Select-Klausel verwendet werden
n Duplikateliminierung - Default-mäßig werden Duplikate in den Attributwerten der Ausgabeliste nicht eliminiert (ALL) - DISTINCT erzwingt Duplikateliminierung
Q4: Welche Verlagsorte gibt es?
4 - 11(C) Prof. E. Rahm DBS1
Ausgabebearbeitung (2)n Benennung von Ergebnis-Spalten
SELECT titel AS Buchtitel, (preis/2) AS Preis_in_EuroFROM buchWHERE waehrung = 'DM'ORDER BY 2 DESC
- Umbenennung von Attributen (AS)- Vergabe von Attributnamen für Texte und Ausdrücke
n Umbenennung von Tabellen (FROM-Klausel)- Einführung sogenannter Alias-Namen bzw. Korrelationsnamen - Schlüsselwort AS optional- Alias-Name überdeckt ursprünglichen Namen
SELECT B.titel FROM buch AS BWHERE B.preis > 300
4 - 12(C) Prof. E. Rahm DBS1
Join-Anfragen Q5: Welche Buchtitel wurden von Berliner Verlagen herausgebracht?
SELECTFROMWHERE
- Angabe der beteiligten Relationen in FROM-Klausel- WHERE-Klausel enthält Join-Bedingung sowie weitere Selektionsbedingungen - analoge Vorgehensweise für Equi-Join und allgemeinen Theta-Join - Formulierung der Join-Bedingung erfordert bei gleichnamigen Attributen Hinzunahme der Re-
lationennamen oder von Alias-Namen (Korrelationsnamen)
Q6: Welche Bücher sind von Autor „Rahm“ vorhanden?
SELECTFROMWHERE
4 - 13(C) Prof. E. Rahm DBS1
Join-Anfragen (2)n Hierarchische Beziehung auf einer Relation (PERS)
Beispielschema:PERS (PNR int, NAME, BERUF, GEHALT, ..., MNR int, ANR int,
PRIMARY KEY (PNR), FOREIGN KEY (MNR) REFERENCES PERS)
Q7: Finde die Angestellten, die mehr als ihre (direkten) Manager verdienen (Ausgabe: NAME,GEHALT, NAME des Managers)
SELECTFROMWHERE
- Verwendung von Korrelationsnamen obligatorisch!
4 - 14(C) Prof. E. Rahm DBS1
Join-Ausdrücken unterschiedliche Join-Arten können direkt spezifiziert werden
n Beispiel:
Q6: Welche Bücher sind von Autor „Rahm“ vorhanden?
join-table-exp ::= table-ref [NATURAL] [join-type] JOIN table-ref[ON cond-exp | USING (column-commalist) ]
| table ref CROSS JOIN table-ref | (join-table-exp)table-ref ::= table | (table-exp) | join-table-exp join type ::= INNER | { LEFT | RIGHT | FULL } [OUTER] | UNION
SELECT *FROM buch B, verlag VWHERE B.verlagsid = V.verlagsid
buch NATURAL JOIN verlag
buch JOIN verlag USING (verlagsid)
buch B JOIN verlag V ON B.verlagsid = V.verlagsid
4 - 15(C) Prof. E. Rahm DBS1
Join-Ausdrücke (2)n Outer Joins: LEFT JOIN, RIGHT JOIN, FULL JOIN
schlagwort LEFT OUTER JOIN buch_sw USING (swid)
n Kartesisches Produkt:
A CROSS JOIN B <=> SELECT * FROM A, B
4 - 16(C) Prof. E. Rahm DBS1
Join-Ausdrücke (3)n Outer Union: UNION JOIN
- Vereinigung von nur teilweise vereinigungsverträglichen Relationen)
n Beispiel: STUDENT
STUDENT UNION JOIN PERS
Matnr Name Fak Imm
123 Schmidt MI X
234 Müller WiWi Y
PERS
Pnr Name Fak Wochenstunden
543 Schulz WiWi 40
897 Weber MI 20
Matnr Name Fak Imm Pnr Wochenstunden
123 Schmidt MI X - -
234 Müller WiWi Y - -
- Schulz WiWi - 543 40
- Weber MI - 897 20
4 - 17(C) Prof. E. Rahm DBS1
Geschachtelte Anfragen (Sub-Queries)n Die Menge, die zur Qualifikation herangezogen wird, kann Ergebnis einer
geschachtelten Abbildung sein
Q5: Welche Buchtitel wurden von Berliner Verlagen herausgebracht?
SELECTFROMWHERE
n innere und äußere Relationen können identisch sein
n eine geschachtelte Abbildung kann beliebig tief sein
n Join-Berechnung mit Sub-Queries- teilweise prozedurale Anfrageformulierung- weniger elegant als symmetrische Notation- schränkt Optimierungsmöglichkeiten des DBS ein
4 - 18(C) Prof. E. Rahm DBS1
Sub-Queries (2)n Einfache Sub-Queries
- 1-malige Auswertung der Sub-Query - Ergebnismenge der Sub-Query (Zwischenrelation) dient als Eingabe der äußeren Anfrage
n Korrelierte Sub-Queries (verzahnt geschachtelte Anfragen)- Sub-Query bezieht sich auf eine äußere Relation- Sub-Query-Ausführung erfolgt für jedes Tupel der äußeren Relation- Verwendung von Korrelationsnamen i.a. erforderlich
Welche Buchtitel wurden von Berliner Verlagen veröffentlicht?
n besser: Join-Berechnung ohne Sub-Queries
SELECT B.titelFROM buch BWHERE ’Berlin’ IN
(SELECT V.ortFROM verlag V
WHERE V.verlagsid = B.verlagsid)
SELECT B.titelFROM buch BWHERE B.verlagsid IN
(SELECT V.verlagsid FROM verlag V WHERE V.ort = ’Berlin’)
4 - 19(C) Prof. E. Rahm DBS1
Benutzung von Aggregat (Built-in)- Funktionen
n Standard-Funktionen: AVG, SUM, COUNT, MIN, MAX- Elimination von Duplikaten : DISTINCT- keine Elimination : ALL (Defaultwert)- Typverträglichkeit erforderlich
Q8: Bestimme das Durchschnittsgehalt der Angestellen, die mehr als ihre Manager verdienen.SELECTFROMWHERE
n Auswertung- Built-in-Funktion (AVG) wird angewendet auf einstellige Ergebnisliste (GEHALT)- keine Eliminierung von Duplikaten- Verwendung von arithmetischen Ausdrücken ist möglich: AVG (GEHALT/12)
aggregate-function-ref ::=COUNT(*) | {AVG | MAX | MIN | SUM | COUNT}([ALL | DISTINCT] scalar-exp)
4 - 20(C) Prof. E. Rahm DBS1
Aggregatfunktionen (2)n keine Aggregatfunktionen in WHERE-Klausel
n keine geschachtelte Nutzung von Funktionsreferenzen!
Q9: Wie viele Verlage gibt es?
SELECTFROM
Q10: An wievielen Orten gibt es Verlage?SELECTFROM
Q11: An welchen Orten gibt es mehr als drei Verlage?SELECTFROMWHERE
Q12: Welches Buch (Titel, Jahr) ist am ältesten?SELECTFROM
4 - 21(C) Prof. E. Rahm DBS1
Aggregatfunktionen (3)n Beispielschema:
PERS (PNR, NAME, BERUF, GEHALT, ..., MNR, ANR) PRIMARY KEY (PNR), FOREIGN KEY (MNR) REFERENCES PERS
Q13a: Wieviele Angestellte haben einen Vorgesetzten ?
SELECTFROM
Q13b: Wieviele Angestellte haben keinen Vorgesetzten ?SELECTFROM
Q13c: Wieviele Angestellte sind Vorgesetzte ?SELECTFROM
4 - 22(C) Prof. E. Rahm DBS1
Partitionierung einer Relation in Gruppen
n Gruppenbildung auf Relationen: GROUP-BY-Klausel - Tupel mit übereinstimmenden Werten für Gruppierungsattribut(e) bilden je eine Gruppe - ausgegeben werden können neben Gruppierungsattributen nur Konstanten sowie das Ergebnis
von Aggregatfunktionen (-> 1 Satz pro Gruppe) - die Aggregatfunktion wird jeweils auf die Tupeln einer Gruppe angewendet
Q14: Liste alle Abteilungen und das Durchschnitts- sowie Spitzengehalt ihrer Angestellten auf. SELECTFROM
Q15: Liste alle Abteilungen (ANR und ANAME) sowie die Anzahl der beschäftigten AngestelltenaufSELECTFROMWHERE
SELECT ... FROM ... [WHERE ...][ GROUP BY column-ref-commalist ]
4 - 23(C) Prof. E. Rahm DBS1
Auswahl von Gruppen (HAVING-Klausel)
n Fragen werden in den folgenden Reihenfolge bearbeitet:1. Tupeln werden ausgewählt durch die WHERE-Klausel.
2. Gruppen werden gebildet durch die GROUP-BY-Klausel.
3. Gruppen werden ausgewählt, wenn sie die HAVING-Klausel erfüllen
Q16: Für welche Abteilungen zwischen K50 und K60 ist das Durchschnittsalter kleiner als 30?SELECTFROMWHERE
Q17: Bestimme die Namen und Gehaltssummen der Abteilungen mit mehr als 5 Mitarbeitern
SELECTFROM
SELECT ... FROM ... [WHERE ...][ GROUP BY column-ref-commalist ][ HAVING cond-exp ]
4 - 24(C) Prof. E. Rahm DBS1
Suchbedingungenn Sammlung von Prädikaten
- Verknüpfung mit AND, OR, NOT- Auswertungsreihenfolge ggf. durch Klammern
n nicht-quantifizierte Prädikate:- Vergleichsprädikate- LIKE-, BETWEEN-, IN-Prädikate- Test auf Nullwert- UNIQUE-Prädikat: Test auf Eindeutigkeit - MATCH-Prädikat: Tupelvergleiche- OVERLAPS-Prädikat: Test auf zeitliches Überlappen von DATETIME-Werten
n quantifizierte Prädikate- ALL- ANY- EXISTS
4 - 25(C) Prof. E. Rahm DBS1
Vergleichsprädikate
n Skalarer Ausdruck (scalar-exp): Attribut, Konstante bzw. Ausdrücke, dieeinfachen Wert liefern
n Tabellen-Ausdruck (table-exp) darf hier höchstens 1 Tupel als Ergebnisliefern (Kardinalität 1, Row Sub-Query)
n Vergleiche zwischen Tupel-Konstruktoren (row constructor) mit mehre-ren Attributen
- (a1, a2, ... an) = (b1, b2, ...bn) ⇔ a 1 = b1 AND a2 = b2 ... AND an = bn- (a1, a2, ... an) < (b1, b2, ...bn) ⇔ (a1 < b1) OR ((a1 = b1) AND (a2 < b2)) OR ( ... )
SELECT
FROM
WHERE
comparison-cond ::= row-constructor θ row-constructor
row-constructor ::= scalar-exp | (scalar-exp-commalist) | (table-exp)
4 - 26(C) Prof. E. Rahm DBS1
LIKE-Prädikate
n Unterstützung der Suche nach Datenstrings, von denen nur Teile bekanntsind (pattern matching).
n LIKE-Prädikat vergleicht einen Datenwert mit einem "Muster" bzw. einer"Maske".
n Aufbau einer Maske mit Hilfe zweier spezieller Symbole% bedeutet "null oder mehr beliebige Zeichen"_ bedeutet "genau ein beliebiges Zeichen"
- Das LIKE-Prädikat ist TRUE, wenn der entsprechende Datenwert der aufgebauten Maske mitzulässigen Substitutionen von Zeichen für "%" und " _" entspricht
- Suche nach "%" und "_" durch Voranstellen eines Escape-Zeichens möglich.
LIKE-Klausel wird erfüllt von
NAME LIKE ’%SCHMI%’
ANR LIKE ’_7%’
NAME NOT LIKE ’%-%’
STRING LIKE ’%\_%’ ESCAPE ’\’
char-string-exp [ NOT ] LIKE char-string-exp [ESCAPE char-string-exp ]
4 - 27(C) Prof. E. Rahm DBS1
BETWEEN-Prädikate
n Semantiky BETWEEN x AND z ⇔ x ≤ y AND y ≤ z
y NOT BETWEEN x AND z ⇔ NOT (y BETWEEN x AND z)
n Beispiel
SELECT NAMEFROM PERS WHERE GEHALT BETWEEN 50000 AND 80000
row-constr[ NOT] BETWEENrow-constr AND row-constr
4 - 28(C) Prof. E. Rahm DBS1
IN-Prädikate
n Ein Prädikat in einer WHERE-Klausel kann ein Attribut auf Zugehörigkeitzu einer Menge testen:
- explizite Mengendefinition: Ai IN (a1, aj, ak)
- implizite Mengendefinition: Ai IN (SELECT . . .)
n Semantikx IN (a, b, . . ., z) ⇔ x = a OR x = b . . . OR x = z
x NOT IN erg ⇔ NOT (x IN erg)
Q18: Finde die Autoren mit Nachname Maier, Meier oder MüllerSELECT *FROM autorWHERE
Q19: Finde die Schlagworte, die nicht verwendet wurdenSELECT *FROM schlagwortWHERE
row-constr[NOT] IN (table-exp) | scalar-exp [NOT] IN (scalar-exp-commalist)
4 - 29(C) Prof. E. Rahm DBS1
NULL-Werten für jedes Attribut kann Zulässigkeit von Nullwerten festgelegt werdenn unterschiedliche Bedeutungen:
- Datenwert ist momentan nicht bekannt- Attributwert existiert nicht für ein Tupel
n Behandlung von Nullwerten- Das Ergebnis einer arithmetischen Operation (+, -, *, /) mit einem NULL-Wert ist ein NULL-
Wert- Tupel mit NULL-Werten im Verbundattribut nehmen am Verbund nicht teil- Auswertung eines NULL-Wertes in einem Vergleichsprädikat mit irgendeinem Wert ist
UNKNOWN (?)
n Bei Auswertung von Booleschen Ausdrük-ken wird 3-wertige Logik eingesetzt
- Das Ergebnis ? bei der Auswertung einer WHERE-Klausel wird wie FALSE behandelt.
n spezielles Prädikat zum Test auf NULL-Werte:
OR T F ? T T T T F T F ? ? T ? ?
AND T F ?T T F ?F F F F? ? F ?
NOTT FF T? ?
row-constr IS [NOT] NULL SELECT PNR, PNAME FROM PERS WHERE GEHALT IS NULL
4 - 30(C) Prof. E. Rahm DBS1
NULL-Werte: Problemfällen 3-wertige Logik führt zu unerwarteten Ergebnissen
Bsp.: PERS (Alter <= 50) vereinigt mit PERS (Alter > 50)
ergibt nicht notwendigerweise Gesamtrelation PERS
n Nullwerte werden bei SUM, AVG, MIN, MAX nicht berücksichtigt,während COUNT(*) alle Tupel (inkl. Null-Tupel, Duplikate) zählt.
SELECT AVG (GEHALT) FROM PERS → Ergebnis X
SELECT SUM (GEHALT) FROM PERS → Ergebnis Y
SELECT COUNT (*) FROM PERS → Ergebnis Z
Es gilt nicht notwendigerweise, daß X = Y / Z (-> Verfälschung statistischer Berechnungen)
4 - 31(C) Prof. E. Rahm DBS1
Quantifizierte Prädikaten All-or-Any-Prädikat
θ ALL: Prädikat wird zu "true" ausgewertet, wenn der θ-Vergleich für alle Ergebniswerte von table-exp "true" ist.
θ ANY/ θ SOME: analog, wenn der θ-Vergleich für einen Ergebniswert "true" ist.
Q20: Finde die Manager, die mehr verdienen als alle ihre AngestelltenSELECTFROMWHERE
Q22b: Finde die Manager, die weniger als einer ihrer Angestellten verdienen
row-constr θ { ALL | ANY | SOME} (table-exp)
4 - 32(C) Prof. E. Rahm DBS1
Existenztests
n das Prädikat wird zu "false" ausgewertet, wenn table-exp auf die leereMenge führt, sonst "true"
n Im EXISTS-Kontext darf table-exp mit (SELECT * ...) spezifiziert werden(Normalfall)
n Semantikx θ ANY (SELECT y FROM T WHERE p) ⇔ EXISTS (SELECT * FROM T WHERE (p) AND (x θ T.y))
x θ ALL (SELECT y FROM T WHERE p) ⇔ NOT EXISTS (SELECT * FROM T WHERE (p) AND NOT (x θ T.y))
Q21: Finde die Manager, die mehr verdienen als alle ihre Angestellten.SELECTFROMWHERE
[ NOT] EXISTS (table-exp)
4 - 33(C) Prof. E. Rahm DBS1
Existenztests (2)Q22: Finde die Schlagworte, die für mindestens ein (... kein) Buch vergeben wurden
SELECT S.*FROM schlagwort S WHERE
Q23: Finde die Bücher, die alle Schlagworte des Buchs mit der ID 3545 abdecken (andere Formulierung: Finde die Bücher, zu denen kein Schlagwort "existiert", das nicht auchfür Buch 3545 existiert).
SELECT B.titel FROM buch BWHERE
4 - 34(C) Prof. E. Rahm DBS1
Skalare Funktionen (Auswahl)n CASE
SELECT MATNR, PUNKTE,CASE WHEN PUNKTE > 90 THEN ’Sehr gut’
WHEN PUNKTE > 75 THEN ’Gut’WHEN PUNKTE > 60 THEN ’O.K.’ELSE ’SCHLECHT’ END AS NOTE
FROM ...
- fehlender ELSE-Zweig: NULL-Wert für sonstige Fälle
n String-Funktionen- || (String-Konkatenation), CHAR_LENGTH. BIT_LENGTH- SUBSTRING Bsp.: SUBSTRING (NAME FROM 1 FOR 20)- TRANSLATE, CONVERT- POSITION, LOWER, UPPER- TRIM Bsp.: TRIM (TRAILING ’ ’ FROM NAME)
n Verschiedene Funktionen- USER, CURRENT_USER, SESSION_USER, SYSTEM_USER- CURRENT_TIME, CURRENT_DATE, CURRENT_TIMESTAMP- EXTRACT (Herausziehen von YEAR, MONTH, ... aus Datum)- CAST (Typkonversionen) Bsp.: CAST (’2002-04-24’ AS DATE)- NULLIF, COALESCE, ...
4 - 35(C) Prof. E. Rahm DBS1
Einsatz mengentheoretischer Operatorenn Vereinigung (UNION), Durchschnitts- (INTERSECT) und Differenzbil-
dung (EXCEPT) von Relationen bzw. Query-Ergebnissen
n vor Ausführung werden Duplikate aus den Operanden entfernt, außerwenn ALL spezifiziert ist.
n für die Operanden wird Vereinigungsverträglichkeit gefordert
n Abschwächung:- CORRESPONDING BY (A1, A2, ...An): Operation ist auf Attribute Ai beschränkt, die in beiden
Relationen vorkommen müssen (-> n-stelliges Ergebnis)- CORRESPONDING: Operation ist auf gemeinsame Attribute beschränkt
Q24: Welche Schlagworte wurden nie verwendet ? (Q19, Q22)
table-exp ::= nonjoin-table-exp | join-table-expnonjoin-table-exp ::= nonjoin-table-term | table-exp {UNION | EXCEPT}
[ALL][CORRESPONDING [BY (column-commalist)]] table-termnonjoin-table-term ::= nonjoin-table-primary | table-term INTERSECT
[ALL][CORRESPONDING [BY (column-commalist)]] table-primarytable-term ::= nonjoin-table-term | join-table-exptable-primary ::= nonjoin-table-primary | join-table-primarynonjoin-table-primary ::= simple-table | select-exp |(nonjoin-table-exp)
4 - 36(C) Prof. E. Rahm DBS1
Weitergehende Verwendung von Sub-Queries (table expressions)
n 3 Arten von Sub-Queries- Table Sub-Queries (mengenwertige Ergebnisse)- Row Sub-Queries (Tupel-Ergebnis)- Skalare Sub-Queries (atomarer Wert; Kardinalität 1, Grad 1)
n Im SQL-Standard können Table-Sub-Queries überall stehen, wo ein Rela-tionenname möglich ist, insbesondere in der FROM-Klausel.
SELECT ANAMEFROM (Select ANR, Sum (GEHALT) AS GSUMME FROM PERS GROUP BY ANR)
AS GSUM JOIN ABT USING (ANR)WHERE GSUMME > 100000
n Skalare Sub-Queries können auch in SELECT-Klausel stehen.SELECT P.PNAME, (SELECT A.ANAME FROM ABT A
WHERE A.ANR = P.ANR) AS ABTEILUNGFROM PERS PWHERE BERUF = "Programmierer"
4 - 37(C) Prof. E. Rahm DBS1
Relationenalgebra vs. SQL (Retrieval)Relationenalgebra SQL
πA1, A2, ... Ak (R)
σ P (R)
R x S
R S
R S
R S
R ∪ S
R SR.A θ S.B
R - S
R ∩ S
R ÷ S
4 - 38(C) Prof. E. Rahm DBS1
Zusammenfassungn SQL wesentlich mächtiger als Relationenalgebra
n Hauptanweisung: SELECT - Projektion, Selektion, Joins - Aggregatfunktionen- Gruppenbildung (Partitionierungen) - quantifizierte Anfragen- Unteranfragen (einfache und korrelierte Sub-Queries)- allgemeine Mengenoperationen UNION, INTERSECT, EXCEPT
n hohe Sprachredundanz
n SQL-Implementierungen weichen teilweise erheblich von Standard ab(Beschränkungen / Erweiterungen)
5 - 1(C) Prof. E. Rahm DBS1
5. Logischer DB-Entwurf (Normalisierung)
n Ziel: Theoretische Grundlage für den Entwurf eines “guten” relationalenDB-Schemas (→ Entwurfstheorie, Normalisierungslehre)
n Güte:- leichte Handhabbarkeit, Übersichtlichkeit, ...- Entwurfstheorie präzisiert/formalisiert “Güte” zum Teil
n Was macht einen schlechten DB-Schema-Entwurf aus?- implizite Darstellung von Informationen
- Redundanzen- Potentielle Inkonsistenz (Änderungsanomalien)
- Einfügeanomalien
- Löschanomalien ...
oft hervorgerufen durch “Vermischung” von Entities, Zerlegung und wiederholte Speicherungvon Entities, ...
n Normalisierung von Relationen hilft einen gegebenen Entwurf zu verbes-sern.
5 - 2(C) Prof. E. Rahm DBS1
Normalisierung von Relationen (Bsp.)PNR -> ANR
R (PNR, ANR, ANAME)
Normalisierungs-prozeß
R1 (PNR, ANR)R2 (ANR, ANAME)
funktionale Abhängigkeiten Anfängliche Relationen-Schemata
Normalisierte Relationen-Schemata
ANR -> ANAME
5 - 3(C) Prof. E. Rahm DBS1
Definitionen und Begriffe n Konventionen
n Def.: Funktionale Abhängigkeit (FA)Die FA X → Y gilt (X bestimmt Y funktional), wenn für alle R von R gilt: zwei Tupel, deren Komponenten in X übereinstimmen, stimmen auch in Y überein. ∀u ∈ R ∀v ∈ R (u[X] = v[X]) ⇒ (u[Y] = v[Y])
alternativ: Die Relation R erfüllt die FA X → Y, wenn für jeden X-Wert x der Ausdruck πY(σX=x(R)) höchstens ein Tupel hat.
Graphische Notation:
R, S Relationenschemata (Relationenname, Attribute)
R, S Relationen der Relationenschemata R, SA, B, C,... einfache AttributeA = {A1,...,An} Attributmenge eines Relationenschemas
W, X, Y, Z,... Mengen von AttributenXY ≡ X ∪ Y Mengen brauchen nicht dis-
junkt zu seina, b, c Werte einfacher Attributex, y, z Werte von X, Y, Z
PNRNAME
BERUF
PNR
PRONRDAUER
5 - 4(C) Prof. E. Rahm DBS1
Definitionen und Begriffe (2)n Eigenschaften:
- triviale FA: X → X
- falls X Schlüsselkandidat von R, dann gilt für alle Y aus R: X → Y
- FA beschreiben semantische Integritätsbedingungen bezüglich der Attribute eines Relationenschemas, diejederzeit erfüllt sein müssen
n Volle funktionale vs. partielle Abhängigkeit:Sei A1, A2, ..., An → B1, B2, ..., Bm
B = {B1, B2, ..., Bm} ist voll funktional abhängig von A = {A1, A2, ..., An}, wenn B funktionalabhängig von A ist, aber nicht funktional abhängig von einer echten Teilmenge von A ist.
A → B ist eine partielle Abhängigkeit, wenn ein Attribut Ai in A existiert, so daß ( A - {Ai} ) → B gilt.
PNR
PRONRDAUER
PNR
PRONRNAME
5 - 5(C) Prof. E. Rahm DBS1
Normalisierung von Relationen
n Zerlegung eines Relationenschemas R in höhere Normalformen - Beseitigung von Anomalien bei Änderungsoperationen
- Erhaltung aller nicht-redundanter Funktionalabhängigkeiten von R (→ sie bestimmen den Informationsge-halt von R)
- fortgesetzte Anwendung der Projektion im Zerlegungsprozeß
- Gewährleistung der Rekonstruktion von R durch verlustfreie Verbunde
- bessere "Lesbarkeit" der aus R gewonnenen Relationen
UNNORMALISIERTE & NORMALISIERTE RELATIONEN
1NF-RELATIONEN
2NF-RELATIONEN3NF-RELATIONEN
4NF-RELATIONEN
5NF-RELATIONEN
BCNF-Relationen
5 - 6(C) Prof. E. Rahm DBS1
Normalisierung von Relationen (2)n Unnormalisierte Relation: Non-First Normal-Form (NF2)
- enthält “Attribute”, die wiederum Relationen sind
- Darstellung von komplexen Objekten (hierarchische Sichten, Clusterbildung)
n Nachteile:- Unsymmetrie (nur eine Richtung der Beziehung)
- implizite Darstellung von Information- Redundanzen bei (n:m)-Beziehungen
- Anomalien bei Aktualisierung
n Normalisierung:- “Herunterkopieren” von Werten führt hohen Grad an Redundanz ein → Zerlegung von Relationen
- aber: Erhaltung ihres Informationsgehaltes
Prüfungsgeschehen
PNR PNAME FACH STUDENT(MATNR, NAME, ...)
3678 Rahm DBS 196481 Maier ...123766 Coy ...900550 Schmitt ...
1234 Gerber TI 654711 Abel ... 123766 Coy ...
Anomalien, z.B.:- Insert Student
- Delete Prof
- Update Student
5 - 7(C) Prof. E. Rahm DBS1
Überführung in 1NFn Unnormalisierte Relation
n Normalisierung (=> 1NF):1. Starte mit der übergeordneten Relation (Vaterrelation).2. Nimm ihren Primärschlüssel und erweitere jede unmittelbar untergeordnete Relation damit zu einer selb-
ständigen Relation.3. Streiche alle nicht-einfachen Attribute (untergeordnete Relationen) aus der Vaterrelation.4. Wiederhole diesen Prozeß ggf. rekursiv.
n Regeln:- Nicht-einfache Attribute bilden neue Relationen.
- Primärschlüssel der übergeordneten wird an untergeordnete Relation angehängt ('copy down the key')
n Relationenschema in 1NFPRÜFER (PNR, PNAME, FACH)
PRÜFUNG (PNR, MATNR, NAME, GEB, ADR, FNR, FNAME, DEKAN, PDAT, NOTE)
Prüfungsgeschehen (PNR, PNAME, FACH, STUDENT)
(MATNR, NAME, GEB, ADR, FNR, FNAME, DEKAN, PDAT, NOTE)
STUDENT = Wiederholungsgruppe mit 9 einfachen Attributen (untergeordnete Relation)
5 - 8(C) Prof. E. Rahm DBS1
Überführung in 2NF n 1NF verursacht immer noch viele Änderungsanomalien, da verschiedene
Entity-Mengen in einer Relation gespeichert werden können bzw. auf-grund von Redundanz innerhalb einer Relation (Bsp.: PRÜFUNG)
n 2NF vermeidet einige der Anomalien dadurch, indem nicht voll funktional(partiell) abhängige Attribute eliminiert werden.
⇒ Separierung verschiedener Entity-Mengen in eigene Relationen
n Definitionen:Ein Primärattribut (Schlüsselattribut) eines Relationenschemas ist ein Attribut, das zu mindestenseinem Schlüsselkandidaten des Schemas gehört.
Ein Relationenschema R ist in 2NF , wenn es in 1NF ist und jedes Nicht-Primärattribut von R vollfunktional von jedem Schlüsselkandidaten in R abhängt.
n Überführung in 2NF:1. Bestimme funktionale Abhängigkeiten zwischen Nicht-Primärattributen und Schlüsselkandidaten
2. Eliminiere partiell abhängige Attribute und fasse sie in eigener Relation zusammen (unter Hinzunahmeder zugehörigen Primärattribute).
5 - 9(C) Prof. E. Rahm DBS1
Überführung in 2NF (2)n Voll funktionale Abhängigkeiten in PRÜFUNG
n Relationenschema in 2NF
NAME
MATNR
GEBADRFNRFNAMEDEKAN
PNRNOTE
PDAT
PNR PNAME FACH
1234 Gerber TI
3678 Rahm DBS
8223 Ehrenberg WI
MATNR NAME GEB ADR FNR FNAME DEKAN
123 766 Coy 05.05.79 XX F11 Wirtschaftswissenschaften A
654 711 Abel 21.11.78 XY F19 Mathematik/Informatik B
196 481 Maier 01.01.80 YX F19 Mathematik/Informatik B
226 302 Schulz 31.07.79 YY F11 Wirtschaftswissenschaften A
Student’
PrüferPrüfung’ PNR MATNR PDAT NOTE
1234 123 766 22.10.00 4
1234 654 711 14.02.01 3
3678 196 481 21.09.01 2
3678 123 766 02.03.01 4
8223 226 302 12.07.01 1
5 - 10(C) Prof. E. Rahm DBS1
Überführung in 3NF n Änderungsanomalien in 2NF sind immer noch möglich aufgrund von tran-
sitiven Abhängigkeiten.- Beispiel: Vermischung von Fakultäts- und Studentendaten in Student'
n Definitionen:Eine Attributmenge Z von Relationenschema R ist transitiv abhängig von einer Attributmenge Xin R, wenn gilt:
- X und Z sind disjunkt
- es existiert eine Attributmenge Y in R, so daß gilt:
Ein Relationenschema R befindet sich in 3NF, wenn es sich in 2NF befindet und jedes Nicht-Pri-märattribut von R von keinem Schlüsselkandidaten von R transitiv abhängig ist.
X Y, Y Z, Y X, Z ⊆ Y
Z Y zulässig
strikte Transitivität: Z Y
Y
X
Z
5 - 11(C) Prof. E. Rahm DBS1
Überführung in 3NF (2)n Funktionale Abhängigkeiten in
STUDENT’
n Relationenschema in 3NF
MATNR
NAMEGEBADR
FNR
FNAME DEKAN
PNR PNAME FACH
1234 Gerber TI
3678 Rahm DBS
8223 Ehrenberg WI
MATNR NAME GEB ADR FNR
123 766 Coy 05.05.79 XX F11
654 711 Abel 21.11.78 XY F19
196 481 Maier 01.01.80 YX F19
226 302 Schulz 31.07.79 YY F11Student’’
Prüfer
Prüfung’ PNR MATNR PDAT NOTE
1234 123 766 22.10.00 4
1234 654 711 14.02.01 3
3678 196 481 21.09.01 2
3678 123 766 02.03.01 4
8223 226 302 12.07.01 1
FNR FNAME DEKAN
F11 Wirtschaftswissenschaften A
F12 Medizin C
F19 Mathematik/Informatik B
Fakultät
5 - 12(C) Prof. E. Rahm DBS1
Boyce/Codd-Normalform (BCNF) n Definition der 3NF hat gewisse Schwächen bei Relationen mit mehreren,
sich überlappenden Schlüsselkandidaten
n Beispiel: PRÜFUNG (PNR, MATNR, FACH, NOTE)
PRIMARY KEY (PNR,MATNR), UNIQUE (MATNR,FACH)
- es bestehe eine (1:1)-Beziehung zwischen PNR und FACH
- einziges Nicht-Primärattribut: NOTE ⇒ PRÜFUNG ist in 3NF
- jedoch Änderungsanomalien, z.B. bei FACH
n Ziel: Beseitigung der Anomalien für Primärattribute
n Definition: Ein Attribut (oder eine Gruppe von Attributen), von dem ande-re voll funktional abhängen, heißt Determinant.
n Welches sind die Determinanten in PRÜFUNG?
PNR MATNR Fach NOTE
45 1234 Betriebssysteme 1
45 4711 Betriebssysteme 3
45 5678 Betriebssysteme 2
56 1234 Technische Informatik 4
5 - 13(C) Prof. E. Rahm DBS1
Boyce/Codd-Normalform (2)n Definition:
Ein Relationenschema R ist in BCNF, wenn jeder Determinant ein Schlüsselkandidat von R ist.
n Formale Definition:Ein Relationenschema ist in BCNF, falls gilt: Wenn eine Sammlung von Attributen Y (voll funk-tional) abhängt von einer disjunkten Sammlung von Attributen X, dann hängt jede andere Samm-lung von Attributen Z auch von X (voll funktional) ab.
D. h. für alle X, Y, Z mit X und Y disjunkt gilt: X → Y impliziert X → Z
n Zerlegung von Prüfung PRÜF (PNR, MATNR, NOTE) oder PRÜF2 (MATNR, FACH, NOTE)
FBEZ (PNR, FACH) FBEZ (PNR, FACH)
n Beide Zerlegungen führen auf BCNF-Relationen- Änderungsanomalie ist verschwunden
- alle funktionalen Abhängigkeiten sind erhalten
5 - 14(C) Prof. E. Rahm DBS1
Boyce/Codd-Normalform (3)n Sind BCNF-Zerlegungen immer
sinnvoll?
n Beispiel: STUDENT, FACH → PRÜFER, PRÜFER → FACH
- Jeder Prüfer prüft nur ein Fach (aber ein Fach kann von mehrerengeprüft werden)
- Jeder Student legt in einem bestimmten Fach nur eine Prüfung ab
n Wie sieht die BCNF-Zerlegung aus?
n Neue Probleme: STUDENT, FACH -> PRÜFER ist nun "extern" (Konsi-stenzprüfung?)
n BCNF hier zu streng, um bei der Zerlegung alle funktionalen Abhängigkei-ten zu bewahren (key breaking dependency)
R ( A B C,, )ist in 3NF, weil B Primärattribut ist !
STUDENT FACH PRÜFER
Sloppy DBS Bachmann
Hazy DBS Rahm
Sloppy TI Gerber
SFP
5 - 15(C) Prof. E. Rahm DBS1
Probleme der Normalisierungn Weitestgehende Zerlegung nicht immer sinnvoll
n Beispiel:Relation PERS (PNR, PLZ, ORT)
mit FA PLZ → ORT
n Normalisierung verlangt Zerlegung inPERS’ (PNR, PLZ)
R2 (PLZ, ORT)
- Änderungshäufigkeit?- Aufsuchen der Adresse (Verbundoperation) !- Sind ORT oder PLZ in diesem Kontext eigenständige Entities?
(als Kandidaten für eigene Relation in 3NF)
=> besser PERS in 2NF!
5 - 16(C) Prof. E. Rahm DBS1
Zusammenfassungn Normalisierung von Relationen
- arbeitet auf existierenden Datenstrukturen
- Ziel: guter DB-Entwurf, so daß durch einen Satztyp (Relation) nur ein Objekttyp beschrieben wird
- Eliminierung von Änderungsanomalien
- wachsender Informationsgehalt mit zunehmender Normalisierung
n Funktionale Abhängigkeit: n:1-Beziehung zwischen zwei Attributmengeneiner Relation
- Festlegung aller FA unterstützt präzises Denken beim Entwurf
- erlaubt Integritätskontrollen durch das DBS
n schrittweise Normalisierung: - 1NF: normalisierte Relationen (einfache Attribute)- 2NF: keine partiellen (funktionalen) Abhängigkeiten
- 3NF: keine transitiven Abhängigkeiten (jedes Nicht-Primärattribut ist direkt von jedem SK abhängig)
- BCNF: jeder Determinant ist Schlüsselkandidat - 3NF meist ausreichend
n Überarbeitung des DB-Schemas: Stabilitätsgesichtspunkte/Änderungs-häufigkeiten können schwächere Normalformen erzwingen
6 - 1(C) Prof. E. Rahm DBS1
6. Datenmanipulation / -definition / -kontrolle in SQL
n Datenmanipulation: INSERT, UPDATE, DELETE von Tupeln
n Datendefinition- Datentypen, Domains- Erzeugen von Tabellen- Ändern/Löschen von Tabellen
n Sichtkonzept (Views)
n Integritätsbedingungen und Trigger- Klassifikation von Integritätsbedingungen - Integritätsregeln / Trigger- Einsatzformen von Triggern
n Zugriffskontrolle/Autorisierung: GRANT, REVOKE
n Zugriff auf Metadaten
6 - 2(C) Prof. E. Rahm DBS1
Einfügen von Tupeln (INSERT)
n Satzweises Einfügen (direkte Angabe der Attributwerte)Bsp.: Füge den Schauspieler Garfield mit der PNR 4711 ein
- alle nicht angesprochenen Attribute erhalten Nullwerte- falls alle Werte in der richtigen Reihenfolge versorgt werden, kann Attributliste entfallen- Integritätsbedingungen müssen erfüllt werden
n mengenorientiertes Einfügen: einzufügende Tupeln werden aus einer an-deren Relation mit Hilfe einer SELECT-Anweisung ausgewähltBsp.: Füge die Schauspieler aus L in die Relation TEMP ein
- (leere) Relation TEMP mit kompatiblen Attributen sei vorhanden - die spezifizierte Tupelmenge wird ausgewählt und in die Zielrelation kopiert- Die eingefügten Tupel sind unabhängig von denen, von denen sie abgeleitet/kopiert wurden.
INSERT INTO table [ (column-commalist) ] { VALUES row-constr-commalist | table-exp | DEFAULT VALUES }
6 - 3(C) Prof. E. Rahm DBS1
Ändern von Tupeln (UPDATE)
Gib den Schauspielern, die am Schauspielhaus spielen, eine Gehaltserhöhung von 2%(Attribute GEHALT und THEATER seien in SCHAUSPIELER).
Erhöhe das Gehalt der Schauspieler des Schauspielhauses um 2%, das der Schauspieler der Oper um2.5%.
searched-update ::= UPDATE table SET update-assignment-commalist [WHERE cond-exp]
update-assignment ::= column = {scalar-exp | DEFAULT | NULL }
6 - 4(C) Prof. E. Rahm DBS1
Löschen von Tupeln (DELETE)
n Der Aufbau der WHERE-Klausel entspricht dem in der SELECT-An-weisung.
Lösche den Schauspieler mit der PNR 4711
Lösche alle Schauspieler, die nie gespielt haben.
searched-delete ::= DELETE FROM table [WHERE cond-exp]
6 - 5(C) Prof. E. Rahm DBS1
Datendefinition in SQLn SQL-Umgebung (Environment) besteht aus:
- Katalogen - Benutzern (authorization identifiers)
n ein Katalog enthält:- für jede Datenbank ein Schema - ein INFORMATION_SCHEMA (Metadaten über alle Schemata)
=> dreiteilige Objektnamen: <catalog>.<schema>.<object>
n Schema-Definition
- jedes Schema ist einem Benutzer (user) zugeordnet, z.B. DBA- Schema erhält Benutzernamen, falls keine explizite Namensangabe erfolgt- Definition aller Definitionsbereiche, Basisrelationen, Sichten (Views), Integritätsbedingungen
und Zugriffsrechte
n Beispiel: CREATE SCHEMA FLUG-DB AUTHORIZATION LH_DBA1
CREATE SCHEMA [schema] AUTHORIZATION user[DEFAULT CHARACTER SET char-set][schema-element-list]
6 - 6(C) Prof. E. Rahm DBS1
Datentypenn String-Datentypen
CHARACTER [ ( length ) ] (Abkürzung: CHAR) CHARACTER VARYING [ ( length ) ] (Abkürzung: VARCHAR)NATIONAL CHARACTER [ ( length ) ] (Abkürzung: NCHAR)NCHAR VARYING [ ( length ) ] BIT [ ( length ) ] BIT VARYING [ ( length ) ]
n Numerische DatentypenNUMERIC [ ( precision [ , scale] ) ]DECIMAL [ ( precision [ , scale ] ) ] (Abkürzung: DEC) INTEGER (Abkürzung: INT) SMALLINTFLOAT [ ( precision ) ]REALDOUBLE PRECISION
n Datums-/Zeitangaben (Datetimes)DATETIMETIMESTAMPTIME WITH TIME ZONETIMESTAMP WITH TIME ZONEINTERVAL (* Datums- und Zeitintervalle *)
6 - 7(C) Prof. E. Rahm DBS1
Definitionsbereiche (Domains)n Festlegung zulässiger Werte durch Domain-Konzept
n optionale Angabe von Default-Werten
n Wertebereichseingrenzung durch benamte CHECK-Constraint möglich
n Beispiele:CREATE DOMAIN ABTNR AS CHAR (6)CREATE DOMAIN ALTER AS INT DEFAULT NULL CHECK(VALUE=NULL OR VALUE > 18)
n Beschränkungen - keine echten benutzerdefinierten Datentypen - keine strenge Typprüfung - Domains können nur bzgl. Standard-Datentypen (nicht über andere Domains) definiert werden
CREATE DOMAIN domain [AS] data-type[DEFAULT { literal | niladic-function-ref | NULL} ] [ [CONSTRAINT constraint] CHECK (cond-exp) [deferrability]]
6 - 8(C) Prof. E. Rahm DBS1
Erzeugung von Basisrelationen
n permanente und temporäre Relationen
n zwei Typen von temporären Relationen:- LOCAL: Lebensdauer auf erzeugende Transaktion begrenzt- GLOBAL: Lebensdauer auf "Session" eines Benutzers begrenzt; Inhalt kann beim Commit zu-
rückgesetzt werden
n Bei der Attributdefinition (column definition) werden folgende Angabenspezifiziert:- Attributname sowie Datentyp bzw. Domain- Eindeutigkeit (UNIQUE bzw. PRIMARY KEY), FOREIGN-KEY-Klausel- Verbot von Nullwerten (NOT NULL), CHECK-Bedingung, Default-Werte
n Integritätsbedingungen, die mehrere Attribute der Relation betreffen, kön-nen als eigene "table constraint" definiert werden
CREATE [ [GLOBAL | LOCAL] TEMPORARY] TABLE base-table (base-table-element-commalist)[ON COMMIT {DELETE | PRESERVE} ROWS]
base-table-element::= column-def | base-table-constraint-def
6 - 9(C) Prof. E. Rahm DBS1
CREATE TABLE: Beispiel
CREATE TABLE PERS(PNR INT PRIMARY KEY,BERUF VARCHAR (50),PNAME VARCHAR (50)NOT NULL,PALTER ALTER, (* siehe Domain-Definition *) MGR INT REFERENCES PERS,ANR ABTNR (* Domain-Definition *)GEHALT DEC (7) DEFAULT 0 CHECK (VALUE < 120000)FOREIGN KEY (ANR) REFERENCES ABT )
CREATE TABLE ABT(ANR ABTNR PRIMARY KEY, ANAME VARCHAR (50)NOT NULL )
ABTPERS ABT-ZUGEH[1, *][1, 1]
Untergebene
MGR
VORGES
[0, 1]
[0, *]
6 - 10(C) Prof. E. Rahm DBS1
Dynamische Änderung einer Relationn Bei Relationen können dynamisch (während ihrer Lebenszeit) Schemaän-
derungen durchgeführt werden.- Hinzufügen, Ändern und Löschen von Attributen- Hinzufügen und Löschen von Constraints
n BeispieleALTER TABLE PERS ADD SVNR INT UNIQUE ALTER TABLE PERS DROP COLUMN SVNR RESTRICT
- Wenn das Attribut das einzige der Relation ist, wird die Operation zurückgewiesen- RESTRICT führt zur Rückweisung der Operation, wenn das Attribut (Column) in einer Sicht
oder einer Integritätsbedingung (Check) referenziert wird- CASCADE dagegen erzwingt die Folgelöschung aller Sichten und Check-Klauseln, die von
dem Attribut abhängen.
ALTER TABLE base-table{ ADD [COLUMN] column-def | ALTER [COLUMN] column {SET default-def | DROP DEFAULT} | DROP [COLUMN] column {RESTRICT | CASCADE} | ADD base-table-constraint-def | DROP CONSTRAINT constraint {RESTRICT | CASCADE}}
6 - 11(C) Prof. E. Rahm DBS1
Löschen von Objekten
n Falls Objekte (Relationen, Sichten, ...) nicht mehr benötigt werden, kön-nen sie durch die DROP-Anweisung aus dem System entfernt werden
n Mit der CASCADE-Option können ’abhängige’ Objekte (z.B. Sichten aufRelationen oder anderen Sichten) mitentfernt werden
n RESTRICT verhindert Löschen, wenn die zu löschende Relation nochdurch Sichten oder Integritätsbedingungen referenziert wird
n Beispiele: DROP TABLE PERS RESTRICT
PersConstraint sei definiert auf PERS:
1. ALTER TABLE PERS DROP CONSTRAINT PersConstraint CASCADE2. DROP TABLE PERS RESTRICT
DROP { TABLE base-table | VIEW view | DOMAIN domain | SCHEMA schema } {RESTRICT | CASCADE}
6 - 12(C) Prof. E. Rahm DBS1
Sichtkonzeptn Sicht (View): mit Namen bezeichnete, aus Basisrelationen abgeleitete, vir-
tuelle Relation (Anfrage)n Korrespondenz zum externen Schema bei ANSI/SPARC (Benutzer sieht
jedoch i.a. mehrere Views und Basisrelationen)
n Beispiel: Sicht auf PERS, die alle Programmierer mit einem Gehalt unter30000 umfaßt CREATE VIEW ARME_PROGRAMMIERER (PNR, NAME, BERUF, GEHALT, ANR) AS
SELECT PNR, NAME, BERUF, GEHALT, ANR FROM PERSWHERE BERUF = ’Programmierer’ AND GEHALT < 30 000
n Sicht kann wie eine Relation behandelt werden (Sichten auf Sichten sindmöglich)
n Vorteile: - Erhöhung der Benutzerfreundlichkeit- erhöhte Datenunabhängigkeit- Datenschutz / Zugriffskontrolle
CREATE VIEW view [ (column-commalist ) ] AS table-exp[WITH [ CASCADED | LOCAL] CHECK OPTION]
6 - 13(C) Prof. E. Rahm DBS1
Sichtkonzept (2)n Sichtsemantik
- allgemeine Sichten werden nicht materialisiert, sondern als Anfrageergebnis interpretiert, dasdynamisch beim Zugriff generiert wird
- Sicht entspricht einem “dynamisches Fenster” auf zugrundeliegenden Basisrelationen- Sicht-Operationen müssen durch (interne) Query-Umformulierung auf Basisrelationen abgebil-
det werden- eingeschränkte Änderungen: aktualisierbare und nicht-aktualisierbare Sichten
n Sonderform: Materialisierte Sichten - physische Speicherung des Anfrageergebnisses - unterstützt schnelleren Lesezugriff- Notwendigkeit der Aktualisierung (automatisch durch das DBS)- erhöhter Speicherbedarf - kein Bestandteil von SQL92, jedoch in vielen DBS verfügbar (CREATE MATERIALIZED
VIEW ...)
6 - 14(C) Prof. E. Rahm DBS1
Sichtkonzept (3)n Abbildung von Sicht-Operationen auf Basisrelationen
- Sichten werden i.a. nicht explizit und permanent gespeichert, sondern Sicht-Operationen wer-den in äquivalente Operationen auf Basisrelationen umgesetzt
- Umsetzung ist für Leseoperationen meist unproblematischSELECT NAME, GEHALTFROM ARME_PROGRAMMIERERWHERE ANR = "K55"
n Abbildungsprozeß auch über mehrere Stufen durchführbarCREATE VIEW V AS SELECT ... FROM R WHERE PCREATE VIEW W AS SELECT ... FROM V WHERE Q
SELECT ... FROM W WHERE C
n Einschränkungen der Abbildungsmächtigkeit- keine Schachtelung von Aggregatfunktionen und Gruppenbildung (GROUP-BY)- keine Aggregatfunktionen in WHERE-Klausel möglich
CREATE VIEW ABTINFO (ANR, GSUMME)ASSELECT AVG(GSUMME)FROM ABTINFOSELECT ANR,SUM(GEHALT)FROM PERSGROUP BY ANR
6 - 15(C) Prof. E. Rahm DBS1
Sichtkonzept (4)n Probleme für Änderungsoperationen auf Sichten
- erfordern, daß zu jedem Tupel der Sicht zugrundeliegende Tupel der Basisrelationen eindeutigidentifizierbar sind
- Sichten auf einer Basisrelation sind nur aktualisierbar, wenn der Primärschlüssel in der Sichtenthalten ist.
- Sichten, die über Aggregatfunktionen oder Gruppenbildung definiert sind, sind nicht aktuali-sierbar
- Sichten über mehr als eine Relation sind im allgemeinen nicht aktualisierbarCREATE VIEW READONLY (BERUF, GEHALT) AS
SELECT BERUF, GEHALT FROM PERS
n CHECK-Option:- Einfügungen und Änderungen müssen das die Sicht definierende Prädikat erfüllen.
Sonst: Zurückweisung- nur auf aktualisierbaren Sichten definierbar
n Löschen von Sichten: DROP VIEW ARME_PROGRAMMIERER CASCADE
6 - 16(C) Prof. E. Rahm DBS1
Datenkontrollen Zugriffskontrolle
- Maßnahmen zur Datensicherheit und zum Datenschutz- Sichtkonzept - Vergabe und Kontrolle von Zugriffsrechten
n Integritätskontrolle- Semantische Integritätskontrolle- Einhaltung der physischen Integrität sowie der Ablaufintegrität (operationale Integrität)
n Transaktionskonzept (ACID-Eigenschaften)- Verarbeitungsklammer für die Einhaltung von semantischen Integritätsbedingungen- im SQL-Standard: COMMIT WORK, ROLLBACK WORK, Beginn einer Transaktion implizit- Verdeckung der Nebenläufigkeit (concurrency isolation)- Verdeckung von (erwarteten) Fehlerfällen (-> Logging und Recovery)
Art der Integrität Transaktionseigenschaft realisierende DBS-Komponente
Semantische Integrität C (Consistency, Konsistenz) Integritätskontrolle
Physische Integrität D: DauerhaftigkeitA: Atomarität
Logging, Recovery (+ korrekte Implementie-rung der DB-Operationen)
Ablaufintegrität I (Isolation) Synchronisation (z.B. Sperrverwaltung)
6 - 17(C) Prof. E. Rahm DBS1
Semantische Integritätsbedingungenn Ziele
- nur 'sinnvolle' und 'zulässige' Änderungen der DB- möglichst hohe Übereinstimmung von DB-Inhalt und Miniwelt (Datenqualität)
n bei COMMIT müssen alle semantischen Integritätsbedingungen erfülltsein (Transaktionskonsistenz)
n zentrale Überwachung von semantischen Integritätsbedingungen durchDBS ("system enforced integrity") anstelle durch Anwendungen- größere Sicherheit - vereinfachte Anwendungserstellung- leichtere Änderbarkeit von Integritätsbedingungen - Leistungsvorteile - Unterstützung von interaktiven sowie programmierten DB-Änderungen
n Integritätsbedingungen der Miniwelt sind explizit bekannt zu machen, umautomatische Überwachung zu ermöglichen- zunächst schwache Unterstützung in SQL (z.B. NOT NULL, UNIQUE)- erst seit SQL92 umfangreiche Spezifikationsmöglichkeiten (relationale Invarianten, benutzer-
definierte Integritätsbedingungen)
6 - 18(C) Prof. E. Rahm DBS1
Klassifikation von Integritätsbedingungenn modellinhärente vs. anwendungsspezifische Bedingungen
- modellinhärente Integritätsbedingungen, z.B. Relationale Invarianten (Primärschlüsselbedin-gung, referentielle Integrität) und Wertebereichsbeschränkung für Attribute
n Reichweite
n Zeitpunkt derÜberprüfbarkeit- unverzögert (sofort bei Änderungsoperation)- verzögert (am Transaktionsende)
n Art der Überprüfbarkeit- Zustandsbedingungen (statische Integritätsbedingungen)- dynamische Integritätsbedingungen: Übergangsbedingungen oder temporale Bedingungen
n Beispiele dynamischer Integritätsbedingungen:- Übergang von FAM-STAND von 'ledig' nach 'geschieden' ist unzulässig- Gehalt darf nicht kleiner werden- temporale Bedingung: Gehalt darf innerhalb von 3 Jahren nicht um mehr als 25% wachsen
Reichweite Beispiele
Attribut GEB-JAHR ist numerisch, 4-stellig
Satzausprägung ABT.GEHALTSSUMME < ABT.JAHRESETAT
Satztyp PNR ist eindeutig
mehrere Satztypen ABT.GEHALTSSUMME ist Summe aller Angestelltengehälter
6 - 19(C) Prof. E. Rahm DBS1
Integritätsbedingungen in SQL92n Eindeutigkeit von Attributwerten
- UNIQUE bzw. PRIMARY KEY bei CREATE TABLE- Satztypbedingungen
n Fremdschlüsselbedingungen- FOREIGN-KEY-Klausel- Satztyp- bzw. satztypübergreifende Bedingung
n Wertebereichsbeschränkungen von Attributen- CREATE DOMAIN, - NOT NULL- DEFAULT- Attribut- und Satztyp-Bedingungen
CREATE TABLE PERS ... PNR INT UNIQUE
(bzw. PRIMARY KEY)
6 - 20(C) Prof. E. Rahm DBS1
Integritätsbedingungen in SQL92 (2)n Allgemeine Integritätsbedingungen
- CHECK-Constraints bei CREATE TABLE- allgemeine Assertions, z.B. für satztypübergreifende Bedingungen
n Festlegung des Überprüfungszeitpunktes:- IMMEDIATE: am Ende der Änderungsoperation (Default)- DEFERRED: am Transaktionsende (COMMIT)
n keine direkte Unterstützung für dynamische Integritätsbedingungen inSQL92-> Trigger (SQL:1999)
CREATE TABLE PERS .... GEB-JAHR INT CHECK (VALUE BETWEEN 1900 AND 2100)CREATE TABLE ABT .....
CHECK (GEHALTSSUMME < JAHRESETAT)
CHECK-Constraints bei CREATE TABLE
CREATE ASSERTION A1 CHECK (NOT EXISTS (SELECT * FROM ABT A WHERE GEHALTSSUMME <> (SELECT SUM (P.GEHALT) FROM PERS P
WHERE P.ANR = A.ANR))) DEFERRED
Anweisung CREATE ASSERTION
6 - 21(C) Prof. E. Rahm DBS1
Integritätsregelnn Standardreaktion auf verletzte Integritätsbedingung: ROLLBACK
n Integritätsregeln erlauben Spezifikation von Folgeaktionen, z.B. um Ein-haltung von IB zu erreichen - SQL92: deklarative Festlegung referentieller Folgeaktionen (CASCADE, SET NULL, ...) - SQL99: Trigger
n Trigger: Festlegung von Folgeaktionen für Änderungsoperationen IN-SERT, UPDATE oder DELETE
n Beispiel: Wartung der referentiellen Integrität
n Trigger wesentlicher Mechanismus von aktiven Datenbanksystemen
Trigger-Lösung:
CREATE TRIGGER MITARBEITERLÖSCHEN AFTER DELETE ON ABT REFERENCING OLD AS A DELETE FROM PERS P WHERE P.ANR = A.ANR;
deklarativ: CREATE TABLE PERS
( PNR INT PRIMARY KEY, ANR INT FOREIGN KEY
REFERENCES ABTON DELETE CASCADE
... );
6 - 22(C) Prof. E. Rahm DBS1
Trigger n ausführbares, benanntes DB-Objekt, das implizit durch bestimmte Ereig-
nisse (“triggering event”) aufgerufen werden kann
n Triggerspezifikation besteht aus- auslösendem Ereignis (Event)- Ausführungszeitpunkt- optionaler Zusatzbedingung- Aktion(en)
n zahlreiche Einsatzmöglichkeiten- Überwachung nahezu aller Integritätsbedingungen, inkl. dynamischer Integritätsbedingungen - Validierung von Eingabedaten - automatische Erzeugung von Werten für neu eingefügten Satz- Wartung replizierter Datenbestände- Protokollieren von Änderungsbefehlen (Audit Trail)
• • •
CREATE TRIGGER GEHALTSTEST AFTER UPDATE OF GEHALT ON PERS REFERENCING OLD AS AltesGehalt, NEW AS NeuesGehaltWHEN (NeuesGehalt < AltesGehalt) ROLLBACK;
6 - 23(C) Prof. E. Rahm DBS1
Trigger (2)n SQL99-Syntax
n Merkmale- Trigger-Events: INSERT, DELETE, UPDATE- Zeitpunkt: BEFORE oder AFTER- mehrere Trigger pro Event/Zeitpunkt möglich (benutzerdefinierte Aktivierungsreihenfolge)- Bedingung: beliebiges SQL-Prädikat (z.B. mit komplexen Subqueries)- Aktion: beliebige SQL-Anweisung (z.B. auch neue prozedurale Anweisungen)- Trigger-Bedingung und -Aktion können sich sowohl auf alte als auch neue Tupelwerte der be-
troffenen Tupel beziehen- Ausführung von Trigger-Bedingung und -Aktion kann für jedes betroffene Tupel einzeln erfol-
gen (FOR EACH ROW) oder nur einmal für die auslösende Anweisung (FOR EACH STATE-MENT)
CREATE TRIGGER <trigger name>{ BEFORE | AFTER } { INSERT | DELETE |
UPDATE [OF <column list>] } ON <table name>[ ORDER <order value> ][ REFERENCING <old or new alias list> ][ FOR EACH { ROW | STATEMENT } ][ WHEN ( <search condition> ) ]
<triggered SQL statement>
<old or new alias> ::= OLD [ AS ] <old values correlation name> |NEW [ AS ] <new values correlation name> |OLD_TABLE [ AS ] <old values table alias> |NEW_TABLE [ AS ] <new values table alias>
6 - 24(C) Prof. E. Rahm DBS1
Trigger (3)n weiteres Beispiel: Wartung einer materialisierten Sicht
ARME_PROGRAMMIERER
CREATE TRIGGER
n Probleme von Triggern- teilweise prozedurale Semantik (Zeitpunkte, Verwendung alter/neuer Werte, Aktionsteil im De-
tail festzulegen)- Trigger i.a. beschränkt auf Änderungsoperationen einer Tabelle (UPDATE, INSERT, DELE-
TE) - derzeit i.a. keine verzögerte Auswertung von Triggern - Gefahr zyklischer, nicht-terminierender Aktivierungen - Korrektheit des DB-/Trigger-Entwurfes (Regelabhängigkeiten, parallele Regelausführung, ...)
n Verallgemeinerung durch sogenannte ECA-Regeln (Event / Condition /Action)
6 - 25(C) Prof. E. Rahm DBS1
Zugriffskontrolle (Autorisierung)Subjekte: Benutzer, Terminals
Objekte: Programme (Anwendungs-, Dienstprogramme), DB-Objekte (Relationen, Sichten,Attribute)
Operationen: Lesen, Ändern, Ausführen, Erzeugen, etc Weitergabe von Zugriffsrechten
n Klassifikationskriterien- zentrale Vergabe (DBA) vs. dezentrale Vergabe (Eigentümer) von Zugriffsrechten- wertabhängige vs. wertunabhängige Objektfestlegung
Berechtigungsmatrix
Objekte
Subjekte, Benutzer O1 O2 O3 • • • On
B1 P1, P2 P3 Pi
B2 P1 P2, P3 P1
B3 P2, P3 P2
• • •
Bm P1, P2 Pi P1 Pi, Pk
6 - 26(C) Prof. E. Rahm DBS1
Zugriffskontrolle in SQL n Sicht-Konzept: wertabhängiger Zugriffsschutz (Untermengenbildung,
Verknüpfung von Relationen, Verwendung von Aggregatfunktionen)n Vergabe von Rechten auf Relationen bzw. Sichten
n Zugriffsrechte: SELECT, INSERT, UPDATE, DELETE, REFERENCES, USAGE- Erzeugung einer "abhängigen" Relation erfordert REFERENCES-Recht auf von Fremdschlüs-
seln referenzierten Relationen - USAGE erlaubt Nutzung spezieller Wertebereiche (character sets)- Attributeinschränkung bei INSERT, UPDATE und REFERENCES möglich- dynamische Weitergabe von Zugriffsrechten: WITH GRANT OPTION (dezentrale Autorisie-
rung)
n Empfänger: Liste von Benutzern bzw. PUBLICn Beispiele:GRANT SELECT ON ABT TO PUBLICGRANT INSERT, DELETE ON ABT TO Mueller, Weber WITH GRANT OPTIONGRANT UPDATE (GEHALT) ON PERS TO SchulzGRANT REFERENCES (PRONR) ON PROJEKT TO PUBLIC
GRANT {privileges-commalist | ALL PRIVILEGES}ON accessible-object TO grantee-commalist [WITH GRANT OPTION]
6 - 27(C) Prof. E. Rahm DBS1
Zugriffskontrolle in SQL (2)n Rücknahme von Zugriffsrechten:
Beispiel:
REVOKE SELECT ON ABT FROM Weber CASCADE
n ggf. fortgesetztes Zurücknehmen von Zugriffsrechten
n wünschenswerte Entzugssemantik: Der Entzug eines Rechtes ergibt einenZustand der Zugriffsberechtigungen, als wenn das Recht nie erteilt wordenwäre
n Probleme:- Rechteempfang aus verschiedenen Quellen- Zeitabhängigkeiten
n Führen der Abhängigkeiten in einem Autorisierungsgraphen erforderlich
REVOKE[GRANT OPTION FOR] privileges-commalist ON accessible-object FROM grantee-commalist {RESTRICT | CASCA-
6 - 28(C) Prof. E. Rahm DBS1
Zugriff auf Metadatenn jeder SQL-Katalog enthält ein INFORMATION_SCHEMA zur Beschrei-
bung der Metadaten aller Datenbanken (Schemas) des Katalogs
n INFORMATION_SCHEMA enthält vordefinierte Sichten, auf die übernormale SQL-Anweisungen (lesend) zugegriffen werden kann
n Folgende Sichten sind u.a. vorgesehen:
n DB-ObjekteSCHEMATADOMAINSTABLESVIEWSCOLUMNS
n Zugriffsberechtigungen
TABLE_PRIVILEGESCOLUMN_PRIVILEGESUSAGE_PRIVILEGES
n Constraints
TABLE_CONSTRAINTSREFERENTIAL_CONSTRAINTSDOMAIN_CONSTRAINTSCHECK_CONSTRAINTSASSERTIONS
n Abhängigkeiten
COLUMN_DOMAIN_USAGEVIEW_TABLE_USAGEVIEW_COLUMN_USAGECONSTRAINT_TABLE_USAGCONSTRAINT_COLUMN_USAGE
6 - 29(C) Prof. E. Rahm DBS1
Zusammenfassungn Datenmanipulation: INSERT, UPDATE, DELETE von Tupeln n Datendefinition: CREATE / DROP TABLE, VIEW, DOMAIN, SCHE-
MA; ALTER TABLEn Sicht-Konzept (Views)
- Korrespondenz zum externen Schema bei ANSI/SPARC- Reduzierung von Komplexität, erhöhte Datenunabhängigkeit, Zugriffsschutz- Einschränkungen bezüglich Änderbarkeit
n Integritätsbedingungen - Klassifikation: modellinhärent/anwendungsspezifisch, statisch/dynamisch, unverzögert/verzö-
gert, Reichweite- Unterstützung in SQL (CREATE TABLE, CREATE DOMAIN, ASSERTIONS, Trigger)
n Trigger- automatische Reaktion bei DB-Änderungen (-> "aktive DBS")- zahlreiche Anwendungsmöglichkeiten: Integritätskontrolle, materialisierte Sichten, ...
n dezentrales Autorisierungskonzept zur Zugriffskontrolle (GRANT, RE-VOKE)
n Standardisierte SQL-Sichten für Metadaten (INFORMATION SCHEMA)
6 - 30(C) Prof. E. Rahm DBS1
LEHRVERANSTALTUNGEN WS 2003 / 2004
n Datenbanksysteme 2 (2 + 1 SWS)- Kernstudium Praktische Informatik
n Mehrrechner-DBS (2 SWS)- Kernstudium Praktische Informatik oder Schwerpunkt Praktische Informatik
n Datenbanken in der Bioinformatik (2 SWS) - Bioinformatik oder Praktische/Angewandte Informatik
n Relationales DB-PRAKTIKUM (4 SWS) - Schwerpunkt Praktische Informatik- Voraussetzung: DBS1-Schein - Anmeldung ab Ende Sep. / Anfang Oktober (2er-Gruppen)
n Problemseminar Peer-to-Peer Data Management - Schwerpunkte Praktische o. Angewandte Inf.- Vorbesprechung mit Themenvorstellung / -vergabe 1. Semesterwoche
top related