Datenbank

Werbung
Datenbanken I
Produkt
(0,*)
(0,*)
3
Karczewski
Datenbanken I
1
Literatur
• C.J. Date: An Introduction to Database Systems; Addison-Wesley
Systems Programming Series. 6th ed. 1995
• H.E. Erbs, S. Karczewski and I. Schestag: Datenbanken
(Datenmodelle, Objekte, WWW, XML); VDE-Verlag Berlin 2003; 317
pp.; 24 EUR
• G. Vossen: Datenmodelle, Datenbanksprachen, Datenbankmanagementsysteme; Oldenburg-Verlag 2000; 780 pp.
• A. Heuer, G. Saake: Datenbanken: Konzepte und Sprachen; mitp
Verlag 2000; 670 pp.; 35 EUR
Karczewski
Datenbanken I
2
1. Von Dateien zu Datenbanken
…
…
…
P1, …, ……
P2, …,P1,
… …, …
…, …,P2,
… …, …
… …, …, …
…
…
…
Karczewski
Produkt:
Datenbanken I
Nummer
Bezeichnung
Funktion
P1
Kanne
Gebrauch
P2
Tasse
Gebrauch
3
Motivation
• Professionelle Anwendungen benötigen dauerhaft verfügbare,
persistent gespeicherte Daten.
• Datenbank-Systeme bieten die einfache Möglichkeit, Daten
persistent zu speichern.
• Diese Veranstaltung zeigt die wesentlichen Aspekte zur
Verwendung von Datenbanken auf:
•
•
•
•
•
Datenmodellierung zur Strukturierung der Realität
Datendefinition und –manipulation
Datenbank-Architektur
Systeme zur Datenmodellierung
Datenbanksysteme
Karczewski
Datenbanken I
4
Historische Entwicklung von
Datenbanksystemen (1)
• 1965: Firma IBM entwickelt das DBS: IMS, das auf dem
Hierarchischen Datenmodell beruht
• 1969 Standardisierungsgremium CODASYL schlägt Netzwerkmodell
vor
• 1976: Firma SIEMENS (UDS) u.v.a. entwickeln DBS nach dem
Netzwerk-Datenmodell
• seit 1970: Codd entwickelt das Relationale Datenmodell
• 1971 –1981: IBM entwickelt Prototyp für Relationale Datenbanken,
Name: “System /R” mit Datenbanksprache: SQL
Karczewski
Datenbanken I
5
Historische Entwicklung von
Datenbanksystemen (2)
• seit 1980: ORACLE, Relationales DBS mit SQL als
Datenbanksprache auf dem Markt
• seit 1982: SQL/DS der Firma IBM mit SQL auf dem Markt
• seit 1984: Relationale DBS für PCs auf dem Markt: DBASE,
ACCESS auch ORACLE
• seit Ende der 80-er: Entwicklung Objektorientierter DBS:
GEMSTONE, ObjectStore, O2, Jasmine, POET (jetzt: FastObjects)
u.v.a.
• 1992: SQL2-Standard wird verkündet; gleichzeitig Arbeit an einer
OO-Erweiterung von SQL. Arbeitsname: SQL3
• aktuelle Situation: Client-Server–Prinzip beim Einsatz von
Datenbanksystemen und Einsatz von Datenbanksystemen in
integrierten Softwaresystemen (hauptsächlich noch immer:
Relationale DB-Systeme), z.B. in SAP
Karczewski
Datenbanken I
6
Eigenschaften von DB-Systemen
im Vergleich zu Dateisystemen
DB-System
Dateisystem
Abstraktion
logisch
physisch
Abspeicherung
in Datenbank
in Dateien
Beschreibung der
Daten
im zentralen
Data Dictionary
im Anwendungsprogramm
Zugriff
Über das
Datenbanksystem
Über das
Betriebssystem
Dienstprogramme (zB. Über das
Backup, Recovery)
Datenbanksystem
Eigene
Programmierung
Verknüpfung der
Daten
Eigene
Programmierung
Karczewski
Über das
Datenbanksystem
Datenbanken I
7
Arbeiten mit Dateien
AnwendungsProgr. 1
Datenstruktur (DS) ist im Programm
definiert.
Datei A
AnwendungsProgr. 2
Bei Änderung der Datenstruktur
muss jedes Anwendungsprogramm
angepasst werden
Datei B
AnwendungsProgr. 3
...
...
Datei Z
AnwendungsProgr. n
Daten werden mehrfach abgespeichert
(=Redundanz): Inkonsistenz möglich
Jeder Nutzer der Daten muss physische
Struktur kennen.
Karczewski
Datenbanken I
8
Arbeiten mit einem
Datenbanksystem (DBS)
AnwendungsProgr. 1
AnwendungsProgr. 2
Daten
(DB)
DBMS
AnwendungsProgr. 3
Anwendungsprogramme greifen
über das DBMS auf die Daten zu
DBMS ist Zugriffsfilter
Identische Daten werden nur einfach
abgespeichert
...
AnwendungsProgr. n
Karczewski
Bei Änderung der Datenstruktur
muss nur einmal im DBS geändert
werden.
Datenbanken I
9
Vergleichendes Beispiel:
Ausgabe aller Kunden aus Darmstadt
DB-System:
SELECT name, plz, ort
FROM kunde
WHERE
ort = ´Darmstadt‘,
Karczewski
Dateisystem (in C++):
#include <fstream.h>
..
typedef struct {
char name [30];
int
plz;
char ort [30];
} kunde_record;
kunde_record buffer;
fstream kunden_file;
file.open (“kunden.dat“, ios::in | ios::binary);
while (!file.eof())
{ file.read( (char*) &buffer, sizeof(kunde_record) );
if buffer.ort = “Darmstadt“
{ cout << buffer.name << …
}
}
…
Datenbanken I
10
Wesentliche Vorteile von DBS (1)
Redundanzvermeidung
Ein Fakt in der realen Welt ist nur ein Mal in der DB abgelegt.
Vermeidung von Inkonsistenzen
keine widersprüchlichen Informationen zum gleichen Objekt:
Beispiel:
Adresse in Datei Personalstamm und in Datei Bestellinfos gespeichert.
Person zieht aus Darmstadt aus.
Die Datei Personalstamm wird geändert, die Datei Bestellinfos nicht.
Durch redundante Datenhaltung wurde Inkonsistenz (Person hat zwei
verschiedene Adressen) provoziert.
Einheitliche Sicht auf Daten
Standards setzen sich besser durch
Karczewski
Datenbanken I
11
Wesentliche Vorteile von DBS (2)
Datenunabhängigkeit
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.
Beispiel: Länge des Nachnamens wird von 30 auf 40 Zeichen gesetzt
oder zusätzliches Attribut Qualifikation wird eingeführt.
Jedoch: Streichen eines Attributs ohne Auswirkungen auf
Anwendungsprogramme nicht möglich!
Spontane Anfragen
Mit Hilfe einer Sprache der vierten Generation ist eine Formulierung
von Anfragen unter dem Motto „Was“ statt „Wie“ möglich
Beispiel: Selektiere alle Mitarbeiter, die mehr als 50000 € verdienen.
Karczewski
Datenbanken I
12
Wesentliche Vorteile von DBS (2)
Zugriffskontrolle bei parallelen Zugriff
Benutzung von Daten durch mehrere Programme gleichzeitig mit
Kontrolle der Zugriffe und eindeutigen Änderungen
Integritätskontrolle
Kontrolle von Integritätsbedingungen durch DBS (z. B.
Wertebereiche, Existenzabhängigkeiten zwischen Datensätzen, allg.
Beziehungen zwischen Werten), dadurch weniger
Programmieraufwand
Beispiele:
Alter von Mitarbeitern muss immer > 14 sein.
Nachname ist max. 30 Zeichen lang.
Karczewski
Datenbanken I
13
Wesentliche Vorteile von DBS (4)
Datenschutz, Datensicherheit
Zugriffskontrolle, d. h. Setzen von Sperren durch DBS auch auf Feldund Satzebene (nicht nur Read-, Write-Sperren ganzer Dateien)
Beispiel: Nur Personalabteilung dürfen Gehälter der Mitarbeiter sehen.
Beziehungen zwischen Daten
können definiert und vom System kontrolliert werden.
Beispiel: Bestellung hat Beziehung zu Kunde.
Zu Bestellung gibt es immer einen Kunden
Verteilung von Daten kann vom DBS verwaltet werden.
Karczewski
Datenbanken I
14
Begriffe
Datenbank (DB)
= Datenbestand
Datenmanagementsystem (DBMS)
= Software zum Arbeiten mit Datenbanken
Datenbanksystem (DBS)
= DB + DBMS
aber: oft synonym zu DBMS verwendet.
Karczewski
Datenbanken I
15
Beteiligte Rollen am
Datenbanksystem
Daten-Administrator (DA)
- Hat zentrale strategische Verantwortung für die Daten
- Entscheidet welche Daten für wen gespeichert werden
Datenbank-Administrator (DBA)
- Hat technische Verantwortung
- Entscheidet, wie Daten gespeichert werden
Anwendungsentwickler
- Entwickelt Anwendung z. B. in Programmiersprache
- Arbeitet hinsichtlich der Definition von Daten mit DBA, DA zusammen
Endanwender
- Hat Zugriff auf Daten über GUIs / Abfragesprache
- Zusammenarbeit mit Anwendungsentwickler in Entwicklungsphase
Karczewski
Datenbanken I
16
ANSI / SPARC-Modell
externes
Schema 1
externes
Schema 2
konzeptionelles
Schema
internes / physisches
Schema
Karczewski
externes
Schema n
externe Ebene
Datensicht für einzelne User
konzeptionelle Ebene
Sicht auf die Gesamtheit aller Daten
und ihre Beziehungen untereinander
interne / physische Ebene
physische Speicherstrukturen
Datenbanken I
17
Komponenten eines DBMS
s. Tafel
Karczewski
Datenbanken I
18
Metadaten
Es gibt die Daten der Anwendung
Müller, 64295, Darmstadt, …
Ohne Erläuterung ist der Sinn der Daten nicht klar
Abhilfe: Man gibt die Bedeutung, Formate etc, immer mit den Daten an:
Name: Müller, char(30); PLZ: 64295, int; …
besser:
- Attribute gehören zusammen und bilden (Daten-)Objekte (Entities).
- Objekte gleichen Typs kann man gemeinsam beschreiben.
Dies geschieht in der Schemabeschreibung
Beispiel: Relation Kunde mit den Attributen Name char(30), PLZ int, …
Diese Beschreibungen stehen im Data-Dictionary des DBS. Man nennt diese
Daten, die die eigentlichen Daten beschreiben, Metadaten.
Karczewski
Datenbanken I
19
Bedeutung der 3 Ebenen bei der
ANSI/SPARC-Architektur
Änderungen auf einer Ebene können vorgenommen werden, ohne
dass eine benachbarte Ebene davon berührt ist.
Verarbeitungsprogramme sind physisch als auch logisch
datenunabhängig (mit Einschränkungen).
d. h. Änderungen auf der physischen, konzeptionellen, externen
Ebene haben keine Auswirkungen auf die Verarbeitungsprogramme
(mit Einschränkungen, z. B. Löschung eines Attributs hat
Auswirkungen, Hinzufügen eines Attributs hat keine Auswirkungen.)
Frage: Welche Auswirkungen haben Änderungen in der Datenstruktur
von Dateien auf die die Dateien verwendenden
Anwendungsprogramme?
Karczewski
Datenbanken I
20
Auswirkungen von Änderungen in
normalen Dateien
Frage: Welche Auswirkungen haben Änderungen in der Datenstruktur
von Dateien auf die die Dateien verwendenden
Anwendungsprogramme?
Änderungen in den Anwendungsprogrammen notwendig, da
Dateibeschreibung in allen Programmen, die die Datei verwenden
redundant abgelegt sind.
Beispiel:
5 Programme arbeiten mit einer Datei,
1 Programm benötigt zusätzliches Feld
Trotzdem müssen alle 5 Programme geändert werden.
Karczewski
Datenbanken I
21
Herunterladen