Datenbanksysteme Teil 1 Dozent: Stefan Maihack Dipl. Ing. (FH) Inhaltsverzeichnis 1/2 • • • • Einführung Î Das Konzept des Datenbanksystems Î Datenbanksysteme und traditionelle Datenverwaltung Architektur eines Datenbanksystems Î Drei Datenebenen Î Das konzeptuelle Datenmodell Î Das interne Modell Î Das externe Modell Î Das Datenbankmanagementsystem Î Weitere Komponenten des DBS Î Datenunabhängigkeit Î Ein Datenmodell für die konzeptionelle Ebene Datenbankentwurfsprozess Das Entity-Relationship-Modell Î Symbole Î Entities Î Beziehungen Î Attribute Î Schlüssel Î Kardinalitäten Î Schwache Entity – Typen Î Erweiterungen des ER-Modells Inhaltsverzeichnis 2/2 • • • • Datendefinition und Datenselektion Î Schlüssel Î Nullwerte Î Einfache Datenbankoperationen mit SQL Relationale Abfragen (SQL-Abfragen über mehrere Tabellen) Î Selektion Î Projektion Î Kartesisches Produkt Î Join (Verbund) Aggregatfunktionen und Gruppierungen Î Aggregatfunktionen Î Gruppierungen Normalisierung Das Konzept des Datenbanksystems • • • • Eine Datenbank ist eine integrierte Ansammlung von Daten, die allen Benutzern eines Anwendungsbereiches als gemeinsame Basis aktueller Informationen dient. Anwendungen greifen nicht direkt auf die Datenbank zu. Die gesamte Kontrolle der Datenbank liegt beim Datenbankmanagementsystem (DBMS) Datenbank und Datenbanksoftware bilden zusammen das Datenbanksystem (DBS) Datenbankmanagementsysteme besitzen eine Abfragesprache (SQL). Das Konzept des Datenbanksystems DB S1 S2 S3 Anwendungsprogramm DBMS Datenbanksysteme und traditionelle Datenverwaltung • • Jedes gängige Betriebssystem unterstützt ein oder weniger komfortables Dateisystem. COBOL, eine Sprache die primär auf die Verarbeitung von Dateien ausgerichtet ist. Prog A Datei D1 Prog.B Datei D2 Prog.C Datei D3 Datenbanksysteme und traditionelle Datenverwaltung • Probleme traditioneller Dateiverwaltung: Î Redundanz: Die gleichen Daten liegen oft mehrfach vor. Î Inkonsistenz: Gleiche Daten müssen bei Änderungen berücksichtigt werden. Î Daten-Programm-Abhängigkeit: Daten sind an ein Programm gebunden. Î Inflexibilität: Daten werden nur anwendungsbezogen gesehen, Neu-Anwendungen zu realisieren ist oft kompliziert. Î Keine Point-in-Time Recoverymöglichkeit Datenbanksysteme und traditionelle Datenverwaltung Geschichtlicher Überblick: • • • • 1. Generation: Filesystem (50 – 60er Jahre) 2. Generation: Prerelationale Systeme; Erste Trennung zwischen Daten und Programm. 3. Generation: Relationale Datenbanken (80er Jahre) Schwerpunkt dieses Kurses)! 4. Generation: Objektorientierte und objektrelationale Datenbanken. Entwicklung in den 90er Jahren, Einsatz in Produktivumgebungen ist im kommen. Datenbanksysteme und traditionelle Datenverwaltung • Vorteile der Datenbank-Philosophie: Î Eine gemeinsame Basis für alle Anwendungen Î Redundanz entfällt; wo Redundanz nützlich ist, ist sie durch das DBMS kontrolliert. Î Konsistenzprobleme entfallen (falsche Daten). Î Anwendungsprogrammierer müssen nur die Eigenschaften der Daten kennen, nicht deren spezielle Organisation auf den Speicher. Î Die Abhängigkeit zwischen Daten und Programm wird reduziert. Î Das DBS kann zentral die Korrektheit der Daten überprüfen (Integrität). ÎTransaktionsorientiert: Eine Transaktion ist eine Folge von Befehlen (oder Operationen), die eine Datenbank von einem konsistenten Zustand in einem anderen überführt. Eine Transaktion muss entweder vollständig durchgeführt oder, bei einem Abbruch, vollständig zurückgesetzt werden können. Î Das DBS kann zentral Mechanismen zur Wiederherstellung bereitstellen (Recovery). Das Transaktionskonzept • • • • • Aus logischer Sicht ist eine Transaktion ein Arbeitspaket Î so klein wie möglich Î So gross wie nötig, um alle Integritätsbedingungen einhalten zu können. Aus technischer Sicht ist eine Transaktion eine Folge von LeseÄnderungsoperationen in der Datenbank, mit einem definierten Beginn und einem definierten Abschluss. Die Transaktionsverwaltung ist eine der Kernaufgaben eines Datenbanksystems. Das Datenbanksystem garantiert für eine Transaktion folgende Eigenschaften: A = Atomarität; C = Konsistenz, I = Isolation, D = Dauerhaftigkeit. Diese Eigenschaften werden als ACID-Regel bezeichnet Das Transaktionskonzept Atomarität • Eine Transaktion kann alle gewünschten Operationen erfolgreich durchführen, oder sie hat gar keine Auswirkkungen auf den Zustand der Datenbank. „Alles oder Nichts“-Prinzip • • In Fehlersituationen kann eine Transaktion durch das Anwendungsprogramm oder durch das DBMS abgebrochen werden. Das DBMS ist dafür verantwortlich, dass alle Änderungen am Datenbestand seit Beginn der Transaktion rückgängig gemacht werden (Undo-Recovery) Beispiel Überweisung: Hebe Geld vom Konto ab und schreibe das Geld einem anderen Konto zu. Das Transaktionskonzept Konsistenz • Bei Abschluss einer Transaktion muss ein konsistenter Datenbankzustand vorliegen. • Jede im DBMS enthaltene Integritätsregel muss spätestens beim Abschluss der Transaktion erfüllt sein. • An einer umfassenden Konsistenzerhaltung ist natürlich auch die Anwendung beteiligt, weil es praktisch unmöglich ist, alle Anforderungen in Form von vorab festgelegten Nebenbedingungen der Datenbank zu realisieren. Das Transaktionskonzept Isolation • Die Datenbank muss so erscheinen, wie wenn sie jedem Benutzer dediziert zur Verfügung stehen würde. • Laufen mehrere Transaktionen gleichzeitig ab, so müssen diese so gesteuert werden, dass sie die Anfrageergebnisse durch eine sequentielle Abarbeitung erzielt werden können. Formal wird dies erreicht, in dem die Operationen serialisierbar sind, als ein seriell ausgeführtes Analogon haben. • Hierzu werden Sperrverfahren eingesetzt: 1-Phasen-Sperren: Sperren gehen den Freigaben voraus. Das Transaktionskonzept Dauerhaftigkeit • Nach Abschluss einer Transaktion sind die von ihr ausgeführten Änderungen nachhaltig. Hierzu müssen die Daten gegen alle Arten von Ausfällen gesichert werden. • Auch Prozessabstürze und Plattenfehler dürfen nicht zu Datenverlust führen. • Beispielfragen: Was passiert, wenn das RZ abbrennt (o.ä.)? Das Transaktionskonzept Die Ablaufsteuerung in einem DBMS • Das DBMS empfängt die Benutzeranfragen und kontrolliert deren Ausführung. • Jede Manipulation durchläuft zum Ende der Transaktion die im DBMS verankerten Konsistenzregeln: Î Wertebereich (Kontostand > 0) Î Nebenbedingungen (Gehalt eines Mitarbeiters muss unter dem des Managers liegen) • Das DBMS nutzt die Kenntnis aller Operationen einer Transaktion zur Implementierung von Sperrverfahren. Diese ermöglichen die Isolation nebenläufiger Transaktionen. Drei Dateiebenen • • • Die Daten eines Anwendungsbereiches werden auf unterschiedlicher Weise gesehen (Benutzer, Systemprogrammierer,…) Drei unterscheidbare Dateiebenen Î Die konzeptionelle Gesamtsicht (konzeptuelles Modell). Alle Daten müssen auf logischer Ebene in Form von Informationseinheiten und deren Beziehungen untereinander beschrieben werden, unabhängig von EDVGesichtspunkten (Sicht des Datenbankdesigner). Î Die Interne Sicht (Organisation der Daten auf dem Speicher); (Sicht des Systemadministrators). Î Die externe Sicht: Jeder Nutzer sieht den Ausschnitt der Datenbank, der für ihn von Bedeutung ist. (Sicht des einzelnen Benutzers). Jede Ebene modelliert die Daten auf einem anderen Abstraktionsniveau. Die Beschreibung einer solchen Ebene heißt Schema. Die drei Datenebenen A1 A1 Ext. Schema A1 A1 Ext. Schema A1 A1 Ext. Schema Externes Modell Logische Datenunabh. Konzeptuelles Schema Konzeptuelles Modell Physische Datenunabh. Internes Schema HW Internes Modell Logische Datenunabhängigkeit • Die logische Datenunabhängigkeit besagt, dass ein Datenbestand und seine Zusammenhänge für verschiedene Anwendungen aus unterschiedlichen Perspektiven interpretiert werden können. • Jedes auf der Datenbank arbeitende Programm hat eine eigene, spezifische Sicht auf die Datenbank. So können beispielsweise die im Programm angezeigten Tabellen von den „tatsächlichen“ Tabellen abweichen /z.B. weniger Attribute haben oder mehrere Tabellen sind zu einer verschmolzen). • Die logische Speicherung der Daten kann somit geändert werden (neue Attribute hinzufügen, Attribute löschen..) ohne dass die auf den Daten arbeitenden Programme geändert werden müssen (allenfalls das Löschen kann kritisch sein). Physikalische Datenunabhängigkeit • Physikalische Datenunabhängigkeit bezieht sich darauf, dass Anwenderprogramme sich nicht um die interne Speicherung und Verwaltung der Daten kümmern müssen. So sollten Datenbanktuning oder Erweiterung von Speicherstrukturen keine Auswirkungen auf Anwendungsprogramme haben. • Die phyisikalische Organisation der Daten bleibt für die auf der Datenbank arbeitenden Programme verborgen. Die Programme brauchen sich also nicht um Dinge wie Zugriffspfade oder Speicherstrukturen zu kümmern. • Die physikalische Speicherung der Daten kann somit geändert werden, ohne dass die auf den Daten arbeitenden Programme geändert werden müssen. Das konzeptionelle Modell • • • • Das konzeptionelle Modell beschreibt die Gesamtheit der Daten des Anwendungsbereiches einer Datenbank, die verwaltet werden sollen. Alle wesentlichen Daten und deren Beziehungen zueinander werden beschrieben, in denen sie in der Realität existieren. Beschreibung der Integritätsbedingungen (Bedingungen, die immer gelten) und Dokumentation der Zugriffsrechte. Beschreibung von Operationen, die mit Daten ausgeführt werden. Das konzeptionelle Modell • • • Das konzeptuelle Modell wird mit einer Datenbeschreibungssprache (DDL = Data Definition Language) beschrieben. Änderungen der Daten werden mit einer Datenmanipulationssprache (DML = Data Manipulation Language) erreicht. Datenbanksysteme bieten üblicherweise generische Operationen an (Löschen, speichern, lesen, neu,…). Achtung: Datenbanksysteme vs. Informationssysteme: Î Informationssysteme: Gesamtheit aller Instanzen und Prozesse, die für den Anwendungsbereich wichtige Informationen von außen aufnehmen, verarbeiten und wieder nach außen abgeben. Î Datenbanksysteme: Teil von Informationssystemen. Das konzeptionelle Modell Vorteile des konzeptionellen Modells: • Das konzeptionelle Modell stellt einen stabilen Bezugspunkt für alle Anwendungen dar. Es ändert sich nur, wenn sich die Vorstellung über den Anwendungsbereich ändert. • Das konzeptionelle Modell stellt eine einheitliche Dokumentation wesentlicher Aspekte des Anwendungsbereichs dar. • Das konzeptuelle Modell bietet die Möglichkeit, den Gebrauch der Daten an zentraler Stelle zu kontrollieren. • Das konzeptuelle Modell schafft die wesentliche Vorraussetzung für die Datenunabhängigkeit der Anwendungsprogramme. Das konzeptionelle Modell der TERRA-Datenbank • • • Die verschiedenen Objekttypen: Î Land, Berg, Tal, Ebene, Fluss, Institution,… … und deren Eigenschaften: Î Name, Größe,… Die Beziehungen: Î Hat_sitz_in, geht_über, ist_benachbart;… Das interne Modell • • • • • Der Datenbankadministrator entwickelt eine physikalische Datenorganisation, so dass die im konzeptionellen Modell beschriebenen Begriffe ableitbar sind. Statistische Informationen sind nötig über die Häufigkeit von Zugriffen auf Objekte, Zeitbeschränkungen für Anwendungen, Verteilen von Werten für Attribute,… Das interne Schema umfasst Festlegungen zu folgenden Punkten: Î Repräsentation von Attributwerten Î Aufbau gespeicherter Sätze Î Zugriffsmethoden auf Sätze und Indexstrukturen Das interne Modell bestimmt maßgeblich das Leistungsverhalten des gesamten Datenbanksystems. Weder das externe noch das konzeptuelle Modell sind von Änderungen des internen Schemas betroffen (physische Datenunabhängigkeit). Das interne Modell • • • In kommerziellen System sind eine Reihe von Entwurfsentscheidungen vorweggenommen. Es stehen für Beziehungen und Zugriffspfade nur eingeschränkte Möglichkeiten zur Verfügung. In den Transformationsregeln konzeptuelles/internes Schema wird die Beziehung zwischen den physischen abgespeicherten Feldern und den Objekten des konzeptuellen Schemas angegeben. Muss zur Verbesserung des Systemverhaltens die physische Datenorganisation verändert werden, so müssen die Transformationsregeln ebenso geändert werden. Das konzeptuelle Modell bleibt aber unberührt. (z.B. Anordnen von Datafiles eines Tablesspaces auf eine andere Platte, aufgrund von Performance). Das externe Modell • Die integrierte Modellierung der Anwendungsdaten im konzeptionellen Modell bedeutet nicht, dass jeder Benutzer mit der Gesamtheit der Daten arbeiten muss oder darf. Jeder Benutzer bekommt nur die für ihn relevanten Daten (Sicht – View). (z.B. GIS oder Telefonbuch) • Die Beschreibung des externen Modells erfolgt in den externen Schemata. In den Transformationsregeln externes/konzeptuelles Schema muss angegeben werden auf welche Weise Entities und Beziehungen aus den Objekten des konzeptuellen Modells zusammengesetzt werden. Das externe Modell • Sprachemittel für den Zugriff auf die Datenbank DML und DDL Î Eigenständige Æ Abfrage Sprachen (Query Language) Æ SQL Î Nicht-eigenständige Æ Übliche Programmiersprachen mit DML-Befehlen Æ COBOL Æ PL/1 Î Eigenständige Abfragesprachen können meist in üblichen Programmiersprachen eingebettet sin. Æ rs.open „SELECT * FROM Projekt WHERE PR_Nr=„&piID“ Aufgaben eines Datenbanksystems • • Realisierung von Methoden zur interaktiven Verwaltung und Bereitstellung der Daten. Æ Implementierung der Datenmodelle und deren Zugriffsstrukturen mittels formalisierter Sprache. Æ Gezieltes Ausliefern von Daten an Anwendungen auf der Basis von Anfragen. Diese werden interpretiert und optimiert! Æ Sammeln statistischer Daten zwecks Optimierung. Æ Redundanzfreie Datenhaltung des gesamten Datenbestandes. Konsistenzsicherung Æ Daten werden gegenüber zuvor definierten Eigenschaften überwacht. (z.B. durch Daten Dictionary; enthält Beschreibungen der Daten zusammen mit etwaigen Konsistenzregeln) Æ Nur konsistente Änderungen sind möglich. Aufgaben eines Datenbanksystems • • Mehrbenutzerbetrieb Æ Skalierbarkeit des Systems. Spezielle Zugriffsstrategien sollen einen schnellen Zugriff auf die Daten ermöglichen. Z.B. durch die Optimierung von Benutzeranfragen. Æ Sicherstellen der Nebenläufigkeit von Anfragen. (gleichzeitige Änderung von Datensätzen) Æ Unterstützung von großen Datenbeständen. Datenschutz und Datensicherheit Æ Authentifizierung von Benutzern Æ Erweiterte Zugriffskontrolle (z.B. Digitale Signaturen) Æ Ausgefeilte Sicherungs- und Recovery-Möglichkeiten (z.B. Point in Time Sicherungen; Schattendatenbanken etc.) Æ Auch bei Systemabstürzen bleibt ein konsistenter Datenbankzustand erhalten. Weitere Komponenten des DBS • Tools Æ Abfragesysteme Æ Report – Writer Æ Tools für den Datenbankentwurf Æ CASE Tools • Utilities Æ Laderoutinen Æ Fehleranalyseroutinen Æ Routinen zur Datenreorganisation Æ Archivierungsroutinen Æ DC-Systeme (Data Communication Center) Terminals Beispiel: Tools eines DBS Datenunabhängigkeit • • • • • Die dreischichtige Architektur ist der Schlüssel zur Datenunabhängigkeit. Physikalische Datenunabhängigkeit: Änderungen der physikalischen Datenorganisation lassen sich durch Modifikationen der Transformationsregeln abfangen. Logische Datenunabhängigkeit bedeutet Isolierung der Anwendungsprogramme vor Änderungen des konzeptuellen Modells (Hinzufügen von Attributen,…) Statische und dynamische Datenunabhängigkeit Heutige DBMS bieten unterschiedliche Grade von Datenunabhängigkeit an. Ein Datenmodell für die konzeptionelle Ebene • • • Die Beschreibung der Datenwelt eines Anwendungsfalles erfolgt in den Begriffen eines Datenmodells. Das Datenmodell muss mächtig genug sein, um alle wichtigen Aspekte der Realwelt beschreiben zu können. (z.B. ERP) Es gibt derzeit kein kommerzielles DBS, das ein befriedigendes Datenmodell bzw. eine DML anbietet, die mächtig genug ist um alle Aspekte der Realwelt zu erfassen. Man unterscheidet daher ein semantisches Modell (Realwelt) vom konzeptuellen Modell in DBMS-Begriffen.