Datenbanken (Übung 12)

Ähnliche Dokumente
Wiederholung VU Datenmodellierung

Datenbanken Unit 7: Normalisierung ctd.

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

Übung 9. Tutorübung zu Grundlagen: Datenbanken (Gruppen Do-T24 / Do-T31 WS 2016/2017)

Datenbanken 6: Normalisierung

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

Datenbanken 6: Normalisierung

3. Übungszettel (Musterlösung)

Kapitel 8: Datenintegrität

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

Wir haben folgende Ausprägung der Relation Studenten:

Datenbanksysteme 2013

Finalklausur zur Vorlesung Datenbanksysteme I Wintersemester 2003/2004 Prüfer: Prof. R. Bayer, Ph.D. Datum: Zeit: 16.

Tag 4 Inhaltsverzeichnis

Tag 4 Inhaltsverzeichnis

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

Grundlagen: Datenbanken

8. Tutorübung zu Grundlagen: Datenbanken

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

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

Gruppe B Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Gruppe A Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Zerlegung einer Relation

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

Aufgabe 1: Kanonische Überdeckung

Universität Augsburg, Institut für Informatik WS 2009/2010 Prof. Dr. W. Kießling 06. Nov Dr. A. Huhn, F. Wenzel, M. Endres Lösungsblatt 2

Relationale Entwurfstheorie (Teil 2)

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Programmieren II. Relationale Datenbanken. Vorlesung 07. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Sommersemester 2011.

Datenintegrität. Integitätsbedingungen Schlüssel Beziehungskardinalitäten Attributdomänen Inklusion bei Generalisierung

Datenbanksysteme I Übung: Normalformen und Relationale Algebra Jana Bauckmann

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

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

Oracle 10g Einführung

Datenbanken. Zusammenfassung. Datenbanksysteme

Willkommen. Datenbanken und Anbindung

Hochschule Karlsruhe Technik und Wirtschaft Anhänge: Fakultät für Informatik und Wirtschaftsinformatik SS 2013 Prof. Schmidt.

Die Anweisung create table

Datenbankzugriff mit JDBC

S.Müllenbach Datenbanken Informationsanalyse Normalformen- 1. Kurse. Name TNR ...

Übung zur Vorlesung Einführung in die Informatik für Hörer anderer Fachrichtungen (WZW) IN8003, SS 2011 Prof. Dr. J. Schlichter

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

IV. Datenbankmanagement

Grundlagen: Datenbanken

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

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

Introduction to Data and Knowledge Engineering. 6. Übung SQL

Grundlagen von SQL. Informatik 2, FS18. Dr. Hermann Lehner (Material von Dr. Markus Dahinden) Departement Informatik, ETH Zürich

Garten - Daten Bank. - survival pack -

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

Vorlesung Datenbank-Entwurf Klausur

2. Übungsblatt 3.0 VU Datenmodellierung

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

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

Kapitel 2: Das Relationale Modell

Referentielle Integrität

Datenbanken Unit 4: Das Relationale Modell & Datenintegrität

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Relationales Datenbanksystem Oracle

Datenbanken Unit 5: Funktionale Abhängigkeit

Kapitel 3: Datenbanksysteme

Kapitel 11: Relationale Entwurfstheorie

SQL und MySQL. Kristian Köhntopp

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

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

DB2 SQL, der Systemkatalog & Aktive Datenbanken

Normalisierung I. Ziele

Kapitel 3: Datenbanksysteme

d.h. zu Definitions-Stelle eindeutiger Funktionswert x X! y Y : (x,y) f umgekehrt: (x 1,y), (x 2,y) f ist o.k. X Y f(x) = y

4. Normalformen. Qualitätsanforderungen an Tabellen. Klassische Normalformen (1,. 2., 3.) Spezielle Normalformen

Universität Ulm Fakultät für Informatik Abteilung Datenbanken und Informationssysteme Prof. Dr. Peter Dadam und Michael Predeschly

dbis Praktikum DBS I SQL Teil 2

Eine neue Datenbank erstellen

