4. Datenbanken - Prinzipien und Nutzung relationaler Datenbanken

Werbung
4. Datenbanken Prinzipien und Nutzung relationaler Datenbanken
Inhalt:




Datenbanken im Vergleich mit Dateien
Datenbanken: Tabellen, Attribute und Datentyp
Datenmodellierung und Normalformen einer Datenbank
Structured Query Language SQL
Peter Sobe
1
Datenbanken im Vergleich mit Dateien (1)
Dateien:
 sind benannte Objekte, die eine Speicherung von
Anwendungsdaten auf einem linearen Adressraum
zulassen
 Persistente Speicherung, d.h. Daten bleiben nach
Beendigung der Anwendung und auch nach Abschalten
des Systems erhalten
 Dateisystem als Teil des Betriebssystems sorgt für Zugriff
mit Dateinamen, Verzeichnisse, Pufferung, Zugriffsschutz
 Datei-Daten können beliebig strukturiert sein:
 Binärdaten
 Textdaten (lesbarer Text)
 XML Datenformate
 es werden keine Regelmäßigkeiten der abgespeicherten
Datenstrukturen vorausgesetzt.
Peter Sobe
2
Datenbanken im Vergleich mit Dateien (2)
Dateien (Fortsetzung):
 Wenn Daten eine Struktur bzw. Regelmäßigkeiten
aufweisen, so wird dieser Umstand nicht vom Dateisystem
gespeichert und nicht verwaltet.
 Hinweis auf Typ/Struktur der Datei über Dateityp, z.B.
bild.jpg ist eine Bilddatei im JPEG-Format … aber nicht
mehr
 Zugriff auf Daten in vollständiger Kontrolle des
Anwendungsprogramms
 Konkurrierende Zugriffe durch mehrere Anwendungen
sind nicht berücksichtigt und werden höchstens durch
Sperren der gesamten Datei vermieden.
Peter Sobe
3
Datenbanken im Vergleich mit Dateien (3)
Datenbanken:
 Tabellen mit gleichartig aufgebauten Datensätzen
 Beziehungen zwischen Tabellen durch geeigneten
Datenbankentwurf
 Zugriff entweder durch Satzzugriff auf einzelne Sätze einer
Tabelle
 oder Zugriff durch eine Abfragesprache (SQL)
 Die Datenbank-Tabellen werden als Dateien gespeichert,
oder als Image auf einem Speichermedium, ein direkter
Zugriff über Datei-Operation ist aber nicht vorgesehen.
 Die regelmäßige Struktur der Daten wird in der Datenbank
gespeichert und zur Steuerung der Zugriffe ausgenutzt.
Peter Sobe
4
Datenbanken im Vergleich mit Dateien (4)
Datenbanken (Fortsetzung):
 Ein Datenbank-Management-System dient zur Laufzeit dem
Zugriff auf die Datenbank. Das sind i.d.R. Serverprozesse,
die im Hintergrund ausgeführt werden.
 Persistente Speicherung, d.h. Daten bleiben nach
Beendigung der Anwendung und auch nach Abschalten des
Systems erhalten (wie Dateien)
 Konkurrierende Zugriffe erlaubt, Verhalten bei Konflikten
