Daten Bank. 4. Vorlesung. Dr. Karsten Tolle PRG2 SS 2012

Ähnliche Dokumente
Teil 2-6. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II

Teil 2-6. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II

Wie kommen die Befehle zum DBMS

Wie kommen die Befehle zum DBMS

Teil 2-5. Vorlesung. Modul: Programmierung B-PRG Grundlagen der Programmierung II

embedded SQL Embedded SQL wurde erstmals im SQL92- Standard definiert.

Garten - Daten Bank. - survival pack -

Webbasierte Informationssysteme

Wiederholung VU Datenmodellierung

Design Theorie für relationale Datenbanken

Daten Bank. 5. Vorlesung. Dr. Karsten Tolle PRG2 SS 2014

Kapitel 9. Embedded SQL. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

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

Normalformen. Was sind Kriterien eines guten Entwurfs? So wenig Redundanz wie möglich. Keine Einfüge-, Lösch-, Änderungsanomalien

Daten Bank. 5. Vorlesung

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

Datenbanksysteme I Datenbankprogrammierung Felix Naumann

Datenbanken 6: Normalisierung

Datenbanken (Übung 12)

Datenbanken Unit 7: Normalisierung ctd.

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #6. SQL (Teil 4)

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

Datenbanken Unit 5: Funktionale Abhängigkeit

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

Grundlagen von Datenbanken SS 2010 Kapitel 8: Datenbank-Einbettung in Programmiersprachen Prof. Dr. Stefan Böttcher Universität Paderborn

Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Vorlesung Datenbank-Entwurf Klausur

105.3 SQL-Datenverwaltung

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

Daten Bank. 5. Vorlesung. Dr. Karsten Tolle PRG2 SS 2013

Normalisierung I. Ziele

Daten Bank. 2. Vorlesung. Dr. Karsten Tolle PRG2 SS 2014

Softwareentwicklung mit JAVA EE

WS 2010/11 Datenbanksysteme Fr 15:15 16:45 R Vorlesung #3. SQL (Teil 1)

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Kapitel 10. JDBC und SQLJ. Prof. Dr. Wolfgang Weber Vorlesung Datenbanken 1

Datenbanken. Zusammenfassung. Datenbanksysteme

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

Datenbanken 6: Normalisierung

SQL (Structured Query Language) Schemata Datentypen

Datenbanken. Autor Rainer Colgen (0171)

Garten -Daten Bank. Was ist das? Dr. Karsten Tolle PRG2 SS 2013

2. Datenbank-Programmierung

Übersicht der wichtigsten MySQL-Befehle

Daten Bank. 5. Vorlesung. Dr. Karsten Tolle PRG2 SS 2012

Kapitel 1: Einführung 1.1 Datenbanken?

Datenbanken 1 Sommersemester 2014/

ACCESS SQL ACCESS SQL

Webbasierte Informationssysteme

SQL structured query language

Teil VIII. Weitere Datenbanksprachen

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Relationales Datenbanksystem Oracle

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

Software-Engineering Einführung

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

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013

Datenbanken Entity-Relationship-Modell und Datenbankentwurf 1. Andreas Heß Hochschule Furtwangen

Oracle 10g Einführung

Klausur Datenbanken II

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

2. Übungsblatt 3.0 VU Datenmodellierung

Grundlagen: Datenbanken

SQL: Weitere Funktionen

Tag 4 Inhaltsverzeichnis

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

2. Übungsblatt 3.0 VU Datenmodellierung

MySQL-Befehle. In diesem Tutorial möchte ich eine kurze Übersicht der wichtigsten Befehle von MySQL geben.

Es geht also im die SQL Data Manipulation Language.

Datenbanken Unit 9: OLAP, OLTP und objektrelationale Datenbanken

Kapitel 8 Host Sprachen mit Embedded und Dynamic SQL

Die Anweisung create table

Datenbankprogrammierung 1

5.8 Bibliotheken für PostgreSQL

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

3 Query Language (QL) Einfachste Abfrage Ordnen Gruppieren... 7

Anwendungsentwicklung Datenbanken SQL. Stefan Goebel

