Inhalt der Vorlesung Einleitung Einleitung Literatur Pierre Fierz Pierre Fierz Filesysteme 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 • 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.1 Bewertung 1.2 Einleitung Einleitung Pierre Fierz Pierre Fierz Chapter 1 Filesysteme • 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% Filesysteme Einleitung Datenbanken Architektur von Datenbanksystemen Physische Datenunabhängigkeit Datenbanken Architektur von Datenbanksystemen Lecture Datenbanken 14.02.2014 Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) Der Datenbank Administrator (DBA) Pierre Fierz Berner Fachhochschule Technik und Informatik 1.3 1.4 Contents Einleitung Einleitung Outline Pierre Fierz Pierre Fierz Filesysteme 1 Filesysteme Filesysteme 1 Filesysteme Datenbanken Datenbanken Architektur von Datenbanksystemen 2 Datenbanken Physische Datenunabhängigkeit Architektur von Datenbanksystemen Physische Datenunabhängigkeit 2 Datenbanken Der Datenbank Administrator (DBA) Der Datenbank Administrator (DBA) 3 Architektur von Datenbanksystemen 3 Architektur von Datenbanksystemen 4 Physische Datenunabhängigkeit 4 Physische Datenunabhängigkeit 5 Der Datenbank Administrator (DBA) 5 Der Datenbank Administrator (DBA) 1.5 Historisches Einleitung 1.6 Zugriff auf gemeinsame Daten in einem Filesystem Pierre Fierz Pierre Fierz Filesysteme Filesysteme Zugriffsregelung Datenbanken • Ab 18. Jhrd.: Lochkarten eingesetzt bei Webstühlen insbesondere der Jacquard Webstuhl • 1956: Erfindung der Festplatte erste Filesysteme Einleitung Applikation 1 Datenbanken Architektur von Datenbanksystemen Architektur von Datenbanksystemen Physische Datenunabhängigkeit Physische Datenunabhängigkeit Applikation 2 Der Datenbank Administrator (DBA) Der Datenbank Administrator (DBA) • 1968 – 1975: Hierarchisches Datenmodell • 1970: Edgar Frank Codd: "A Relational Model of Data for Applikation 3 Large Shared Data Banks". • 1975 – 1980: Netzwerk Datenmodell • Ab 1980: Durchbruch des relationalen Datenmodells Daten 1.7 Gemeinsame Daten 1.8 Eigenschaften des Filesystems Einleitung Outline Pierre Fierz Pierre Fierz Filesysteme Filesysteme 1 Filesysteme Datenbanken • Die Applikation regelt den Zugriff auf die Daten selbst • Daten sind sehr oft redundant • Das Wiederverwenden der Daten in anderen Einleitung Architektur von Datenbanksystemen Physische Datenunabhängigkeit Architektur von Datenbanksystemen 2 Datenbanken Der Datenbank Administrator (DBA) Applikationen ist schwierig Datenbanken Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) 3 Architektur von Datenbanksystemen • Die Datenintegrität ist oft nicht gewährleistet • Auch kleine Änderungen an der Datenstruktur führen zu 4 Physische Datenunabhängigkeit einem erheblichen Programmieraufwand. 5 Der Datenbank Administrator (DBA) 1.9 Eigenschaften einer Datenbank Einleitung 1.10 Definition Datenbank 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. Einleitung Pierre Fierz Filesysteme Filesysteme Datenbanken Datenbanken Architektur von Datenbanksystemen Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) 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 • Die Integrität der Daten wird von der Datenbank garantiert • Dem Datenbank-Management-System, (DBMS) das gemäss einer vorgegebenen Beschreibung Daten speichern, suchen, löschen oder ändern kann. • Die Daten sind zeitlich persistent und nicht an die Lebensdauer eines Programms gebunden. • Den verschiedenen Benutzern stehen spezifische Datensichten zur Verfügung 1.11 1.12 Schematische Darstellung eines Datenbanksystems Einleitung Outline Pierre Fierz Pierre Fierz Filesysteme Filesysteme 1 Filesysteme Datenbanken Architektur von Datenbanksystemen Applikation1 Daten Applikation 2 Hilfsdaten Datenbank−Managementsystem Datenbank Einleitung Physische Datenunabhängigkeit Datenbanken Architektur von Datenbanksystemen 2 Datenbanken Der Datenbank Administrator (DBA) Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) 3 Architektur von Datenbanksystemen Applikation 3 4 Physische Datenunabhängigkeit 5 Der Datenbank Administrator (DBA) 1.13 Einleitung ANSI-SPARC-Architektur (1) 1.14 ANSI-SPARC-Architektur (2) Pierre Fierz Einleitung Pierre Fierz • Die logische Ebene (LDS) beschreibt die Struktur der Daten. 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) • Zur Beschreibung der Datenstruktur auf dieser Ebene wird Filesysteme Datenbanken meistens das relationale Modell verwendet. Architektur von Datenbanksystemen Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) Externe Ebene LDS Logische Ebene PDS Interne Ebene (Physische Ebene) 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, Speichermedium Schnittstellen usw. • Die Werkzeuge sind hier Views, SQL und Schnittstellen. 1.15 1.16 Outline Einleitung Datenabhängige Applikationen (1) Pierre Fierz 1 Filesysteme Pierre Fierz Filesysteme Filesysteme Datenbanken Datenbanken Architektur von Datenbanksystemen 2 Datenbanken Einleitung Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) 3 Architektur von Datenbanksystemen 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. 4 Physische Datenunabhängigkeit get from KUNDE key = ’Meyer’ with index NAME; 5 Der Datenbank Administrator (DBA) 1.17 Datenabhängige Applikationen (2) Einleitung 1.18 Definition der physischen Datenunabhängigkeit Pierre Fierz 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 Filesysteme Datenbanken Datenbanken Architektur von Datenbanksystemen Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) 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.19 1.20 Datenunabhängige Applikationen Einleitung Datenunabhängigkeit: Fazit Pierre Fierz Pierre Fierz • Beim Suchen eines Kunden wird beim Filesystem der Filesysteme Suchen eines Kunden mit SQL Index angegeben. Datenbanken Architektur von Datenbanksystemen SELECT * FROM KUNDE WHERE Name = ’Meyer’; Einleitung • Wird der Index fallengelassen, so muss das Programm angepasst werden. Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) • 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) Auslisten der Kundenumsätze mit SQL • Wird über den Umsatz ein Index gelegt, so hat dies beim SELECT FROM KUNDE WHERE Umsatz >= Z1 AND Umsatz <= Z2 ORDER BY Umsatz; 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.21 Outline Einleitung 1.22 Aufgabe des Datenbank Administrators Pierre Fierz Pierre Fierz Filesysteme 1 Filesysteme DBA Datenbanken Filesysteme Datenbanken Architektur von Datenbanksystemen 2 Datenbanken Einleitung Physische Datenunabhängigkeit Der Datenbank Administrator (DBA) 3 Architektur von Datenbanksystemen 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 4 Physische Datenunabhängigkeit • Datenschutz und -sichrheit durch Rechtevergabe • Datensicherung 5 Der Datenbank Administrator (DBA) • Leistungsüberwachung mit Hilfe von Statistiken 1.23 1.24