durch Transaktionen geregelt
Peter Sobe
5
Begriffe für Datenbanken
Datenbank
DB-Server
Metadaten
(Data
Dictionary),
daten-modellbezogen
Peter Sobe
organisatorische Da-ten
(Schlüssel,
Indexdateien, ...),
bezogen auf
internes
Schema
reale Daten
Installation
Nutzerverwaltung
bezogen auf
externes
Schema
Datenbanksoftware
organisatorische
Festlegung zum
Datenbankbetrieb
(DatenbankAdministrator)
Datenbasis
Hardware
Datensicherheit
Datenbankbetriebssystem
(DBMS)
Datenbanksprache
Nutzerprogramme
Entwicklungsumgebung
SQL
6
Tabellen, Attribute und Datentyp
Tabellenname
Attribut
Wetter
Ortsnr
Ortsname
Temperatur
Luftdruck
1
Dresden
22
1012
2
Leipzig
20
1010
3
Berlin
25
998
…
…
…
…
Tupel,
auch
Datensatz
oder Zeile
Wert mit einem
speziellen Datentyp, der
je Attribut definiert ist
Peter Sobe
7
Tabellen, Attribute und Datentyp
Eine Datenbank besteht oft aus mehreren einzelnen Tabellen, die
Referenzen aufeinander beinhalten können.
Orte
Ortsnr
Name
geogr.
Breite
Geogr.
Länge
Höhe
1
Dresden
51,05
13,74
113
2
Leipzig
51,34
12,37
118
3
Berlin
52,52
13,41
34
…
…
…
…
…
Beispiel:
Tabelle Orte und
Tabelle Wetter
Bezug über
gleiche Ortsnr.
Wetter
Peter Sobe
Datum
Zeit
Temperatur Ortsnr Luftdruck
1-1-2013
17:01:24
-5
1
1012
1-1-2013
17:04:00
-4.9
2
1010
1-1-2013
17:00:01
3.1
3
998
…
…
…
…
…
8
Tabellen als so genannte Relation
Die mathematische Modellierung von Datenbanken und
Zugriffsoperationen kann über das Relationale
Datenmodell (Codd 1970) erfolgen. Es basiert auf dem
mathematischen Relationenbegriff. Durch die
Einfachheit (Tabellensicht) und klare mathematische
Basis konnte sich das relationale Modell in der
Entwicklung der Datenbanktechnologie seit 1970
durchsetzen.
Entity-Relationship-Modell (Chen 1976) dient zur
Datenmodellierung, d.h. zur Entscheidung wie Dinge
und Beziehungen auf Tabellen abgebildet werden.
Peter Sobe
9
Definition der mathematischen Relation (1)
(mathematische) Definition der Relation:
Gegeben seien die nichtleeren Mengen W1, W2, ... Wn mit
W1xW2x...xWn = {(w1,w2,...,wn) | wi є Wi (i=1,2,...,n)}
Dann ist jede nichtleere Teilmenge R  W1xW2x...xWn eine n-stellige
Relation über W1, W2, ..., Wn . Die Wi müssen nicht alle paarweise
verschieden sein.
Ein Tupel (w1,w2,...,wn) =
(1; 1-1-2013; 17:01:24; -5; 1020).
könnte z.B. zu R gehören. Als Trennzeichen zwischen den Tupelwerten
wurde das Semikolon verwendet, da das Komma in Dezimalzahlen
vorkommen kann.
Für das obige Beispiel wären die Mengen Wi konkret festgelegt:
W1 ganze Zahl (int), W2 Datum, W3 Zeit, W4 und W5 Fließkommazahl.
Peter Sobe
10
Wertebereiche, Eigenschaften
und Relationenformat (1)
Wir deuten jetzt die Mengen Wi als Wertebereiche und die wi є Wi als
Werte und verbinden die Wi , genauer das Kreuzprodukt W1xW2x...xWn
, mit einer Interpretation I
E={E1,E2,...,En } = I(W1xW2x...xWn ) für i=1,2,...,n
Diese Ei werden als Eigenschaften (Attribute) von Entitäten gedeutet.
Für das obige Beispiel wären die Eigenschaften Ei wie folgt gedeutet:
E1 Datum, E2 Uhrzeit, E3 Ortsnr(Identifikation des Orts),
E4 Temperatur , E5 Luftdruck.
E nennt man Relationenformat.
Mit diesem Format würde das Tupel
(1-1-2013; 17:01:24; 1; -5; 1020)
die Entität einer Wettermessung an einem bestimmten Ort und zu einer
bestimmten Zeit eindeutig charakterisieren.
Peter Sobe
11
Wertebereiche, Eigenschaften
und Relationenformat (2)
In Datenbanken ist es möglich, dass ein Wert fehlt, d.h.
undefiniert ist. Dieser Fall wird durch den (Sonder-)Wert NULL
angezeigt.
Definition:
Eine Relation R= R(E1,E2,...,En) ist eine Menge von Tupeln,
wobei R der Name der Relation, E={E1,E2,...,En } das
Relationenformat und die Ei (i=1,2,...,n) die Eigenschaften sind,
deren Werte wi aus den zugeordneten Wertebereichen Wi
stammen müssen. Die Ei , die zu einer Relation gehören,
müssen paarweise verschieden sein. Ist r ein Tupel der Relation,
bezeichnet wi = r.Ei den Wert der i-ten Eigenschaft des Tupels r є
R (W1xW2x...xWn ). n heißt Grad der Relation.
Eine Relation ist eine Tabelle, die besondere Eigenschaften
aufweist …
Peter Sobe
12
Charakteristische Eigenschaften der Relation
Eine Relation hat folgende charakteristische Eigenschaften:
1. R ist eine Menge. Damit gibt keine paarweise identischen
Tupel. R hat deshalb einen Primärschlüssel, der jedes Tupel
eindeutig identifiziert.
2. R ist eine Menge. Deshalb ist die Reihenfolge der Tupel in R
ohne Belang.
3. Die Reihenfolge der Eigenschaften Ei in R ist ohne Belang.
4. Die Eigenschaftswerte wi = r.Ei mit r є R müssen einfach sein,
d.h. dürfen nicht mengenwertig oder nicht strukturiert sein.
wi = NULL ist aber möglich.
Peter Sobe
13
Primärschlüssel einer Relation
Primärschlüssel PS :
Ein Teil der Eigenschaften stellt sich oft als identifizierend für die Tupel
heraus.
PS  E
 PS ist die einzelne identifizierende Eigenschaft bzw. eine