Datenbanken Unit 3: Das relationale Modell

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

Der Einsatz von SELECT from INSERT auf dem System i

Datenbanken Unit 3: Das relationale Modell

Musterlösung zur Finalklausur Datenbanksysteme am

SQL als Zugriffssprache

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

DBS1: Übungsserie Normalformen und relationale Algebra Structured Query Language (SQL)

Datenbanken und Internet. SS2009 DBIS/Dr. Karsten Tolle

2. Übungsblatt 3.0 VU Datenmodellierung

Schlüssel. Definition: Ein Schlüssel (key) einer Relation r(r) ist eine Til Teilmenge K von R, so dass für je zwei verschiedene Tupeln t 1

7. Übung - Datenbanken

Übung Datenbanksysteme I JDBC. Thorsten Papenbrock

IV. Datenbankmanagement

Architekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller

Aufgabe 1: Kanonische Überdeckung

Willkommen. Datenbanken und Anbindung

7. XML-Datenbanksysteme und SQL/XML

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

Daten Bank. 6. Vorlesung

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Transkript:

Daten Bank 4. Vorlesung Dr. Karsten Tolle PRG2 SS 2012

Beispiel Datum Buch verliehen an (0,1) (0,n) Entleiher BuchNr Titel Autor Nummer Name BUCH (BuchNr, Titel, Autor) ENTLEIHER (Nummer, Name) VERLIEHEN_AN(BuchNr, Nummer, Datum) Dr. Karsten Tolle PRG2 SS 2012 2

Beispiel (besser!) RückgabeDatum Buch verliehen an (0,1) (0,n) Entleiher BuchNr Titel Autor EntleiherNr Nachname BUCH (BuchNr, Titel, Autor) ENTLEIHER (EntleiherNr, Name) VERLIEHEN_AN(BuchNr, EntleiherNr, RückgabeDatum) Dr. Karsten Tolle PRG2 SS 2012 3

Beispiel (besser!) RückgabeDatum Buch verliehen an (0,1) (0,n) Entleiher Nr Titel Autor Nr Nachname BUCH (Nr, Titel, Autor) ENTLEIHER (Nr, Name) VERLIEHEN_AN(BuchNr, EntleiherNr, RückgabeDatum) Dr. Karsten Tolle PRG2 SS 2012 4

SQL -Anfragen join groupby groupby having select A 1,A 2,...,A n from R 1, R 2,...,R m [where conditions] [group by clause] [having clause] [order by clause]; Dr. Karsten Tolle PRG2 SS 2012 5

Group by zum Gruppieren nach Spalten Adresse PLZ ORT STRASSE_NR 30419 Hannover Schaumburgstr. 2 30419 Hannover Quetlinburger Weg 12 37308 Schirmberg Bergstraße 1 37308 Bodenrode Hauptstraße 12 37308 Geismar Bergstraße 1 35279 Neustadt Gartenstraße 7 53577 Neustadt Gartenstraße 7 Wie viele Eintragungen gibt es pro PLZ? PLZ count(*) 30419 2 37308 3 35279 1 53577 1 select PLZ, count(*) from Adresse group by PLZ; Dr. Karsten Tolle PRG2 SS 2012 6

Group by zum Gruppieren nach Spalten PLZ ORT STRASSE_NR 30419 Hannover Schaumburgstr. 2 30419 Hannover Quetlinburger Weg 12 37308 Schirmberg Bergstraße 1 37308 Bodenrode Hauptstraße 12 37308 Geismar Bergstraße 1 35279 Neustadt Gartenstraße 7 53577 Neustadt Gartenstraße 7 PLZ ORT count(*) 30419 Hannover 2 37308 Schirmberg 1 37308 Bodenrode 1 37308 Geismar 1 35279 Neustadt 1 53577 Neustadt 1 Wie viele Eintragungen gibt es pro Kombination aus PLZ und ORT? selectplz, Ort, count(*) fromadresse groupbyplz, Ort; Dr. Karsten Tolle PRG2 SS 2012 7

