Material

Werbung
Datenbankentwurf
und -programmierung
© H P Engel 2016
1
Die Vorlesung Datenbankentwurf ...
> behandelt ein in weiten Teilen eigenständiges Thema
> ist für die IT-Praxis von großer Bedeutung:
=> Analyse betrieblicher Informationsstrukturen
=> Design komplexer Informationssysteme
=> Nutzen und Nutzung von Modellen in der IT
> vermittelt ..
- theoretisches Fundament
- methodische Grundlagen
- praktische Erfahrung
> vermittelt nicht:
- die interne Technik der Datenbanksysteme
=> Datenbanktechnik (4. Semester)
> Script: www.onlinerep.de
2
Die Vorlesung Datenbankentwurf ...
> ... besteht aus drei großen Themengebieten:
I Grundlagen
II Relationale Datenbanken
und SQL
III Datenmodellierung
3
Inhaltsübersicht
1 Grundlagen
Kernleistungen, Transaktionsbegriff, Schemata,
Datenunabhängigkeit, Datenbankmodelle, Literatur
2 Das relationale Datenbankmodell I
Grundbegriffe, Structured Query Language (SQL),
Arbeiten mit SQL, Normalformen
3 Das relationale Datenbankmodell II
Beziehungstypen, Kardinalitäten, Joins
4 Fachliche Datenmodellierung
Grenzen der relationalen Modellierung, ERM
5 Vom fachlichen zum relationalen Datenmodell
Methodische Überführung ERM => RDBM
4
1 Grundlagen
Literatur:
> Kleuker, S.:
Grundkurs Datenbankentwicklung
Vieweg+Teubner, 2013
> Steiner, R.:
Grundkurs Relationale Datenbanken
Vieweg+Teubner, 2014
> Pollakowski, M.:
Grundkurs MySQL und PHP
Vieweg+Teubner, 2005
> MySQL Reference Manual (aktuelle Version im Netz)
=> www.mysql.com
> ... und viele andere Bücher in der DHBW-Bibliothek
> Nicht geeignet: Autoren/Werke, die das relationale Modell
auch für die fachliche Datenmodelierung empfehlen
5
1 Grundlagen
Warum Datenbanksysteme?
Historie I: Isolierte IT-Anwendungen
= Isolierte Datenbestände
UB Produktion
UB Vertrieb
UB Rechnungswesen
Zugriffsfunktionen
Zugriffsfunktionen
Zugriffsfunktionen
Material
Mitarbeiter
Material
Kunden
Kunden
Material
IT-Anwendungen
=> Mehraufwand, Redundanzen,
Inkonsistenzen, uneinheitliche Strukturen
6
1 Grundlagen
Historie II: Zentralisierte Datenbestände
= Konsistente, redundanzfreie, aktuelle Einzeldatenbestände; einheitliche Datenstrukturen
UB Produktion
UB Vertrieb
Zugriffsfunktionen
UB Rechnungswesen
Zugriffsfunktionen
Material
Mitarbeiter
Zugriffsfunktionen
Kunden
=> Uneinheitliche Technik und Zugriffsverfahren
=> Koordination, Sicherheit ?
7
1 Grundlagen
Historie III: Datenverwaltungssysteme
= Trennung von Anwendung und Speichertechnik
= definierte, optimierte, koordinierte Zugriffsverfahren
UB Produktion
Zugriffe
Datenverwaltung
+ Zugr.funktionen
Mitarbeiter
Mitarbeiter
UB Vertrieb
UB Rechnungswesen
Zugriffe
Zugriffe
Datenverwaltung
+ Zugr.funktionen
Material
Material
Datenverwaltung
+ Zugr.funktionen
Kunden
Kunden
=> Konsistenz des Gesamtdatenbestandes?
Gesamtüberblick? Konsistenz? Administration?
8
1 Grundlagen
Historie IV: Datenbanksysteme
= Konsistenter Gesamtdatenbestand, datenunabhängige Schnittstelle, zentrale Verwaltung
UB Produktion
UB Vertrieb
Zugriffe
Zugriffe
UB Rechnungswesen
Zugriffe
Datenbankmanagementsystem
Material
Mitarbeiter
DBA
Kunden
Datenbanken
Datenbanksystem
9
1 Grundlagen
Datenbanksysteme: Kernleistungen
> Kapselung und Verbergen speichertechnischer
Details
> Beschränkung auf eine nicht-technische,
"logische" Sicht auf gespeicherte Daten
> Benutzergerechter, optimierter Zugriff
> Standardisierte, "komfortable" Schnittstelle für die
Definition, Manipulation und Verwaltung von Daten
> Möglichkeit von Ad hoc-Abfragen (Queries)
> Eignung auch für sehr große Datenbestände
10
1 Grundlagen
> Gewährleistung eines redundanzfreien, fehlerfreien
und konsistenten Datenbestands
> Gewährleistung der Datensicherheit durch
Backup-, Recovery- und Transaktions* -Verfahren
> Gewährleistung des Datenschutzes mit Hilfe
differenzierter Zugangsberechtigungen und
-prüfungen
*
siehe nachfolgende Folien
Bei dieser Gelegenheit:
Wie werden Datenschutz und Datensicherheit voneinander
unterschieden?
11
1 Grundlagen
Transaktionen
> Der Begriff der Transaktion beschreibt eine
abgeschlossene Aktion, die auf einen Datenbestand
wirkt und jederzeit (d.h. insbesondere im Fall von
Fehlern oder Ausfällen) einen geordneten Zustand
der Daten hinterlässt
> Das Gegenteil wären unvollständige Operationen oder
unabgestimmte Operationen mehrerer Datenbanknutzer bzw. -anwendungen, die sich gegenseitig
Konkurrenz machen und je nach Reihenfolge oder
Wechselwirkung einen nicht vorhersehbaren und/oder
fehlerhaften Zustand der Daten hinterlassen
12
1 Grundlagen
Das ACID-Prinzip
Die Kernforderungen an eine Transaktion werden gern
durch das ACID-Prinzip beschrieben:
> Atomicity (Atomarität)
Transaktionen sind atomare, d.h. nicht weiter
zerlegbare Operationen auf einen Datenbestand
> Consistency (Konsistenz)
Transaktionen und Transaktionssequenzen hinterlassen immer einen konsistenzen Datenbestand;
ist dies aufgrund eines Fehlers nicht gewährleistet,
werden die entsprechenden Transaktionen bzw.
Transaktionssequenzen vollständig rückgängig
gemacht ("Rollback")
13
1 Grundlagen
> Isolation (Eigenständigkeit)
Auch bei gleichzeitig durchgeführten Operationen auf
einen Datenbestand dürfen keine unkalkulierbaren
Wechselwirkungseffekte entstehen, d.h. jede Einzeloperation muss so wirken, als würde nur sie allein auf
den Datenbestand wirken, ... bis auf den einzelnen
Datensatz hinunter!
> Durability (Dauerhaftigkeit, Persistenz)
Die Wirkung einer erfolgreichen Transaktion bleibt
"auf ewig" erhalten, selbst nach einem Systemfehler
(z.B. Stromausfall);
aufgehoben werden kann sie nur durch eine weitere
(gegenläufige) Transaktion
14
1 Grundlagen
Die Implementierung der ACID-Prinzipien in
Datenbanksystemen dienen der Verhinderung von
Fehlerzuständen.
Beipiele:
A nicht gewährleistet: Nach einem Stromausfall ist ein
kurz zuvor eingegebener Adressdatensatz nur …
C nicht gewährleistet: In Rechnungsdaten fehlen zu
einzelnen Rechnungspositionen die …
I nicht gewährleistet: Das DBMS lässt es zu, dass ein
Datensatz zur selben Zeit …
D nicht gewährleistet: Nach einem Systemausfall und
Recovery sind zuvor "erfolgreich" gespeicherte
Datensätze ...
15
1 Grundlagen
Datenbanksysteme: Grundlegender Aufbau
Anwendungen
DBA
Ad hocAbfragen
Datenbankmanagementsystem
(DBMS)
Betriebssystem
Metadaten
(Data Dictionary)
Nutzdaten
(Datenbasis)
Datenbanksystem
Datenbanken
16
1 Grundlagen
Datenbanken: Drei Ebenen der Beschreibung
Bei jeder Datenbank lassen sich drei
Beschreibungsebenen (Schichten) unterscheiden:
1) Die externe Ebene beschreibt die fachliche Sicht
einzelner Anwender(-gruppen) auf den Datenbestand.
Beispiel:
Den Personalsachbearbeiter interessieren neben den
Grunddaten der Mitarbeiter v.a. Lohn- und Gehalts-,
Qualifikations- und Beschäftigungsdaten, während
der Betriebsarzt mit Daten zum Arbeitsplatz und
Einsatzort, gesundheitlichen Risiken und
Untersuchungsergebnissen umgeht.
17
1 Grundlagen
2) Die konzeptuelle Ebene beschreibt eine konsistente
fachliche Gesamtsicht, die die einzelnen
Sichten der externen Ebene integriert.
Beispiel:
Um die Arbeit mehrerer organisatorischer Einheiten
eines Unternehmens zu unterstützen, müssen zu
einem Mitarbeiter
- Grunddaten,
- und Lohn- und Gehaltsdaten,
- und arbeitsmedizinische Daten,
- und evtl. noch weitere Daten
berücksichtigt werden.
18
1 Grundlagen
3 ) Auf der internen Ebene (auch "physische Ebene"
genannt) wird beschrieben, wie und wo die Daten
einer Datenbank gespeichert werden.
Hier werden Datenstrukturen, Datentypen,
Index- und andere Hilfsdateien, Zugriffspfade
und Adressen festgelegt und gehandhabt.
19
1 Grundlagen
Anwender
Anwendungen
Sicht A
Sicht B
Sicht C
Externe
Ebene
Konzeptuelle
Ebene
Interne
Ebene
20
1 Grundlagen
Zusammenhänge:
> Sowohl auf der externen als auch auf der konzeptuellen Ebene wird nur beschrieben, was in
einer Datenbank abgelegt wird, nicht wie etwas
gespeichert ist.
> Alle Sichten der externen Ebene müssen sich
auf der konzeptuellen Ebene wiederfinden. Die
konzeptuelle Ebene vermittelt eine Gesamtsicht
auf die Informationen eines gesamten Anwendungsbereichs
(=> "Unternehmensdatenmodell").
21
1 Grundlagen
> Auf der konzeptuellen Ebene unterscheidet
man nochmals …
- eine datenbankunabhängige fachliche Ebene ...
Beispiel: Allgemeinverständliche Beschreibung
von Personaldaten, wie sie im Unternehmen
Verwendung finden.
- von einer datenbankabhängigen logischen Ebene
Beispiel: Personaldaten, in Form von Tabellen
beschrieben. Dabei wird z.B. festgelegt, dass
für den Nachnamen eines Mitarbeiters eine
Zeichenkette mit maximal 35 Zeichen verwendet
werden soll. Ein schneller Zugriff soll neben der
Personalnummer auch über die Sozialversicherungsnummer möglich sein.
22
(datenbankunabhängig)
Interne
Ebene
(datenbankabhängig)
Konzeptuelle
Ebene
Fachliche Ebene
Externe
Ebene
Logische Ebene
1 Grundlagen
23
1 Grundlagen
> Diese weitergehende Unterscheidung spielt
v.a. bei der Klassifizierung von Dokumenten
eine Rolle, die betriebliche Informationen
ganzheitlich beschreiben.
> Im Datenbankbereich werden solche Dokumente
generell als Schemata oder Datenmodelle bezeichnet.
> Entsprechend können
.
.
.
.
externe,
fachliche konzeptuelle,
logische konzeptuelle und
interne
Schemata zur Beschreibung von betrieblichen
Informationen bzw. Daten existieren.
24
1 Grundlagen
Schemata und ihre primären Nutzer:
Nutzer:
Sachbearbeiter
Analytiker
Einkauf
Personal
Vertrieb
Externe
Schemata
Fachliche...
konzeptuelle
Schemata
DB-Entwickler
DB-Admin
Logische...
Interne
Schemata
25
1 Grundlagen
Beispiel:
> In einem Unternehmen wurden externe Schemata für
die fachlichen Sichten des Einkaufs, der Personalververwaltung, der Produktion und des Vertriebs erstellt.
> Ein fachliches konzeptuelles Schema integriert die
externen Schemata in ein Unternehmensdatenmodell.
> Eines oder mehrere logische konzeptuelle Schemata
bilden dieses Modell in der "Sprache" der aktuell im
Unternehmen eingesetzten Datenbanktechnologie ab.
> Alle Strukturen und Verfahren der Datenspeicherung
sind in internen Schemata beschrieben, die der DBA
und technische Mitarbeiter der IT einsehen und (z.B.
zwecks Optimierung) verändern können.
26
1 Grundlagen
Das Hauptmotiv für die Mehr-Ebenen-Betrachtung
besteht in einer klaren Trennung zwischen den Ebenen,
hier zwischen den beiden fachlichen, der logischen und
der physikalischen Sicht auf betriebliche Informationen.
In der Praxis erhält diese Trennung durch die
Prinzipien der Datenunabhängigkeit
eine große Bedeutung.
Man unterteilt hierbei:
> Logische Datenunabhängigkeit:
Änderungen auf der logischen Ebene dürfen keinen
Einfluss auf die fachliche Sicht haben
> Physische Datenunabhängigkeit:
Änderungen auf der physischen Ebene dürfen
keinen Einfluss auf die logische Ebene haben
27
1 Grundlagen
F
achlich
Logische Datenunabhängigkeit
L
ogisch
Physische Datenunabhängigkeit
I
ntern
28
1 Grundlagen
> Auch in anderen Bereichen der IT dient die
Unterscheidung von Ebenen und die Minimierung
von Beziehungen zwischen den Ebenen der
Gewinnung von Überschaubarkeit und Isolation.
> So kann die Gewährleistung der beiden
Datenunabhängigkeiten hohe Kosten sparen, z.B. …
. beim Wechsel der Speichertechnik (Server, Medien),
. beim Wechsel oder Update von Betriebssystemen,
. beim Wechsel oder Update des DBMS,
da sich diese Eingriffe nur auf die jeweils betroffene
Ebene auswirken.
> Warum können die Prinzipien nicht auch in
umgekehrter Richtung gelten?
?
29
1 Grundlagen
Datenbankmodelle
> Jedes konkrete Datenbanksystem basiert auf einer
von 4 fundamentalen Klassen (Datenbankmodelle)
solcher Systeme, die die grundlegende Art der
Beschreibung von Datenbankinhalten (und deren
Möglichkeiten und Grenzen) bestimmt.
> Gegenwärtig existieren folgende Datenbankmodelle:
-
Das
Das
Das
Das
hierarchische Datenbankmodell (veraltet)
Netzwerk-Modell (veraltet)
relationale Datenbankmodell (aktuell)
objektorientierte Datenbankmodell (Zukunft?)
30
1 Grundlagen
> Die Entscheidung für ein bestimmtes Datenbankmodell hat keine Auswirkungen auf die fachliche
Sicht; es bestimmt aber die logische Sicht
> Fachliche Schemata werden mit abstrakten
Beschreibungsmethoden erzeugt, deren Vorteil
darin besteht, dass ihre Erzeugnisse für alle
Datenbankmodelle geeignet sind.
Beispiele: Entity Relationship Modeling (ERM)
Unified Modelling Language (UML)
Semantic ERM (SERM)
Semantiv Data Modelling (SeDaM)
> Die 4 Datenbankmodelle dürfen nicht mit
konkreten Schemata (Datenmodellen) verwechselt
werden.
31
1 Grundlagen
> Beim (I) hierarchischen Datenbankmodell müssen
Beziehungen zwischen Objekten immer in einer
Baumstruktur abgebildet werden.
Beispiel: Datenbestand einer Bibliothek
Leser
hat
entleiht
logische Ebene
= Interne Ebene
Anschrift
Einfach: Anschrift eines Lesers,
entliehene Bücher eines Lesers,
Autoren eines Buches.
Buch
haben
hat
Autor
Umständlich: Bücher eines
Autors, Entleiher eines Buches
32
1 Grundlagen
> Beim (II) Netzwerkmodell sind netzförmige Informationsstrukturen modellierbar. Die hierfür notwendigen "Zugriffe" in beide Richtungen einer Beziehung
werden technisch über "Kett-Records" implementiert:
verfasst
von
entleiht
Leser
entliehen
von
Buch
hat verfasst
Logische Ebene
Person
Interne Ebene
Leser
tätigt
Entleihe
Buch
hat
Person
hat
ist
Autor
33
1 Grundlagen
> Beim (III) relationalen Datenbankmodell werden
Informationsstrukturen in Relationen dargestellt,
d.h. in tabellenartigen Beschreibungen zusammengehörender Objekteigenschaften
Beispiel:
Personen
PNr
Nachname
4711 Semple, Jr. Lorenzo
4740 Rayfiel
David
Vorname
Bücher ISBN Titel
3-09.. Three Days Of The Condor
3-11.. Operating Systems
Logische Ebene
Die interne Ebene hat keinen Einfluss mehr auf die Modellierung
Das relationale Datenbankmodell besitzt zur Zeit
die größte praktische Bedeutung !
34
1 Grundlagen
> Beim (IV) objektorientierten Datenbankmodell werden
analog zum Paradigma der objektorientierten
Programmierung zusätzlich zu Objekteigenschaften
und -beziehungen objektspezifische Operationen
("Methoden") modelliert.
Beispiel:
Logische
Ebene
Leser
Nr
Name
Vorname
Adresse ändern
Mahnung erstellen
Buchexemplar
entleiht
ausgeliehen an
InvNr
Titel
Erscheinungsjahr
Buch entleihen
Buch zurückgeben
35
1 Grundlagen
Logischerweise sind auch Datenbankmanagementsysteme immer einem bestimmten Datenbankmodell
zuzuordnen.
Beispiele:
Hierarchische Datenbankmanagementsysteme
wie IMS
Netzwerkdatenbankmanagementsysteme
wie IDMS
Relationale Datenbankmanagementsysteme (RDBMS)
wie Adabas, DB2, Ingres, MySQL, Oracle, ...
Objektorientierte Datenbankmanagementsysteme
wie … ?
36
1 Grundlagen
Von der Problemstellung zur Datenbank:
> Prinzipiell ist es möglich, zu einer Problemstellung
unmittelbar ein datenbankabhängiges logisches
Schema aufzustellen und mit Hilfe eines dazu
passenden DBMS zu implementieren.
> Da logische Schemata i.d.R. jedoch nicht die
Aussagenfülle und Mächtigkeit fachlicher Schemata
besitzen, führt dies nur bei einfach strukturierten
Datenbeständen zum Erfolg.
> Für komplexe Fälle sollte man sich an ein etabliertes
Vorgehensmodell halten.
37
1 Grundlagen
datenbankunabhängig
Vorgehensmodell:
Reale Welt
Abgrenzung
Relevanter Realitätsausschnitt ("Miniwelt")
Erhebung fachlicher Sichten / Anford.analyse
Externe Schemata
Konzeptuelles Design (Konsolidierung/Integration)
Fachliches konzeptuelles Schema
datenbankabhängig
Logisches Design
Logische konzeptuelle Schemata
Implementierung / Optimierung
Interne Schemata
Datenbanksystem
38
1 Grundlagen
Was wird für die Anwendung des Vorgehensmodells bei
einer konkreten Aufgabe benötigt?
(1) Ansprechpartner/Fachwissen zum Problembereich
(2) Methoden zur Analyse und Dokumentation
fachlicher (d.h. externer bzw. fachlich
konzeptueller) Schemata
(3) Entscheidung bzgl. eines Datenbankmodells
und damit einer Methode zur Beschreibung
logischer Schemata
(4) Verfahren zur Überführung fachlicher
Schemata in logische Schemata
(5) Ein DBMS inkl. Schnittstelle zur Implementierung
logischer und interner Schemata
39
1 Grundlagen
Meilenstein I
Die Grundlagen von Datenbanksystemen sind bekannt
>
>
>
>
>
>
Sinn und Zweck eines Datenbanksystems
Grundlegender Aufbau
Architektur, Ebenen-Modell
Sichten/Schemata, Datenunabhängigkeit
Datenbankmodelle
Vorgehensmodell der Datenbankentwicklung
40
Herunterladen