Cognitive Interaction Technology Center of Excellence Einführung in die Datenbanken (Datenbanken I) Philipp Cimiano AG Semantische Datenbanken und Wissensverarbeitung 1 Cognitive Interaction Technology Center of Excellence Organisatorisches • Philipp Cimiano ([email protected]) • Sprechstunde: Mittwochs 15:00 – 16:00 (Anmeldung im Sekretariat bei Frau Vigouroux, [email protected]) • Übungen betreut von Herrn Oliver Beyer ([email protected]) • Übungstermine: • Mo 18-20 in C01-226 • Di 12-14 in U10-146 • Fr 12-14 in D2-136 2 Cognitive Interaction Technology Center of Excellence Literatur, Folien etc. • Das folgende Buch dient als Grundlage für die Vorlesung Silberschatz, H.F. Korth and S. Sudarshan, „Database System Concepts“, Mc-Graw-Hill, 5th edition, 2006. (10 Stück sind bei der Unibib bestellt) • Die Folien werden ca. 24 Stunden vor der Vorlesung auf folgender Webseite hochgeladen: http://philipp.cimiano.org/teaching/datenbanken_ws09 3 Cognitive Interaction Technology Center of Excellence Übungsbetrieb • Übungsblätter werden rechtzeitig zur Vorlesung online gestellt: http://philipp.cimiano.org/teaching/datenbanken_ws09 • Übungsblätter werden dann eine Woche später in den Übungsgruppen besprochen. • Bsp. • Übungsblatt 1 wird heute herausgegeben (15.10.2009) • Besprechung ab dem 23.10.2009 (Freitags), dann Montags (26.10.2009) und Dienstags (27.10.2009) 4 Cognitive Interaction Technology Center of Excellence Übungsbetrieb • 13 Übungsblätter zu je 20 Punkten (Bearbeitungszeit ca. 2h) • Für die erfolgreiche Beteiligung am Übungsbetrieb gehören folgende Leistungen dazu: • Votieren von mindestens 60% der Aufgaben am Anfang der Übungsgruppe • Vorrechnen nach Aufforderung durch den Übungsleiter (mind. 2x) 5 • Einige Übungen sind praktisch ausgerichtet und müssen mit Hilfe eines Rechners und einer installierten MySQL Version durchgeführt werden. • Details dazu werden zu einem späteren Zeitpunkt besprochen. Cognitive Interaction Technology Center of Excellence Schriftliche Klausur In der vorlesungsfreien Zeit wird eine schriftliche Klausur stattfinden. Vorschlag: erste Märzwoche (?) 6 Cognitive Interaction Technology Center of Excellence Plan (bis Weihnachten) • 15.10.2009: Übersicht und Einführung (heute) • 22.10.2009: Relationale Algebra I • 29.10.2009: Relationale Algebra II • 5.11.2009: SQL I • 12.11.2009: SQL II • 19.11.2009: Design von Datenbanken I • 26.11.2009: Design von Datenbanken II • 3.12.2009: Design Relationaler Datenbanken I • 10.12.2009: Design Relationaler Datenbanken II • 17.12.2009: Puffertermin • 24.12.2009: keine Vorlesung 7 Cognitive Interaction Technology Center of Excellence Plan (nach Weihnachten) • 7.1.2009: Design von Anwendungen • 14.1.2009: Objekt-orientierte Datenbanken • 21.1.2009: XML-basierte Datenbanken • 28.1.2009: Datenspeicherung • 4.2.2009: Puffertermin / Fragen / Klausurbesprechung 8 Cognitive Interaction Technology Center of Excellence Bedeutung von Datenbanken • Datenbanken sind ein zentraler Bestandteil von Softwaresystemen in vielen Anwendungsbereichen: • Bankenwesen: Speicherung von Kundendaten, Bankkonten, Transaktionen etc. • Finanzen: Speicherung von Transaktionen, Kursinformationen etc. zu finanziellen Instrumenten wie Aktien, Fonds, etc. • Fluggesellschaften: Verwaltung von Buchungen, Reservierungen etc. • Universitäten: Verwaltung von studentischen Stammdaten, Noten, Anmeldungen etc. • Telekommunikation: Speicherung von Daten zu Anrufen, monatliche Kosten, Guthaben von Prepaid-Angeboten etc. • Online Shops: Verwaltung von Produkten und Einkäufen • Web-Suchmaschinen: Speicherung von Wortlisten und Dokumenten zur effizienten Suche 9 Cognitive Interaction Technology Center of Excellence Datenbanken und das Web • Datenbanken sind besonders im Kontext des Webs für Endanwender wichtig geworden. 10 Cognitive Interaction Technology Center of Excellence Ziel von Datenbanken • Datenbanken haben zum Ziel, große Datenmengen zu verwalten. • Verwaltung beinhaltet hier: • Festlegung von Datenstrukturen, die die effiziente Speicherung der Daten erlauben • Mechanismen zur Manipulation von Daten (Abfrage, Modifikation, Löschen) • Sicherstellung, dass Personen nur auf solche Informationen zugreifen können, für die sie auch Berechtigung haben (Authorization) • Strategien zur Datensicherung und zur Vermeidung von Datenschwund (z.B. bei Absturz des Rechners etc.) • Das ist im Wesentlichen das Ziel von sogenannten Datenbank Management Systemen (DBMS) 11 Cognitive Interaction Technology Center of Excellence Warum Datenbanken? • Wir könnten einfach alle Daten im Dateisystem speichern und mit Hilfe spezifischer Programme darauf zugreifen. • Bevor es Datenbank-Management-Systeme gab, wurde in der Tat über spezielle Programme auf Daten über Dateien zugegriffen. 12 Cognitive Interaction Technology Center of Excellence Dateisysteme Programm 1 13 Programm 2 Programm 3 Cognitive Interaction Technology Center of Excellence Datenbanken Datenbank DBMS Anwendung 1 14 Anwendung 2 Anwendung 3 Cognitive Interaction Technology Center of Excellence Nachteile von Dateisystemen • Redundanz und Inkonsistenz: bestimmte Daten können in verschiedenen Dateien dupliziert sein. Das führt einerseits zu einem erhöhten Speicherbedarf. Die Modifikation von redundanten Daten bringt andererseits die Gefahr von Inkonsistenzen mit sich. 15 Cognitive Interaction Technology Center of Excellence Nachteile von Dateisystemen • Redundanz und Inkonsistenz • Datenabfrage gestaltet sich schwierig: Es muss für jede Anfrage ein neues Programm geschrieben werden. 16 Cognitive Interaction Technology Center of Excellence Nachteile von Dateisystemen • Redundanz und Inkonsistenz • Datenabfrage gestaltet sich schwierig • Datenisolation: Daten sind in verschiedenen Dateien mit potentiell unterschiedlicher Struktur und Format abgelegt. Das macht die Abfrage über verschiedene Dateien schwierig. 17 Cognitive Interaction Technology Center of Excellence Nachteile von Dateisystemen • Redundanz und Inkonsistenz • Datenabfrage gestaltet sich schwierig • Datenisolation • Integritätsprobleme: In manchen Situationen möchte man bestimmte Bedingungen an die Daten knüpfen, z.B. dass ein Kontostand niemals unter 25€ gehen darf. Das geht nur durch Hinzufügen von Programmcode, der diese Bedingungen überprüft. (Problem?) 18 Cognitive Interaction Technology Center of Excellence Nachteile von Dateisystemen • Redundanz und Inkonsistenz • Datenabfrage gestaltet sich schwierig • Datenisolation • Integritätsprobleme • Probleme der Atomizität: Manche zusammengesetzte Operationen sind atomar zu behandeln, d.h. sie müssen „ganz oder gar nicht“ ausgeführt werden (z.B. Überweisung von Konto A auf Konto B). 19 Cognitive Interaction Technology Center of Excellence Nachteile von Dateisystemen • Redundanz und Inkonsistenz • Datenabfrage gestaltet sich schwierig • Datenisolation • Integritätsprobleme • Probleme der Atomizität • Probleme des gleichzeitigen Zugriffs (Concurrency): In vielen Anwendungen müssen verschiedene Anwender gleichzeitig auf die Daten zugreifen und sie auch modifizieren (z.B. zwei Personen heben gleichzeitig 50€ ab von einem Konto mit Stand 500€) 20 Cognitive Interaction Technology Center of Excellence Nachteile von Dateisystemen • Redundanz und Inkonsistenz • Datenabfrage gestaltet sich schwierig • Datenisolation • Integritätsprobleme • Probleme der Atomizität • Probleme des gleichzeitigen Zugriffs (Concurrency) • Sicherheitsprobleme: nur bestimmte Anwender dürfen auf bestimmte Daten zugreifen. Das muss auch wieder auf der Programmebene sichergestellt werden. 21 Cognitive Interaction Technology Center of Excellence Datenebenen • Ein Datenbanksystem ist eine Sammlung von Daten zusammen mit einer Menge von (Software-) Programmen, die den Zugriff und Modifikation dieser Daten erlauben und regeln. • Die Komplexität eines Datenbanksystems verbirgt sich typischerweise hinter verschiedenen Ebenen: • Die physikalische Ebene • Die logische Ebene • Die Sichten-Ebene 22 Cognitive Interaction Technology Center of Excellence Die drei Ebenen der Datenabstraktion Sicht 1 Sicht 2 Sicht 3 Logische Ebene Physikalische Beschreibt, wie die Daten persistent (auf der Platte) Ebene 23 Gespeichert werden. (Datenstrukturen) Cognitive Interaction Technology Center of Excellence Die drei Ebenen der Datenabstraktion Sicht 1 Sicht 2 Logische Ebene Physikalische Ebene 24 Sicht 3 Beschreibt, welche Daten in der Datenbank abgelegt sind und welche Beziehungen zwischen diesen bestehen. Cognitive Interaction Technology Center of Excellence Die drei Ebenen der Datenabstraktion Sicht 1 Sicht 2 Logische Ebene Physikalische Ebene 25 Sicht 3 Sichten repräsentieren Teile der Datenbank auf die ein Anwender aus bestimmten Gründen zugreifen muss. Cognitive Interaction Technology Center of Excellence Schemas und Instanzen • Mit Schema bezeichnen wir die einer Datenbank zugrunde liegende Struktur. • Die Sammlung an Daten, die zu einem gegebenen Zeitpunkt in der Datenbank gespeichert sind, nennen wir eine Instanz der Datenbank. • Analogie zum Softwareengineering: • Die deklarierten Variablen in einem Programm repräsentieren „Platzhalter“ und bestimmen die Struktur der abgespeicherten Informationen („Schema“). Die konkreten Belegungen der Variablen bei einer Ausführung des Programms stellen dann eine „Instanz“ des Programms dar. 26 Cognitive Interaction Technology Center of Excellence Schemas auf verschiedenen Ebenen • Es gibt dementsprechend auch Schemas auf den verschiedenen Ebenen der Datenabstraktion: • Physikalisches Schema • Logisches Schema • Subschema (oder Schema einer Sicht) Wir sprechen von “physikalischer Daten-unabhängigkeit” wenn Änderungen im physikalischen Schema sich nicht auf eine Anwendung auswirken (kein Code muss neu geschrieben werden!). Von “logischer Datenunabhängigkeit“ reden wir wenn sich Änderungen im logischen Schema nicht auf eine Anwendung auswirken (schwer zu erreichen!) 27 Cognitive Interaction Technology Center of Excellence Datenmodelle • Ein sehr wichtiges Konzept im Bereich der Datenbanken ist das des Datenmodells. • Ein Datenmodell ist eine Sammlung von konzeptuellen Werkzeugen, um Daten, die Beziehungen zwischen den Daten, ihre Bedeutung (Semantik) sowie Konsistenzbedingungen auf den Daten zu beschreiben. • Das Datenmodell bestimmt die möglichen Strukturen (Schemas) einer Datenbank. 28 Cognitive Interaction Technology Center of Excellence Beispiel Name: Philipp Cimiano Telf.: +49-521-106-12249 Fax.: +49-521-106-656 Email: [email protected] Gruppe: AG Semantische Datenbanken und Wissensverarbeitung 29 Cognitive Interaction Technology Center of Excellence Das Relationale Datenmodell Name Telf. Philipp Cimiano +49-521-106 +49-521-106 cimiano@techfak. -12249 -656 uni-bielefeld.de … … … 30 Fax. Email Gruppe AG Sem. Datenbanken Cognitive Interaction Technology Center of Excellence Entity-Relationship (E-R) Modell Fax Name Person tätig in Telefon Arbeitsgruppe 31 Cognitive Interaction Technology Center of Excellence XML als Datenmodell Philipp Cimiano Philipp Cimiano Name= “Philipp Telf.: Fax.: Email:[email protected] Cimiano” +49-521 +49-521 ni-bielefeld.de -106-65 -106-65 +49-521-106-12249 +49-521-106-656 cimiano@techfak... Philipp Cimiano 64 6 <person> <name> Philipp Cimiano</name> <telefon> +49-521-106-12249</telefon> <fax> +49-521-106-656 </fax> <email> [email protected] </email> </person> 32 Cognitive Interaction Technology Center of Excellence Datenbanksprachen • Wenn wir über Datenbanksprachen sprechen, meinen wir im Wesentlichen zwei Typen von Sprachen: • Eine Sprache zur Spezifikation eines Schemas (der Struktur von Daten): eine DDL (Data Definition Language) • Eine Sprache zur Abfrage und Änderung von Daten: eine DML (Data Manipulation Language) 33 Cognitive Interaction Technology Center of Excellence Data-Definition Language (DDL) • Die Data-Definition-Language (DDL) hat im Wesentlichen zwei Funktionen: • Spezifikation der Struktur der Daten (Schema) • Spezifikation von Bedingungen, die jede Instanz der Datenbank erfüllen soll. • Domänenbeschränkungen: Spezifikation des gültigen Wertebereiches für ein Attribut (z.B. Integer für Kontostand) • Referentielle Integrität: ein Wert eines Attributs in einer Tabelle muss den gleichen Wert haben wie der Wert eines Attributs in einer anderen Tabelle. • Andere Beschränkungen: z.B. jeder Kunde, der einen Kredit besitzt muss ein Konto mit einem Stand von mindestens 1.000€ haben. 34 • Zugansbeschränkungen: Nur bestimmte Anwender können eine gegebene Tabelle lesen, modifizieren oder löschen (read/insert/update/delete authorization) Cognitive Interaction Technology Center of Excellence Data-Manipulation Language (DML) • Eine Data Manipulation Language (DML) soll im Wesentlichen folgende Funktionalität bereitstellen: • Abfrage von in der Datenbank abgespeicherten Informationen • Einfügen von neuer Information in die Datenbank • Löschen von Informationen • Änderung der Information in der Datenbank 35 Cognitive Interaction Technology Center of Excellence Typen von DMLs • Es gibt verschiedene Typen von DMLs: • Prozedural: Anwender spezifizieren, welche Daten gebraucht werden aber auch die Art und Weise, diese zu erhalten. • Deklarativ: Anwender spezifizieren nur, welche Daten gebraucht werden. • Der Teil einer DML, der für die Abfrage von Daten zuständig ist wird oft einfach Query Language genannt. 36 Cognitive Interaction Technology Center of Excellence Relationale Datenbanken • Relationale Datenbanken basieren auf dem relationalen Datenmodell. Sie stellen den meist verbreiteten Typ von Datenbanken dar. • Beispiele für oft verwendete relationale Datenbanksysteme: • DB2 von IBM (kommerziell) • Oracle 11g von ORACLE (kommerziell) • ADABAS von Software AG (kommerziell) • Microsoft Access, Microsoft SQL Server (kommerziell) • Monnet DB (Public License) • MySQL (Sun Microsystems) (kommerziell bzw. frei für Forschungszwecke unter GPL) 37 Cognitive Interaction Technology Center of Excellence Tabellen • Relationale Datenbanken organisieren Daten in Form von Tabellen. Customer 38 Cognitive Interaction Technology Center of Excellence Weitere Tabellen Account 39 Depositor Cognitive Interaction Technology Center of Excellence Beispiel Data-Manipulation Language (SQL) select customer_name from customer where customer_city=‘Harrison’ Ergebnis: 40 Cognitive Interaction Technology Center of Excellence Beispiel Data-Definition Language (DDL) create table account( account_number char(10) balance integer) Ergebnis: 41 Cognitive Interaction Technology Center of Excellence Entwurf von Datenbanken • Der Entwurf von Datenbanken gliedert sich typischerweise wie folgt: • Initiales Design: hier werden abstrakt die Anforderungen an die Struktur der Datenbank beschrieben (unabhängig von der Wahl eines bestimmten Datenmodells) • Konzeptuelles Design: hier wird ein konkretes Datenmodell gewählt; ein Schema wird im Hinblick auf die Modellierungswerkzeuge des Datenmodells erzeugt. • Logisches Design: das konzeptuelle Design wird implementiert. • Physikalisches Design: ein Schema für die physikalische Abspeicherung der Daten wird erstellt. 42 Cognitive Interaction Technology Center of Excellence Entwurf von Datenbanken • Der Entwurf einer Datenbank beinhaltet im Wesentlichen die Spezifikation eines Schemas. • Ein solches Schema spiegelt die Organisation, Struktur und Anforderungen des modellierten Weltausschnitts wieder. • In der initialen Phase des Entwurfs kommt es darauf an, die Organisation, Strukturen, Prozesse usw. eines Unternehmens zu verstehen sowie die Anforderungen an die Struktur der Datenbank herauszuarbeiten. • In der konzeptuellen Phase wird eine konkretes Schema erarbeitet. • Danach wird das Schema dahingehend geprüft, ob es allen Anforderungen auch gerecht wird. • Wenn wir z.B. das relationale Modell wählen, dann besteht die Konzeptuelle DesignPhase im Wesentlichen darin, die richtigen Tabellen und Attribute zu wählen. • Der Entwurf einer Datenbank sollte auch die Spezifikation funktionaler Anforderungen (functional requirements) umfassen. Man spezifiziert z.B. welche Operationen die Anwender der Datenbank ausführen werden/sollen. Das beeinflusst natürlich wiederum das gewählte Schema. 43 Cognitive Interaction Technology Center of Excellence Beispiel Bank: initiales Design • Nachdem sich ein Datenbank Designer mit den Anwendern abgesprochen hat (Interviews etc.) kommt er zu folgenden Schlüssen über die Struktur und Anforderungen an die Datenbank: • Die Struktur einer Bank untergliedert sich in Filialen, die sich an verschiedenen Orten befinden. Die Filialen werden durch einen eindeutigen Namen gekennzeichnet. • Bankkunden werden identifiziert durch eine eindeutige customer_id. Die Bank speichert Kundendaten wie z.B. Name und Adresse. • Kunden können Konten besitzen oder auch einen Kredit erhalten. • Es gibt verschiedene Arten von Konten: Giro-Konten (checkings) oder Sparkonten (savings). Jedes Konto besitzt eine eindeutige Kontonummer. Die Bank speichert immer das aktuelle Saldo sowie das Datum an dem das Konto zuletzt verwendet wurde. • Die Bank vergibt Kredite, die an eine spezifische Filiale gebunden sind. Ein Kredit wird durch eine eindeutige Nummer identifiziert. Für jeden Kredit möchte die Bank speichern, wann und wie viel von diesem Kredit abgezahlt wurde. 44 • Bankangestellte werden durch eindeutige employee_id gekennzeichnet. Die Bank speichert für jeden Angestellten persönliche Daten (Name, Adresse, Telefonnummer usw.) sowie die übergeordneten (Manager) und untergeordneten Angestellten (über employee_ids). Die Bank speichert auch das Anfangsdatum des Arbeitsverhältnisses. Cognitive Interaction Technology Center of Excellence Das E-R Model • Das E-R Model ist ein Werkzeug für den konzeptuellen Entwurf einer Datenbank. • Das E-R Modell modelliert einen Sachverhalt mit Hilfe einer Menge von Entitäten sowie Relationen zwischen diesen. • Entitäten sind real existierende “Dinge” die sich von anderen klar unterscheiden. • Entitäten werden durch eine Menge von Attributen beschrieben. Ein ausgezeichnetes Attribut liefert uns ein eindeutiges Merkmal, welches genutzt wird, um Objekte eindeutig zu kennzeichnen (und voneinander zu unterscheiden). • Eine Relation ist eine Assoziation zwischen verschiedenen Entitäten (im einfachsten Fall zwischen zwei Entitäten). 45 Cognitive Interaction Technology Center of Excellence Das E-R Modell graphish customer_name customer_street balance account_number customert_city customer_id customer depositor account Entitäten Relationen 46 Attribute Verbindungen zwischen Entitäten/Attributen/Relationen Cognitive Interaction Technology Center of Excellence Normalisierung • Das Ergebnis des Datenbankentwurfs kann aus verschiedenen Gründen suboptimal sein. • Daher gibt es Verfahren, um die Struktur der Datenbank zu “normalisieren”. Wir werden diese Verfahren im Laufe der Vorlesung kennenlernen. • Hier besprechen wir in dieser Hinsicht lediglich zwei problematische Beispiele. 47 Cognitive Interaction Technology Center of Excellence Probleme im Entwurf (Bsp. 1) Account und Depositor Table sind vereint. 48 Cognitive Interaction Technology Center of Excellence Probleme im Entwurf (Bsp. 1) Datenredundanz (zwei Einträge für Konto A-201) führt zu schlechter Performanz (zwei Änderungen pro KontoUpdate) und kann zu Inkonsistenzen führen. 49 Cognitive Interaction Technology Center of Excellence Probleme im Entwurf (Bsp. 2) Customer und Account Tabellen sind vereint. 50 Cognitive Interaction Technology Center of Excellence Probleme im Entwurf (Bsp. 2) Customer und Account Tabellen sind vereint. Problem: wir können einen Kunden nur anlegen wenn er/sie auch ein Konto hat. Was ist mit Krediten? Mit einem solchen Schema können wir einen Kunden ohne Konto nur anlegen indem wir das Feld „Account_Number“ auf null setzen. Sogenannte „null values““sind aber problematisch wie wir im Verlauf der Vorlesung sehen werden. 51 Cognitive Interaction Technology Center of Excellence Management von Transaktionen • Einige Operationen auf Daten bilden eine Einheit, z.B. eine Überweisung von Konto A nach Konto B. • Solch eine komplexe Operation wird auch Transaktion genannt. Eine Transaktion ist eine Menge von Operationen die eine Einheit bilden und gemeinsam eine Funktion realisieren. • Die Transaktionsmanagement-Komponente eines DBMSs garantiert folgende Eigenschaften von Transaktionen: • Atomizität: Die verschiedenen Operationen einer Transaktion bilden eine Einheit und können nur als Ganzes oder gar nicht ausgeführt werden. • Konsistenz: Die Anwendung einer Transaktion muss die Datenbank in einem wohldefinierten Zustand zurücklassen. • Persistenz: Das Ergebnis einer Transaktion muss gültig sein trotz eines Systemfehlers. Im Extremfall muss das Datenbanksystem ein Prozess der Fehlerbehebung starten. 52 Cognitive Interaction Technology Center of Excellence Naïve Users Application Programmers Sophisticated Users Database Administrator Application interfaces Application Programs Query Tools Administration Tools DML Queries DDL Interpreter DML Compiler and Organizer Storage Manager Query Processor Buffer Manager Query evaluation engine File manager Authorization manager Transaction manager Data Storage 53 Datenbank Indices Data Dict. Stat. Data Cognitive Interaction Technology Center of Excellence Client-Server Architectures: two-tier vs. three-tier architectures Client Client user Application user Application Application Server Server Application Server Database System 54 Database System Cognitive Interaction Technology Center of Excellence Geschichte der Datenbanken • 1950er und 1960er: Daten wurden vorwiegend auf magnetischen Bändern gespeichert. Die Dateneingabe erfolgte im Wesentlichen durch Lochkarten. Da der Hauptspeicher wesentlich kleiner war als die Kapazität der Bänder, mussten Daten sortiert sein um sequentiell abgearbeitet zu werden. • Ende 1960er und 1970er: Festplatten mit “random access” Funktionalität kommen in den Gebrauch. Codd führte 1970 als ein wichtiger Meilenstein im Bereich der Datenbanken das relationale Modell ein. • 1980er: Das System “R” wird von IBM als das erste relationale Datenbanksystem entwickelt. Es gibt initiale Versionen der kommerziellen Datenbanksysteme wie DB2 von IBM, Oracle etc. Das relationale Modell wird als ein einfach zu verwendendes Modell etabliert. • Anfang 1990er: SQL als Sprache wird eingeführt. • Ende 1990er: Das schnelle Wachstum des WWW gibt Datenbanken eine neue Bedeutung. Datenbanksysteme müssen nun Web Interfaces unterstützen. • Anfang 2000er: XML etabliert sich als Datenmodell für semistrukturierte Dokumente. 55