Relationale Datenbanken Kursziele • DB Grundlagen • Daten-Modellierung • Relationales Modell und DB • => Praxis: • Mit SQL als Anfragesprache • Mit MySQL als DB RDB 1 - 1 Version 3.5 Kursinhalt (Tage) 1. Einleitung / Entity-Relationship Modell 2. Relationales Modell / SQL Teil 1 3. SQL Teil 2 4. Normalformen / Transaktionen 5. DB-Zugriff mit Java: JDBC 6. Performance / Zugriffsberechtigung / Views 7. DB-Testdaten / SQL-Optimierungen / Blick in die Zukunft (NoSQL) 8. Prüfung RDB 1 - 2 Version 3.5 Tag 1 Inhaltsverzeichnis • Einleitung / Literaturverzeichnis • Die Datenbank-Thematik • Das relationale Datenmodell • Das Entity-Relationship Modell • Übungen RDB 1 - 3 Version 3.5 Literaturverzeichnis • • • • • • • Taschenbuch Datenbanken / Thomas Kudraß / Hanser 2015 JDBC™ API Tutorial and Reference / M. Fisher e.a. / Prentice Hall 2003 Database Administration: The Complete Guide to Practices and Procedures / C. S. Mullins / Addison Wesley Professional 2002 SQL Tuning / D. Tow / O'Reilly 2004 High Performance MySQL / B. Schartz e.a. / O'Reilly 2012 Next Generation Databases / G. Harrison / APRES IOUG 2015 www.safaribooksonline.com • Die grössten US und deutschen Verlage machen mit • > 30,000 IT-Bücher und Videos online (auf deutsch und englisch) • Privates Starter-Kit für $20 / Monat RDB 1 - 4 Version 3.5 Die Datenbank-Thematik Wieso eine Datenbank? • Konsistenz (Redundanz...) • Integrität (Datenverlust...) • Mehrbenutzer-Betrieb • Sicherheit (unkontrollierte Zugriffe...) RDB 1 - 5 Version 3.5 Die Datenbank-Thematik Datenabstraktion / Ebenen Sicht Sicht11 Sicht Sicht22 Sicht Sicht33 Sicht Sicht44 Externe Struktur Logische LogischeEbene Ebene Konzept. Struktur Physikalische PhysikalischeEbene Ebene Interne Struktur Quelle: Kudraß RDB 1 - 6 Version 3.5 Die Datenbank-Thematik Schema und Ausprägung DDL DDL Data Definition Language -> DB Schema -> Datenstruktur Data Control Language -> Datenzugriffsrechte Quelle: Kudraß DML DML Datenbank Data Manipulation Language -> Daten Instanzen DCL DCL RDB 1 - 7 Version 3.5 Die Datenbank-Thematik Datenbase Management System Architektur Benutzer Applikation Programmierer Anfrage DB Admin DB Framework DB Admin Werkzeuge DML Compiler DDL Compiler DB Manager Schema Verwaltung Mehrbenutzersynchr. Fehlerbehandlung Dateiverwaltung Logs Quelle: Kemper Indexes Daten Data Dictionary RDB 1 - 8 Version 3.5 Die Datenbank-Thematik Neue Anwendungsfelder Geo DB Multimedia DB Data-Warehouse (DWH) Business Business Intelligence Intelligence Object-Oriented Object-Oriented DB DB XML XML Datenbanken Datenbanken NoSQL NoSQL DB DB Quelle: Kudraß, Wikipedia DataMining Datenbanken Cloud Cloud Computing Computing Big BigData Data Open OpenData Data RDB 1 - 9 Version 3.5 Die Datenbank-Thematik Datenmodelle Ausschnitt Ausschnitt aus der aus derrealen realenWelt Welt Konzeptionelles KonzeptionellesSchema Schema Entity-Relationship Entity-RelationshipModell Modell Relationales Relationales Modell Modell Hierarchisches Modell Objekt-Orientiertes Modell RDB 1 - 10 Version 3.5 Das relationale Datenmodell Entity-Relationship Modell / Grundprinzip Quelle: Wikipedia RDB 1 - 11 Version 3.5 Das relationale Datenmodell Beispiel RDB 1 - 12 Version 3.5 Das relationale Datenmodell Pro und Kontra Pro • • • • Mathematisch basiert Weit verbreitet Lange Erfahrung Guter programmatischer Support Kontra • Künstliche Datensegmentierung • Rekursion und Vererbung nicht direkt modellierbar Produkte (Achtung: alle sind verschieden): Oracle, MySQL, PostgreSQL, Ingres, MS SQL Server, Sybase, DB2, (MS Access?), ... Applikationen: zahlreiche... RDB 1 - 13 Version 3.5 Das Entity-Relationship Modell (ERM) Überblick Als Rechtecke dargestellt Entity Als Raute dargestellt Ziel: Teil der realen Welt zu modellieren Grad der Beziehung: Wieviele Entitäten involviert: 2..3 in der Regel Generalisierung "IsA" Aggregation "IsPartOf" Beschreibt das Was und nicht das Wie Beziehung (Relationship) ER-Modell Spezielle Semantik Abstraktion Attribute Instanzen vs. Typen 0:n 1:n Kardinalität n:m Quelle: Kudraß RDB 1 - 14 Version 3.5 Das ER-Modell Entity- und Beziehungstypen Autor Entitytyp Quelle: Kudraß Schreibt Beziehungstyp Buch Entitytyp RDB 1 - 15 Version 3.5 Das ER-Modell Entities- und Beziehungsinstanzen Thomas Kudraß schreibt Taschenbuch Datenbanken Charles M. Schulz schreibt Being a Dog is a Full-Time Job Monika Saxer schreibt Bierwandern Schweiz Entities Quelle: Kudraß Beziehungen Entities RDB 1 - 16 Version 3.5 Das ER-Modell Attribute PersNr Name ISBN Autor Schreibt Buch Titel Vorname ? Quelle: Kudraß RDB 1 - 17 Version 3.5 Das ER-Modell Kardinalität (1) Autor 1 N min:max Schreibt 1 M min:max Buch Typische Fragen: • Gibt es Autoren, die kein Buch geschrieben haben? • Gibt es Bücher, die von keinen Autor geschrieben werden? • Gibt es Autoren, die mehr als ein Buch schrieben? • Gibt es Bücher, die durch mehr als einen Autor geschrieben sind? RDB 1 - 18 Version 3.5 Das ER-Modell Kardinalität (2) Autor 1 1 Schreibt Buch 1 Autor schreibt 1 Buch Autor 1 N Schreibt Buch 1 Autor schreibt 0 bis N Bücher Autor N Schreibt 1 Buch 0 bis N Autoren schreiben 1 Buch Autor N Schreibt M 0 bis N Autoren schreiben 0 bis M Bücher Buch RDB 1 - 19 Version 3.5 Das ER-Modell Kardinalität (3) Notation Quelle: Wikipedia RDB 1 - 20 Version 3.5 Das ER-Modell Umgang mit der Rekursion Arbeitet in (1:1) Abteilung Mitarbeiter Gehört zu (0:N) Beispiel Der Mitarbeiter "Düschmoll" arbeitet in der Abteilung "Software-Engineering", die selber zur Abteilung "Entwicklung" gehört. Quelle: Kudraß RDB 1 - 21 Version 3.5 Das ER-Modell Umgang mit der Generalisierung Geschäftspartner Kunde Lieferant Typischer Fall eines "Is-A"-Beziehungstypes => Zum Beispiel: Beide Kunde und Lieferant sind Geschäftspartner Quelle: Kudraß RDB 1 - 22 Version 3.5 Das ER-Modell Vorgehen für die Diagrammentwicklung Wichtig: • Iterativ vorgehen • Modell mit Stakeholders abstimmen (1) Die Entitiestypen (Substantive suchen) und deren Attribute identifizieren (2) Nach Verben suchen und damit die Beziehungstypen identifizieren (3) Die Entitiestypen und Beziehungstypen verknüpfen (4) Die Kardinalität für jedes Paar "Entitätstypen / Beziehungstyp" spezifizieren Quelle: Kudraß RDB 1 - 23 Version 3.5 Übung 1 Software-Firma ER-Modellierung • Die Software Firma "Napadnom" zählt 30 Angestellte. Diese arbeiten in diversen Projekten. Die Projekte brauchen verschiedene Grundsoftware und Hardware, um realisiert zu werden. • Gewünscht ist ein Informationssystem, das der Firma erlaubt, Projektressourcen zu managen. • • Tipp 1: Lösen Sie diese Übung in Zweiergruppen Tipp 2: Auf einem Blatt Papier und mit Bleistift... RDB 1 - 24 Version 3.5 Übung 2 Software-Werkzeuge schon installiert? • MySQL Server Die Server-Applikation (MySQL spezifisch), Zugriff via IP-Socket. Dabei ist auch ein Kommando-Interpreter • MySQL Workbench Client-Software (MySQL spezifisch), um DB mit SQL zuzugreifen, DB zu verwalten (kreieren, ändern, löschen) und zu designen (graphisches Schema-Editor) Der Installationsprozess ist hier beschrieben: http://www.sws.bfh.ch/maitre/SD-RDB/MysqlWindowsInstall.html RDB 1 - 25 Version 3.5 Übung 3 ER-Modell Ihrer CD-Sammlung • Erstellen Sie das ER-Modell Ihrer CD-Sammlung Zuerst nur Entitäten, Relationen und Kardinalität modellieren. Dann Attribute addieren. RDB 1 - 26 Version 3.5