Eigenschaftskombination, d.h. jeder Wert des PS verweist eindeutig
auf ein Tupel.
 PS sollten minimal sein, d.h nur die eine oder so wenige
Eigenschaften enthalten, damit (gerade so) eine eindeutige
Identifaktion der Tupel entsteht.
 Oft werden derartige Schlüssel schon durch organisatorische
Maßnahmen unabhängig von der Datenbank eingeführt, zum
Beispiel
Matrikelnummern, Kundennummern, Artikelnummern, Zugnummern.
Peter Sobe
14
Primärschlüssel einer Relation
Studenten
Matrikelnr. Vorname
Name
Gebdat
Wohnort
111111
Felix
Fritsche
1.1.1980
Freiberg
111113
Lise
Müller
26.3.1979
München
…
…
…
…
…
Die Matrikelnummer ist hier der Primärschlüssel. Es gibt jede
Matrikelnummer nur ein einziges mal im Diskursbereich.
Matrikelnummer und Geburtsdatum wäre auch ein guter Schlüssel,
ist aber nicht minimal, da Matrikelnummer auch ohne Geburtsdatum
eindeutig identifiziert.
Peter Sobe
15
Datenmodellierung und Normalformen einer
Datenbank(1)
In der Regel werden Diskursbereiche durch mehrere Relationen
(Tabellen) abgebildet.
Ziele:
 Vermeiden von Redundanz in Relationen
 Vermeiden von Inkonsistenzen
 Effizienzsteigerung, wenn nur wirklich benötigte Daten gelesen
werden, bzw. nur die Informationen in wenigen Tupeln
aktualisiert werden müssen.
Beispiel: eine Datenbank über Verkäufe, eine Tabelle ‘Gesamt‘
Gesamt
Verkaufs-Nr.
Produkt
Einzelpreis
Anzahl
Käufer
Käufer-Adresse
…
…
…
…
…
…
Peter Sobe
16
Datenmodellierung … (2)
Gesamt
Verk.-Nr.
Produkt
Einzelpreis
Anzahl
Käufer
Käufer-Adresse
1
Tomate
0.20
4
Heidi
33333 Wiesenhain,
Am Waldrand 1
2
Apfelsaft
1.40
2
Heidi
33333 Wiesenhain,
Am Waldrand 1
3
Katzenfutter
2.30
1
Kurt
33221 Bachhagen,
Hauptstr. 23
4
Apfelsaft
1.40
3
Kurt
33221 Bachhagen,
Hauptstr. 23
5
Gurke
0.55
1
Peter
33200 Feldstadt
Am Markt 5
6
Tomate
0.20
8
Peter
33200 Feldstadt
Am Markt 5
7
Bier
0.78
4
Kurt
22331 Bachhagen,
Hauptstr. 23
…
…
…
…
…
…
Peter Sobe
Redundanzen und Inkonsistenz
17
Datenmodellierung … (3)
Produkte
Verkaeufe
Produkt-ID
Name
Preis
T
Tomate
0.20
42
A
Apfelsaft
1.40
2
42
K
Katzenfutter
2.30
K
1
20
G
Gurke
0.55
4
A
3
20
B
Bier
0.78
5
G
1
17
…
6
T
8
17
Kunden
7
B
4
20
Käufer-ID
Name
Adresse
…
…
…
…
17
Peter
33200 Feldstadt
Am Markt 5
20
Kurt
33221 Bachhagen,
Hauptstr. 23
42
Heidi
33333 Wiesenhain,
Am Waldrand 1
…
…
…
Verk.
Nr.
ProduktID
Anzahl
1
T
4
2
A
3
Käufer-ID
 Redundanz ist jetzt
beseitigt
 Inkonsistenzen können jetzt
nicht mehr auftreten
Peter Sobe
…
18
Normalformen (1)
Ziele:
 Vermeiden von Redundanz in Relationen – bei
ungünstiger Struktur der Tabellen würde gleiche
Information u.U. mehrfach gespeichert. Eine
Strukturierung entsprechend der dritten Normalform
verhindert das.
 Vermeiden von Anomalien – bei ungünstigem Entwurf
können Informationen u.U. ungewollt verloren gehen.
Peter Sobe
19
Normalformen (2)
Verk.-Nr.
Produkt
Einzelpreis
Anzahl
Käufer
Käufer-Adresse
…
…
…
…
…
…
Anomalien:
 Einfügeanomalie – Neue Sachverhalte können nicht
