Datenbanken für Mathematiker Dozent: Dr. Brigitte Mathiak ([email protected]) Übungsbetreuung: Lisa Schehlmann 1 Warum sollten Sie sich für Datenbanken interessieren? (1 min; Jeder für sich mit Zettel und Stift) 2 Warum sollten Sie sich für Datenbanken interessieren? Daten sind wertvoll 3 Wertvolle Daten Addressdaten Personaldaten Kundendaten (einer Bank…) Umfragedaten Warenbestandsdaten Transaktionsdaten (Telefonanrufe, Einkäufe,…) Konstruktionsdaten (Auto, Motor, Kugellager,…) Geoinformationsdaten (Straßen, Leitungen, Flüsse, Immissionen,…) …. 4 Kosten / Wert 100 Daten Google (Börsenwert 174,8 Mrd $) Google kauft YouTube für 1.6 Mrd $ (2006) für Software (?), die Google selbst hat 10 Software Bekannte Suchalgorithmen + Data Management 1 Hardware 100,000 Rechner a 500 Euro 5 Warum sollten Sie sich für Datenbanken interessieren? Daten sind wertvoll In fast jeder größeren Applikation steckt heutzutage eine Datenbank 6 7 Berühmte Systeme Datenbanksysteme: Oracle DB, IBM DB2, Mysql, Postgres, Microsoft SQL Server, Microsoft Access, etc. Suchsysteme: Google, Yahoo Berühmte/interessante Anwendungen: SAP R3 Ihr Bankkonto Ihre Haftpflichtversicherung The GDB Human Genome Database wer-kennt-wen Flickr, YouTube Amazon … 8 Warum sollten Sie sich für Datenbanken interessieren? Daten sind wertvoll In fast jeder größeren Applikation steckt heutzutage eine Datenbank Datenmodellierung ist ein wichtiges Thema 9 Daten – Information – Wissen Wissen: Vorlesung „Datenbanken für Mathematik“ am 5. Oktober 2011, Block 3 in C10 8.02 Informationen: „5. Oktober 2011, Block 3“, …. Daten: „2011100503C108.02“,… Kein Wissen ohne Daten Übergang vom Daten- zum Wissensmanagement ist nahtlos 10 Wo benötigt man Methoden des Data Engineering? Desktop Einloggen (single sign-on) Textverarbeitung Filesystem Addressen Handy, Smartcards, Auto Nein, aber oft schmerzlich vermisst! → Neuere Entwickungen: Eingebettete Datenbanken (z.B. für Smartcards) Banken Telekom … Besser wäre die Frage: Wo benötigt man keine Methoden des Data Engineering?! 11 Data Engineering Modellierung Prozesse Algorithmen Data Engineering & Management Logik Statistik Systembau 12 Warum sollten Sie sich für Datenbanken interessieren? Daten sind wichtig! In fast jeder größeren Applikation steckt heutzutage eine Datenbank Datenmodellierung ist ein wichtiges Thema Bei vielen Arbeitgebern und vielen Arbeitsfeldern ein Muss 13 Berater (mw) Naturwissenschaftler (mw), Mathematiker (m/w), … Sie sind eine kommunikationsstarke Persönlichkeit mit fundiertem IT-Know-How und Erfahrung im Infrastruktur Projektumfeld. Wünschenswert sind entsprechende Erfahrungen in den folgenden Bereichen:Schnittstellen- u. Systemintegrationslösungen Programmiersprachen: Java/J2EE, C/C++, VB, C# Skriptsprachen: UNIX-Shells, Perl, Python,Tcl/Tk RDBMS: MS-SQL Server, Sybase, Oracle … 14 Hochschulabsolvent(inn) mit Schwerpunkt Mathematik, Physik, Geographie, Informatik oder Betriebswirtschaft Ihr Profil: Naturwissenschaftliches bzw. technisches Studium, beispielsweise mit Schwerpunkt Mathematik, Physik, Geographie oder Informatik, oder Betriebswirtschaftliches Studium Technische Affinität sowie sehr gute Kenntnisse des MS Office Paketes Idealerweise erste Erfahrung mit Datenbanken (SQL-Server) und/oder Programmierung (v.a. C#) Sehr gute analytische Fähigkeiten … 15 Kernfragen Wie verwaltet man Daten? Intuitiv? Konsistent? Effizient? Sicher? Nebenläufig? → Data & Knowledge Engineering 16 Ziele der Vorlesung Analytisches Verständnis des Data Engineering Kenntnisse verschiedener Datenbankparadigmen Erweiterte Kenntnisse der Standard-Datenbankanfragesprache SQL Didaktische Methoden Vorlesung (v.a. sinnvoll durch mitdenken und fragen!) Papierübung: analytisches Verständnis Praxisübung: Umgang mit praktischen Problemen Arbeit in mehreren Teams Übernahme von Verantwortung für die Arbeit anderer 17 Aufgaben Theoretische Aufgaben Orientiert am Vorlesungsstoff Praktische Aufgaben Erstellen und Benutzen einer DB Umgang mit einfachen, aber realistischen Datenmengen Integration mit Anwendungen 18 Wann und wo? Mittwochs Vorlesung im Block 3 in C10 8.02 14-tägig Vorlesung auch schon im Block 2 19.10, 2.11, 16.11, 30.11, 14.12, 11.1, 25.1 Labore direkt im Anschluss in den Blöcken 4 und 5 in D15 202 Sie sind aufgeteilt in insgesamt 4 Gruppen, also für Sie jeweils ein Übungsblock alle 14 Tage Es gibt 6 Aufgabenblätter, diese sind schriftlich zu bearbeiten Sie müssen alle abgeben und davon 5 erfolgreich 19 Folgendes Buch liegt der Vorlesung zugrunde: Alfons Kemper und Andre Eickler Oldenbourg Verlag, München, 2009 7. aktualisierte und erweiterte Auflage Die Folien wurden weitgehend von den Autoren übernommen. (Siehe auch http://www-db.in.tum.de/research/publications/books/DBMSeinf) Weitere Folien und Ideen stammen von Sergej Sikov, York Sure-Vetter, Donald Kossmann und dem Internet (insbesondere Wikipedia) 20 Literatur: A. Kemper , A. Eickler Datenbanksysteme – Eine Einführung. Oldenbourg Verlag, 2009. 7. Auflage. A. Silberschatz, H. F. Korth und S. Sudarshan Database System Concepts, 4. Auflage, McGraw-Hill Book Co., 2002. R. Elmasri, S.B. Navathe: Fundamentals of Database Systems, Benjamin Cummings, Redwood City, Ca, USA, 2. Auflage, 1994 R. Ramakrishnan, J. Gehrke: Database Management Systems, 3. Auflage, 2003. G. Vossen : Datenmodelle, Datenbanksprachen und DatenbankManagement-Systeme. Oldenbourg, 2001. 21 D. Maier: The Theory of Relational Databases. Computer Science Press. 1983. S. M. Lang, P.C. Lockemann: Datenbankeinsatz. Springer Verlage, 1995. C. Batini, S. Ceri, S.B. Navathe: Conceptual Database Design, Benjamin Cummings, Redwood City, Ca, USA, 1992. C. J. Date: An Introduction to Database Systems. McGraw-Hill, 8. Aufl., 2003. J.D. Ullmann, J. Widom: A First Course in Database Systems, McGraw Hill, 2. Auflage, 2001. 22 A. Kemper, G. Moerkotte: Object-Oriented Database Management: Applications in Engineering and Computer Science, Prentice Hall, 1994 E. Rahm: Mehrrechner-Datenbanksyseme. Addison-Wesley, 1994. P. Dadam: Verteilte Datenbanken und Client/Server Systeme. Springer Verlag, 1996 G. Weikum, G. Vossen: Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control. Morgan Kaufmann, 2001. T. Härder, E. Rahm: Datenbanksysteme – Konzepte und Techniken der Implementierung, 2001. 23 Die Lernampel Sehr prüfungsrelevant! Empfehlenswert Zusatzinformation 24 Jetzt geht’s los! 25 Handhabung der Daten (historisch) Schwerpunkt der Vorlesung Postrelationale Datenmodelle 90er Relationale Datenmodelle 80er Satzorientierte Datenmodelle (Codasyl) 70er Dateisysteme 60er Bänder 50er 26 Motivation für den Einsatz eines Datenbank-Verwaltungssystems Typische Probleme: • Redundanz und Inkonsistenz (Frau Meier wird Frau MeierRoss) • Beschränkte Zugriffsmöglichkeiten (alle 100 Eigenschaften von Frau Meier lesen, um ihre Telefonnummer zu sehen?) • Probleme beim Mehrbenutzerbetrieb (zwei Überweisungen gleichzeitig?) • Sicherheitsprobleme (jeder Mitarbeiter darf jedes Gehalt sehen?) • hohe Entwicklungskosten für Anwendungsprogramme (k * 100 PersJahre) • ......... ? 27 Warum Datenbanken als separates Stück Software? Diese Probleme treten in sehr vielen Applikationen auf Sie sind sehr komplex, wenn man sie sauber lösen will Eine spezialisierte Software nimmt dem Programmierer die Arbeit ab und vermeidet so Fehler und Aufwand Nach fast 30 Jahren Entwicklung sind relationale Datenbanken das wohl ausgereifteste Stück Software das es weltweit gibt Trotzdem gibt es aktive Forschung und Entwicklung auf dem Gebiet um noch etwas schneller, noch besser auf neue Datenformen und Schnittstellen angepasst zu sein 28 Datenbank vs DBMS Anwendung DBMS (DB ManagementSystem) Ordner A Datenbank Ordner B File 1 File 2 29 Gegenstand der Vorlesung Wie kann ich DBMS einsetzen? Data Engineering Ordner A Ordner B File 1 File 2 30 Gegenstand der Vorlesung (zum kleineren Teil) Ordner A Ordner B File 1 File 2 Ordner A Ordner A Ordner B File 1 File 2 Ordner B File 1 File 2 31 Die Abstraktionsebenen des Datenbankentwurfs Konzeptuelle Ebene Logische Ebene Physische Ebene Wie sieht die Welt aus ? Welche Strukturen werden von der Anwendung manipuliert? Wie wird gespeichert ? 32 Die Abstraktionsebenen des Datenbankentwurfs Konzeptuelle Ebene Logische Ebene Physische Ebene Studenten sind Personen mit Matrikel-Nr 1 Tabelle für Uni-Angehörige und 1 Tabelle für Studenten, mit Verbindungen Element mit Matrikel-Nr 1234567 wird abgelegt auf Block 19 33 Datenmodellierung Ausschnitt der realen Welt Intellektuelle Modellierung Konzeptuelles Schema (UML-Modell) Relationales Schema Objektorientiertes Schema Semi-automatische Transformation Netzwerk Schema 34 Die Abstraktionsebenen eines DBMS Sicht 1 (Verwaltung) ... Sicht k (Bibliothek) Logische Ebene Datenunabhängigkeit: Physische Ebene • physische Unabhängigkeit • logische Datenunabhängigkeit 35 Modellierung einer Beispielanwendung reale Welt: Hochschule Studenten, Prüfungen, Professoren... Konzeptuelle Modellierung Studenten * hören * Professoren Vorlesung 36 Logische Datenmodelle Netzwerkmodell Hierarchisches Datenmodell Relationales Datenmodell Objektorientiertes Datenmodell Deduktives Datenmodell 37 Das relationale Datenmodell Studenten MatrNr Name 26120 Fichte 25403 Jonas ... ... hören MatrNr VorlNr 25403 5022 26120 5001 ... ... Vorlesungen Nr Titel 5001 Grundzüge 5022 Glaube und Wissen ... ... Select Name From Studenten, hören, Vorlesungen Where Studenten.MatrNr = hören.MatrNr and hören.VorlNr = Vorlesungen.Nr and Vorlesungen.Titel = `Grundzüge´; update set where Vorlesungen Titel = `Grundzüge der Logik´ Nr = 5001; 38 DB-Anfragen: Flexibilität Eine Bedingung spezifiziert die entsprechende Teilmenge der Treffer (Tupeln, Dokumente, …) in der Datenbank. Boolsche Operationen (AND; OR; NOT) werden verwendet, um Bedingungen / Treffermengen zu kombinieren. Wieviele unterschiedliche Teilmengen der Datensammlung lassen sich mit 3 unterschiedlichen Bedingungen spezifizieren? Kombinationsmöglichkeiten für 8 Teilmengen: a) 7 b) 8 c) 16 d) 256 2 1 5 4 7 3 (0 0 0 0 0 0 0 0) bis (1 1 1 1 1 1 1 1) 6 8 28 = 256 39