Grundlagen zur Verwendung und Entwicklung von Datenbanksystemen Vorlesung im Wintersemester 2007/08 (Abschnitt Einführung und Grundlagen) WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 1 Motivation und Ziele WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 2 Motivation für DBMS § Redundanz und Inkonsistenz § Zusammenhänge zwischen Datenobjekten § Multiuserbetrieb (Vermeidung von Anomalien) § Verlust von Daten (Wiederherstellung von Daten) § Integritätsverletzungen (Konsistenzbedingungen) § Sicherheitsprobleme § Wiederverwendung bestehender Systeme WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 3 Definition Datenbank Eine Datenbank (kurz DB) ist ein integrierter, persistenter Datenbestand einschließlich aller relevanten Informationen über die dargestellte Information (Metainformation, d.h. die Integritätsbedingungen und Regeln), der einer Gruppe von Benutzern in nur einem Exemplar zur Verfügung steht. WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 4 Beispiele von Datenbanken I § Datenbanken bei Reiseveranstaltern - Buchungssysteme (Flug, Hotel, Mietwagen, …) - Kundendatenbanken - Flugpläne § Datenbanken bei Telekommunikationsanbietern - Verwaltung der technischen Einrichtungen - Verrechnung von Leistungen - Kundendatenbanken WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 5 Beispiele von Datenbanken II § Datenbanken an Hochschulen - Vorlesungsverzeichnisse - Immatrikulierte Studenten - Verwaltung von Veröffentlichungen § Datenbanken in einer Bibliothek - Vorhandene Bücher und Medien - Ausleihe und Vorbestellungen - Leserdatenbanken WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 6 Datenbankszenario I (Beispiel aus der Welt der Telekommunikation) WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 7 Datenbankszenario II (Beispiel aus der Welt der Telekommunikation) § Kundendatenbank eines „Telco“-Unternehmens - Idee - Anforderungen - Konzept - Datenmodell - Umsetzung § Idee: Konsistente und konvergente Ablage aller kundenrelevanten Informationen WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 8 Datenbankszenario III (Brainstorming zu den Zielen) § Kerninformationsobjekt „Kunde“ § Informationen zu allen potentiellen Kunden - ca. 40 Mio. Kunden in Deutschland - personenbezogene Daten - genutzte Produkte - verantwortliche Serviceeinheit - Verrechnung genutzter Leistungen - … WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 9 Datenbankszenario IV (Anforderungsanalyse) § Potentielle Nutzer und Schnittstellen § Anforderungsanalyse - Zielstellung und Business Case - Wer soll die Datenbank nutzen? - Welche Inhalte soll die Datenbank haben? - Welche Abfragen sollen unterstützt werden? - Aktualität der Dateninhalten? - Art des Informationsabrufs? § Migrationsanforderungen WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 10 Datenbankszenario V (Grobkonzeption der Kundendatenbank) § Master für alle Anwendungen § Basisdaten – Altsysteme mit Kundendaten - Daten für ca. 40 Mio. Kunden - je Kunden ca. 1KByte an Informationen - ca. 20 Anwendungen mit Kundendaten - Vielfältige Referenzen zu vorhandenen Systemen - Art der auszunehmenden Daten (textlich, Lageplan, …) § Aktualität der Daten in den Systemen WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 11 Datenbankszenario VI (Modellierung des Diskursbereiches) § Strukturierung der Information - Ziele schriftlich fixieren - Basisdaten zusammenstellen - Anforderungen detailliert beschreiben - Konzeption textlich erläutern § Konzeptionelles Datenmodell entwerfen - Abhängig von den Zielen und Anforderungen - Vorraussetzung für die Umsetzung mittels DBMS WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 12 Datenbankszenario VII (Ausschnitt aus dem ER-Modell) WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 13 Datenbankszenario VIII (Abbildung auf Tabellen) Kunde Kunden_ID Name Adresse 101 Peter Fanz 13505 Berlin, Wittestr. 30H 102 Hans Busch 15475 Wildau, Spatzenweg 7 … … … Produkt Bem.: Tabellen wurden weder normalisiert noch wurde die Beziehung (Kunden hat Produkte) abgebildet! WS07/08 – DBS Part 1 Produkt_Nr Beschreibung Preis in Euro T11 ISDN s0 20 T12 ISDN s2m 150 .. Prof. Dr. Andreas Schmietendorf 14 Datenbankszenario IX (Abbildung auf Tabellen) § Spalten – Attribute § Zeilen – Datensätze § Tabellename § Identifikation der Datensätze (Schlüssel) § Konzeptionelles Modell: Entity-Relationship-Modell § Abbildung mittels konkreter Systeme: - filebasierte Systeme: Excel - Pseudo DB: Access, dBase, Paradox - Echte DBMS: Oracle, IBM DB2, MS SQL Server WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 15 Dateiverwaltung und Datenbanken WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 16 Von der Dateiverwaltung zur Datenbanktechnologie § Frühzeit: 1950 bis 1967 § Verwendung von Großrechnern (Zimmergröße) § Überwiegend genutzt für numerische Probleme § Geringe Aufmerksamkeit für Daten § Hauptspeichergröße: 50KByte § Programmiersprachen: Assembler, Algol, Fortran § bis 1963 nur elementare Daten im Programm WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 17 Von der Dateiverwaltung zur Datenbanktechnologie Dateien sind eine Sammlung logisch zusammengehörender Daten, die auf geeigneten Medien gespeichert werden können und über einen Namen identifizierbar sind. Das Dateisystem (z.B. FAT, VFS) organisiert die Verwaltung der Dateien auf einem Speichermedium, wobei unterschiedliche Zugriffsformen und ggf. Schutzfunktionen realisiert werden können. Quelle: Schneider, U.: Betriebssysteme und Systemsoftware, in Taschenbuch der Wirtschaftsinformatik, Fachbuchverlag Leipzig, 2003 WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 18 Von der Dateiverwaltung zur Datenbanktechnologie Dateikonzept ab 1963 § Datei mit Menge von Datensätzen – internes Format § Organisationsform: sequentiell, index-sequentiell, regional § Verarbeitungsformen: lesen, Feste Datenlänge rec 1 rec 2 Variable Datenlänge rec 1 rec 2 schreiben, ändern § Satzform: Sätze fester oder rec 3 rec 3 variabler Länge (eventl. Blöcke) § Medium: Art des ext. Gerätes (Magnetplatte, Magnetband, …) WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 19 Von der Dateiverwaltung zur Datenbanktechnologie WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 20 Eigenschaften des Dateikonzeptes I § Datei als Organisationseinheit § Zugriff des Anwenders über das Betriebssystem § Unterschiedliche Nutzer § Dateien waren bestimmten Programmen fest zugeordnet § Anwendungsspezifische Datenorganisation § Ggf. mit einer Kopie arbeiten (?!) § Logisch zusammengehörige Daten über Dateien verteilt WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 21 Eigenschaften des Dateikonzeptes II § Keine granulare Rechteverteilung § Keine Möglichkeiten zur Synchronisation § Große Sperrgranulate § Redundante Daten - Verschwendung von Ressourcen (HW, aber auch HR) - Gefahr von Inkonsistenzen § Plattform- und Anwendungsabhängig § Ineffizient bei großen Datenmengen WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 22 Entwicklung bis zur Neuzeit I § Übergang von der klassischen, programmzentrierten Sicht zur datenzentrierten Sicht (DB-Technologie) Anfang etwa von 1968 bis 1970. § Begleitet wurde diese Entwicklung von der steigenden Kapazität externer Massenspeicher und dem steigender Wert gespeicherten Informationen (Daten). § Die Verfügbarkeit der Daten und der Zugriff im Dialog wurde wichtiger als umfangreiche Auswertealgorithmen. WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 23 Entwicklung bis zur Neuzeit II § Das Datenmodell beschreibt die logische Struktur der Datenbasis. Der Nutzer verwendet eine Datenbankabfragesprache (zumeist SQL – Structured Query Language) zur Wiedergewinnung von Informationen aus der Datenbasis. § Als Mittler zwischen Nutzer und Datenbasis arbeitet ein Datenbankmanagementsystem (kurz DBMS). WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 24 Einordnung eines DBS Individual-Software Anwendungssoftware Basissoftware Systemsoftware (z.B. Datenbanksysteme) Betriebssystem WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 25 Architektur von DBMS WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 26 Begriff des DBMS Unter dem Begriff Datenbankmanagementsystem (kurz DBMS) verstehen wir die Gesamtheit der SoftwareModule, die die Verwaltung einer Datenbank übernehmen. Ein Datenbanksystem ist die Kombination von DBMS und einer Datenbank. WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 27 Bestandteile DBS DBS = DBMS + DD + nDB (bei n > 1) § DBS – Datenbanksystem § DBMS – Datenbankmanagementsystem § DD – Data Dictionary (Datenbankschema) § DB – Daten eines Anwendungsbereiches WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 28 Datenbankmanagementsysteme WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 29 Codd´sche Regeln 1 Nach Festlegung von E. F. Codd sind Regeln formulierbar, nach deren Bewertung jedes Datenbankmanagementsystem validierbar ist. Die folgenden 9 Regeln wurden bereits Anfang der 80erJahre durch Codd als Anforderungen an Datenbankmanagementsysteme formuliert. Bem.: beim RDBMS kommen weitere 3 dazu WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 30 Codd´sche Regeln 2 § Integration: Einheitliche Verwaltung aller von Anwendungen benötigten Daten § Operationen: Speichern, suchen und ändern auf den Datenbestand wird angeboten § Katalog: Der Katalog (Data Dictionary – auch Datenwörterbuch) ermöglicht Zugriffe auf die Datenbeschreibung der Datenbank § Benutzersichten: Für unterschiedliche Anwendungen sind unterschiedliche Sichten auf den Datenbankbestand verfügbar WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 31 Codd´sche Regeln 3 § Konsistenzüberwachung (Integritätssicherung): Die Korrektheit der Datenbankinhalte wird garantiert (korrekte Ausführung v. Änderungen) § Datenschutz: Unautorisierte Zugriffe werden durch die Zugriffskontrolle verhindert § Transaktionen: Es gibt zusammengefasste Datenbankoperationen, die nur ganz oder gar nicht ausgeführt werden (ACID-Prinzip) § Synchronisation: Mehrere Benutzer können (ohne sich gegenseitig zu beeinflussen) mit der Datenbank gleichzeitig arbeiten § Datensicherung: Die Wiederherstellung der Daten z.B. nach einem Systemzusammenbruch ist möglich WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 32 Grob-Architektur DBMS Quelle: Heuer, A. et al: Datenbanken kompakt, mitp-Verlag WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 33 DBMS-Komponenten 1 § Dateiorganisation – Definition der Dateiorganisation und Zugriffspfade auf interner Ebene § Datendefinition – Konzeptuelle Datendefinition (konz. Schema) § Sichtdefinition – Definition von Benutzersichten § Masken – Entwurf von Menüs und Masken für die Benutzerinteraktion § Einbettung – Einbettung von Konstrukten der Datenbanksprache in eine Programmiersprache WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 34 DBMS-Komponenten 2 § Anfragen/Updates – Interaktiver Zugriff auf den Datenbestand ISQL § DB-Operationen – Anfragen, Änderungen § Optimierer – Optimierung der Datenbankzugriffe § Plattenzugriff – Plattenzugriffssteuerung § Auswertung – Auswertung von Anfragen und Änderungen § P1 … Pn – verschiedene Datenbank-Anwendungsprogramme § Data Dictionary – zentraler Katalog aller für die Datenhaltung relevanten Operationen WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 35 Datenunabhängigkeit Physische Datenunabhängigkeit: auch als Implementierungsunabhängigkeit bezeichnet - Die Unabhängigkeit zwischen (portablen Programmen) und physikalischer Datendarstellung und Speicherung ist der erste Schritt zur Maschinenunabhängigkeit des Datenbanksystems. Logische Datenunabhängigkeit: auch als Anwendungsunabhängigkeit bezeichnet - Hier wird eine weitgehende Unabhängigkeit der Software vom Datenbankmodell gefordert. WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 36 Drei-Ebenen-Schema-Architektur Zur Beschreibung der Datenstrukturen in einer Datenbank ist ein Modell hilfreich, dass bereits 1971 vom ANSI/SPARC-Komitee vorgestellt wurde. Es konzentriert sich dabei weniger auf den internen Aufbau des DBMS selbst, als vielmehr auf die Mittlerrolle des DBMS zwischen Anwenderwelt und Rechnersystem. 1 ANSI – American National Standards Institute 2 SPARC – Standards Planning and Requirement Committee WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 37 Drei-Ebenen-Schema-Architektur Prof. Dr. Andreas Schmietendorf Datendarstellung Anfragebearbeitung WS07/08 – DBS Part 1 38 Internes Schema Die systemspezifische Realisierung der Datenbank, wie z.B. eingerichtete Zugriffspfade (z.B. Baumstrukturen), wird durch das interne Schema beschrieben. Für den Nutzer i.a. nicht zugänglich, ggf. für Tuningmaßnahmen (Index, Cluster, …) von Interesse. WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 39 Konzeptuelle Schema Beinhaltet eine implementierungsunabhängige Modellierung der gesamten Datenbank in einem systemunabhängigen Datenmodell (z.B. das ER-Modell). Dabei handelt es sich um eine formale Beschreibung eines Ausschnittes der realen Welt. Das konzeptuelle Schema beschreibt die Struktur der Datenbank vollständig. WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 40 Externes Schema Basierend auf dem konzeptuellen Schema können externe Schemata definiert werden, welche anwendungsspezifische (Teil-) Sichten auf den gesamten Datenbestand festlegen. Das kann sowohl im Datenmodell des konzeptuellen Schemas, als auch in einem weiteren Datenbankmodell erfolgen. WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 41 Schichtenmodell eines DBMS Um den internen Aufbau eines DBMS nachvollziehen zu können bedient man sich häufig einer schichtenorientierten Betrachtungsweise. Dieses innerhalb der Informatik übliche Vorgehen betrachtet das DBMS als aufeinander aufbauende Schichten. Jede Schicht hat bestimmte Aufgaben zu erledigen und stellt der nächst höheren Schicht einen bestimmten Service zur Verfügung, ohne das sich diese darum kümmern muss, wie dieser Service realisiert ist. WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 42 Transaktionsverarbeitung WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 43 Transaktionsbegriff Eine Transaktion (transaction) ist eine Folge von Operationen (z.B. elementare SQL-Befehle), die zu einer unteilbaren (atomaren) Ausführungseinheit zusammengefasst werden und die Datenbank von einem konsistenten Zustand in einen neuen konsistenten Zustand überführen. WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 44 Transaktionskonzept Zur Unterstützung des Multiuserbetriebs werden im Rahmen von DBMS Transaktionen verwendet. Ein Datenbanksystem garantiert so die Ausführung von Transaktionen unter Berücksichtigung der so genannten ACID-Bedingungen. Dabei handelt es sich um die Eigenschaften der Atomarität (atomicity), Konsistenz (consistency), Isolation (isolation) und Dauerhaftigkeit (durability). WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 45 Transaktion - Beispiel Täglich werden durch die Kunden einer Bank tausende Überweisungen initiiert. Dabei gibt es sowohl die Forderungen nach kurzen Antwortzeiten, als auch eines korrekten Geldtransfers. Zusammenfassung der notwendigen Operationen für eine Geldüberweisung, d.h. Abbuchen vom einem Konto und Überweisen auf ein anderes Konto. WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 46 Transaktion - Beispiel Inkorrekter Ablauf von zwei Überweisungen Quelle: Gumm, H. P.; Sommer, M.: Einführung in die Informatik, Oldenbourg-Verlag WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 47 A - Atomarität Änderungen einer Transaktion werden entweder vollkommen oder gar nicht in die Datenbank eingebracht. Auf dieser Grundlage kann die Anwendungsprogrammierung stark vereinfacht werden, da Fehlerzustände (z.B. Rechnerausfall) nicht im Programm abgefangen werden müssen. WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 48 C - Konsistenz Eine Transaktion überführt die Datenbank von einen konsistenten Zustand in einen anderen konsistenten Zustand. Der konsistente Zustand einer Datenbank erfordert die Einhalten aller definierten Integritätsbedingungen. Innerhalb der Transaktion können Integritätsbedingungen temporär verletzt werden. WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 49 I - Isolation Keine gegenseitige Beeinflussung parallel ausgeführter Transaktionen, d.h. zwischen parallel ausgeführten Transaktionen besteht keine direkte Kommunikation. Das Ergebnis einer Transaktion kann nicht durch andere zum gleichen Zeitpunkt ausgeführte Transaktionen beeinflusst werden. WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 50 D - Dauerhaftigkeit Nach einem erfolgreichen Abschluss einer ausgeführten Transaktion werden alle Änderungen dauerhaft in der Datenbank gespeichert. Sollte es zu einer Störung kommen, werden die Ergebnisse von Transaktionen durch entsprechende RecoveryMechanismen wieder hergestellt. WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 51 Beispiele für DBMS WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 52 Beispiele konkreter DBMS I Gemeinsamkeiten aktuell angebotener DBMS: § Drei-Ebenen Architektur nach ANSI SPARC § SQL als Datenbankabfragesprache § Einbettung von SQL in Programmiersprachen § Diverse Tools für: - Entwurf von Datenbanken - Definition, Anfrage und Darstellung von Daten § Kontrollierter Mehrbenutzerbetrieb WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 53 Beispiele konkreter DBMS II Kommerzielle Produkte § Oracle Database § IBM DB2 Universal Database § MS SQL Server § Informix (zumeist in Altsystemen eingesetzt) § IBM IMS DB (60% aller unternehmenskritischen Daten) WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 54 Beispiele konkreter DBMS III Open Source Produkte (erhältliche Systeme im Quelltext) § Im Rahmen der LINUX-Distribution - My SQL mit eingeschränkten Funktionsumfang (www.mysql.com) - PostgreSQL mit objektrelationalen Features (www.postgresql.org) § Weiterentwicklung von InterBase 6.0 (Borland) - Firebird (www.firebirdsql.org) - Verfügbar für Linux und Windows WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 55 Beispiele konkreter DBMS IV Pseudo-RDBMS § Dateiverwaltungssysteme mit tabellarischer GUI § Erreichen nicht die volle Funktionalität von RDBMS § Beispiele von Pseudo-RDBMS - Borland dBASE - MS Access § Fehlende Funktionen: - Kein Standard SQL - Keine Mehrbenutzerbetrieb - Keinen Abfrageoptimierer WS07/08 – DBS Part 1 Prof. Dr. Andreas Schmietendorf 56