eingefügt werden. Im Beispiel oben kann keine neues
Produkt mit einem Preis eingefügt werden, ohne einen
Kaufvorgang zu beschreiben.
 Löschanomalie – Das Löschen von Kaufvorgängen
bedingt u.U. den Verlust von Produktinformationen und
Käuferdaten.
 Änderungsanomalie – Das Abändern eines Sachverhalts
verlang oft das Ändern vieler Datensätze (bei
Redundanz von z.B. Käufer-Adressen)
Peter Sobe
20
Zweck der Normalformen
Ein Datenbankentwurf nach dem Entity-Relationship-Modell (ERModell) bringt die Tabellen automatisch in eine redundanzfreie und
anomaliefreie Struktur.
ERModell
regelbasierter
Entwurf
(hier nicht gezeigt)
Existierender
Datenbestand
Umstrukturierter
Datenbestand
Redundanzfreie
und
anomaliefreie
Datenbank
Herstellung der
Normalformen
Für existierende Datenbanken können Probleme behoben werden,
indem das Vorhandensein der Normalformen geprüft wird und diese
durch Umstrukturierung der Tabellenstruktur hergestellt werden.
Peter Sobe
21
Erste Normalform (1)
Eine Tabelle ist in der ersten Normalform (1NF), falls die
Wertebereiche der Merkmale atomar sind.
1NF verlangt, dass jedes Merkmal Werte aus einem
unstrukturierten Wertebereich aufnimmt. Damit dürfen keine
Mengen, Aufzählungstypen oder Wiederholungsgruppen in
den einzelnen Merkmalen vorkommen.
Beispiel für eine nicht erfüllte 1NF:
Matrnr
Name
Vorname
Studiengänge
11
Schmidt
Robert
{Mathemetik, Physik}
47
Schulze
Klaus
{Sport, Erziehungswissenschaften}
78
Peters
Karoline
{Informatik}
Peter Sobe
22
Erste Normalform (2)
Beispiel mit atomarem Wertebereich für Studiengang
Matrnr
Name
Vorname
Studiengang
11
Schmidt
Robert
Mathematik
11
Schmidt
Robert
Physik
47
Schulze
Klaus
Sport
47
Schulze
Klaus
Erziehungswissenschaften
78
Peters
Karoline
Informatik
Peter Sobe
23
Zweite Normalform (1)
Eine Tabelle ist in der zweiten Normalform (2NF), wenn sie in 1NF
ist und wenn jedes Nichtschlüsselmerkmal von jedem Schlüssel
voll funktional abhängig ist.
Voll funktional abhängig bezieht sich auf zusammengesetzte
Schlüssel (S1,S2) von denen alle Nichtschlüsselmerkmale
abhängig sind: (S1,S2) -> N
Sie dürfen dabei aber nicht funktional abhängig von einem
Teilschlüssel sein, z.B. S1->N
Im Beispiel sind Name und Vorname Nichtschlüsselmerkmale, der
Schlüssel setzt sich aus Matrnr und Studiengang zusammen.
(Matrnr, Studiengang) -> Name
aber auch Matrnr -> Name … damit keine 2NF
Peter Sobe
24
Zweite Normalform (2)
Herstellung der zweiten Normalform (2NF): Tabellenteilung
Alle Merkmale, die von einem Teilschlüssel abhängig sind werden
in eine eigene Tabelle ausgegliedert.
Matrnr
Name
Vorname
Matrnr
Studiengang
11
Schmidt
Robert
11
Mathematik
47
Schulze
Klaus
11
Physik
78
Peters
Karoline
47
Sport
47
Erziehungswissenschaften
78
Informatik
Peter Sobe
25
Dritte Normalform (1)
Eine Tabelle ist in der dritten Normalform (3NF), wenn sie in 2NF ist
und kein Nichtschlüsselmerkmal von irgendeinem Schlüssel
transitiv abhängig ist
Ein Beispiel für nicht erfüllte 3NF:
Matrnr
WohnPLZ
Wohnort
11
01217
Dresden
47
01219
Dresden
78
14197
Berlin
89
14197
Berlin
95
01217
Dresden
Peter Sobe
Matr
nr
Wohn
PLZ
Wohn
ort
Wohnort tritt
redundant auf.
26
Dritte Normalform (2)
Überführung in dritte Normalform (3NF), indem ein transitiv
abhängiges Merkmal in eine neue Tabelle ausgegliedert wird. Das
Merkmal von dem die letzte Stufe der Abhängigkeit ausgegangen
ist, wird als Fremdschlüssel in die neue Tabelle aufgenommen.
Matrnr
WohnPLZ
PLZ
Ort
11
01217
01217
Dresden
47
01219
14197
Berlin
78
14197
01219
Dresden
89
14197
95
01217
Peter Sobe
27
Herunterladen