Grundlagen von Datenbanken

Werbung
Grundlagen zur Verwendung und
Entwicklung von Datenbanksystemen
Vorlesung im Wintersemester 2007/08
(Abschnitt Einführung und Grundlagen)
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
1
Motivation und Ziele
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
2
Motivation für DBMS
§ Redundanz und Inkonsistenz
§ Zusammenhänge zwischen Datenobjekten
§ Multiuserbetrieb (Vermeidung von Anomalien)
§ Verlust von Daten (Wiederherstellung von Daten)
§ Integritätsverletzungen (Konsistenzbedingungen)
§ Sicherheitsprobleme
§ Wiederverwendung bestehender Systeme
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
3
Definition Datenbank
Eine Datenbank (kurz DB) ist ein integrierter, persistenter
Datenbestand einschließlich aller relevanten Informationen über die
dargestellte Information (Metainformation, d.h. die
Integritätsbedingungen und Regeln), der einer Gruppe von
Benutzern in nur einem Exemplar zur Verfügung steht.
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
4
Beispiele von Datenbanken I
§ Datenbanken bei Reiseveranstaltern
- Buchungssysteme (Flug, Hotel, Mietwagen, …)
- Kundendatenbanken
- Flugpläne
§ Datenbanken bei Telekommunikationsanbietern
- Verwaltung der technischen Einrichtungen
- Verrechnung von Leistungen
- Kundendatenbanken
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
5
Beispiele von Datenbanken II
§ Datenbanken an Hochschulen
- Vorlesungsverzeichnisse
- Immatrikulierte Studenten
- Verwaltung von Veröffentlichungen
§ Datenbanken in einer Bibliothek
- Vorhandene Bücher und Medien
- Ausleihe und Vorbestellungen
- Leserdatenbanken
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
6
Datenbankszenario I
(Beispiel aus der Welt der Telekommunikation)
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
7
Datenbankszenario II
(Beispiel aus der Welt der Telekommunikation)
§ Kundendatenbank eines „Telco“-Unternehmens
- Idee
- Anforderungen
- Konzept
- Datenmodell
- Umsetzung
§ Idee: Konsistente und konvergente Ablage aller
kundenrelevanten Informationen
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
8
Datenbankszenario III
(Brainstorming zu den Zielen)
§ Kerninformationsobjekt „Kunde“
§ Informationen zu allen potentiellen Kunden
- ca. 40 Mio. Kunden in Deutschland
- personenbezogene Daten
- genutzte Produkte
- verantwortliche Serviceeinheit
- Verrechnung genutzter Leistungen
- …
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
9
Datenbankszenario IV
(Anforderungsanalyse)
§ Potentielle Nutzer und Schnittstellen
§ Anforderungsanalyse
- Zielstellung und Business Case
- Wer soll die Datenbank nutzen?
- Welche Inhalte soll die Datenbank haben?
- Welche Abfragen sollen unterstützt werden?
- Aktualität der Dateninhalten?
- Art des Informationsabrufs?
§ Migrationsanforderungen
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
10
Datenbankszenario V
(Grobkonzeption der Kundendatenbank)
§ Master für alle Anwendungen
§ Basisdaten – Altsysteme mit Kundendaten
- Daten für ca. 40 Mio. Kunden
- je Kunden ca. 1KByte an Informationen
- ca. 20 Anwendungen mit Kundendaten
- Vielfältige Referenzen zu vorhandenen Systemen
- Art der auszunehmenden Daten (textlich, Lageplan, …)
§ Aktualität der Daten in den Systemen
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
11
Datenbankszenario VI
(Modellierung des Diskursbereiches)
§ Strukturierung der Information
- Ziele schriftlich fixieren
- Basisdaten zusammenstellen
- Anforderungen detailliert beschreiben
- Konzeption textlich erläutern
§ Konzeptionelles Datenmodell entwerfen
- Abhängig von den Zielen und Anforderungen
- Vorraussetzung für die Umsetzung mittels DBMS
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
12
Datenbankszenario VII
(Ausschnitt aus dem ER-Modell)
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
13
Datenbankszenario VIII
(Abbildung auf Tabellen)
Kunde
Kunden_ID Name
Adresse
101
Peter Fanz
13505 Berlin,
Wittestr. 30H
102
Hans Busch
15475 Wildau,
Spatzenweg 7
…
…
…
Produkt
Bem.: Tabellen wurden
weder normalisiert noch
wurde die Beziehung
(Kunden hat Produkte)
abgebildet!
WS07/08 – DBS Part 1
Produkt_Nr Beschreibung
Preis in
Euro
T11
ISDN s0
20
T12
ISDN s2m
150
..
Prof. Dr. Andreas Schmietendorf
14
Datenbankszenario IX
(Abbildung auf Tabellen)
§ Spalten – Attribute
§ Zeilen – Datensätze
§ Tabellename
§ Identifikation der Datensätze (Schlüssel)
§ Konzeptionelles Modell: Entity-Relationship-Modell
§ Abbildung mittels konkreter Systeme:
- filebasierte Systeme: Excel
- Pseudo DB: Access, dBase, Paradox
- Echte DBMS: Oracle, IBM DB2, MS SQL Server
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
15
Dateiverwaltung und Datenbanken
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
16
Von der Dateiverwaltung
zur Datenbanktechnologie
§ Frühzeit: 1950 bis 1967
§ Verwendung von Großrechnern (Zimmergröße)
§ Überwiegend genutzt für numerische Probleme
§ Geringe Aufmerksamkeit für Daten
§ Hauptspeichergröße: 50KByte
§ Programmiersprachen: Assembler, Algol, Fortran
§ bis 1963 nur elementare Daten im Programm
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
17
Von der Dateiverwaltung
zur Datenbanktechnologie
Dateien sind eine Sammlung logisch zusammengehörender Daten,
die auf geeigneten Medien gespeichert werden können und über
einen Namen identifizierbar sind. Das Dateisystem (z.B. FAT, VFS)
organisiert die Verwaltung der Dateien auf einem Speichermedium,
wobei unterschiedliche Zugriffsformen und ggf. Schutzfunktionen
realisiert werden können.
Quelle: Schneider, U.: Betriebssysteme und Systemsoftware, in Taschenbuch der
Wirtschaftsinformatik, Fachbuchverlag Leipzig, 2003
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
18
Von der Dateiverwaltung
zur Datenbanktechnologie
Dateikonzept ab 1963
§ Datei mit Menge von Datensätzen
– internes Format
§ Organisationsform: sequentiell,
index-sequentiell, regional
§ Verarbeitungsformen: lesen,
Feste
Datenlänge
rec 1
rec 2
Variable
Datenlänge
rec 1
rec 2
schreiben, ändern
§ Satzform: Sätze fester oder
rec 3
rec 3
variabler Länge (eventl. Blöcke)
§ Medium: Art des ext. Gerätes
(Magnetplatte, Magnetband, …)
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
19
Von der Dateiverwaltung
zur Datenbanktechnologie
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
20
Eigenschaften des
Dateikonzeptes I
§ Datei als Organisationseinheit
§ Zugriff des Anwenders über das Betriebssystem
§ Unterschiedliche Nutzer
§ Dateien waren bestimmten Programmen fest zugeordnet
§ Anwendungsspezifische Datenorganisation
§ Ggf. mit einer Kopie arbeiten (?!)
§ Logisch zusammengehörige Daten über Dateien verteilt
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
21
Eigenschaften des
Dateikonzeptes II
§ Keine granulare Rechteverteilung
§ Keine Möglichkeiten zur Synchronisation
§ Große Sperrgranulate
§ Redundante Daten
- Verschwendung von Ressourcen (HW, aber auch HR)
- Gefahr von Inkonsistenzen
§ Plattform- und Anwendungsabhängig
§ Ineffizient bei großen Datenmengen
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
22
Entwicklung bis zur Neuzeit I
§ Übergang von der klassischen, programmzentrierten Sicht
zur datenzentrierten Sicht (DB-Technologie) Anfang etwa
von 1968 bis 1970.
§ Begleitet wurde diese Entwicklung von der steigenden
Kapazität externer Massenspeicher und dem steigender
Wert gespeicherten Informationen (Daten).
§ Die Verfügbarkeit der Daten und der Zugriff im Dialog
wurde wichtiger als umfangreiche Auswertealgorithmen.
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
23
Entwicklung bis zur Neuzeit II
§ Das Datenmodell beschreibt die logische Struktur der
Datenbasis. Der Nutzer verwendet eine Datenbankabfragesprache (zumeist SQL – Structured Query
Language) zur Wiedergewinnung von Informationen aus
der Datenbasis.
§ Als Mittler zwischen Nutzer und Datenbasis arbeitet ein
Datenbankmanagementsystem (kurz DBMS).
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
24
Einordnung eines DBS
Individual-Software
Anwendungssoftware
Basissoftware
Systemsoftware
(z.B. Datenbanksysteme)
Betriebssystem
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
25
Architektur von DBMS
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
26
Begriff des DBMS
Unter dem Begriff Datenbankmanagementsystem (kurz
DBMS) verstehen wir die Gesamtheit der SoftwareModule, die die Verwaltung einer Datenbank
übernehmen. Ein Datenbanksystem ist die Kombination
von DBMS und einer Datenbank.
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
27
Bestandteile DBS
DBS = DBMS + DD + nDB (bei n > 1)
§ DBS – Datenbanksystem
§ DBMS – Datenbankmanagementsystem
§ DD – Data Dictionary (Datenbankschema)
§ DB – Daten eines Anwendungsbereiches
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
28
Datenbankmanagementsysteme
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
29
Codd´sche Regeln 1
Nach Festlegung von E. F. Codd sind Regeln
formulierbar, nach deren Bewertung jedes
Datenbankmanagementsystem validierbar ist. Die
folgenden 9 Regeln wurden bereits Anfang der 80erJahre durch Codd als Anforderungen an Datenbankmanagementsysteme formuliert.
Bem.: beim RDBMS kommen weitere 3 dazu
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
30
Codd´sche Regeln 2
§ Integration: Einheitliche Verwaltung aller von Anwendungen
benötigten Daten
§ Operationen: Speichern, suchen und ändern auf den Datenbestand
wird angeboten
§ Katalog: Der Katalog (Data Dictionary – auch Datenwörterbuch)
ermöglicht Zugriffe auf die Datenbeschreibung der Datenbank
§ Benutzersichten: Für unterschiedliche Anwendungen sind
unterschiedliche Sichten auf den Datenbankbestand verfügbar
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
31
Codd´sche Regeln 3
§ Konsistenzüberwachung (Integritätssicherung): Die Korrektheit der
Datenbankinhalte wird garantiert (korrekte Ausführung v. Änderungen)
§ Datenschutz: Unautorisierte Zugriffe werden durch die Zugriffskontrolle
verhindert
§ Transaktionen: Es gibt zusammengefasste Datenbankoperationen, die
nur ganz oder gar nicht ausgeführt werden (ACID-Prinzip)
§ Synchronisation: Mehrere Benutzer können (ohne sich gegenseitig zu
beeinflussen) mit der Datenbank gleichzeitig arbeiten
§ Datensicherung: Die Wiederherstellung der Daten z.B. nach einem
Systemzusammenbruch ist möglich
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
32
Grob-Architektur DBMS
Quelle: Heuer, A. et al: Datenbanken kompakt, mitp-Verlag
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
33
DBMS-Komponenten 1
§ Dateiorganisation – Definition der Dateiorganisation und
Zugriffspfade auf interner Ebene
§ Datendefinition – Konzeptuelle Datendefinition (konz. Schema)
§ Sichtdefinition – Definition von Benutzersichten
§ Masken – Entwurf von Menüs und Masken für die
Benutzerinteraktion
§ Einbettung – Einbettung von Konstrukten der Datenbanksprache in
eine Programmiersprache
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
34
DBMS-Komponenten 2
§ Anfragen/Updates – Interaktiver Zugriff auf den Datenbestand ISQL
§ DB-Operationen – Anfragen, Änderungen
§ Optimierer – Optimierung der Datenbankzugriffe
§ Plattenzugriff – Plattenzugriffssteuerung
§ Auswertung – Auswertung von Anfragen und Änderungen
§ P1 … Pn – verschiedene Datenbank-Anwendungsprogramme
§ Data Dictionary – zentraler Katalog aller für die Datenhaltung
relevanten Operationen
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
35
Datenunabhängigkeit
Physische Datenunabhängigkeit:
auch als Implementierungsunabhängigkeit bezeichnet
- Die Unabhängigkeit zwischen (portablen
Programmen) und physikalischer Datendarstellung
und Speicherung ist der erste Schritt zur
Maschinenunabhängigkeit des Datenbanksystems.
Logische Datenunabhängigkeit:
auch als Anwendungsunabhängigkeit bezeichnet
- Hier wird eine weitgehende Unabhängigkeit der
Software vom Datenbankmodell gefordert.
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
36
Drei-Ebenen-Schema-Architektur
Zur Beschreibung der Datenstrukturen in einer Datenbank ist ein
Modell hilfreich, dass bereits 1971 vom ANSI/SPARC-Komitee
vorgestellt wurde. Es konzentriert sich dabei weniger auf den
internen Aufbau des DBMS selbst, als vielmehr auf die Mittlerrolle
des DBMS zwischen Anwenderwelt und Rechnersystem.
1
ANSI – American National Standards Institute
2
SPARC – Standards Planning and Requirement Committee
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
37
Drei-Ebenen-Schema-Architektur
Prof. Dr. Andreas Schmietendorf
Datendarstellung
Anfragebearbeitung
WS07/08 – DBS Part 1
38
Internes Schema
Die systemspezifische Realisierung der Datenbank, wie
z.B. eingerichtete Zugriffspfade (z.B. Baumstrukturen),
wird durch das interne Schema beschrieben. Für den
Nutzer i.a. nicht zugänglich, ggf. für Tuningmaßnahmen
(Index, Cluster, …) von Interesse.
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
39
Konzeptuelle Schema
Beinhaltet eine implementierungsunabhängige Modellierung der
gesamten Datenbank in einem systemunabhängigen Datenmodell
(z.B. das ER-Modell). Dabei handelt es sich um eine formale
Beschreibung eines Ausschnittes der realen Welt. Das konzeptuelle
Schema beschreibt die Struktur der Datenbank vollständig.
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
40
Externes Schema
Basierend auf dem konzeptuellen Schema können
externe Schemata definiert werden, welche
anwendungsspezifische (Teil-) Sichten auf den
gesamten Datenbestand festlegen. Das kann sowohl
im Datenmodell des konzeptuellen Schemas, als auch
in einem weiteren Datenbankmodell erfolgen.
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
41
Schichtenmodell eines DBMS
Um den internen Aufbau eines DBMS nachvollziehen zu können
bedient man sich häufig einer schichtenorientierten
Betrachtungsweise. Dieses innerhalb der Informatik übliche
Vorgehen betrachtet das DBMS als aufeinander aufbauende
Schichten. Jede Schicht hat bestimmte Aufgaben zu erledigen
und stellt der nächst höheren Schicht einen bestimmten Service
zur Verfügung, ohne das sich diese darum kümmern muss, wie
dieser Service realisiert ist.
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
42
Transaktionsverarbeitung
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
43
Transaktionsbegriff
Eine Transaktion (transaction) ist eine Folge von Operationen
(z.B. elementare SQL-Befehle), die zu einer unteilbaren
(atomaren) Ausführungseinheit zusammengefasst werden und
die Datenbank von einem konsistenten Zustand in einen neuen
konsistenten Zustand überführen.
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
44
Transaktionskonzept
Zur Unterstützung des Multiuserbetriebs werden im Rahmen von
DBMS Transaktionen verwendet. Ein Datenbanksystem garantiert
so die Ausführung von Transaktionen unter Berücksichtigung der
so genannten ACID-Bedingungen. Dabei handelt es sich um die
Eigenschaften der Atomarität (atomicity), Konsistenz (consistency),
Isolation (isolation) und Dauerhaftigkeit (durability).
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
45
Transaktion - Beispiel
Täglich werden durch die Kunden einer Bank tausende
Überweisungen initiiert. Dabei gibt es sowohl die Forderungen
nach kurzen Antwortzeiten, als auch eines korrekten
Geldtransfers.
Zusammenfassung der notwendigen Operationen für eine
Geldüberweisung, d.h. Abbuchen vom einem Konto und
Überweisen auf ein anderes Konto.
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
46
Transaktion - Beispiel
Inkorrekter Ablauf von zwei Überweisungen
Quelle: Gumm, H. P.; Sommer, M.: Einführung in die Informatik, Oldenbourg-Verlag
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
47
A - Atomarität
Änderungen einer Transaktion werden entweder vollkommen
oder gar nicht in die Datenbank eingebracht. Auf dieser
Grundlage kann die Anwendungsprogrammierung stark
vereinfacht werden, da Fehlerzustände (z.B. Rechnerausfall)
nicht im Programm abgefangen werden müssen.
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
48
C - Konsistenz
Eine Transaktion überführt die Datenbank von einen konsistenten
Zustand in einen anderen konsistenten Zustand. Der konsistente
Zustand einer Datenbank erfordert die Einhalten aller definierten
Integritätsbedingungen. Innerhalb der Transaktion können
Integritätsbedingungen temporär verletzt werden.
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
49
I - Isolation
Keine gegenseitige Beeinflussung parallel ausgeführter
Transaktionen, d.h. zwischen parallel ausgeführten Transaktionen
besteht keine direkte Kommunikation. Das Ergebnis einer
Transaktion kann nicht durch andere zum gleichen Zeitpunkt
ausgeführte Transaktionen beeinflusst werden.
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
50
D - Dauerhaftigkeit
Nach einem erfolgreichen Abschluss einer ausgeführten
Transaktion werden alle Änderungen dauerhaft in der Datenbank
gespeichert. Sollte es zu einer Störung kommen, werden die
Ergebnisse von Transaktionen durch entsprechende RecoveryMechanismen wieder hergestellt.
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
51
Beispiele für DBMS
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
52
Beispiele konkreter DBMS I
Gemeinsamkeiten aktuell angebotener DBMS:
§ Drei-Ebenen Architektur nach ANSI SPARC
§ SQL als Datenbankabfragesprache
§ Einbettung von SQL in Programmiersprachen
§ Diverse Tools für:
- Entwurf von Datenbanken
- Definition, Anfrage und Darstellung von Daten
§ Kontrollierter Mehrbenutzerbetrieb
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
53
Beispiele konkreter DBMS II
Kommerzielle Produkte
§ Oracle Database
§ IBM DB2 Universal Database
§ MS SQL Server
§ Informix (zumeist in Altsystemen eingesetzt)
§ IBM IMS DB (60% aller unternehmenskritischen Daten)
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
54
Beispiele konkreter DBMS III
Open Source Produkte (erhältliche Systeme im Quelltext)
§ Im Rahmen der LINUX-Distribution
- My SQL mit eingeschränkten Funktionsumfang (www.mysql.com)
- PostgreSQL mit objektrelationalen Features (www.postgresql.org)
§ Weiterentwicklung von InterBase 6.0 (Borland)
- Firebird (www.firebirdsql.org)
- Verfügbar für Linux und Windows
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
55
Beispiele konkreter DBMS IV
Pseudo-RDBMS
§ Dateiverwaltungssysteme mit tabellarischer GUI
§ Erreichen nicht die volle Funktionalität von RDBMS
§ Beispiele von Pseudo-RDBMS
- Borland dBASE
- MS Access
§ Fehlende Funktionen:
- Kein Standard SQL
- Keine Mehrbenutzerbetrieb
- Keinen Abfrageoptimierer
WS07/08 – DBS Part 1
Prof. Dr. Andreas Schmietendorf
56
Herunterladen