Datenbanken (WS 2015/2016) Klaus Berberich ([email protected]) Wolfgang Braun ([email protected]) 0. Organisatorisches Dozenten § Klaus Berberich ([email protected]) § Sprechstunde nach Vereinbarung per E-Mail § Wolfgang Braun ([email protected]) § 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 § … Datenbanken / Kapitel 1: Einführung 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) § … Datenbanken / Kapitel 1: Einführung 16 ANSI 3-Ebenen Modell / Abstraktionsebenen § American National Standards Institute (ANSI) 3-Ebenen Modell unterscheidet drei Abstraktionsebenen in einem Datenbanksystem Sicht 1 … Sicht n § Physische Ebene (intern): Wie sind die Daten gespeichert? Logische Ebene § Logische Ebene (konzeptuell): Welche Daten sind gespeichert? § Sichten (extern): Welche Daten sieht ein Benutzer? Physische Ebene Quelle: Kemper und Eickler [1] Datenbanken / Kapitel 1: Einführung 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) Datenbanken / Kapitel 1: Einführung 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 Datenbanken / Kapitel 1: Einführung 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 Datenbanken / Kapitel 1: Einführung 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 § … Datenbanken / Kapitel 1: Einführung 21 Anfragesprachen § Relationale Datenbanksysteme unterstützen SQL als standardisierte Anfragesprache, mit denen Sie oder Ihr Bekannter Anfragen formulieren kann, z.B.: 1 2 3 select KundenNr , Vorname , Name from Kunden 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) Datenbanken / Kapitel 1: Einführung 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 Datenbanken / Kapitel 1: Einführung 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 Datenbanken / Kapitel 1: Einführung 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 Datenbanken / Kapitel 1: Einführung 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 Datenbanken / Kapitel 1: Einführung 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 Datenbanken / Kapitel 1: Einführung 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 Datenbanken / Kapitel 1: Einführung 28 Literatur [1] A. Kemper und A. Eickler: Datenbanksysteme – Eine Einführung, De Gruyter Oldenbourg, 2013 (Kapitel 1) Datenbanken / Kapitel 1: Einführung 29