Group by having zum Gruppierennach Spalten mit Bedingung an die Gruppe! PLZ ORT STRASSE_NR 30419 Hannover Schaumburgstr. 2 30419 Hannover Quetlinburger Weg 12 37308 Schirmberg Bergstraße 1 37308 Bodenrode Hauptstraße 12 37308 Geismar Bergstraße 1 35279 Neustadt Gartenstraße 7 53577 Neustadt Gartenstraße 7 Wie viele Eintragungen gibt es pro Kombination aus PLZ und ORT, beschränkt auf die Gruppen mit mindestens 2 Einträgen? selectplz, Ort, count(*) fromadresse groupbyplz, Ort havingcount(*) >= 2; PLZ ORT count(*) 30419 Hannover 2 Dr. Karsten Tolle PRG2 SS 2012 8

Datenbankmanagementsystem(DBMS) Datenbank (DB) Datenbanksystem (DBS) Dr. Karsten Tolle PRG2 SS 2012 9

Embedded SQL und C -Beispiel EXEC SQL BEGIN DECLARE SECTION; char diebar[21], dasbier[21]; float preis; EXEC SQL END DECLARE SECTION; /* holender WertefürdieBarund dasbier*/ EXEC SQL SELECT price INTO :preis FROM Verkauft WHERE bar = :diebarand bier = :dasbier; /* die Variable preis kann nun verwendet werden*/ Dr. Karsten Tolle PRG2 SS 2012 10

Embedded SQL - definiert in SQL92 Für C, COBOL, Fortran und andere Quelltext mit SQL-Befehlen Präcompiler SQL LIB STD LIB Quelltext in reiner host language Objektdatei Ausführbares Programm Compiler Linker Dr. Karsten Tolle PRG2 SS 2012 11

Anwendung 1 Elementare Zugriffsoperationen Anwendung 2 Elementare Zugriffsoperationen Anwendung 3 Elementare Zugriffsoperationen Anwendung 1 Zugriffsoperation en in Progr.- Sprache enthalten Anwendung 2 Zugriffsoperation en in Progr.- Sprache enthalten Call Level Interface Anwendung 3 Zugriffsoperation en in Progr.- Sprache enthalten Datenbank- Managementsystem (DBMS) DBS Datenbank- Managementsystem (DBMS) DBS Datenbank (DB) Datenbank (DB)

Zum Selberlesen Die CLI-Implementierung bildet die Befehlssätze verschiedener DBMS auf eine immer gleiche Funktionsbibliotek ab. für das Programm an sich ist es unwichtig, mit welcher Datenbank es arbeitet. Das CLI hat also die Funktion eines Übersetzers, der Programmaufrufe in eine Sprache übersetzt, die die Datenbank versteht und umgekehrt Daten, die von der Datenbank zurückgeliefert werden, so formatiert, dass sie vom Programm verarbeitet werden können. Dr. Karsten Tolle PRG2 SS 2012 13

Vorteile CLI zu ESQL Kein Präcompiler nötig. VorteilfürClient/Server Architektur, da unabhägig(er) von der Zieldatenbank Anwendung 1 Anwendung 2 Anwendung 3 Call Level Interface Oracle IBM DB2 Datenbank (DB) Datenbank (DB)

Programmierschnittstellen, die das CLI- Konzept umsetzen (CLI-Implementierungen), sind z.b.: Open Database Connectivity (ODBC), Java Database Connectivity (JDBC). Dr. Karsten Tolle PRG2 SS 2012 15

Zugriff aus einem Programm heraus Warum sind SQL-Statements wie: SELECT * FROM INSERT INTO <table> VALUES zu vermeiden? Besser: SELECT a1, a2, a3, FROM INSERT INTO <table> (a1, a2, a3, ) VALUES Dr. Karsten Tolle PRG2 SS 2012 16

FIRSTNME LASTNME BIRTH STREET NUMBER TOWN ZIP Jon Lucas 12.03.1969 {Zeil, Lange Str.} {12, 114} {Frankfurt, Frankfurt} {60313, 60313} Lucas Jon 24.12.1980 Gräfstr. 27 Frankfurt 60325 Dr. Karsten Tolle PRG2 SS 2012 17

