Inhalt der Vorlesung Einleitung Pierre Fierz Filesysteme 1 Datenmodellierung (Entity-Relationship Modell) Datenbanken 2 Das relationale Modell Architektur von Datenbanksystemen 3 Relationenalgebra Physische Datenunabhängigkeit 4 Datenbanksprache (SQL) Der Datenbank Administrator (DBA) 5 Normalisierung 6 Vom ERM zum Datenbankschema 7 Routinen und Trigger 8 SQL in Programmiersprachen 9 Transaktionstheorie 10 Java Persistence API 1.1 Literatur Einleitung Pierre Fierz • Original Artikel • E.F. Codd. A relational model for large shared data banks. Communications of the ACM, 13(6):9–36, Juni 1970. • P.P. Chen. The entity-relationship model – towards a unified view of data. ACM Transactions on Datbase Systems, 1(1):9–36, 1976. Filesysteme Datenbanken Architektur von Datenbanksystemen Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) • Bücher • R. Elmasri and S.B. Navathe. Fundamentals of Database Systems. Addison Wesley, 5 edition, 2007. ISBN 0-321-41506-X. • G. Vossen. Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme. Oldenburg Verlag, München Wien, 5 edition, 2008. • SQL:2011 ISO/IEC 9075:2011 ist die aktuelle Revision des SQL-Standards. 1.2 Bewertung Einleitung Pierre Fierz Filesysteme Datenbanken • Prüfung während des Semesters Dauer: 90 Minuten Hilfsmittel: Skript, Slides und eigene Notizen Gewicht: 25% • Schlussprüfung Dauer: 120 Minuten Hilfsmittel: Skript, Slides und eigene Notizen Gewicht: 75% Architektur von Datenbanksystemen Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) 1.3 Einleitung Pierre Fierz Chapter 1 Filesysteme Einleitung Datenbanken Architektur von Datenbanksystemen Lecture Datenbanken 14.02.2014 Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) Pierre Fierz Berner Fachhochschule Technik und Informatik 1.4 Contents Einleitung Pierre Fierz Filesysteme 1 Filesysteme Datenbanken Architektur von Datenbanksystemen 2 Datenbanken Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) 3 Architektur von Datenbanksystemen 4 Physische Datenunabhängigkeit 5 Der Datenbank Administrator (DBA) 1.5 Outline Einleitung Pierre Fierz Filesysteme 1 Filesysteme Datenbanken Architektur von Datenbanksystemen 2 Datenbanken Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) 3 Architektur von Datenbanksystemen 4 Physische Datenunabhängigkeit 5 Der Datenbank Administrator (DBA) 1.6 Historisches Einleitung Pierre Fierz Filesysteme Datenbanken • Ab 18. Jhrd.: Lochkarten eingesetzt bei Webstühlen insbesondere der Jacquard Webstuhl • 1956: Erfindung der Festplatte erste Filesysteme Architektur von Datenbanksystemen Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) • 1968 – 1975: Hierarchisches Datenmodell • 1970: Edgar Frank Codd: "A Relational Model of Data for Large Shared Data Banks". • 1975 – 1980: Netzwerk Datenmodell • Ab 1980: Durchbruch des relationalen Datenmodells 1.7 Zugriff auf gemeinsame Daten in einem Filesystem Einleitung Pierre Fierz Filesysteme Zugriffsregelung Applikation 1 Datenbanken Architektur von Datenbanksystemen Physische Datenunabhängigkeit Applikation 2 Der Datenbank Administrator (DBA) Applikation 3 Daten Gemeinsame Daten 1.8 Eigenschaften des Filesystems Einleitung Pierre Fierz Filesysteme Datenbanken • Die Applikation regelt den Zugriff auf die Daten selbst • Daten sind sehr oft redundant • Das Wiederverwenden der Daten in anderen Architektur von Datenbanksystemen Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) Applikationen ist schwierig • Die Datenintegrität ist oft nicht gewährleistet • Auch kleine Änderungen an der Datenstruktur führen zu einem erheblichen Programmieraufwand. 1.9 Outline Einleitung Pierre Fierz Filesysteme 1 Filesysteme Datenbanken Architektur von Datenbanksystemen 2 Datenbanken Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) 3 Architektur von Datenbanksystemen 4 Physische Datenunabhängigkeit 5 Der Datenbank Administrator (DBA) 1.10 Eigenschaften einer Datenbank Einleitung Pierre Fierz • Die Daten werden klar strukturiert. Es gibt keine Redundanz • Die Datenstruktur wird zentral gespeichert und ist unabhängig von der Applikation. - Die Anwendungsprogramme sind “datenunabhängig”, d.h. interne Reorganisationen innerhalb des Datenbanksystems tangieren die Anwendungsprogramme nicht. - Die Datenbank ist leicht erweiterbar. Filesysteme Datenbanken Architektur von Datenbanksystemen Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) • Die Integrität der Daten wird von der Datenbank garantiert • Die Daten sind zeitlich persistent und nicht an die Lebensdauer eines Programms gebunden. • Den verschiedenen Benutzern stehen spezifische Datensichten zur Verfügung 1.11 Definition Datenbank Einleitung Pierre Fierz Filesysteme Datenbanken Definition Eine Datenbank ist ein System zur Beschreibung, Speicherung und Wiedergewinnung von umfangreichen Datenmengen, die von mehreren Anwendungen (– gleichzeitig –) benutzt werden können. Sie besteht aus zwei Hauptteilen: Architektur von Datenbanksystemen Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) • Den eigentlichen Daten und • Dem Datenbank-Management-System, (DBMS) das gemäss einer vorgegebenen Beschreibung Daten speichern, suchen, löschen oder ändern kann. 1.12 Schematische Darstellung eines Datenbanksystems Einleitung Pierre Fierz Filesysteme Datenbanken Architektur von Datenbanksystemen Applikation1 Daten Hilfsdaten Datenbank−Managementsystem Datenbank Applikation 2 Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) Applikation 3 1.13 Outline Einleitung Pierre Fierz Filesysteme 1 Filesysteme Datenbanken Architektur von Datenbanksystemen 2 Datenbanken Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) 3 Architektur von Datenbanksystemen 4 Physische Datenunabhängigkeit 5 Der Datenbank Administrator (DBA) 1.14 Einleitung ANSI-SPARC-Architektur (1) Pierre Fierz Im Jahre 1975 veröffentlichte das American National Standard Institut (ANSI) eine Studie bezüglich der Architektur eines Datenbanksystems. Das vorgeschlagene Konzept ist unter dem Namen 3-Schemen-Architektur bekannt DBMS EDS (View) Die Welt (Realität) EDS (View) EDS (View) Filesysteme Datenbanken Architektur von Datenbanksystemen Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) Externe Ebene LDS Logische Ebene PDS Interne Ebene (Physische Ebene) Speichermedium 1.15 ANSI-SPARC-Architektur (2) Einleitung Pierre Fierz • Die logische Ebene (LDS) beschreibt die Struktur der Daten. • Zur Beschreibung der Datenstruktur auf dieser Ebene wird meistens das relationale Modell verwendet. Filesysteme Datenbanken Architektur von Datenbanksystemen • Auf der internen Ebene wird die physische Datenstruktur (PDS) der Daten auf externen Speichermedien festgehalten. • Die physische Datenstruktur wird von der logischen Datenstruktur abgeleitet. Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) • Die auf dieser Ebene eingesetzten Strukturarten sind Files, B-Trees, Hashtabellen usw. • Die externe Ebene stellt den einzelnen Benutzern und Anwendungen individuelle Benutzersichten zur Verfügung. • Beispiele sind: Formulare, Masken-Layouts, Listen, Schnittstellen usw. • Die Werkzeuge sind hier Views, SQL und Schnittstellen. 1.16 Outline Einleitung Pierre Fierz Filesysteme 1 Filesysteme Datenbanken Architektur von Datenbanksystemen 2 Datenbanken Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) 3 Architektur von Datenbanksystemen 4 Physische Datenunabhängigkeit 5 Der Datenbank Administrator (DBA) 1.17 Datenabhängige Applikationen (1) Einleitung Pierre Fierz Filesysteme Datenbanken In einer datenabhängigen Applikation, sind Organisation und Zugriff auf die Daten in der Logik der Programme eingebaut. Zugriff auf Kunden Architektur von Datenbanksystemen Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) Wir nehmen an, dass über das Feld Name des Kundenfiles einen B-Tree existiert. Will man den Kunden “Meyer” suchen, so wird man diese Tatsache ausnutzen und ein Befehl der folgenden Form schreiben. get from KUNDE key = ’Meyer’ with index NAME; 1.18 Datenabhängige Applikationen (2) Einleitung Pierre Fierz Anzeigen des Umsatzes der Kunden Eine weitere Aufgabe ist das Auslisten aller Kunden mit einem Umsatz, der zwischen zwei gegebenen Zahlen Z1 und Z2 liegt. Die Kunden sollen nach Umsatz sortiert ausgegeben werden. Der folgende Pseudocode löst diese Aufgabe in einem Filesystem. getfirst from KUNDE; while (EOF == false) { if (Umsatz >= Z1 && Umsatz <= Z2) put to TMP; getnext from KUNDE; } sort TMP; getfirst from TMP; while (EOF == false) { print(info); getnext from TMP; } Filesysteme Datenbanken Architektur von Datenbanksystemen Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) 1.19 Definition der physischen Datenunabhängigkeit Einleitung Pierre Fierz Filesysteme Datenbanken Definition Datenunabhängigkeit (engl.: data independence) beschreibt, zu welchem Grad ein Benutzer oder ein Programm auf die Daten eines Datenbanksystems zugreifen kann, ohne Details der systemtechnischen Realisierung der Datenspeicherung und des Datenzugriffs zu kennen. Architektur von Datenbanksystemen Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) Änderungen an der physischen Organisation der Daten führen nicht zu Änderungen in der Software. Was ändern kann ist die Zugriffsgeschwindigkeit auf die Daten. 1.20 Datenunabhängige Applikationen Einleitung Pierre Fierz Filesysteme Suchen eines Kunden mit SQL Datenbanken Architektur von Datenbanksystemen SELECT * FROM KUNDE WHERE Name = ’Meyer’; Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) Auslisten der Kundenumsätze mit SQL SELECT FROM KUNDE WHERE Umsatz >= Z1 AND Umsatz <= Z2 ORDER BY Umsatz; 1.21 Datenunabhängigkeit: Fazit Einleitung Pierre Fierz • Beim Suchen eines Kunden wird beim Filesystem der Index angegeben. • Wird der Index fallengelassen, so muss das Programm angepasst werden. • In der SQL-Version wird der “Optimizer” entscheiden, wie die Daten gefunden werden (über den Index oder sequentiell) Filesysteme Datenbanken Architektur von Datenbanksystemen Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) • Wird über den Umsatz ein Index gelegt, so hat dies beim Filesystem nur einen Einfluss, wenn der Code im Programm entsprechend angepasst wird. • Bei der SQL-Version wird wieder der Optimizer entscheiden, ob ein Index ausgenutzt werden kann. Der Code muss nicht angepasst werden. 1.22 Outline Einleitung Pierre Fierz Filesysteme 1 Filesysteme Datenbanken Architektur von Datenbanksystemen 2 Datenbanken Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) 3 Architektur von Datenbanksystemen 4 Physische Datenunabhängigkeit 5 Der Datenbank Administrator (DBA) 1.23 Aufgabe des Datenbank Administrators Einleitung Pierre Fierz DBA Filesysteme Datenbanken Bei grösseren Datenbanken ist eine Stelle notwendig, die die zentralen Wartungsaufgaben des Datenbanksystems wahrnimmt: der Datenbankadministrator. Datenbankadministrator ist dabei als Rolle zu verstehen – es muss sich dabei nicht um eine Person handeln. Der Datenbankadministrator hat die folgenden Aufgaben: Architektur von Datenbanksystemen Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) • Erstellen und warten der logischen Datenstrukturen • Definieren und warten der physischen Datenstrukturen • Datenschutz und -sichrheit durch Rechtevergabe • Datensicherung • Leistungsüberwachung mit Hilfe von Statistiken 1.24