Datenbanken (WS 2015/2016) Klaus Berberich (klaus.berberich@htwsaar.de) Wolfgang Braun (wolfgang.braun@htwsaar.de)
0. Organisatorisches
Dozenten Klaus Berberich (klaus.berberich@htwsaar.de) Sprechstunde nach Vereinbarung per E-Mail Wolfgang Braun (wolfgang.braun@htwsaar.de) Sprechstunde nach Vereinbarung per E-Mail Datenbanken / Kapitel 0: Organisatorisches 4
Vorlesung Zwei Vorlesungstermine Montag, 14:00 15:30 (4. Stunde), Raum 4301 Dienstag, 8:15 9:45 (1. Stunde), Raum 5104 (entfällt, wenn eine Übung stattfindet) Datenbanken / Kapitel 0: Organisatorisches 5
Übung Zwei Übungstermine Dienstag, 8:15 9:45 (1. Stunde), Raum 7110 Freitag, 11:45 13:30 (3. Stunde), Raum 7110 Bitte entscheiden Sie Sich für einen der beiden Termine und tragen Sie Sich in die ausgeteilten Listen ein Übungsblatt 1 (heute ausgegeben) wird in den Übungen nächste Woche am 27.10 / 30.10 besprochen Datenbanken / Kapitel 0: Organisatorisches 6
Prüfung Mündliche Prüfung am Ende des Semesters Termin wird rechtzeitig in der Vorlesung bekannt gegeben Datenbanken / Kapitel 0: Organisatorisches 7
Webseite Webseite zur Vorlesung: Ankündigungen Folien und Übungsblätter zum Download Sonstige Ressourcen (z.b. Software und Daten) nur aus dem Netz der HTW oder per VPN zu erreichen http://www1.htwsaar.de/~berberich/teaching/ws15/dbs/ Datenbanken / Kapitel 0: Organisatorisches 8
Literatur zur Vorlesung A. Kemper und A. Eickler: Datenbanksysteme Eine Einführung, De Gruyter Oldenbourg, 2013 G. Saake, K.-U. Sattler und A. Heuer: Datenbanken - Konzepte und Sprachen, mitp Professional, 2013 Datenbanken / Kapitel 0: Organisatorisches 9
Literatur zur Vorlesung E. Schicker: Datenbanken und SQL, Springer-Vieweg, 2013 [Online Ausgabe] H. Garcia-Molina, J. D. Ullman und J. Widom: Database Systems The Complete Book, Pearson, 2013 Datenbanken / Kapitel 0: Organisatorisches 10
Software und Daten Praktische Übungen zur Vorlesung mit MS SQL Server 2014 im Softwarelabor SQLite (verfügbar für Windows, Mac, Linux) für zu Hause Datenbanken / Kapitel 0: Organisatorisches 11
Inhalt 1. Einführung 2. Datenbankentwurf 3. Relationales Modell & Algebra 4. SQL Structured Query Language 5. Relationale Entwurfstheorie 6. Datenintegrität Datenbanken / Kapitel 0: Organisatorisches 12
Inhalt 7. Transaktionsverwaltung 8. Programmieren mit SQL 9. Datenbankschnittstellen 10. Sicherheitsaspekte und Datenbanktuning 11. NoSQL Datenbanken / Kapitel 0: Organisatorisches 13
1. Einführung
Relationale Datenbanksysteme Relationale Datenbanksysteme (RDBMS) sind die heute vorherrschende Art von Datenbanksystemen basieren auf mehr als 40 Jahren Forschung & Entwicklung gibt es in Form kommerzieller und/oder offener Systeme Oracle Database IBM DB2 Microsoft SQL Server PostgreSQL MySQL SQLite 15
Relationale Datenbanksysteme Relationale Datenbanksysteme (RDBMS) bilden das Rückgrat verschiedenster Anwendungen, z.b.: Enterprise Resource Planning Systeme (z.b. SAP) Content Management Systeme (z.b. Typo3, WordPress) Websites und -shops (z.b. IMDb und ebay) Wikis (z.b. MySQL hinter MediaWiki) Apps (z.b. SQLite in ios SDK) 16
ANSI 3-Ebenen Modell / Abstraktionsebenen American National Standards Institute (ANSI) 3-Ebenen Modell unterscheidet drei Abstraktionsebenen in einem Datenbanksystem Physische Ebene (intern): Wie sind die Daten gespeichert? Sicht 1 Sicht n Logische Ebene (konzeptuell): Welche Daten sind gespeichert? Logische Ebene Sichten (extern): Welche Daten sieht ein Benutzer? Physische Ebene Quelle: Kemper und Eickler [1] 17
Stellen Sie Sich vor Ein Bekannter betreibt einen Handel mit Werkzeugen zur Holzbearbeitung; bisher hat er alles auf Papier gemacht, möchte nun jedoch einen Webshop eröffnen Wie unterstützen Sie Ihn dabei? Kenntnisse aus Programmiervorlesung: Objektorientierte Modellierung (z.b. Bestellung) Schreiben und Lesen von Objekten aus dem Dateisystem Datenstrukturen (Bäume, Hashing) 18
Redundanz Sie speichern die Bestellungsobjekte mit allen benötigten Informationen (z.b. Name und Anschrift des Kunden, Details zu den bestellten Artikeln) in einer Datei ab Der Artikel Holzhammer ist sehr beliebt und findet sich in 616 Bestellungen; da es nun auch ein kleineres Modell gibt, muss seine Beschreibung in Holzhammer (groß) geändert werden Sie ändern die Beschreibung in allen 616 Bestellungen 19
Datenbankentwurf Es gibt etablierte Ansätze zur konzeptuellen Modellierung der Daten einer Anwendung Kapitel 2: Datenbankentwurf Relationale Datenbanksysteme speichern diese Daten in sogenannten Relationen (Tabellen); man kann erreichen, dass dies ohne Redundanzen geschieht Kapitel 3: Relationales Modell & Algebra Kapitel 5: Relationale Entwurfstheorie 20
Welche Kunden kommen aus Mannheim? Nach einiger Zeit möchte Ihr Bekannter wissen, welche seiner Kunden aus Mannheim kommen Sie schreiben ein Java-Programm Ein paar Tage später interessiert ihn, wo Kunden wohnen, die seine Schnitzrohlinge kaufen Sie schreiben noch ein Java-Programm 21
Anfragesprachen Relationale Datenbanksysteme unterstützen SQL als standardisierte Anfragesprache, mit denen Sie oder Ihr Bekannter Anfragen formulieren kann, z.b.: 1 select KundenNr, Vorname, Name 2 from Kunden 3 where Wohnort = Mannheim Das Datenbanksystem entscheidet selbst, wie die Anfragen auf den gespeicherten Daten ausgewertet werden soll; Sie müssen keinen Code schreiben! Kapitel 4: Structured Query Language (SQL) 22
Datenintegrität und Transaktionen Der Strom ist ausgefallen, während viele Kunden im Webshop ihres Bekannten am Bestellen waren. Nach dem Neustart gibt es viele Bestellungen, die unvollständig sind oder gar keine Artikel enthalten Relationale Datenbanksysteme bieten Mechanismen, um zu garantieren, dass die Daten in einem konsistenten Zustand sind und bleiben Kapitel 6: Datenintegrität Kapitel 7: Transaktionsverwaltung 23
Standardisierte Schnittstellen Ein Lieferant möchte Daten direkt in die Anwendung Ihres Bekannten einspielen; sein Entwickler kann nur X++ Sie dokumentieren das verwendete Dateiformat sorgfältig Relationale Datenbanksysteme bieten standardisierte Schnittstellen (z.b. ODBC) für gängige Programmiersprachen Kapitel 9: Datenbankschnittstellen 24
Sicherheitsaspekte Ein Mitarbeiter soll die Beschreibungen von Artikeln überarbeiten; auf Kunden darf er keinen Zugriff haben Sie übertragen die Beschreibungen von Artikeln in eine Excel-Datei und pflegen die geänderten Daten später ein Relationale Datenbanksysteme erlauben eine genaue Kontrolle von Zugriffsmöglichkeiten auf Ebene von Benutzern und Rollen Kapitel 10: Sicherheitsaspekte und Datenbanktuning 25
Datenbanktuning Ihr Bekannter greift häufig auf Artikel anhand ihrer Beschreibung zu; das muss jedoch schneller gehen! Sie halten eine passende Datenstruktur (z.b. TreeMap) im Hauptspeicher, um diese Zugriffe zu beschleunigen Relationale Datenbanksysteme bieten verschiedene Arten von Indexstrukturen, halten diese mit den Daten aktuell und entscheiden, wann es Sinn macht sie zu verwenden Kapitel 10: Sicherheitsaspekte und Datenbanktuning 26
Gibt es nur relationale Datenbanksysteme? Nein, es gab Vorläufer (z.b. hierarchische Datenbanken und Netzwerkdatenbanken); diese sind jedoch nur noch von historischem Interesse Nein, Vielzahl von Alternativen in den letzten 10 Jahren verteilte Verarbeitung großer Datenmengen (z.b. MapReduce, Spark) alternative Modellierung der Daten (z.b. als Graph oder Dokumente) Kapitel 11: NoSQL 27
Zusammenfassung Relationale Datenbanksysteme sind heute vorherrschende Form von Datenbanksystemen bilden das Rückgrat vielfältiger Anwendungen Drei Abstraktionsebenen in einem Datenbanksystem physische Ebene logische Ebene Sichten 28
Literatur [1] A. Kemper und A. Eickler: Datenbanksysteme Eine Einführung, De Gruyter Oldenbourg, 2013 (Kapitel 1) 29