fbi h_da Datenbanken Belegnummer NFA008 WS 2010/11 (Cnam) Materialien zur Vorlesung Inge Schestag Hochschule Darmstadt Fachbereich Informatik Schestag Datenbanken (Cnam) Organisatorisches - 1 fbi h_da Motivation Schwerpunkte der Grundvorlesungen des Anfangszyklus im Bereich Anwendungsentwicklung: • Einführung in die objektorientierte Programmiersprache Java (oder C++) → Im Kontext dieser Programmiersprache(n) wurden (bisher) ausschließlich objektorientierte Konzepte besprochen und angewandt. • Objektorientierte Analyse und –Design (OOA / OOD) mit UML (= Unified Modeling Language) als Beschreibungssprache für objektorientierte Systeme werden im Rahmen der Lehrveranstaltungen „Systementwicklung“ und „Softwaretechnik“ eingeführt. → Konzepte zu dauerhaft gespeicherten Daten (= persistente Daten → Persistenzschicht) beinhalten bisher nur die selbst organisierte Verwaltung von Daten in Dateien (Textdateien, Binärdateien) – Nachteile? Datenbanken • nutzen die Dienste von zugrunde liegenden Datenbankservern (Datenbank-Managementsystemen = DBMS), um das Datenmanagement effizient, performant und sicher zu unterstützen. Schestag Datenbanken (Cnam) Organisatorisches - 2 fbi h_da Ziele der Lehrveranstaltung • Verständnis entwickeln für die Integration der Persistenzschicht in allen Phasen des Software-Lifecycle • Besonderheiten und Einschränkungen relationaler DBMS gegenüber den objektorientierten Paradigmen verstehen und beherrschen • ER-Diagramm und Relationenmodell mit ihren Analogien zum Klassendiagramm der OOA und OOD verstehen und die Unterschiede kennen • SQL als standardisierte Data Sub-Language für relationale Datenbanksysteme verstehen und einsetzen können • Konzepte der objektorientierten Anwendungsentwicklung im Kontext relationaler Datenbanksysteme kennen lernen • Konzepte zur Berücksichtigung des konkurrierenden Zugriffs mehrerer Benutzer und der Behandlung von Fehlersituationen kennen und anwenden können Schestag Datenbanken (Cnam) Organisatorisches - 3 Vorlesungsinhalte: Überblick • Einführung • Semantische Datenmodellierung • Relationenmodell • Interne Datenorganisation • SQL - Structured Query Language • Datenbank-Anwendungsentwicklung • Transaktionsmanagement • Objekt-relationales Mapping • Rückblicke und Ausblicke Schestag Datenbanken (Cnam) fbi h_da Organisatorisches - 4 Praktikum: Vertiefung DB-AE ⋅ NFA011 fbi h_da Ziel des Praktikums • Datenmodellierung relationaler Schemata verstehen und im Umgang mit entsprechenden CASE-Tools *) vertraut werden • Datenbankschemata implementieren, Daten manipulieren und recherchieren • DB-Anwendungsentwicklung auf dem DB-Server und im Kontext von (objektorientierten) Host-Sprachen kennen lernen • Transaktionsmanagement für konkurrierende DB-Zugriffe verstehen Organisatorisches • Termine und Aufgabenstellungen auf der Homepage • Leistungsnachweis durch Testat *) CASE = Computer Aided Software Engineering Schestag Datenbanken (Cnam) Organisatorisches - 5 Praktikum: Vertiefung DB-AE ⋅ NFA011 fbi h_da Praktikumsinhalte • Erstellung eines ER-Diagramms (CASE-toolbasiert); Algorithmen zum effizienten Datenmanagement (Java) • Erstellung eines Relationenmodells (CASE-toolbasiert) • Generierung eines relationalen Datenbankschemas, SQL DDL und DML • Abfragen auf relationalen Datenbanken, Umgang mit Views • Generierung und Einsatz von Stored Procedures und Triggern • JDBC und Transaktionsmanagement • Einsatz eines OR-Mappers (Hibernate) Tools, IDEs, DBMS, die im Praktikum zum Einsatz kommen: • Sybase, Power Designer 15 (CASE-Tool zur Datenmodellierung) • Oracle mit Oracle SQL Developer als Client und DB2 als DBMS • Eclipse als IDE zur Java-Anwendungsentwicklung → Schestag Am ersten Praktikumstermin findet eine Einführung zu Installation und Konfiguration für alle Tools statt, die im Rahmen des Praktikums genutzt werden. Datenbanken (Cnam) Organisatorisches - 6 fbi h_da Literatur • Heuer, Andreas, Saake, Gunter. Datenbanken: Konzepte und Sprachen. MITP-Verlag, Bonn, 2. Auflage 2000. • Date, C.J. An Introduction to Database Systems. International Edition. AddisonWesley Systems. 8th ed. 2003. • Alfons Kemper, Andre Eickler: Datenbanksysteme. Eine Einführung, Oldenbourg, 6. Auflage März 2006 • Zehnder, Carl August. Informationssysteme und Datenbanken. VdF Hochschulverlag, 8. Auflage 2005. • G. Vossen, Datenbankmodelle, Datenbanksprachen und DatenbankmanagementSysteme, 3. Auflage 1999, Oldenbourg . • Erbs, Karczewski, Schestag. Datenbanken. Datenmodelle, Objekte, WWW, XML. VDE Verlag 2003 • Saake, Gunter, Sattler, Kai-Uwe. Datenbanken & Java. JDBC, SQLJ, ODMG und JDO. dpunkt.verlag, 2. Auflage 2003. Schestag Datenbanken (Cnam) Organisatorisches - 7 fbi h_da Datenbanken Kapitel 1: Einführung Schestag Datenbanken (Cnam) Kapitel 1 - 1 Einführung fbi h_da Inhalte des Kapitels • Einsatzgebiete von Datenbanken • Datenbank – Datenbanksystem – Datenbankmanagementsystem • Historische Entwicklung unterschiedlicher Datenbankmodelle Lernziele • Sensibilisierung für die Vielfalt von Datenbanksystemen • Grundlegende Begriffsklärung im Datenbankkontext • Einordnung relationaler Datenbanksysteme in der Historie Schestag Datenbanken (Cnam) Kapitel 1 - 2 fbi h_da Einsatzgebiete von Datenbanken • Banken und Versicherungen • • Kontoverwaltung, Finanzprodukte, Handel, Controlling, ... ERP-Systeme (Enterprise Resource Planning) z. B. SAP R/3, Navision für KMU (Kleine und mittelständische Unternehmen), etc. • Personal (HR), Buchhaltung, Bestellwesen, Lagerverwaltung, Logistik, ... • zentrale Abrechnungssysteme • • • Auskunftssysteme / Kundendaten • • Telefonauskunft, ... Buchungssysteme • • Telekommunikationsbranche Gastronomiebetriebe deutscher Autobahn-Raststätten, Kaufhäuser etc. ? Reisebüros, Flugunternehmen, Hotels etc. ... Screenshot aus einem Navision-System → Welche Arten von Daten werden in solchen Systemen primär verwaltet? Schestag Datenbanken (Cnam) Kapitel 1 - 3 fbi h_da Einsatzgebiete von Datenbanken • eBusiness • • Bibliotheken • • hier auch Volltextsuche geographische Datenbanken • • online-Shops, online Auktionen (eBay), ... topologische Daten, Satellitenbilder, ... ? Produkt-Datenbanken • strukturierte Daten, Konstruktionsdaten (CAD), ... … → Welche Arten von Daten werden in diesen Systemen darüber hinaus verwaltet? → Datenbanken müssen nicht immer "groß" sein! Schestag Datenbanken (Cnam) Kapitel 1 - 4 Anwendungsszenarien fbi h_da Wir unterscheiden zwei grundsätzlich unterschiedliche Szenarien … OLTP- Online Transaction Processing OLTP-Systeme nennt man häufig auch Operativsysteme • • • • • lesende und schreibende Zugriffe transaktionsorientiert online viele gleichzeitige Benutzer kurze Antwortzeiten erforderlich DB eines Operativ-Systems Schestag Datenbanken (Cnam) Kapitel 1 - 5 fbi h_da Anwendungsszenarien DSS - Decision Support Systems • • • • ausschließlich lesende Zugriffe kein Transaktionsmanagement notwendig Antwortzeiten unkritisch(er) Reports OLAP (Online Analytical Processing) auf Basis eines Data Warehouse, Data Mining z.B. im CRM – Customer Relationship Management Data Warehouse … beide Szeanarien wachsen immer mehr zusammen! Schestag Datenbanken (Cnam) Kapitel 1 - 6 Einführung fbi h_da 9 Einsatzgebiete von Datenbanken • Datenbank – Datenbanksystem – Datenbankmanagementsystem • Historische Entwicklung unterschiedlicher Datenbankmodelle Schestag Datenbanken (Cnam) Kapitel 1 - 7 fbi h_da Begriffsklärungen Datenbanksystem DatenbankManagementsystem Datenbank EndAnwender Anwendungsprogramme in Anlehnung an Date, An Introduction … Schestag Datenbanken (Cnam) Kapitel 1 - 8 Begriffsklärungen fbi h_da Datenbanksystem Ein Datenbanksystem ist im weitesten Sinne ein System zur rechnerunterstützten Verwaltung von Daten und umfasst die Gesamtheit aller im folgenden beschriebenen Komponenten (vgl. auch die vorhergehende Grafik). Datenbank Die Daten stellen in ihrer physischen Speicherform die eigentliche Datenbank dar und bilden den Kern eines jeden Datenbanksystems. Datenbank-Managementsystem (DBMS) Die proprietäre Software eines Datenbanksystems ist das Datenbank-Managementsystem (DBMS). Das DBMS besteht aus einer Vielzahl komplexer Dienste, die zur Verwaltung der Daten zur Verfügung stehen und die Konsistenz der Daten zu jedem Zeitpunkt gewährleisten. Man spricht deshalb auch von einem Datenbankserver. Das DBMS stellt die Schnittstelle zwischen einer Datenbank und den Anwendern des Datenbanksystems dar. Schestag Datenbanken (Cnam) Kapitel 1 - 9 fbi h_da Begriffsklärungen Datenbankmodell Ein Datenbankmodell definiert die Speicherstruktur, die ein DBMS zur internen Datenverwaltung verwendet. Datenbanksprache In der Regel stellt ein Datenbank-Managementsystem eine spezifische Datenbanksprache (Data Sub-Language - DSL) zur Verfügung, die einen Zugriff auf die Daten ermöglicht, ohne dass der Anwender selbst Kenntnisse von der internen, physischen Datenorganisation hat Mit Hilfe der DSL eines Datenbanksystems kann man – Informationen / Daten verwalten (Insert, Update und Delete), und – Informationen / Daten auf Anfrage (Query) verfügbar machen (Retrieval). Hardware In Bezug auf die Hardware unterscheidet man den Plattenspeicher (mit dazugehöriger Ein-/ Ausgabeperipherie) und den Hauptspeicher sowie die Prozessoren zur Ausführung der Datenbank-Systemsoftware. Schestag Datenbanken (Cnam) Kapitel 1 - 10 Einführung fbi h_da 9 Einsatzgebiete von Datenbanken 9 Datenbank – Datenbanksystem – Datenbankmanagementsystem • Historische Entwicklung unterschiedlicher Datenbankmodelle Schestag Datenbanken (Cnam) Kapitel 1 - 11 fbi h_da Historische Entwicklung … … von Datenbankmodellen DB2 v9 Oracle (2007, IBM) (1979) CODASYL Relational / XML System R (1977) → DB2 Tamino (1983 unter MVS) IMS/VS seit 1968 (IBM) (2000, SAG, Darmstadt) ObjectStore (1988, ObjectDesign) 1960 Hierarchisches Datenbankmodell 1970 1980 1990 2010 NoSQL Objektorientiertes Datenbankmodell Netzwerk Datenbankmodell (1971, Data Base Task Group) Relationales Datenbankmodell (1970, Edgar F. Codd) Schestag 2000 Datenbanken (Cnam) ??? Objektrelationales Datenbankmodell Semistrukturierte Datenbankmodelle z.B. XML-Datenbanken Kapitel 1 - 12 fbi h_da Historische Entwicklung Hierarchische Datenbanken Die Daten lassen sich über hierarchische Strukturen (Baumstrukturen) in Beziehung zueinander setzen. Einsatzbereiche heute: Großrechnerbereich (Mainframes) von Banken, Versicherungen etc., z.B. IMS-DB (Information Management System). Netzwerk-Datenbanken Die zugrunde liegende Struktur stellt einen Graphen mit beliebigen Navigationsmöglichkeiten über Cursortabellen dar. Heute nicht mehr häufig im Einsatz. CODASYL. Relationale Datenbanken Die mathematische Basis dieses Datenbank-Modells ist die Relationenalgebra. Datensätze werden als „Relationen“ (Menge von Tupeln gleicher Länge) angesehen ⇒ Als Speicher- und Darstellungsform bieten sich Tabellen an. Schestag Datenbanken (Cnam) Kapitel 1 - 13 fbi h_da Historische Entwicklung Die standardisierte Abfragesprache für relationale Datenbanken ist SQL (Structured Query Language). Im Bereich relationaler Datenbank-Managementsysteme (RDBMS) unterscheidet man - RDBMS aus dem „personal“ Bereich, wie MS-ACCESS und FoxPro, und - Datenbankserver wie z. B. DB2 (IBM), Oracle, Sybase, Informix (IBM), Ingres, MS SQL-Server, MySQL, PostgreSQL, Adabas etc. Objektorientierte Datenbanken Diese Datenbanken haben sich aus objektorientierten Sprachen entwickelt. Gespeichert werden Objekte auf der Basis objektorientierter Klassenstrukturen mit Attributen und Methoden, die i.d.R. komplexere Datentypen als die relationalen Datenbanken zulassen. Navigation ist möglich über direkte Referenz der Objekte durch Object Ids (OID = physische Adresse, pointer). Beispiele objekt-orientierter Datenbanken: ObjectStore, Versant, FastObjects (Poet), Jasmine, etc. Schestag Datenbanken (Cnam) Kapitel 1 - 14 Historische Entwicklung fbi h_da Objektrelationale Datenbanken Dies sind relationale Datenbanken mit objektorientierten Erweiterungen. Sie werden mittlerweile von allen Herstellern großer relationaler Systeme angeboten. Ziel der objekt-relationalen Datenbanken ist das „Mapping“ objektorientierter Datenstrukturen aus dem Applikationsbereich auf relationale Datenstrukturen in der Persistenzschicht. weitere Nicht-Standard Datenbanken und NoSQL Neben den objektorientierten und objekt-relationalen Datenbanken zählen zu den Nicht-Standard Datenbanken u.a. die – XML-Datenbanken (wie z.B. Tamino von der Software AG) – geographische Datenbanken – deduktive Datenbanken Die parallele Verwaltung von relationalen Schemata und XML-Schemata wird ermöglicht ab der Version DB2 v9 (IBM). Unter der Bezeichnung NoSQL – „Not only SQL“ werden unterschiedlichste, nichtrelationale DBMS bzw. Speicherkonzepte subsumiert, die entsprechend ihrer Architektur und Anwendungsdomänen in unterschiedliche Kategorien unterteilt sind (→ s. auch Kapitel 7,Transaktionsmanagement) ⋅ nosql-database.org/ Schestag Datenbanken (Cnam) Kapitel 1 - 15 Zusammenfassung • fbi h_da Datenbanksysteme erfordern vor allem in großen und verteilten Architekturen spezifisches Wissen über – den Aufbau und – die Administration einer Datenbank sowie – die Integration als Persistenzschicht in (objektorientierte) Anwendungsarchitekturen. • Die relationalen DBMS sind bereits vor der Entwicklung objektorientierter Systeme entstanden. Dennoch stellen sie heute immer noch – zusammen mit den hierarchischen Datenbanken – den größten Anteil an Datenbankservern in bestehenden und neu entwickelten Anwendungssystemen dar. Schestag Datenbanken (Cnam) Kapitel 1 - 16 Datenbanken 9 Einführung • Semantische Datenmodellierung • Relationenmodell • Interne Datenorganisation • SQL - Structured Query Language • Datenbank-Anwendungsentwicklung • Transaktionsmanagement • Objekt-relationales Mapping • Rückblicke und Ausblicke Schestag Datenbanken (Cnam) fbi h_da Kapitel 1 - 17