Datenbankentwurf und -programmierung © H P Engel 2016 1 Die Vorlesung Datenbankentwurf ... > behandelt ein in weiten Teilen eigenständiges Thema > ist für die IT-Praxis von großer Bedeutung: => Analyse betrieblicher Informationsstrukturen => Design komplexer Informationssysteme => Nutzen und Nutzung von Modellen in der IT > vermittelt .. - theoretisches Fundament - methodische Grundlagen - praktische Erfahrung > vermittelt nicht: - die interne Technik der Datenbanksysteme => Datenbanktechnik (4. Semester) > Script: www.onlinerep.de 2 Die Vorlesung Datenbankentwurf ... > ... besteht aus drei großen Themengebieten: I Grundlagen II Relationale Datenbanken und SQL III Datenmodellierung 3 Inhaltsübersicht 1 Grundlagen Kernleistungen, Transaktionsbegriff, Schemata, Datenunabhängigkeit, Datenbankmodelle, Literatur 2 Das relationale Datenbankmodell I Grundbegriffe, Structured Query Language (SQL), Arbeiten mit SQL, Normalformen 3 Das relationale Datenbankmodell II Beziehungstypen, Kardinalitäten, Joins 4 Fachliche Datenmodellierung Grenzen der relationalen Modellierung, ERM 5 Vom fachlichen zum relationalen Datenmodell Methodische Überführung ERM => RDBM 4 1 Grundlagen Literatur: > Kleuker, S.: Grundkurs Datenbankentwicklung Vieweg+Teubner, 2013 > Steiner, R.: Grundkurs Relationale Datenbanken Vieweg+Teubner, 2014 > Pollakowski, M.: Grundkurs MySQL und PHP Vieweg+Teubner, 2005 > MySQL Reference Manual (aktuelle Version im Netz) => www.mysql.com > ... und viele andere Bücher in der DHBW-Bibliothek > Nicht geeignet: Autoren/Werke, die das relationale Modell auch für die fachliche Datenmodelierung empfehlen 5 1 Grundlagen Warum Datenbanksysteme? Historie I: Isolierte IT-Anwendungen = Isolierte Datenbestände UB Produktion UB Vertrieb UB Rechnungswesen Zugriffsfunktionen Zugriffsfunktionen Zugriffsfunktionen Material Mitarbeiter Material Kunden Kunden Material IT-Anwendungen => Mehraufwand, Redundanzen, Inkonsistenzen, uneinheitliche Strukturen 6 1 Grundlagen Historie II: Zentralisierte Datenbestände = Konsistente, redundanzfreie, aktuelle Einzeldatenbestände; einheitliche Datenstrukturen UB Produktion UB Vertrieb Zugriffsfunktionen UB Rechnungswesen Zugriffsfunktionen Material Mitarbeiter Zugriffsfunktionen Kunden => Uneinheitliche Technik und Zugriffsverfahren => Koordination, Sicherheit ? 7 1 Grundlagen Historie III: Datenverwaltungssysteme = Trennung von Anwendung und Speichertechnik = definierte, optimierte, koordinierte Zugriffsverfahren UB Produktion Zugriffe Datenverwaltung + Zugr.funktionen Mitarbeiter Mitarbeiter UB Vertrieb UB Rechnungswesen Zugriffe Zugriffe Datenverwaltung + Zugr.funktionen Material Material Datenverwaltung + Zugr.funktionen Kunden Kunden => Konsistenz des Gesamtdatenbestandes? Gesamtüberblick? Konsistenz? Administration? 8 1 Grundlagen Historie IV: Datenbanksysteme = Konsistenter Gesamtdatenbestand, datenunabhängige Schnittstelle, zentrale Verwaltung UB Produktion UB Vertrieb Zugriffe Zugriffe UB Rechnungswesen Zugriffe Datenbankmanagementsystem Material Mitarbeiter DBA Kunden Datenbanken Datenbanksystem 9 1 Grundlagen Datenbanksysteme: Kernleistungen > Kapselung und Verbergen speichertechnischer Details > Beschränkung auf eine nicht-technische, "logische" Sicht auf gespeicherte Daten > Benutzergerechter, optimierter Zugriff > Standardisierte, "komfortable" Schnittstelle für die Definition, Manipulation und Verwaltung von Daten > Möglichkeit von Ad hoc-Abfragen (Queries) > Eignung auch für sehr große Datenbestände 10 1 Grundlagen > Gewährleistung eines redundanzfreien, fehlerfreien und konsistenten Datenbestands > Gewährleistung der Datensicherheit durch Backup-, Recovery- und Transaktions* -Verfahren > Gewährleistung des Datenschutzes mit Hilfe differenzierter Zugangsberechtigungen und -prüfungen * siehe nachfolgende Folien Bei dieser Gelegenheit: Wie werden Datenschutz und Datensicherheit voneinander unterschieden? 11 1 Grundlagen Transaktionen > Der Begriff der Transaktion beschreibt eine abgeschlossene Aktion, die auf einen Datenbestand wirkt und jederzeit (d.h. insbesondere im Fall von Fehlern oder Ausfällen) einen geordneten Zustand der Daten hinterlässt > Das Gegenteil wären unvollständige Operationen oder unabgestimmte Operationen mehrerer Datenbanknutzer bzw. -anwendungen, die sich gegenseitig Konkurrenz machen und je nach Reihenfolge oder Wechselwirkung einen nicht vorhersehbaren und/oder fehlerhaften Zustand der Daten hinterlassen 12 1 Grundlagen Das ACID-Prinzip Die Kernforderungen an eine Transaktion werden gern durch das ACID-Prinzip beschrieben: > Atomicity (Atomarität) Transaktionen sind atomare, d.h. nicht weiter zerlegbare Operationen auf einen Datenbestand > Consistency (Konsistenz) Transaktionen und Transaktionssequenzen hinterlassen immer einen konsistenzen Datenbestand; ist dies aufgrund eines Fehlers nicht gewährleistet, werden die entsprechenden Transaktionen bzw. Transaktionssequenzen vollständig rückgängig gemacht ("Rollback") 13 1 Grundlagen > Isolation (Eigenständigkeit) Auch bei gleichzeitig durchgeführten Operationen auf einen Datenbestand dürfen keine unkalkulierbaren Wechselwirkungseffekte entstehen, d.h. jede Einzeloperation muss so wirken, als würde nur sie allein auf den Datenbestand wirken, ... bis auf den einzelnen Datensatz hinunter! > Durability (Dauerhaftigkeit, Persistenz) Die Wirkung einer erfolgreichen Transaktion bleibt "auf ewig" erhalten, selbst nach einem Systemfehler (z.B. Stromausfall); aufgehoben werden kann sie nur durch eine weitere (gegenläufige) Transaktion 14 1 Grundlagen Die Implementierung der ACID-Prinzipien in Datenbanksystemen dienen der Verhinderung von Fehlerzuständen. Beipiele: A nicht gewährleistet: Nach einem Stromausfall ist ein kurz zuvor eingegebener Adressdatensatz nur … C nicht gewährleistet: In Rechnungsdaten fehlen zu einzelnen Rechnungspositionen die … I nicht gewährleistet: Das DBMS lässt es zu, dass ein Datensatz zur selben Zeit … D nicht gewährleistet: Nach einem Systemausfall und Recovery sind zuvor "erfolgreich" gespeicherte Datensätze ... 15 1 Grundlagen Datenbanksysteme: Grundlegender Aufbau Anwendungen DBA Ad hocAbfragen Datenbankmanagementsystem (DBMS) Betriebssystem Metadaten (Data Dictionary) Nutzdaten (Datenbasis) Datenbanksystem Datenbanken 16 1 Grundlagen Datenbanken: Drei Ebenen der Beschreibung Bei jeder Datenbank lassen sich drei Beschreibungsebenen (Schichten) unterscheiden: 1) Die externe Ebene beschreibt die fachliche Sicht einzelner Anwender(-gruppen) auf den Datenbestand. Beispiel: Den Personalsachbearbeiter interessieren neben den Grunddaten der Mitarbeiter v.a. Lohn- und Gehalts-, Qualifikations- und Beschäftigungsdaten, während der Betriebsarzt mit Daten zum Arbeitsplatz und Einsatzort, gesundheitlichen Risiken und Untersuchungsergebnissen umgeht. 17 1 Grundlagen 2) Die konzeptuelle Ebene beschreibt eine konsistente fachliche Gesamtsicht, die die einzelnen Sichten der externen Ebene integriert. Beispiel: Um die Arbeit mehrerer organisatorischer Einheiten eines Unternehmens zu unterstützen, müssen zu einem Mitarbeiter - Grunddaten, - und Lohn- und Gehaltsdaten, - und arbeitsmedizinische Daten, - und evtl. noch weitere Daten berücksichtigt werden. 18 1 Grundlagen 3 ) Auf der internen Ebene (auch "physische Ebene" genannt) wird beschrieben, wie und wo die Daten einer Datenbank gespeichert werden. Hier werden Datenstrukturen, Datentypen, Index- und andere Hilfsdateien, Zugriffspfade und Adressen festgelegt und gehandhabt. 19 1 Grundlagen Anwender Anwendungen Sicht A Sicht B Sicht C Externe Ebene Konzeptuelle Ebene Interne Ebene 20 1 Grundlagen Zusammenhänge: > Sowohl auf der externen als auch auf der konzeptuellen Ebene wird nur beschrieben, was in einer Datenbank abgelegt wird, nicht wie etwas gespeichert ist. > Alle Sichten der externen Ebene müssen sich auf der konzeptuellen Ebene wiederfinden. Die konzeptuelle Ebene vermittelt eine Gesamtsicht auf die Informationen eines gesamten Anwendungsbereichs (=> "Unternehmensdatenmodell"). 21 1 Grundlagen > Auf der konzeptuellen Ebene unterscheidet man nochmals … - eine datenbankunabhängige fachliche Ebene ... Beispiel: Allgemeinverständliche Beschreibung von Personaldaten, wie sie im Unternehmen Verwendung finden. - von einer datenbankabhängigen logischen Ebene Beispiel: Personaldaten, in Form von Tabellen beschrieben. Dabei wird z.B. festgelegt, dass für den Nachnamen eines Mitarbeiters eine Zeichenkette mit maximal 35 Zeichen verwendet werden soll. Ein schneller Zugriff soll neben der Personalnummer auch über die Sozialversicherungsnummer möglich sein. 22 (datenbankunabhängig) Interne Ebene (datenbankabhängig) Konzeptuelle Ebene Fachliche Ebene Externe Ebene Logische Ebene 1 Grundlagen 23 1 Grundlagen > Diese weitergehende Unterscheidung spielt v.a. bei der Klassifizierung von Dokumenten eine Rolle, die betriebliche Informationen ganzheitlich beschreiben. > Im Datenbankbereich werden solche Dokumente generell als Schemata oder Datenmodelle bezeichnet. > Entsprechend können . . . . externe, fachliche konzeptuelle, logische konzeptuelle und interne Schemata zur Beschreibung von betrieblichen Informationen bzw. Daten existieren. 24 1 Grundlagen Schemata und ihre primären Nutzer: Nutzer: Sachbearbeiter Analytiker Einkauf Personal Vertrieb Externe Schemata Fachliche... konzeptuelle Schemata DB-Entwickler DB-Admin Logische... Interne Schemata 25 1 Grundlagen Beispiel: > In einem Unternehmen wurden externe Schemata für die fachlichen Sichten des Einkaufs, der Personalververwaltung, der Produktion und des Vertriebs erstellt. > Ein fachliches konzeptuelles Schema integriert die externen Schemata in ein Unternehmensdatenmodell. > Eines oder mehrere logische konzeptuelle Schemata bilden dieses Modell in der "Sprache" der aktuell im Unternehmen eingesetzten Datenbanktechnologie ab. > Alle Strukturen und Verfahren der Datenspeicherung sind in internen Schemata beschrieben, die der DBA und technische Mitarbeiter der IT einsehen und (z.B. zwecks Optimierung) verändern können. 26 1 Grundlagen Das Hauptmotiv für die Mehr-Ebenen-Betrachtung besteht in einer klaren Trennung zwischen den Ebenen, hier zwischen den beiden fachlichen, der logischen und der physikalischen Sicht auf betriebliche Informationen. In der Praxis erhält diese Trennung durch die Prinzipien der Datenunabhängigkeit eine große Bedeutung. Man unterteilt hierbei: > Logische Datenunabhängigkeit: Änderungen auf der logischen Ebene dürfen keinen Einfluss auf die fachliche Sicht haben > Physische Datenunabhängigkeit: Änderungen auf der physischen Ebene dürfen keinen Einfluss auf die logische Ebene haben 27 1 Grundlagen F achlich Logische Datenunabhängigkeit L ogisch Physische Datenunabhängigkeit I ntern 28 1 Grundlagen > Auch in anderen Bereichen der IT dient die Unterscheidung von Ebenen und die Minimierung von Beziehungen zwischen den Ebenen der Gewinnung von Überschaubarkeit und Isolation. > So kann die Gewährleistung der beiden Datenunabhängigkeiten hohe Kosten sparen, z.B. … . beim Wechsel der Speichertechnik (Server, Medien), . beim Wechsel oder Update von Betriebssystemen, . beim Wechsel oder Update des DBMS, da sich diese Eingriffe nur auf die jeweils betroffene Ebene auswirken. > Warum können die Prinzipien nicht auch in umgekehrter Richtung gelten? ? 29 1 Grundlagen Datenbankmodelle > Jedes konkrete Datenbanksystem basiert auf einer von 4 fundamentalen Klassen (Datenbankmodelle) solcher Systeme, die die grundlegende Art der Beschreibung von Datenbankinhalten (und deren Möglichkeiten und Grenzen) bestimmt. > Gegenwärtig existieren folgende Datenbankmodelle: - Das Das Das Das hierarchische Datenbankmodell (veraltet) Netzwerk-Modell (veraltet) relationale Datenbankmodell (aktuell) objektorientierte Datenbankmodell (Zukunft?) 30 1 Grundlagen > Die Entscheidung für ein bestimmtes Datenbankmodell hat keine Auswirkungen auf die fachliche Sicht; es bestimmt aber die logische Sicht > Fachliche Schemata werden mit abstrakten Beschreibungsmethoden erzeugt, deren Vorteil darin besteht, dass ihre Erzeugnisse für alle Datenbankmodelle geeignet sind. Beispiele: Entity Relationship Modeling (ERM) Unified Modelling Language (UML) Semantic ERM (SERM) Semantiv Data Modelling (SeDaM) > Die 4 Datenbankmodelle dürfen nicht mit konkreten Schemata (Datenmodellen) verwechselt werden. 31 1 Grundlagen > Beim (I) hierarchischen Datenbankmodell müssen Beziehungen zwischen Objekten immer in einer Baumstruktur abgebildet werden. Beispiel: Datenbestand einer Bibliothek Leser hat entleiht logische Ebene = Interne Ebene Anschrift Einfach: Anschrift eines Lesers, entliehene Bücher eines Lesers, Autoren eines Buches. Buch haben hat Autor Umständlich: Bücher eines Autors, Entleiher eines Buches 32 1 Grundlagen > Beim (II) Netzwerkmodell sind netzförmige Informationsstrukturen modellierbar. Die hierfür notwendigen "Zugriffe" in beide Richtungen einer Beziehung werden technisch über "Kett-Records" implementiert: verfasst von entleiht Leser entliehen von Buch hat verfasst Logische Ebene Person Interne Ebene Leser tätigt Entleihe Buch hat Person hat ist Autor 33 1 Grundlagen > Beim (III) relationalen Datenbankmodell werden Informationsstrukturen in Relationen dargestellt, d.h. in tabellenartigen Beschreibungen zusammengehörender Objekteigenschaften Beispiel: Personen PNr Nachname 4711 Semple, Jr. Lorenzo 4740 Rayfiel David Vorname Bücher ISBN Titel 3-09.. Three Days Of The Condor 3-11.. Operating Systems Logische Ebene Die interne Ebene hat keinen Einfluss mehr auf die Modellierung Das relationale Datenbankmodell besitzt zur Zeit die größte praktische Bedeutung ! 34 1 Grundlagen > Beim (IV) objektorientierten Datenbankmodell werden analog zum Paradigma der objektorientierten Programmierung zusätzlich zu Objekteigenschaften und -beziehungen objektspezifische Operationen ("Methoden") modelliert. Beispiel: Logische Ebene Leser Nr Name Vorname Adresse ändern Mahnung erstellen Buchexemplar entleiht ausgeliehen an InvNr Titel Erscheinungsjahr Buch entleihen Buch zurückgeben 35 1 Grundlagen Logischerweise sind auch Datenbankmanagementsysteme immer einem bestimmten Datenbankmodell zuzuordnen. Beispiele: Hierarchische Datenbankmanagementsysteme wie IMS Netzwerkdatenbankmanagementsysteme wie IDMS Relationale Datenbankmanagementsysteme (RDBMS) wie Adabas, DB2, Ingres, MySQL, Oracle, ... Objektorientierte Datenbankmanagementsysteme wie … ? 36 1 Grundlagen Von der Problemstellung zur Datenbank: > Prinzipiell ist es möglich, zu einer Problemstellung unmittelbar ein datenbankabhängiges logisches Schema aufzustellen und mit Hilfe eines dazu passenden DBMS zu implementieren. > Da logische Schemata i.d.R. jedoch nicht die Aussagenfülle und Mächtigkeit fachlicher Schemata besitzen, führt dies nur bei einfach strukturierten Datenbeständen zum Erfolg. > Für komplexe Fälle sollte man sich an ein etabliertes Vorgehensmodell halten. 37 1 Grundlagen datenbankunabhängig Vorgehensmodell: Reale Welt Abgrenzung Relevanter Realitätsausschnitt ("Miniwelt") Erhebung fachlicher Sichten / Anford.analyse Externe Schemata Konzeptuelles Design (Konsolidierung/Integration) Fachliches konzeptuelles Schema datenbankabhängig Logisches Design Logische konzeptuelle Schemata Implementierung / Optimierung Interne Schemata Datenbanksystem 38 1 Grundlagen Was wird für die Anwendung des Vorgehensmodells bei einer konkreten Aufgabe benötigt? (1) Ansprechpartner/Fachwissen zum Problembereich (2) Methoden zur Analyse und Dokumentation fachlicher (d.h. externer bzw. fachlich konzeptueller) Schemata (3) Entscheidung bzgl. eines Datenbankmodells und damit einer Methode zur Beschreibung logischer Schemata (4) Verfahren zur Überführung fachlicher Schemata in logische Schemata (5) Ein DBMS inkl. Schnittstelle zur Implementierung logischer und interner Schemata 39 1 Grundlagen Meilenstein I Die Grundlagen von Datenbanksystemen sind bekannt > > > > > > Sinn und Zweck eines Datenbanksystems Grundlegender Aufbau Architektur, Ebenen-Modell Sichten/Schemata, Datenunabhängigkeit Datenbankmodelle Vorgehensmodell der Datenbankentwicklung 40