105
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; SS03 ist Voraussetzung für Workflow-Manage- vorteilhafte Reihenfolge Einführungs- vorlesungen Vertiefungs- vorlesungen Praktika* / * Detaillierter Praktikumsschein wird ausgestellt Datenschutz und Datensicherheit von DBS 1 Implementierung von DBS 2 Geoinformations- systeme 1 Data Warehousing u. 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 DBS2 IDBS 1 IDBS2 je 2+0 SWS je 2+1 SWS Diplomandenseminar; DB-Oberseminar z.B. Bio-Datenbanken, Datenintegration (WS)

Datenbanksysteme I - Documents Online | …lips.informatik.uni-leipzig.de/files/2003-26.pdf · Zur Vorlesung (2) nÜbungsgruppen (Eintragung im Web) nAnsprechpartner DBS1 ... Entwurf

  • Upload
    tranthu

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

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 , [email protected] Wissenschaftliche Mitarbeiter: Timo Böhme, [email protected], HG 3-01- Web-Angelegenheiten: S. Jusek, [email protected], 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