1. Dateien und Datenbanken

Werbung
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
Herunterladen