Kapitel 2: Das Relationale Modell

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 11. Dez M. Endres, A. Huhn, T. Preisinger Lösungsblatt 7

Introduction to Data and Knowledge Engineering

Programmieren II. Beispiele für RDBMS. Relationale Datenbanken. Datenbanken SQL. Dr. Klaus Höppner JDBC. Hochschule Darmstadt SS 2008

Datenbanksysteme und Datenmodellierung

Rückblick: Relationales Modell

Datenbanksysteme 1 Sommersemester Juni 2006

Software-Engineering Einführung

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Labor 3 - Datenbank mit MySQL

MNR NAME VORNAME STRASSE PLZ ORT TELEFON

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

Relationentheorie grundlegende Elemente

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

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

SQL structured query language

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Bibliografische Informationen digitalisiert durch

Transkript:

Datenbanken (Übung 12) Prof. Dr.-Ing. Norbert Fuhr Dipl.-Inform. Thomas Beckers (tbeckers@is.inf.uni-due.de) Universität Duisburg-Essen Fachgebiet Informationssysteme 1. 2. Februar 2012 Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 1 / 24

Transaktionen ACID Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 2 / 24

Transaktionen ACID Atomicity Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 2 / 24

Transaktionen ACID Atomicity Consistency Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 2 / 24

Transaktionen ACID Atomicity Consistency Isolation Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 2 / 24

Transaktionen ACID Atomicity Consistency Isolation Durability Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 2 / 24

Transaktionen CREATE TABLE benutzer ( login vorname nachname geburtsdatum verbleibende_stimmen ) VARCHAR(30) NOT NULL PRIMARY KEY, VARCHAR(100), VARCHAR(100), DATE, INTEGER CREATE TABLE album ( id titel kuenstler ) INTEGER NOT NULL PRIMARY KEY, VARCHAR(50), VARCHAR(120) CREATE TABLE stimmen ( login VARCHAR(30) NOT NULL REFERENCES benutzer, album_id INTEGER NOT NULL REFERENCES album, PRIMARY KEY (login, album_id) ) Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 3 / 24