1. Normalform Definition: Ein RelationenschemaR ist in 1. Normalform (1NF), wenn die Wertebereiche aller Attribute von R atomar sind. 1.NF Wertebereiche atomar Dr. Karsten Tolle PRG2 SS 2012 18

1. Normalform FIRSTNME LASTNME BIRTH STREET NUMBER TOWN ZIP Jon Lucas 12.03.1969 {Zeil, Lange Str.} {12, 114} {Frankfurt, Frankfurt} {60313, 60313} Lucas Jon 24.12.1980 Gräfstr. 27 Frankfurt 60325 FIRSTNME LASTNME BIRTH STREET NUMBER TOWN ZIP Jon Lucas 12.03.1969 Zeil 12 Frankfurt 60313 Jon Lucas 12.03.1969 Lange Str. 114 Frankfurt 60313 Lucas Jon 24.12.1980 Gräfstr. 27 Frankfurt 60325 Dr. Karsten Tolle PRG2 SS 2012 19

Diskutieren NF1 Dr. Karsten Tolle PRG2 SS 2012 20

Diskutieren NF1 PLZ ORT STRASSE_NR Telefon 30419 Hannover Schaumburgstr. 2 0511 271635 30419 Hannover Quetlinburger Weg 12 0049 (0)511 279230 37308 Bodenrode Hauptstraße 12 934790 35279 Neustadt Gartenstraße 7 kukuk Dr. Karsten Tolle PRG2 SS 2012 21

Nachteile nicht1. NF Dr. Karsten Tolle PRG2 SS 2012 22

Nachteile nicht1. NF Finden wird erschwert bis unmöglich Sortierungen werden sinnlos bis unmöglich Dr. Karsten Tolle PRG2 SS 2012 23

Schlüssel? PLZ ORT STRASSE_NR 30419 Hannover Schaumburgstr. 2 30419 Hannover Quetlinburger Weg 12 37308 Bodenrode Hauptstraße 12 35279 Neustadt Gartenstraße 7 Dr. Karsten Tolle PRG2 SS 2012 24

Schlüssel? PLZ ORT STRASSE_NR 30419 Hannover Schaumburgstr. 2 30419 Hannover Quetlinburger Weg 12 37308 Bodenrode Hauptstraße 12 37308 Geismar Bergstraße 1 35279 Neustadt Gartenstraße 7 Dr. Karsten Tolle PRG2 SS 2012 25

Schlüssel? PLZ ORT STRASSE_NR 30419 Hannover Schaumburgstr. 2 30419 Hannover Quetlinburger Weg 12 37308 Schirmberg Bergstraße 1 37308 Bodenrode Hauptstraße 12 37308 Geismar Bergstraße 1 35279 Neustadt Gartenstraße 7 53577 Neustadt Gartenstraße 7 keine Abhängigkeiten Schlüssel: PLZ, ORT, STRASSE_NR Dr. Karsten Tolle PRG2 SS 2012 26

Fahrzeuge der Firma AB HERSTELLER KENNZEICHEN ZUGEL_GES_GEW FÜHRERSCHEIN VW F-AB 123 bis 3.5t B MB F-AB 234 bis 7.5t C1 MB F-AB 235 bis 7.5t C1 MAN F-AB 236 bis 12t C MB F-AB 239 bis 12t C Abhängigkeiten? Dr. Karsten Tolle PRG2 SS 2012 27

Fahrzeuge der Firma AB HERSTELLER KENNZEICHEN ZUGEL_GES_GEW FÜHRERSCHEIN VW F-AB 123 bis 3.5t B MB F-AB 234 bis 7.5t C1 MB F-AB 235 bis 7.5t C1 MAN F-AB 236 bis 12t C MB F-AB 239 bis 12t C MB F-AB 230 bis 17t C aus ZUGEL_GES_GEW folgt hier FÜHRERSCHEIN: ZUGEL_GES_GEW FÜHRERSCHEIN umgekehrt nicht! Dr. Karsten Tolle PRG2 SS 2012 28

