DB2-DBMS-Typen - schmiedecke.info

Werbung
1. Einführung:
1.2 Typen von DBMS
Auswertung der Praxis
Dieselbe DB auf 3 verschiedenen DBMS
Bis auf kleinere Unterschiede (z.B. Literale) egal, womit man
arbeitet
Äquivalent:
Gleiches Datenmodell (Relationale Datenbanken)
Ist das Datenunabhängigkeit?
– Sogar auf höherer Stufe...
– Dank SQL-Normung sogar unabhängig vom DBMS
– In der Praxis werden Prototypen oft mit einem einfachen
(kostenlosen) DBMS entwickelt und dann auf das ProduktionsDBMS migriert.
Datenunabhängigkeit setzt früher an:
– Unabhängigkeit der Anwendung von der logischen und physischen
Datenstruktur – und umgekehrt.
© schmiedecke 06
DB2 – DBMS-Typen
2
Datenhaltung in Dateien
Anwendung
Anw. 1
Datenbestand
der Anwendung
1
2
Anw. 2
Anw. 3
Daten in
1-5
Datum 1
Datum 2
Datum 3
3
• Logische Datenstruktur im
Anwendungsprogramm
"verdrahtet"
• Physische Abbildung auf
Dateiformat im Anwendungsprogramm "verdrahtet"
4
5
© P.Sauer
Änderung im Programm
Änderung der Dateistruktur
Gegenseitige Gefährdung der
Anwendungen
© schmiedecke 06
DB2 – DBMS-Typen
3
Datenhaltung in Gemeinsamer Datenbasis
• Vereinbarte Datenstruktur
• evtl. gemeinsame externe
Spezifikationsdatei
Anw. 1
Anw. 2
Datenbasis
Anw. 3
• Vereinbartes Speicherund Dateiformat
• evtl. Abstraktion durch
Lese-Schreib-Werkzeug
I/O
Anw. n
© schmiedecke 06
Spez.
Durch Auslagerung von
Datenstrukturbeschreibung
und Dateizugriff wächst die
Datenunabhängigkeit
DB2 – DBMS-Typen
4
DBMS
Anw. 1
Anw. 2
DBMS
Anw. 3
Datenbasis
DD.
Anw. n
• Gemeinsamer Zugriff auf
änderbare formale
Beschreibung der
logischen Datenstruktur
(DD) in genormten
Datenmodell ("logisches
Schema")
• Zugriff auf die physischen
Daten nur über die
abstrakte logische Struktur
Programme sind
unabhängig von der
logischen und physischen
Strukturierung der Daten
© schmiedecke 06
DB2 – DBMS-Typen
5
Datenunabhängigkeit
Datenunabhängigkeit bedeutet Entkopplung von Datenhaltung und Datennutzung
Logische Datenunabhängigkeit:
-
Anwendungsprogramme müssen nicht die komplette logische Realisierung der
Datenstruktur kennen, um mit den Daten arbeiten zu können.
Physische Datenunabhängigkeit:
-
Anwendungsprogramme müssen die interne Datenorganisation (Speicher, Datei)
und die Zugriffsmöglichkeiten nicht kennen, um mit den Daten arbeiten zu
können.
Was müssen Anwendungprogramme kennen?
-
abstrakte logische Struktur und ein Zugriffskalkül
d.h. Datenmodell und DB-Sprache
Entkopplungsbeispiel Milch:
-
–
Max muss nicht wissen, wie viel die Kuh frisst, von der die Milch stammt, damit
ihm die Cornflakes schmecken.
- Der Landwirt produziert und liefert Milch, ohne je von Max gehört zu haben.
Beide kooperieren über den Handel und über Geld.
© schmiedecke 06
DB2 – DBMS-Typen
6
Was ist ein Datenmodell?
Kalkül zur Strukturierung von Informationen (Daten)
Bietet Konzepte zur
– Datenabstraktion (Benennung von Teilmengen)
– Datensuche (Navigation, Retrieval)
– Datenmanipulation
Beispiel Binäre Baumstruktur:
– Benennung von Knoten und Teilbäumen
– Traversierungsalgorithmen, Suchstrategien
– Baumoperationen zum Einhängen und Restrukturieren
(Balancieren)
Konzepte sind unabhängig von der Implementierung (Verkettete
Listen, Indextabellen, ...)
© schmiedecke 06
DB2 – DBMS-Typen
7
Datenmodelle
Verschiedene Abstraktionsstufen:
– Mengen, Objekte, Wissensräume, ...
ohne Bezug zur Implementierung
(oder Implementierbarkeit)
semantische Datenmodelle
(oder abstrakte Datenmodelle)
ERM, EERM, UML-Klassenmodell
– Listen, Bäume, Netze, Tabellen, ....
Implementierungs-Referenzmodell liegt zugrunde
(Implementierbarkeit gesichert)
logische Datenmodelle
(oder konkrete Datenmodelle)
HDM, NDM, RDM, ORDM, OODM
– Zeigerstrukturen, Indexdateien, Hashtabellen, Datenblöcke ...
Implementierung,
Abbildung auf Speichermedien
physische Datenmodelle
(oder interne Datenmodelle)
© schmiedecke 06
DB2 – DBMS-Typen
8
Logische Datenmodelle
sind die Basis der Arbeit mit einer Datenbank
stellen einen Mittelweg zwischen Realweltabbildung und
Implementierung dar
zur "technisch" für den Entwurf komplexer Datenbanken
zu "abstrakt" für eine unmittelbare Abbildung auf
Speichermedien.
© schmiedecke 06
DB2 – DBMS-Typen
9
Datenbestand Keramische Werkstatt
Bestellungen:
• Datum
• Name
• Strasse
• PLZ, Ort
• Produktbez.
• Preis
• Anzahl
Kunden:
• Name
• Strasse
• PLZ, Ort
• Konto
Marktstände:
• Markt
• Produkte
• Bestellungen
• Umsatz
• Erlös
Märkte:
• Ort
• Veranstalter
Lagerposten:
• Termin
• Produkt
• Charge
• Anzahl
Rohstoffe:
•Bezeichnung
•Lieferant
•Preis
Produkte
• Bezeichnung
• Größe
• Glasur
• Dekor
• Preis
Buchhaltung
Lagerverwaltung
Werbung
Materialeinkauf
© schmiedecke 06
DB2 – DBMS-Typen
10
Hierarchisches Datenmodell
Datenstruktur
Betrieb
Name
Anschrift
Re-Nr
Anzahl
© schmiedecke 06
Leitung
Status
Status
Nr
Ort
Artikel
Typ
Nr
Gesamtpreis
Glasur
Dekor
Dekor
Artikel
Glasur
Preis
Einzelpreis
DB2 – DBMS-Typen
11
Hierarchisches Datenmodell
Beispiel-Datensätze
Keram.Werkstatt
Max Mayr
Max
Hansen
206
Hanne
30
grau
Privatkunde
Jürgens
Bestellung
31
ohne
grau
Fisch
Galerist
164,40
3016
Teller
6,15
3017
Schale
12,10
3025
Teekanne
50,75
2
3125
Teekanne
grau
Fisch
53,70
6
3016
Teller
grau
ohne
6,15
6
3117
Schale
grau
Fisch
12,30
Kauf
60
Schmidt
Großhändler
Joseph
217
Lindau
361,80
2816
© schmiedecke 06
Teller
blau
Möve
6,30
DB2 – DBMS-Typen
12
Hierarchisches Datenmodelle
Diskussion
Charakteristika:
historisch erstes Modell(1969 IMS)
Datenstrukturen als Bäume
Navigation entlang des Baumes zum Zugriff
Realisierung der Zusammenhänge durch Zeiger (typischerweise)
Vorteile:
günstig für 1:N-Beziehungen (z.B. Stücklisten, Personaldateien, ...)
Abfragen, die den Baumstrukturen folgen, sehr effizient und schnell
einfache Speicherstrukturen (sequentiell)
Nachteile:
Redundanz
M:N-Beziehungen direkt nicht darstellbar -> Auflösung in 2x 1:NBeziehungen
Änderungen sehr aufwendig
“Quer”-abfragen nicht unmittelbar möglich
© schmiedecke 06
DB2 – DBMS-Typen
13
Netzwerkdatenmodell
Datenstruktur
Betrieb
Name
Anschrift
Re-Nr
Status
Ort
Leitung
Status
Typ
Gesamtpreis
Dekor
Nr
Artikel
Glasur
Preis
Anzahl
© schmiedecke 06
DB2 – DBMS-Typen
14
Netzwerk-Datenmodell
Beispiel-Datensätze
Keram.Werkstatt
Max Mayr
Max
Hansen
217
206
Bestellung
Kauf
Großhändler
Hanne
Joseph
Lindau
Schmidt
30
Privatkunde
Jürgens
grau
31
ohne
grau
Fisch
Galerist
164,40
3016
Teller
6,15
3017
Schale
12,10
3025
Teekanne
50,75
2
3116
Teller
6,30
6
3117
Schale
12,80
6
3125
Teekanne
53,60
361,80
20
© schmiedecke 06
DB2 – DBMS-Typen
15
Netzwerk-Datenmodell
Diskussion
Charakteristika:
Datenstrukturen in Form von Netzwerken (n Wurzeln, n Vorgänger)
Navigation über definierte Zugriffspfade
alle Beziehungen darstellbar (zusätzliche Zeiger)
Vorteile:
redundanzfrei
auch M:N-Beziehungen effizient darstellbar
Nachteile:
Komplexität, Handhabbarkeit
schwer überschaubar, schwer änderbar
nur “vorgedachte” Abfragen schnell realisierbar ->
“Navigationspfad”
© schmiedecke 06
DB2 – DBMS-Typen
16
Das Relationale Datenmodell
Struktur und Beispiel-Datensätze
Geschäftspartner
$
',
& #( )
$)
*
+
,
-
#
'
+
-
.
+
/
)
0& 1
Märkte
!
!
&
*
'
&
'
"#$
%
&
!'
#( )
)+
Wird angeboten auf
%
(
%
!
'
#( )
'
#( )
'
#( )
'
Produkte
!
%
#
#
$
#
$
)+
Struktur
Daten
"
#
© schmiedecke 06
$
DB2 – DBMS-Typen
17
Das Relationale Datenmodell
Diskussion
Charakteristika:
Datenstrukturen als zweidimensionale Tabellen
Objekte / Entitäten
Zeilen
Attribute
Spalten
Verknüpfung von Tabellen über Attributübernahme
Vorteile:
Einfachheit, alle Beziehungen darstellbar
redundanzarme Datenspeicherung (kontrollierte Redundanz)
einfach erweiter-, änder-, abfragbar
keine Zugriffspfade, sondern frei definierbare Abfragen
Relationenalgebra, Integritätsbedingungen, NFL, SQL
Nachteile:
Probleme bei komplexen Datenstrukturen
Performance bei Abfragen über viele Tabellen
© schmiedecke 06
DB2 – DBMS-Typen
18
Das objektorientierte Datenmodell
Struktur
Betrieb
-Name
-Ort
-Geschäftsführung : Geschäftspartner
*
1
1..*
1
Geschäftspartner
-Name
-Anschrift
-Status
+StatusÄndern()
-Artikelnr
-Bezeichnung
-Preis
+preisÄndern()
+ausSortimentEntfernen()
1
0..*
-Typ
-Dekor
-Glasur
1
1..*
1
0..*
Auftrag
-Datum
-Status
-Gesamtpreis
+PositionHinzufügen()
+StatusÄndern()
© schmiedecke 06
Serie
Produkt
Auftragsposition
-Anzahl
1
1..*
DB2 – DBMS-Typen
19
Das objektorientierte Datenmodell
Beispieldatenstruktur
KeramischeWerkstatt : Betrieb
Name = KeramWerkstatt
Ort = Lindau
Geschäftsführung : Geschäftspartner
Teller : Produkt
MaxMayr : Geschäftspartner
Name = Max Mayr
Anschrift = Dorfkern7 Lindau
Status = Großhändler
107720 : Auftrag
Datum = 10-08-06
Status = gekauft
Gesamtpreis = 381,80
HanneHansen : Geschäftspartner
Pos1 : Auftragsposition
Name = Hanne Hansen
Anschrift = ImWald 9 Serrau
Status = Privatkunde
Anzahl = 20
JosephJürgens : Geschäftspartner
Name = Joseph Jürgens
Anschrift = Markt22 Karmen
Status = Galerist
© schmiedecke 06
118833 : Auftrag
Datum = 02-09-06
Status = bestellt
Gesamtpreis = 164,40
DB2 – DBMS-Typen
Artikelnr
Bezeichnung
Preis
KlSchale : Produkt
Artikelnr
Bezeichnung
Preis
Serie30 : Serie
Typ = 30
Dekor = ohne
Glasur = grau
Seria31 : Serie
Typ = 31
Dekor = Fisch
Glasur = grau
Schale : Produkt
Artikelnr = 3117
Bezeichnung = Schale gr.
Preis = 13,09
20
Das objektorientierte Datenmodell
Diskussion
Charakteristika:
Sachverhalte der Realsphäre “natürlich” abbilden (ohne Zerlegung wie bei
klassischen DM)
Abbildung komplex zusammengesetzter Daten möglich
Speicherung der Zugriffsoperationen auf den Daten gemeinsam mit Daten
2 Wege zur OODB:
Ergänzung objektorientierter Programmiersprachen um Konzepte zur
dauerhaften Datenhaltung in DBS (Persistenz, Transaktionen,
Sperrmechanismen, etc.), keine Ad-hoc-Anfragen
OODM
Erweiterung Relationaler DBMS um objektorientierte Konzepte
ORDM
(SQL-1999)
Vorteile:
alle Beziehungen darstellbar
effizienter Zugriff (Laufzeitsysteme, DB-Systeme)
einfache Änder-, Erweiterbarkeit
Nachteile:
Standard (ODMG´97), aber Klasse von Modellen mit großen Unterschieden
© schmiedecke 06
Handhabung zwar kompliziert, DB2
aber– DBMS-Typen
zunehmend etabliert
Frameworks.
21
Beispiel für direkte OODB-Anbindung
durch Persistenz-Framework
public persistent class Produkt {
public persistent int Artikelnr;
public persistent String Bezeichnung;
public persistent double Preis;
public static double MwSt;
// ...
public atomic void PreisAendern(double Preis)
{ ... }
// ...
}
© schmiedecke 06
DB2 – DBMS-Typen
22
Physische Datenmodelle
Regeln die Abbildung der logischen Struktur auf Speichermedien
– Implementierbarkeit durch Referenzmodelle gesichert
– in Anwendungsfall oft Optimierungsbedarf
Kriterien: Zugriffs- und Platzeffizienz
Datenschutz und Datensicherheit
Immer mehrere Ebenen:
– Abbildung im Speicher
– Ablage auf externen Medien (Platte, früher auch Band)
Oft Gesamtredundanz (RAID-Systeme)
Konzepte zur Datensicherung/Archivierung/Versionierung
Konzepte zur Transaktionssicherung
© schmiedecke 06
DB2 – DBMS-Typen
23
Administration und Tuning
Administrator kann das physische Modell beeinflussen:
Beispiele aus Relationalen Datenbanken:
– Wahl zwischen Implementierungsmodellen
(z.B. MySQL: ISAM, MyISAM, MERGE, HEAP, BerkeleyDB,
InnoDB)
– Caching-Verhalten (HEAP!)
– Initial- und Standardgröße von Dateien, Datenblöcken, Pages
– Datei-Organisation: index-sequentiell, Hash, Tree
– Dateiformat:
- CSV, binär, XML, proprietär ....
– Tabellen-Indexe zur Zugriffsbeschleunigung
Die Verwaltung von Rechten und Transaktionen erfolgt auf dieser
Abstraktionsebene:
Zugriffe auf Dateien (nicht auf Tabelle und Attribute)
© schmiedecke 06
DB2 – DBMS-Typen
24
Weiter mit SQL....
INNER und OUTER JOIN
Aggregatfunktionen
GROUP und ORDER
Abfragen über mehrer Tabellen (Joins)
SELECT [DISTINCT] Auswahlliste
FROM Quelle1, Quelle2, Quelle3, ...
WHERE Where-Verbundklausel
AND Where-Klausel
;
JOIN nach SQL-86
Intuitive Formulierung nach SQL-86:
!
"
$
© schmiedecke 06
#
"
% &'(
DB2 – DBMS-Typen
26
Abfragen über mehrer Tabellen (Inner Joins)
SELECT [DISTINCT] Auswahlliste
FROM Quelle1 JOIN Quelle2
ON Where-Verbundklausel
AND Where-Klausel
;
JOIN nach SQL-92
Benutzung des JOIN-Operators:
) *
"
$
#
"
% &'(
Vereinfachungen bei gleichen Spaltennamen und evtl. Eindeutigkeit
) *
+ * ,
!
% &'(
+
!
© schmiedecke 06
) *
% &'(
DB2 – DBMS-Typen
27
Abfragen über mehrer Tabellen (Outer Joins)
SELECT [DISTINCT] Auswahlliste
FROM Quelle1 OUTER JOIN Quelle2
ON Where-Verbundklausel
AND Where-Klausel
;
JOIN nach SQL-92
OUTER JOIN bedeutet, dass auch Zeilen gelistet werden, für die die
Verknüpfung nicht gilt – ggf. mit NULL-Wert für die fehlenden Attribute:
+
"
) *
#
"
+
"
© schmiedecke 06
#
(
) *
-1
"
DB2 – DBMS-Typen
..
23
..
/
4
0
5 .6 7 0
"
0
(
28
Aggregatfunktionen
Funktionen, die eine Spalte zu einem Wert aggregieren:
2 (
2 .*"
2
(/
2
2 "
SELECT-Anweisungen mit Aggregatfunktionen aggregieren eine
Tabelle zu einer Zeile
– meistens nur eine Spalte selektiert
© schmiedecke 06
DB2 – DBMS-Typen
skalares Ergebnis
29
Aggregatfunktionen
SELECT Funktion1(Spalte1), Funktion2(Spalte2),...
FROM Quelle
WHERE Where-Klausel
;
Zeilenwertiges Select
SELECT Funktion (Spalte)
FROM Quelle
WHERE Where-Klausel
;
Skalares Select
8 , 9,
:
!
;
.
<=
."! 5 7 ; 8 , 9* 7 . :
<(
;
."* 7 . ; 8 , 9
0
1
:
0
;
."
;
0
%
* 9
:
2
!
© schmiedecke 06
.
<=
3
<(
DB2 – DBMS-Typen
30
Aggregatfunktionen
!
+
9
(
+
9?:
(
;
+
9?:
;
$
© schmiedecke 06
# ;
:
;
5> ;
4
5> ;
7.
.
;
.;(
DB2 – DBMS-Typen
31
Gruppieren
SELECT Funktion1(Spalte1), Funktion2(Spalte2),...
FROM Quelle
WHERE Where-Klausel
GROUP BY Spalte ;
SELECT Funktion1(Spalte1), Funktion2(Spalte2),...
FROM Quelle
WHERE Where-Klausel
GROUP BY Spalte
HAVING Bedingung;
$
,
8, 9
+
@ $
:
;
."
Gruppiertes Aggregat
Gruppiertes Teil-Aggregat
0
;
$
(
!
$
8, 9
:
;
."
;
0
,
+
@ $
! 8* , , .
© schmiedecke 06
$
.
;=
= ;(
DB2 – DBMS-Typen
32
Sortieren
SELECT Spalten
FROM Quelle
WHERE Where-Klausel
GROUP BY Spalte [DESC | ASC];
oder: ORDER BY Spalte [DESC | ASC]
GROUP BY sortiert
ORDER BY sortiert
SELECT Funktion1(Spalte1), Funktion2(Spalte2),...
FROM Quelle
WHERE Where-Klausel
GROUP BY Spalte-n
HAVING Bedingung
ORDER BY Spalte-m;
Gruppiert, aggregiert und
sortiert dann um.
0
$
,
+
$
, .
@ $
@ ;
© schmiedecke 06
8, 9
."
;$
:
;
."
;
$
!
(
DB2 – DBMS-Typen
"
33
Herunterladen