Transaktionen 1... 2 Class. forname ( "com.ibm.db2.jcc. DB2Driver " ) ; 3 4 i n t albumid = getalbumidfromuserinput ( ) ; 5 S t r i n g b e n u t z e r L o g i n = getuserloginfromuserinput ( ) ; 6 7 C o n n e c t i o n conn = n u l l ; 8 t r y { 9 conn = DriverManager. getconnection ( "jdbc :db2 :// musikdb " ) ; 0 1 // Hole v e r b l e i b e n d e Stimmen von B e n u t z e r aus d e r DB 2 i n t verbleibendestimmen = verbleibendestimmen ( conn, benutzerlogin ) ; 3 4 i f ( v e r b l e i b e n d e S t i m m e n >= 1) { 5 // A k t u a l i s i e r e f r e i e Stimmen von B e n u t z e r 6 S t r i n g updatestatement = " UPDATE benutzer SET " v e r b l e i b e n d e s t i m m e n =? 7 WHERE l o g i n =?"; 8 9 PreparedStatement s1 = conn. preparestatement ( updatestatement ); 0 1 s1. setint (1, verbleibendestimmen - 1); 2 3 s1. setstring (2, benutzerlogin ); 4 5 s1. executeupdate (); Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 4 / 24

Transaktionen 1 // Füge Stimmen von Benutzer f ü r Album in die DB ein 2 S t r i n g i n s e r t S t a t e m e n t = " INSERT INTO stimmen VALUES (?,?)" ; 3 4 PreparedStatement s2 = conn. preparestatement ( insertstatement ) ; 5 6 s2. s e t S t r i n g ( 1, b e n u t z e r L o g i n ) ; 7 8 s2. s e t I n t ( 2, albumid ) ; 9 0 s2. e x e c u t e U p d a t e ( ) ; 1 } 2 3 } catch ( SQLException e ) { 4 // Ausnahmen b e h a n d e l n 5... 6 } f i n a l l y { 7 // Resourcen s c h l i e ß en 8... 9 } 0... Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 5 / 24

Transaktionen conn.setautocommit(false); conn.commit(); conn.rollback(); Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 6 / 24

Schlüssel Superschlüssel Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 7 / 24

Schlüssel Superschlüssel Schlüsselkandidat/Schlüssel Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 7 / 24

Schlüssel Superschlüssel Schlüsselkandidat/Schlüssel Primärschlüssel Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 7 / 24

Schlüssel R : {A, B, C, D} A B Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 8 / 24

Schlüssel R : {A, B, C, D} A B A, B, C, D Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 8 / 24

Schlüssel R : {A, B, C, D} A B A, B, C, D Superschlüssel Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 8 / 24

Schlüssel R : {A, B, C, D} A B A, B, C, D Superschlüssel A, C, D Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 8 / 24

Schlüssel R : {A, B, C, D} A B A, B, C, D Superschlüssel A, C, D Schlüsselkandidat ( auch Superschlüssel) Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 8 / 24

Schlüssel R : {A, B, C, D} A B A, B, C, D Superschlüssel A, C, D Schlüsselkandidat ( auch Superschlüssel) A Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 8 / 24

Schlüssel R : {A, B, C, D} A B A, B, C, D Superschlüssel A, C, D Schlüsselkandidat ( auch Superschlüssel) A Nichts Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 8 / 24

1NF Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 9 / 24

1NF keine mehrwertigen Attribute Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 9 / 24

1NF keine mehrwertigen Attribute bei unserer Definition des relationalen Modell immer erfüllt Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 9 / 24

2NF Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 10 / 24

2NF Nichtschlüsselattribut (nicht prim): Attribut, das in keinem Schlüsselkandidaten vorkommt Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 10 / 24

2NF Nichtschlüsselattribut (nicht prim): Attribut, das in keinem Schlüsselkandidaten vorkommt Definition 2NF: jedes Nichtschlüsselattribut A in R ist voll funktional abhängig von jedem Schlüsselkandidaten Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 10 / 24

2NF Beispiel R : {A, B, C, D} AB C B D Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 11 / 24

2NF Beispiel R : {A, B, C, D} AB C B D Schlüsselkandidaten: AB Nichtschlüsselattribute: C und D Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 11 / 24

2NF Beispiel R : {A, B, C, D} AB C B D Schlüsselkandidaten: AB Nichtschlüsselattribute: C und D C ist voll funktional abhängig von AB Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 11 / 24

2NF Beispiel R : {A, B, C, D} AB C B D Schlüsselkandidaten: AB Nichtschlüsselattribute: C und D C ist voll funktional abhängig von AB D ist nicht voll funktional abhängig von AB (wg. B D) Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 11 / 24

2NF Beispiel R : {A, B, C, D} AB C B D Schlüsselkandidaten: AB Nichtschlüsselattribute: C und D C ist voll funktional abhängig von AB D ist nicht voll funktional abhängig von AB (wg. B D) nicht in 2NF Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 11 / 24

R : {A, B, C, D} AB C C D D A Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 12 / 24

R : {A, B, C, D} AB C C D D A Schlüssel: AB, BC, BD Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 12 / 24

1NF Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 13 / 24

1NF 2NF keine Nichtschlüsselattribute 3NF keine Nichtschlüsselattribute (nächste Folie) Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 13 / 24

3NF Für jede FD α B muss mindestens eine der drei folgenden Bedingungen erfüllt sein: Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 14 / 24

3NF Für jede FD α B muss mindestens eine der drei folgenden Bedingungen erfüllt sein: α ist Superschlüssel Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 14 / 24

3NF Für jede FD α B muss mindestens eine der drei folgenden Bedingungen erfüllt sein: α ist Superschlüssel B ist prim (Schlüsselattribut) Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 14 / 24

3NF Für jede FD α B muss mindestens eine der drei folgenden Bedingungen erfüllt sein: α ist Superschlüssel B ist prim (Schlüsselattribut) α B ist trivial (d.h B α) Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 14 / 24

3NF Schlüsselkandidaten: AB, BC, BD Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 15 / 24

3NF Schlüsselkandidaten: AB, BC, BD AB C Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 15 / 24

3NF Schlüsselkandidaten: AB, BC, BD AB C AB ist Superschlüssel Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 15 / 24

3NF Schlüsselkandidaten: AB, BC, BD AB C AB ist Superschlüssel C ist prim Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 15 / 24

3NF Schlüsselkandidaten: AB, BC, BD AB C AB ist Superschlüssel C ist prim AB C ist trivial Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 15 / 24

3NF Schlüsselkandidaten: AB, BC, BD AB C AB ist Superschlüssel C ist prim AB C ist trivial C D Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 15 / 24

3NF Schlüsselkandidaten: AB, BC, BD AB C AB ist Superschlüssel C ist prim AB C ist trivial C D C ist Superschlüssel Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 15 / 24

3NF Schlüsselkandidaten: AB, BC, BD AB C AB ist Superschlüssel C ist prim AB C ist trivial C D C ist Superschlüssel D ist prim Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 15 / 24

3NF Schlüsselkandidaten: AB, BC, BD AB C AB ist Superschlüssel C ist prim AB C ist trivial C D C ist Superschlüssel D ist prim C D ist trivial Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 15 / 24

3NF Schlüsselkandidaten: AB, BC, BD AB C AB ist Superschlüssel C ist prim AB C ist trivial C D C ist Superschlüssel D ist prim C D ist trivial D A Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 15 / 24

3NF Schlüsselkandidaten: AB, BC, BD AB C AB ist Superschlüssel C ist prim AB C ist trivial C D C ist Superschlüssel D ist prim C D ist trivial D A D ist Superschlüssel Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 15 / 24

3NF Schlüsselkandidaten: AB, BC, BD AB C AB ist Superschlüssel C ist prim AB C ist trivial C D C ist Superschlüssel D ist prim C D ist trivial D A D ist Superschlüssel A ist prim Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 15 / 24

3NF Schlüsselkandidaten: AB, BC, BD AB C AB ist Superschlüssel C ist prim AB C ist trivial C D C ist Superschlüssel D ist prim C D ist trivial D A D ist Superschlüssel A ist prim D A ist trivial Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 15 / 24

3NF Schlüsselkandidaten: AB, BC, BD in 3NF AB C AB ist Superschlüssel C ist prim AB C ist trivial C D C ist Superschlüssel D ist prim C D ist trivial D A D ist Superschlüssel A ist prim D A ist trivial Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 15 / 24

BCNF Für jede FD α B muss mindestens eine der zwei folgenden Bedingungen erfüllt sein: Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 16 / 24

BCNF Für jede FD α B muss mindestens eine der zwei folgenden Bedingungen erfüllt sein: α ist Superschlüssel Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 16 / 24

BCNF Für jede FD α B muss mindestens eine der zwei folgenden Bedingungen erfüllt sein: α ist Superschlüssel α B ist trivial (d.h B α) Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 16 / 24

BCNF Schlüssel: AB, BC, BD Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 17 / 24

BCNF Schlüssel: AB, BC, BD AB C Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 17 / 24

BCNF Schlüssel: AB, BC, BD AB C AB ist Superschlüssel Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 17 / 24

BCNF Schlüssel: AB, BC, BD AB C AB ist Superschlüssel AB C ist trivial Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 17 / 24

BCNF Schlüssel: AB, BC, BD AB C AB ist Superschlüssel AB C ist trivial C D Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 17 / 24

BCNF Schlüssel: AB, BC, BD AB C AB ist Superschlüssel AB C ist trivial C D C ist Superschlüssel Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 17 / 24

BCNF Schlüssel: AB, BC, BD AB C AB ist Superschlüssel AB C ist trivial C D C ist Superschlüssel C D ist trivial Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 17 / 24

BCNF Schlüssel: AB, BC, BD AB C AB ist Superschlüssel AB C ist trivial C D C ist Superschlüssel C D ist trivial D A Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 17 / 24

BCNF Schlüssel: AB, BC, BD AB C AB ist Superschlüssel AB C ist trivial C D C ist Superschlüssel C D ist trivial D A D ist Superschlüssel Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 17 / 24

BCNF Schlüssel: AB, BC, BD AB C AB ist Superschlüssel AB C ist trivial C D C ist Superschlüssel C D ist trivial D A D ist Superschlüssel D A ist trivial Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 17 / 24

BCNF Schlüssel: AB, BC, BD AB C AB ist Superschlüssel AB C ist trivial C D C ist Superschlüssel C D ist trivial D A D ist Superschlüssel D A ist trivial nicht in BCNF Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 17 / 24

BCNF Zerlegungsalgorithmus (Kurzform): Solange es eine Relation R gibt, die nicht in BCNF ist: Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 18 / 24

BCNF Zerlegungsalgorithmus (Kurzform): Solange es eine Relation R gibt, die nicht in BCNF ist: Finde nicht-triviale FD α β (α β = ; α R, d.h. α ist kein Superschlüssel) Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 18 / 24

BCNF Zerlegungsalgorithmus (Kurzform): Solange es eine Relation R gibt, die nicht in BCNF ist: Finde nicht-triviale FD α β (α β = ; α R, d.h. α ist kein Superschlüssel) Ersetze R durch R 1 = α β und R 2 = R β Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 18 / 24

BCNF z.b. Zerlegung gemäß C D Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 19 / 24

BCNF z.b. Zerlegung gemäß C D R 1 (C, D) mit C D R 2 (A, B, C) mit AB C Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 19 / 24

BCNF z.b. Zerlegung gemäß C D R 1 (C, D) mit C D R 2 (A, B, C) mit AB C D A geht verloren! Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 19 / 24

BCNF z.b. Zerlegung gemäß C D R 1 (C, D) mit C D R 2 (A, B, C) mit AB C D A geht verloren! vielleicht doch lieber in 3NF lassen? Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 19 / 24

Unterschiede zwischen relationaler Algebra und SQL Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 20 / 24

Unterschiede zwischen relationaler Algebra und SQL GROUP BY, Aggregatfunktionen Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 20 / 24

Unterschiede zwischen relationaler Algebra und SQL GROUP BY, Aggregatfunktionen Menge vs. Multimenge, Tabellen ohne Primärschlüssel Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 20 / 24

Unterschiede zwischen relationaler Algebra und SQL GROUP BY, Aggregatfunktionen Menge vs. Multimenge, Tabellen ohne Primärschlüssel Reihenfolge der Attribute Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 20 / 24

Unterschiede zwischen relationaler Algebra und SQL GROUP BY, Aggregatfunktionen Menge vs. Multimenge, Tabellen ohne Primärschlüssel Reihenfolge der Attribute Dreiwertige Logik Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 20 / 24

Relationale Algebra Bahnhöfe: ( Name: string, StadtName: string, Bundesland: string ) Züge: ( ZugNr: integer, StartBHf: string, ZielBHf: string ) verbindet: ( VonBHf: string, NachBHf: string, ZugNr: integer, Abfahrt: date, Ankunft: date ) Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 21 / 24

Relationale Algebra Welche Züge halten mindestens einmal in Duisburg? Π ZugNr (σ StadtName = Duisburg (Bahnhöfe) VonBHf = Name (verbindet)) Π ZugNr (σ StadtName = Duisburg (Bahnhöfe) NachBHf = Name (verbindet)) oder einfacher: Π ZugNr (σ StadtName = Duisburg (Bahnhöfe) VonBHf = Name NachBHf = Name (verbindet)) Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 22 / 24

Relationale Algebra Welche Städte sind ohne Umsteigen von Essen Hauptbahnhof zu erreichen? Π StadtName (σ StartBHf = Essen HBf (verbindet) NachBHf = Name (Bahnhöfe)) Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 23 / 24

Min/Max-Notation Jede Fußballmannschaft besteht aus mindestens 11 Spielern. Jeder Spieler gehört natürlich nur zu genau einer Mannschaft. Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 24 / 24

Min/Max-Notation Jede Fußballmannschaft besteht aus mindestens 11 Spielern. Jeder Spieler gehört natürlich nur zu genau einer Mannschaft. Dipl.-Inform. Thomas Beckers (UDE) Datenbanken (Übung 12) 1. 2. Februar 2012 24 / 24