Funktionale Abhängigkeit (FD) Seien X und Y Teilmengen von R. Eine Relation r(r) erfüllt (satisfies) die funktionale Abhängigkeit (functionaldependency) FD X Y, wenn für je zwei (beliebige) Tupelu, v r(r) gilt: u(x) = v(x) u(y) = v(y). X Y u(x) = v(x) u(y) = v(y) Dr. Karsten Tolle PRG2 SS 2012 29

Beispiel Gegeben ist die Relation r(r): A B C D E a1 b1 c1 d1 e1 a1 b2 c2 d2 e1 a2 b1 c3 d2 e1 a2 b1 c4 d3 e1 a3 b2 c5 d1 e1 Geben Sie an, welche der folgenden Abhängigkeiten r nicht widerspricht: A D AB D C BDE E A A E A BC Dr. Karsten Tolle PRG2 SS 2012 30

Axiome von Armstrong 1. β α (Reflexivität -trivial) 2. (Erweiterungsregel) 3. (Transitivität) Dr. Karsten Tolle PRG2 SS 2012 31

FDs? Stadt Stadt Kreis, Stadt Kreis Stadt Kreis Kreis Bundesland Stadt Bundesland Stadt Kreis Bundesland Rüsselsheim Groß-Gerau Hessen Mörfelden-Walldorf Groß-Gerau Hessen Dietzenbach Offenbach Hessen Dreieich Offenbach Hessen Walldorf (Baden) Rhein-Neckar-Kreis Baden-Württemberg Dr. Karsten Tolle PRG2 SS 2012 32

Schlüssel Ein Schlüsselidentifiziert eine Entität. Er besteht aus einer Menge von Attributen, deren Werte alle Instanzen einer Entität eindeutig bestimmen. Ein Schlüssel(key) einer Relation r(r) ist eine minimale Teilmenge K von R, so dass für je zwei verschiedenetupelt 1, t 2 rgilt: t 1 (K) t 2 (K) und keine echte Teilmenge K' von K hat diese Eigenschaft. Ein Schlüssel kann als Integritätsbedingung angesehen werden. Falls K Schlüssel von r(r), t 1 r, t 1 (K) =t 2 (K), t 1 t 2 dann dürfte t 2 nicht in r(r) eingefügt werden. Dr. Karsten Tolle PRG2 SS 2012 33

Schlüssel Gegeben seien ein RelationenschemaR und eine Menge F von FDs. X R ist ein Oberschlüsselfür R X R X ist ein Schlüsselfür R X R und X minimal ( ( A X: X\A R)) Dr. Karsten Tolle PRG2 SS 2012 34

Wie finde ich alleschlüssel wenn FDs gegeben? Gegeben RelationschemaR und eine Menge F von FDs z.b. R = (A, B, C, D, E) und FD = {AB, CDAC} Dr. Karsten Tolle PRG2 SS 2012 35

Wie finde ich alleschlüssel wenn FDs gegeben? Gegeben RelationschemaR und eine Menge F von FDs z.b. R = (A, B, C, D, E) und FD = {AB, CDAC} Gibt es Attribute, die nicht auf der rechten Seite der FDs vorkommen? Falls ja, gehören diese zu jedem Schlüssel! Hier: D und E Dr. Karsten Tolle PRG2 SS 2012 36

Gegeben RelationschemaR und eine Menge F von FDs z.b. R = (A, B, C, D, E) und FD = {AB, CDAC} Gibt es Attribute, die nicht auf der rechten Seite der FDs vorkommen? Falls ja, gehören diese zu jedem Schlüssel! Hier: D und E (kann aber auch sein) ist dies bereits ein Schlüssel, sind wir fertig! Dr. Karsten Tolle PRG2 SS 2012 37

Gegeben RelationschemaR und eine Menge F von FDs z.b. R = (A, B, C, D, E) und FD = {AB, CDAC} Gibt es Attribute, die nicht auf der rechten Seite der FDs vorkommen? Falls ja, gehören diese zu jedem Schlüssel! Hier: D und E (kann aber auch sein) ist dies kein Schlüssel kombinatorisch ausprobieren. Dr. Karsten Tolle PRG2 SS 2012 38