Datenbanken Dateien und Datenbanken: 1 • Professionelle Anwendungen benötigen dauerhaft verfügbare, persistent gespeicherte Daten. • Datenbank-Systeme bieten die Möglichkeit, Daten persistent zu speichern. • Wesentliche Aspekte zum Aufbau von Datenbanken: Datenmodellierung zur Strukturierung der Realität Datendefinition zur Eingabe der Daten in ein Datenbank-System Datenmanipulation zur Bearbeitung von Daten in Datenbank-Systemen Architektur von Datenbank-Systemen Systeme zur Datenmodellierung und -bearbeitung Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken Datenbanken Arbeiten mit Dateien: • Datenstruktur ist im Programm definiert. • Bei Änderung der Datenstruktur muss jedes Anwendungsprogramm angepasst werden. • Daten werden mehrfach abgespeichert: • 2 Redundanz Gefahr der Inkonsistenz Jeder Nutzer der Daten muss deren physische Struktur kennen. Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken Datenbanken Problematik des Arbeitens mit Dateien im Beispiel: Anwendungen Dateien Problematik: • Auf die zweite Datei greifen zwei Anwendungen zu. In beiden muss die Datenstruktur definiert werden. • Gefahr der Mehrfachabspeicherung (Redundanz) ist gegeben, dies führt zu inkonsistenten Daten (eigentlich gleiche Daten haben unterschiedliche Werte). 3 Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken Datenbanken Lösung durch Verwendung von Datenbankmanagementsystemen: DB DBMS Anwendungen Lösung: • Anwendungen greifen über das Datenbankmanagementsystem (DBMS) auf Daten zu. • DBMS ist Zugriffsfilter. • Identische Daten werden nur ein Mal abgespeichert (keine Redundanz). • Änderungen an der Datenstruktur müssen nur ein Mal im Datenbanksystem geändert werden. 4 Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken Datenbanken Eigenschaften von Datenbank-Systemen im Vergleich zu Datei-Systemen 5 Datenbank-System Datei-System Abstraktion Logisch Physisch Abspeicherung In der Datenbank In Dateien Beschreibung der Daten Im zentralen Data Dictionary In Anwendungsprogrammen Zugriff Über das Datenbanksystem Über das Betriebssystem Dienstprogramme (z.B. Backup, Recovery) Über das DatenbankSystem Eigene Programmierung Verknüpfung der Daten Über das DatenbankSystem Eigene Programmierung Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken Datenbanken Vorteile von Datenbank-Systemen • Redundanzvermeidung: Ein Fakt der realen Welt ist nur ein Mal in der Datenbank abgelegt. • Vermeidung von Inkonsistenzen: Keine widersprüchlichen Informationen zum gleichen Objekt, z.B. Adresse ist in der Datei Kundenstamm und der Datei Bestellinfo gespeichert (redundant). Kunde zieht um. In Kundenstamm wird die Adresse verändert, in Bestellinfo nicht (vergessen). Durch zweimalige (redundante) Datenhaltung gibt es keine eindeutige Adresse für den Kunden und eine Lieferung kann z.B. nicht zugestellt werden. • Einheitliche Sicht auf die Daten: Dieser Standard führt z.B. zu der einfachen Möglichkeit des Austausches von Daten zwischen verschiedenen Systemen. 6 Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken Datenbanken Vorteile von Datenbank-Systemen (Fortsetzung) Datenunabhängigkeit zwischen verschiedenen Ebenen. 7 Anwendungen müssen sich nicht um Details der Speicherstruktur und Zugriffstechniken kümmern. Änderungen von Speicherstrukturen, Attributanzahl etc. sind i.d.R. ohne Auswirkungen auf Anwendungsprogramme, z.B. die Länge des Nachnamens wird nachträglich von 30 auf 40 Zeichen gesetzt. Programme und Daten bleiben erhalten. Ein zusätzliches Attribut wird eingeführt. Programme und Daten müssen nur bzgl. dieses Attributes angepasst werden. Jedoch: Streichen eines Attrbutes hat Anpassung des Anwendungsprogrammes zur Folge. Jedoch: Verkürzung eines Attributes hat Verlust von Daten zur Folge. Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken Datenbanken Vorteile von Datenbank-Systemen (Fortsetzung) • Spontane Abfragen auf Datenbestand sind einfach möglich (Sprache der 4. Generation), also der Nutzer der Datenbank kann das „Was“ angeben und muss nicht das „Wie“ formulieren, z.B. „die Summe der Gehälter der Mitarbeiter“ wird in SQL formuliert mit select sum(Gehalt) from Mitarbeiter und nicht in einer Schleife, in der jeweils der nächste Mitarbeiter genommen wird und dessen Gehalt auf die bisherige Summe aufaddiert und die Endsumme durch die Anzahl dividiert wird(prozedural). • Zugriffskontrolle bei parallelen Zugriffen 8 Die Nutzer und Anwendungsprogramme arbeiten auf der Datenbank als wären sie im Single-User-Modus. Sollte es zu nahezu gleichzeitigen Zugriffen kommen, sorgt das Transaktionssystem dafür, dass keine Inkonsistenzen entstehen (ggfs. wird eine Transaktion gestoppt). Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken Datenbanken Vorteile von Datenbank-Systemen (Forstsetzung) • Integritätskontrolle Kontrolle der Integrität durch das Datenbank-System und nicht durch eigene Programmierung ist möglich, z.B. Kontrolle von korrekten Wertebereichen, von Existenzabhängigkeiten zwischen Daten und allgemeinen Beziehungen zwischen Werten • Datenschutz (Schutz persönlicher Daten vor Missbrauch) , z.B. unberechtigtes Verwenden von persönlichen Daten für Werbezwecke • Daten- (Informations-)sicherheit (Vertraulichkeit, Integrität, Verfügbarkeit), z.B. Verhinderung von Systemausfällen, selbst wenn kein Strom vorhanden oder ein Rechner defekt ist • Beziehungen von Daten verschiedener Objekte ermöglichen eine weitreichende Definition von Semantik bereits zum Erstellungszeitpunkt der Datenbank • 9 Verteilung von Daten auf verschiedene Standorte sind möglich Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken Datenbanken Zentrale Begriffe (Quelle: Kudraß: Taschenbuch Datenbanken, Hanser 2007) • Eine Datenbank (DB) ist eine Sammlung von Daten, die einen Ausschnitt der realen Welt beschreiben (z.B. in Form von Relationen). • Ein Datenbankmanagementsystem (DBMS) ist ein Softwaresystem (d.h. eine Sammlung von Programmen), das dem Benutzer das Erstellen und die Pflege einer Datenbank ermöglicht. Dies umfasst die Definition, die Erzeugung und die Manipulation von Datenbanken (z.B. Oracle 10g oder SQL-Server von Microsoft). • Ein DBMS zusammen mit einer oder mehreren Datenbanken wird als Datenbanksystem (DBS) bezeichnet. • Ein Datenmodell enthält drei Bestandteile: Datenstrukturen: Objekte und deren Beziehungen Operationen und Beziehungen zwischen Objekten Integritätsbedingungen auf Objekten und Beziehungen Bekannteste Datenmodellierungssprache ist das Entity-Relationship-Modell. 10 Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken Datenbanken Beteiligte Rollen am Datenbank-System (m/w) 11 • Der Daten-Administrator (DA) hat strategische Verantwortung für die Daten, entscheidet inhaltlich, welche Daten für welche Anwendung und welche Rolle gespeichert werden. • Der Datenbank-Administrator (DBA) hat die technische Verantwortung für die Daten. Er entscheidet u.a. wie die Daten technisch abgelegt werden, aber überwacht auch die Performance und die Sicherheit der Daten, legt die Backup-Intervalle fest etc. • Der Anwendungsentwickler entwickelt Anwendungen, die das Datenbanksystem als Quelle verwenden. Er arbeitet hinsichtlich der Definition von Daten für die Anwendung eng mit DA und DBA zusammen. • Der Endanwender hat üblicherweise über eine GUI Zugriff auf die Daten der Datenbank. Häufig verwendet er vom Anwendungsentwickler erstellte Anwendungen, gibt aber mitunter über die Manipulationssprache SQLDML direkt Anfragen an die Datenbank ab. Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken Datenbanken Historische Entwicklung von Datenbank-Konzepten 12 • 1965: IBM entwickelt das DBS IMS, welches auf dem hierarchischen Datenmodell beruht. Erlaubt sind Beziehungen zwischen Objekten nur, wenn sie hierarchisch sind (heute würde man dies i.d.R. als abhängige 1:nBeziehungen bezeichnen. • 1969: Das Standardisierungsgremium COnference on DAta Systems Languages (CODASYL) legt einen Standard für das Netzwerkmodell fest. Dieses erlaubt im Gegensatz zum hierarchischen Datenmodell auch netzartige Strukturen. • 1976: Siemens (UDS) u.a. entwickeln Systeme nach dem NetzwerkmodellAnsatz. • Seit 1970: Codd entwickelt das relationale Datenmodell auf Basis der mathematischen Relation. • 1971-1981: IBM entwickelt einen Prototyp für relationale Datenbanken: System/R mit der Datenbanksprache SQL (structured query language) • Seit 1980: Oracle ist mit einem relationalen Datenbanksystem am Markt. • Seit 1982: IBM ist mit dem relationalen Datenbanksystem SQL/DS am Markt. Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken Datenbanken Historische Entwicklung von Datenbank-Konzepten 13 • Seit 1984: erste relationale Datenbank-Systeme für PCs sind am Markt: dBase, Oracle, später MS Access • Seit Ende der 1980er: Entwicklung Objektorientierte Datenbanksysteme (OODBS): Gemstone, ObjectStore, O2, POET (Fast Objects). • 1992: SQL2-Standard wird verkündet; weiterhin Ankündigung einer objektorientierten Erweiterung von SQL (objekt-relationale Datenbanksysteme) • 1999: SQL3 wird als objekt-relationaler Standard verkündet. Die proprietären objektorientierten Datenbanken verlieren an Bedeutung. • Das objekt-relationale Mapping wird zum Standard zwischen objektorientierten Programmiersprachen einerseits und relationalen Datenbanksystemen andererseits. • Datenbanksysteme sind für den Endanwender mittlerweile selten noch als solche nutzbar, sondern Standardsoftware (z.B. SAP) verwendet Datenbanksysteme transparent für den Nutzer. Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken Datenbanken ANSI/SPARC-Modell: 3 Ebenen-Modell für Datenbank-Schemata • Externe Ebene: Datensicht für einzelne User oder für Anwendungen • Konzeptionelle Ebene: Sicht auf die Gesamtheit aller Daten inkl. der Beziehungen zwischen den vorhandenen Objekten • Interne Ebene: Physische Speicherstrukturen (z.B. hash, verschiedene Indexstrukturen) 14 Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken Datenbanken ANSI/SPARC-Modell: Prinzip des 3 Ebenen-Modells für Datenbank-Schemata • Änderungen auf einer Ebene können vorgenommen werden, ohne dass andere Ebenen davon berührt sind. • Verarbeitungsprogramme sind physisch als auch logisch datenunabhängig (mit Einschränkungen). • Änderungen auf der physischen, konzeptionellen und externen Ebenen haben keine Auswirkungen auf die Verarbeitungsprogramme (mit Ausnahmen z.B. beim Löschen von Attributen). Dieses Prinzip ist ein Grund für wesentliche Vorteile von Datenbank-Systemen gegenüber Datei-Systemen. Frage: Welche Auswirkungen haben Datenstruktur-Änderungen bei der Nutzung von Dateien auf die Anwendungsprogramme, die diese verwenden? 15 Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken Datenbanken ANSI/SPARC-Modell: Prinzip des 3 Ebenen-Modells für Datenbank-Schemata Frage: Welche Auswirkungen haben Datenstruktur-Änderungen bei der Nutzung von Dateien auf die Anwendungsprogramme, die diese verwenden? Antwort: Änderungen in den Anwendungsprogrammen sind notwendig, da die Datenbeschreibung in allen Programmen, die die Dateien nutzen, redundant vorgenommen wird. Beispiel: 5 Programmen arbeiten mit einer Datei Eines der Programme benötigt ein zusätzliches Feld Alle 5 Programme müssen angepasst werden. 16 Stephan Karczewski - Datenbanken 1. Dateien und Datenbanken