Title: Datenbanken
1Datenbanken
2Inhaltsübersicht
Vorbemerkungen Datenspeicherung Bewertung der
Datenorganisation Logische Datenorganisation Daten
bankarchitektur Datenmodellierung Entity-Relations
hip-Modell (ERM) Vorgehensweise Das relationale
Datenmodell ERM - RDM Daten normalisieren Daten
integrieren
Relationenalgebra Standard Query Language
(SQL) JOIN Systemarchitektur Join-Design Sort-Merg
e-Join Transaktionssteuerung Speicher- und
Zugriffssteuerung ORACLE 7.1 Datenbankstruktur Spe
icheroptimierung Dynamische Datenbanksystemstrukt
ur
3Grundlagen
4Datenspeicherung
Datenspeicher
Datenspeicher mit Direktzugriff
sequentieller Datenspeicher
- Magnetplatten
- Disketten
- optische Speicher
- Halbleiterspeicher
- Magnetbänder
- Magnetkassetten
5Logische Datenorganisation
Baumstruktur
Netzstruktur
6Welche Anforderungen sollte ein
Datenbankmanagementsystem erfüllen?
- Redundanzfreiheit Kein Datenelement soll in der
Datenbank mehrfach gepeichert sein der
Speicherplatz ist optimal auszunutzen. - Vielfachverwendbarkeit (Anwendungsunabhängigkeit)
Die Datenbank soll so aufgebaut sein, daß sie
möglichtst viele Funktionsbereiche bedienen kann.
Jeder Benutzer, für den die gespeicherten Daten
von Bedeutung sind, soll mit der Datenbank
arbeiten können. - Benutzerfreundlichkeit Der Umgang mit der
Datenbank soll leicht erlernbar sein. Mit
möglichst geringem Aufwand sollen möglichst viele
Funktionen des Datenbanksystems eingesetzt werden
können - Flexibilität Es muß möglich sein, die Struktur
der Datenbank, unabhängig von den bestehenden
Anwendungen, zu ändern. Es sollten Backups im
laufendem Betrieb möglich sein.
7Welche Anforderungen sollte ein
Datenbankmanagementsystem erfüllen?
- Unabhängigkeit von Betriebssystemen Die Datenbank
sollte ein offenes System sein, d.h. das Wechseln
von Hard- und/oder Software sollte keine
Anpassungsschwierigkeiten mit sich bringen. - Wirtschaftlichkeit Das System sollte möglichst
geringe Betriebskosten verursachen. Abfragen und
Datenmanipulationen sollten mit möglichst wenig
Plattenzugriffen erfolgen. - Datenintegrität Datenschutz, Datensicherheit und
Datenkonsistenz sollten vom System weitgehend
unterstützt werden. (Beispiele
Wiederanfahrhilfen, Transaktionserkennung,
Passcodeverwaltung, Rollback, Logbuch usw.)
8Logische Datenorganisation - Tabelle
FNR FNAME FSEM DAUER TAG ZEIT_VON ZEIT_BIS ZA
HL 1 Grundlagen der Betriebswirtschaftsleh
re 2 B 90 08.07.1993 830 1000 320 2
Finanz- und Investitionswirtschaft 4
B 90 15.07.1993 830 1000 200 3 Marketing 4
B 90 14.07.1993 1130 1300 250 4 Material-
und Fertigungswirtschaft 4 B 90 09.07.1993 1100 12
30 200 5 Personalführung 4
B 90 08.07.1993 1400 1530 160 6 Buchführung
und Bilanzierung 2 B 90 09.07.1993 830 1000 380
7 Kosten- und Leistungsrechnung 4
B 90 13.07.1993 1330 1500 200
8 Wirtschaftsmathematik 2 B 90 12.07.1993 830 100
0 320 9 Betriebsstatistik 2
B 90 14.07.1993 830 1000 360 10 Grundlagen der
Volkswirtschaftslehre 2 B 90 13.07.1993 830 1000 3
20 11 Wirtschaftsprivatrecht 4
B 90 12.07.1993 1130 1300 180 12 Englisch
1 2 B 60 24.06.1993 830 930 290
12 Französisch 1 2 B 60 24.06.1993 1330 1430 40
Sichten
Anwender
Datenverarbeitung
Informatik
Mathematik
Tabelle Datenobjekt Datei Relation Tabellenze
ile Entität Datensatz Tupel Tabellenspalte We
rtebereich Datenfeld Domäne Tabellenelement At
tributswert Datenelement Wert Tabellenüberschrif
t Attribute Datenfeldbezeichnung Spaltenbezeich
nung Attribut (Eigenschaft) Datenfeld Attribut
9Entitätstyp - Entität
- Die Entität (Entity) ist das konkrete,
individuell identifizierbare Objekt bzw. Exemplar
von Dingen, Personen oder Begriffen der realen
oder der Vorstellungswelt, für das (auf einem
Datenträger) Sachverhalte festzuhalten sind. - Beispiele Individuen Mitarbeiterin Brech,
Schüler Weber... - Reale Objekte Maschine 2, Raum 7, Artikel
4711... - EreignisseZahlung,Buchung, Mahnung,Start,Landung
... - Abstraktes Unterricht, Dienstleistung,
Verarbeitungsart, - Zahlungsart...
- Die Entität ist Mitglied einer Gruppe (Klasse),
dem Entitätstyp. - Der Kunde Müller ist ein konkretes individuell
identifizierbares Objekt, über den Informationen
abgespeichert werden müssen. Er gehört zur Gruppe
der Kunden. Man kann auch sagen, er ist vom
Entitätstyp Kunden. Alle Informationen, die über
Kunden abgespeichert werden, sind von der
Struktur her gleich.
10AttributeEin Attribut ist jede Einzelheit,
die dazu dient, eine Entity zu qualifizieren, zu
identifizieren, zu klassifizieren, zu
quantifizieren oder ihren Status auszudrücken.
"Welche Informationen müssen Sie über das Objekt
(Entity) haben oder speichern?"Das Attribut muß
die Entity beschreiben, unter der es aufgeführt
ist. Jede Entity muß eindeutig identifizierbar
sein und mindestens zwei Attribute besitzen.
11Attribut
- Attribute beschreiben die Entitäten.
Beispiel Kunde(KdNr, KName, KAdresse,......) - Man unterscheidet zwischen
- identifizierenden Attributen (z.B. KdNr,
FirmenNr, PersNr....) - beschreibenden Attributen (z.B. KName,
MitarbeiterName, ArtikelBez, .....
12Beziehungstyp - konkrete Beziehung Zwischen den
Entitätstypen Firma und AZUBI besteht ein
Beziehungstyp ist beschäftigt bei. Wenn es
einen solchen Beziehungstyp gibt, so kann (muß)
eine konkrete Beziehung zwischen einem Paar der
dazu gehörenden Entitäten bestehenBeziehungsatt
ribute sind die beschreibenden interessierenden
Merkmale der Beziehung. Beispiel zwischen
Schüler und Fächern belegt
13Nützliche Beziehungsendnamen arbeiten
unter, Chef sein von, auslösen, ausgelöst werden
von, belegt, wird belegt, bestellen, bestellt
werden in, betrieben werden von, Betreiber sein
von, empfangen, gehen an, erhält, ist für,
erteilen, erteilt werden von, erteilt, wird
erteilt von, erteilt von, Auftraggeber
von, erteilt werden, verantwortlich sein für,
führt zu, entstehen aus, für, Gegenstand von,
gehören zu, umfassen, gekauft werden von,
Lieferant sein von,ist in, umfasst, Teil sein
von, zusammengesetzt sein aus, Teil von,
bestehen aus, Teilnehmer sein von, sein
für, unterbreitet für, wird unterbreitet,
unterrichtet, wird unterrichtet, wird bestellt
in, wird erteilt für ...
14Datenbankarchitektur
Externes Schema
Aufsichten- einteilung
Prüfungs- aushang
Raumbe- legung
Prüfungs- liste
ERM
konzeptionelles Schema
Prüfung
Aufsicht
Prüfungsfach
Dozent
internes Schema
Basistabellen
Basistabellen
DBMS
15Entity-Relationship-Modell (ERM)
Beziehungsarten
1 1
identifizierende Beziehung z.B. Student hat
Matrikelnummer
charakterisierende und klassifizierende Beziehung
z.B. Semestergruppe hat Student
1 n
nicht eindeutige Beziehung, sie muß im Rahmen der
Datennormalisierung aufgelöst werden. Beispiel
Student besucht Vorlesung
n m
16erweitertes Entity-Relationship-Modell (eERM)
1. Optionale Beziehungen
Eine Beziehung ist optional, wenn sie auch den
Wert "NULL" haben kann
1 c
Student
Note
Student hat Note
c c
Student
Parkplatz
Student belegt Parkplatz
Fachbereich hat Parkplätze in der Tiefgarage
c n
Fachbereich
Parkplatz
1 cn
Fachbereich
Student
Fachbereich hat Studenten (Ausnahme FB13)
c cn
Student
Buch
Student hat Buch ausgeliehen
n cm
Student
Vorlesung
Student besucht Vorlesung
cn cm
Bauteil
Bauteil
Bauteil enthält Bauteil (Stückliste)
17erweitertes Entity-Relationship-Modell (eERM)
2. Min-Max-Notation
- 1. Ein Element der Entitätsmenge A steht in
Relation mit - mindestens c Elementen der Entitätsmenge B
- höchstens d Elementen der Entitätsmenge B
- 2. Ein Element der Entitätsmenge B steht in
Relation mit - mindestens a Elementen der Entitätsmenge A
- höchstens b Elementen der Entitätsmenge A
- 3. Gilt b gt 1 und d gt 1 so erweitert sich die
Relation zu einer - Beziehungsentität
- 4. Die Beziehungsentität enthält die
Schlüsselattribute der - verknüpften Entitätsmengen als
Kombinationsschlüssel
18Vorgehensweise
1. Schritt Sammeln der Datenelemente
Datenliste
PS
Datenfeld
Typ
Länge
NULL
Entität
Alias
Beschreibung
PS Primärschlüssel Ja / Nein Datenfeld
Bezeichnung des Datenfeldes, wie es gespeichert
werden soll Typ Datentyp (z.B. Integer,
Währung, Text, ext.) Länge maximale Zahl der
Zeichen pro Wert NULL leeres Datenfeld
zulässig? Ja / Nein Entität Welcher
Entitätsmenge wird das Datenfeld
zugeordnet Alias Alternative Bezeichnungen
für das Datenfeld Beschreib. Weiter Angaben
zum Datenfeld (z.B. zulässige Werte etc.)
19Vorgehensweise
2. Schritt Datenobjekte (Entitäten) finden
Datenliste
PS
Datenfeld
Typ
Länge
NULL
Entität
Alias
Beschreibung
AUFNR
INT
10
N
J
Auftragsnummer
DATUM
DAT
8
N
Auftragsdatum
ARTNR
INT
10
N
Artikelnummer
ARTIKEL
TXT
80
J
Artikelbezeichnung
KNR
INT
10
N
Kundennummer
Auftrag
KNAME
TXT
50
J
Kundenname
Artikel
Kunde
20Vorgehensweise
3. Schritt Beziehungen zwischen den
Entitätsmengen beschreiben und
nm-Beziehungen auflösen (-gtVerbindungsentität)
- Kunde erteilt einen oder mehrere Aufträge
- Ein Auftrag ist eindeutig einem Kunden
zugeordnet - Ein Auftrag enthält einen oder mehrere Artikel
- Ein Artikel ist in keinem, einem oder mehreren
- Aufträgen enthalten
Kunde
(1,1)
erteilt
(1,n)
(1,n)
(0,n)
enthält
Auftrag
Artikel
(1,1)
(1,1)
(1,n)
(1,n)
Auftrags- position
enthält
enthält
21Vorgehensweise
4. Schritt Schlüssel- und Datenfelder den
Entitätsmengen zuordnen und
die Entitätsmengen in die Datenliste eintragen
22Vorgehensweise
5. Schritt Konsistenz- und Integritätsbedingun
gen beschreiben
Konsistenz Die gespeicherten Daten müssen in sich
und zur Realität widerspruchsfrei sein.
Integrität Die gespeicherten Daten müssen
vollständig und korrekt sein.
- Datentypkonsistenz z.B. Ein Schlüsselfeld muß
stets vom gleichen Datentypusein. - Schlüsselkonsistenz eindeutiger Wert, nicht
NULL - Wertebereichkonsistenz Ist der zulässige
Wertebereich kleiner als die dem Datentyp
entsprechende Wertemenge, so muß der Wertebereich
festgelegt und dem System für die
Eingabekontrolle mitgeteilt werden. - Beziehungsintegrität
- Welche Werte darf ein Fremdschlüssel annehmen?
nur Werte eines PS, auch NULL, jeden Wert - Wie ist im Falle einer Löschung bzw. Änderung zu
verfahren? - Die Löschung/Änderung des Primärschlüssels
- führt zur Löschung der Datensätze in denen der
Schlüssel enthalten ist - löscht/ändert den Schlüsselwert
- wird nur durchgeführt, wenn kein Datensatz mit
dem Schlüsselwert existiert. - rechnerische Konsistenz z.B. sind die
systembedingten Rundungen von Dezimalzahlen
akzeptabel - Logik des Geschäftsvorfalls Wann dürfen welche
Daten eingegeben werden? Die Ausführung eines
Auftrags erfolgt erst nach Eingang der Zahlung.
23Das relationale Datenmodell
Entity-Relationship-Modell
relationales Datenmodell
Entität Datenobjekt Relationship
Beziehung
Relation zweidimensionale Tabelle
Student
Student ( Mtnr, Name, SemGr, Adresse)
Mtnr
Name
Entität
Schlüsselattribut
SemGr.
Relation mit einem identifizierenden
Schlüsselattribut
Adresse
24ERM - RDM
(0,m)
(0,n)
Student
Vorlesung
belegt
Mtnr Name SemGr Adresse
Vorlnr Fach Semester Raum Zeit
Student ( Mtnr, Name, SemGr, Adresse)
Fach ( Vorlnr, Fach, Semester, Raum, Zeit)
Belegung (Mtnr, Vorlnr)
25Daten normalisieren
1. Normalform
Eine Relation ist in der 1. Normalform, wenn kein
Attribut enthalten ist, zu dem es pro Datensatz
mehrere Attributswerte geben kann, d.h. wenn in
jeder Zeile und Spalte nur atomare, nicht weiter
zerlegbare Werte gespeichert werden.
Auftrag (Aufnr, Artikelnr, Artikelbezeichnung,
Menge, Preis, Kundennr, Kundenname,
Adresse, Datum)
Auftrag (Aufnr, Kundennr, Kundenname, Adresse,
Datum) Bestellartikel (Aufnr, Artikelnr,
Artikelbezeichnung, Menge, Preis)
Zusammengesetzter Schlüssel
Primärschlüssel
26Daten normalisieren
1. Normalform
Als Beispiel sollen die Tourendaten verwendet
werden. Die Tabelle Tourendaten genügt nicht der
1. NF, da die dritte Spalte noch weiter
aufgeteilt werden könnte. Die geteilten Tabellen
und entsprechende Beziehung zueinander erfüllt
die 1. NF
Tourendaten (TourendatenNr, Bezeichnung,
Länge, Termine)
TourenZiele (TourenNummer, Tour,
Kurzbeschreibung,Länge, Grad, Start,
Ziel) TourenTermine (TourTerminNr,
TourenNummer, Beginn, Ende , MaxTeilnehmer)
Zusammengesetzter Schlüssel
Primärschlüssel
27Daten normalisieren
Gilt nur bei zusammengesetztem Primärschlüssel!
2. Normalform
Eine Relation ist in der 2. Normalform, wenn sie
in der 1. Normalform ist und keine Attribute
enthält, die in einer 11 Beziehung zum
Primärschlüssel oder Teilen des Primärschlüssels
stehen, d.h. jede Spalte die nicht zum
Primärschlüssel gehört, ist vom kompletten PS
abhängig.
Auftrag (Aufnr, Kundennr, Kundenname,
Adresse, Datum) Bestellartikel (Aufnr,
Artikelnr, Artikelbezeichnung, Menge, Preis)
Auftrag (Aufnr, Kundennr, Kundenname,
Adresse, Datum) Bestellartikel (Aufnr,
Artikelnr, Menge) Artikel (Artikelnr,
Artikelbezeichnung) Preis (Artikelnr, Preis)
28Daten normalisieren
3. Normalform
Eine Relation ist in der 3. Normalform, wenn sie
in der 2. Normalform ist und keine Attribute
enthält, die untereinander abhängig sind.
Auftrag (Aufnr, Kundennr, Kundenname,
Adresse, Datum) Bestellartikel (Aufnr,
Artikelnr, Menge) Artikel (Artikelnr,
Artikelbezeichnung) Preis (Artikelnr, Preis)
Auftrag (Aufnr, Kundennr, Datum) Kunde (Kund
ennr, Kundenname) Anschrift (Kundennr,
Adresse) Bestellartikel (Aufnr, Artikelnr,
Menge) Artikel (Artikelnr, Artikelbezeichnung)
Preis (Artikelnr, Preis)
29Daten integrieren
1 n
Auftrag
Kunde
Auftrag (Aufnr, Kundennr, Datum) Kunde (Kund
ennr, Kundenname) Anschrift (Kundennr,
Adresse) Bestellartikel (Aufnr, Artikelnr,
Menge) Artikel (Artikelnr, Artikelbezeichnung)
Preis (Artikelnr, Preis)
1 1
1 n
Anschrift
Bestellartikel
n 1
1 1
Artikel
Preis
Auftrag (Aufnr, Kundennr, Datum) Kunde (Kund
ennr, Kundenname, Adresse) Bestellartikel
(Aufnr, Artikelnr, Menge) Artikel (Artikelnr,
Artikelbezeichnung, Preis)
30Datenbankdesign 1An der RBS soll ein
Schulverwaltungsprogramm erstellt werden. In
dieser Datenbank sind Informationen zu
Lehrfächern, Schüler, Lehrer und Klassen
festzuhalten. Folgende Fragen sollen beantwortet
werden könnenBei welchem Lehrer hat ein Schüler
Unterricht?Aus welcher Klasse kommt ein
Schüler?Welche Fächer belegt ein Schüler?Welche
Fächer gibt ein Lehrer?In welchen Klassen
unterrichtet ein Lehrer?Welche Noten hat ein
Schüler in seinen belegten Fächern?. Entwerfen
Sie zu diesem Problem ein Entity-Relationship-Diag
ramm.Bestimmen Sie die Relationen (Tabellen) und
die dazugehörigen Attribute. Kennzeichnen Sie die
Primär- und Fremdschlüssel
31Anwendungsentwicklung und Datenbankadministration
32Beispiele
UNION Aus den Tabellen "Kunde" und "Vorgang"
wird eine Tabelle erzeugt.
INTERSECTION Aus den Tabellen "Kunde" und
"Vorgang" werden alle Kundennummern mit einem
offenen Vorgang in eine Tabelle gestellt.
DIFFERENCE Aus den Tabellen "Kunde" und
"Vorgang" werden alle Kunden selektiert, die
keinen offenen Vorgang aufweisen.
CARTESIAN PRODUCT Aus den Tabellen "Vorgang"
und "Fahrzeug" wird eine Tabelle erzeugt.
PROJECTION Alle Kundennamen aus der
Kundentabelle.
SELECTION Aus der Kundentabelle alle Daten
des Kunden mit K 4711.
JOIN Alle Kunden mit Adresse aus den
Tabellen "Kunde" und "Adresse".
DIVISION Alle Fahrzeuge, die in allen
Angeboten enthalten sind.
33Structured Query Language (SQL)
Funktionen
- Datendefinition DDL
- CREATE
- ALTER
- DROP
CREATE TABLE Student Mtknr, char(8),
Name, char(30), SemGr, char(6)
- Datenmanipulation DML
- SELECT
- UPDATE
- INSERT
- DELETE
SELECT Name FROM Student WHERE SemGr
"10BW4A"
- Kontrolle und Steuerung
- GRANT
- LOCK
- COMMITT
- ROLLBACK
GRANT USER Regier IDENTIFIED BY "Dozent"
34JOIN
SELECT ltmerkmalgt ,ltmerkmalgt, ... FROM
tabelle , tabelle, ... WHERE
ltselektionsprädikatgt AND ltselektionsprädikatgt
Bulk-Join gt ohne WHERE-Klausel (kartesisches
Produkt) Teta-Join gt mit WHERE-Klausel
Natural-Join gt identische Spalten werden nur
einmal angezeigt. Semi-Join gt Nur Spalten
einer Tabelle (senkt das Kommunikationsvolumen
bei verteilter Datenhaltung Multiple-Join gt J
oin mit mehr als zwei Tabellen Outer-Join gt Date
nsätze der ersten Tabelle, denen keine Datensätze
der zweiten Tabelle zugeordnet werden können,
werden mit einem leeren Datensatz
verknüpft. Restricted-Join gt Durch AND werden
weitere Bedingungen eingefügt Equi-Join gt Beding
ung enthält nur Gleichheitszeichen Auto-Join gt J
oin einer Tabelle auf sich selbst
Vergleichende Bewertung Inner schneller als
Outer Equi schneller als Non-Equi Restricted schn
eller als NO-Restricted
35Systemprozeß
Ad Hoc Abfrage
Anwendungsprogramm
- Systemnutzung (Job-Design)
- Optimierung durch eine zweckmäßige Reihenfolge
- der Operationen (algebraische Optimierung)
- Optimierung der JOIN-Operationen
Übersetzung und Optimierung
- Systemadministration
- Datensicherheit
- Vermeidung von Dateninkonsistenz
- Vermeidung von Blockaden bei der Nutzung
verteilter - Systeme
Transaktionen- und Cursorverwaltung
Speicher- und Zugriffsverwaltung
- Systemkonfiguration
- Optimierung der Zugriffszeiten durch
Systemauswahl - und Konfiguration
Systemtabellen
Benutzertabellen
- Datenbankdesign
- Optimierung der Datenbankstruktur (ERM / RDM)
- optimale Größe der Tablespaces und Extens
36Parsing
SQL-Befehle werden als Text an das
Datenbankmanagementsystem übermittelt. Dieses muß
den Text lesen und interpretieren (Parsing).
- Parsing benötigt etwa die Hälfte der Antwortzeit.
- Bekannte SQL-Befehle werden (von den meisten
DBMS) wiedererkannt und müssen nicht erneut das
Parsing durchlaufen (Shared SQL) - Allerdings müssen die Befehle absolut identisch
sein! - Für SQL-Befehle wird ein Hash-Wert errechnet und
im Library Cache gespeichert. - Nutzung durch Bind Variables, die anstelle von
Werten im SQL-Text verwendet werden, verhindert
ein erneutes Übersetzen.
lexikalische Analyse
Tabellensuche
Spaltenattributsuche
Typ- und Constraint-Ver- gleich für die
Spaltenattribute
Sperrung (Parse Lock)
Berechtigungsprüfung
Ausführungsplanung
37Optimierung
Für die Ausführung der übersetzten SQL-Befehle
erstellt das DBMS einen Ausführungsplan, wobei
vom DBMS Optimierungsregeln eingesetzt werden.
Regelbasierte Optimierung Die SQL-Befehle werden
nach festen Regeln analysiert und die
Reihen-folge der Operationen danach
fest-gelegt. (siehe folgende Seite)
Aufwandbezogene Optimierung Hierbei werden
internen Statistiken und Strukturmerkmale der
Daten-bank (z.B. Indizes) analysiert um den
schnellsten Weg zu den gesuchten Daten zu finden.
Oracle ab Version 7
Manuelle Optimierung Durch einen Kommentar im
SELECT Befehl kann ein Ausführungshinweis an den
Optimierer gegeben werden. SELECT / FULL /
name, . FROM..
Über den Befehl EXPLAIN PLAN sind bei Oracle
(nicht leicht zu lesende) Informationen über das
tatsächlich gewählte Optimierungsverfahren zu
erhalten.
38Tabellengröße
Bei kleinen Tabellen ist ein vollständiges Lesen
der Tabelle schneller als eine Selektion. Häufig
benötigte kleine Tabellen können im Cache
gepuffert werden
ALTER TABLE lttabellennamegt CACHE
Bei großen Tabellen spielen Indizes eine
herausragende Rolle.
Index-Selektivität Ein eindeutiger Schlüssel
(Primärschlüssel) liefert die höchste
Selektivität mit dem Wert 1. Je größer der Wert,
um so mehr Datensätze werden im Fall eines SELECT
Befehls gelesen. Bei Oracle heißt der Wert
"badness". Er kann für jedes Attribut errechnet
werden, um festzustellen, ob es als Indexfeld
geeignet ist.
39Cache
least recently used (LRU)
SQL-Statements
Triggers
Library Cache
Functions
Stored Procedures
Im Library Cache werden aufgerufene Befehle
gespeichert, um bei einem wiederholten Aufruf des
gleichen Befehls eine schnellere Ausführung zu
erreichen. Dies gelingt jedoch nur dann, wenn der
Anwendungsentwickler gebunden Variablen
verwendet, so daß die SQL-Statements, Functions
etc. identisch sind.
Datenbankadministrator und Anwendungsentwickler
müssen bei der Optimierung der Datenbankanwendunge
n zusammenarbeiten!
40Join-Design
SELECT Datum FROM Kunde, Auftrag WHERE
Kunde.KNR Auftrag.KNR AND Name "Müller"
Tabelle ?Datum (?Name "Müller"
(Kunde X Kunde.KNR Auftrag.KNR , Auftrag ))
Tabelle ?Datum (?Auftrag.KNR, Datum
(Auftrag) (X Kunde.KNR Auftrag.KNR )
???????Kunde.KNR (?Name
"Müller"(Kunde)))))
Kundentabelle
Auftragstabelle
SELECT Datum FROM (SELECT KNR, Datum FROM
Auftrag WHERE AUFTRAG.KNR (SELECT
KNR FROM Kunde WHERE Name "Müller")))
41Fakten- und Dimensionstabellen
Faktentabellen enthalten die betriebswirtschaftli
ch relevanten numerischen Meßgrößen wie Umsatz,
Kosten, Leistung.
Dimensionstabellen liefern Angaben zu den
Dimensionen (z.B. Zeit, Kunde, Mitarbeiter,
Artikel) auf die sich die Faktentabellen via
Schlüsselattribute beziehen.
- Join
- ist die Verbindung zwischen zwei Tabellen wobei
häufig eine Faktentabelle mit einer
Dimensionstabelle verbunden wird (z.B. Kunde
-Auftrag). - Ein Join ist grundsätzlich nur zwischen zwei
Tabellen möglich. Zur Verknüpfung mehrere
Tabellen bestehen zwei alternative Verfahren - Paarweise Join
- Star-Abfrage
42Paarweise Join versus
Star-Abfrage
Faktentabelle Auftrag
Dimensionstabelle Kunde
Dimensions- tabelle Kunde
Dimensions- tabelle Artikel
Dimensions- tabelle Lieferant
JOIN
Zwischenergebnis 1 Auftrag Kunde
Dimensionstabelle Artikel
Faktentabelle Auftrag
Kartesisches Produkt Kunde Artikel Lieferant
JOIN
JOIN
Zwischenergebnis 2 Auftrag Kunde Artikel
Dimensionstabelle Lieferant
Abfrageergebnis Auftrag Kunde Artikel
Lieferant
JOIN
Abfrageergebnis Auftrag Kunde Artikel
Lieferant
Eigenschaften - viele Operationen - kleine
Zwischentabellen
Eigenschaften - wenige Operationen - große
Zwischentabelle
Effizient bei großen Datenmengen
Effizient bei kleinen Datenmengen
43Sort-Merge-Join
KNR Name Adresse 4711 Müller
81243 München 5612 Maier 71324
Stuttgart 3254 Huber 12312 Berlin
AUFNR Datum KNR 2137
12.10.97 4711 2231 13.10.97
3254 2178 15.10.97 4711 2337
12.10.97 5511
n x m Operationen
KNR AUFNR 4711 2137 2231 2178 2337 5612 21
37 2231 ..........
Vorsortierung beider Tabellen nach dem
Vergleichsattribut
KNR Name Adresse 3254 Huber 12312
Berlin 4711 Müller 81243 München 5612
Maier 71324 Stuttgart
AUFNR Datum KNR 2231
13.10.97 3254 2137 12.10.97
4711 2178 15.10.97 4711 2337
12.10.97 5511
max n m Operationen
44Speicher- und Zugriffssteuerung (1)
Mehrwegbaum (B-Tree)
? 05 ? 10 ? 15 ?
01 02 03 04
06 07 08 09
11 12 13 14
16 17 18 19
physische Zeilenadresse ROW ID (oder Liste mit
Zeilenadressen)
RID
Die Indexdatei ist hierarchisch unterteilt. Beim
Suchen nach dem Datenfeld mit dem Wert 12 sind
statt 12 nur 4 Vergleichsoperationen erforderlich.
- Eigenschaften
- Gute Performanz bei hoher Kardinalität, d.h.
das Suchkriterium weist eine hohe - Zahl unterschiedlicher Wertausprägungen im
Verhältnis zu den Tabellenzeilen auf. - Schlechte Performanz bei der Suche nach nicht
indizierten Datenfeldern mit - geringer Kardinalität.
45Speicher- und Zugriffssteuerung (2)
Bitmap-Indizierung
Für jede Ausprägung einer zu indizierenden
Tabellenspalte wird eine Bitfolge angelegt, die
kennzeichnet, ob in der entsprechenden Zeile der
Tabelle der Wert anzutreffen ist (1) oder nicht
(0).
Geschäftskunde 1 0 0 0 1 0 0 0 1 1 1 1 1 0 1 0 1
.... Privatkunde 0 1 1 1 0 1 1 0 0 0 0 0 0 1 0 1
0 .... Sonstige 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
0 ....
Merkmalsausprägung
Bitmap-Index
- Eigenschaften
- extrem platzsparend bei geringer Merkmalszahl
- Bei 1.000.000 Kundensätzen werden 3 Mio. Bit
375 KB benötigt. Im Vergleich - dazu benötigt das B-Tree Verfahren dazu 4MB.
Allerdings benötigt jede weitere - Ausprägung 125 KB.
- Bei Häufigkeitszählungen entfällt der Zugriff
auf die Tabelle. - Schnell bei kombinierten Abfragen
46Komprimierung von Bitmaps (1)
0100
1011
0101
1000
0110
1110
1100
1011
1010
0110
11100000110000000000000000001011000000000000000000
0010100110
Rekonstruierte Bitliste
Darstellung erfordert 10 4-Bit-Blöcke für
insgesamt 256 4-Bit-Blöcke
47Komprimierung von Bitmaps (2)
1
k
......... Bitmuster oder Nullfolge
Kenn- Bit
Ist das Kenn-Bit gleich 1, werden die folgenden
k-1 Bits als unkompri- mierte Bitfolge
interpretiert. Ist das Kenn-Bit gleich 0, so wird
der Inhalt der folgenden k-1 als binäre Ganzzahl
interpretiert, die angibt, wieviele aufeinander
folgende 0-en auf diese Weise komprimiert
dargestellt werden. Je weniger 1en in der
Bitfolge eines Wertes auftreten, desto wirksamer
ist die Komprimierung. Noch effizientere
Verfahren resultieren aus der Verwendung mehrerer
Kennbits.
48Auswertung komplexer Verbundoperationen
Dimensions- Relationen
Kunde
Produkt
Filiale
Branche
Produkt- Gruppe
Region
Detail - Relation
Bestell-Nr.
Kunden-Nr.
Artikel-Nr.
Filial-Nr.
Menge
Datum
SELECT SUM(Menge) FROM Bestellung, Kunde,
Produkt, Filiale WHERE Bestellung.Kunden-Nr.
Kunde.Kunden-Nr. AND Bestellung.Artikel-Nr.
Produkt.Artikel-Nr. AND Bestellung.Filial-Nr.
Filiale.Filial-Nr. AND Kunde.Branche
Elektronik AND Produkt.Produktgruppe
Telefon AND Filiale.Region Nord
DSS- Anfrage
49Grundformen verteilter Datenbanken
- Verteilung kompletter Tabellen auf verschieden
Server mit der Folge, daß bei einem Join auf zwei
Server zugegriffen werden muß. Dieses Verfahren
beherrschen die meisten DBMS, wobei die
verteilten Datenbanken auf unterschiedlichen
Plattformen laufen können. - Verteilung einer Tabelle auf verschiedene Server
ist bei sehr großen Tabellen erforderlich, wobei
sowohl eine horizontale als auch eine vertikale
Teilung möglich ist.
Tabelle 1
Tabelle 2
Tabelle 2
horizontal
vertikal
50Lösungen für die Speicherung großer Tabellen
- Array-Speicher
- Speichermedien sind miteinander verkettet
Fassungsvermögen mehrere Terabytes Problem
Datensicherung - Raid-Array
- Plattenkombinationen mit redundanter
Datenspeicherung. Vorteil Ausfallschutz
Plattenteile können bei laufendem Betrieb
ausgewechselt werden. - Nachteil Langsame Verarbeitung Schutz bezieht
sich aber nur auf physische Fehler. Logische
Fehler wirken sich hingegen redundant und ggf.
irreparabel aus. - 64-Bit-Technologie
- Mit ihr lassen sich bis zu 2 Gigabyte im
Hauptspeicher bearbeiten, beschleunigt folglich
die Prozesse ohne jedoch das Problem der
Massendatenspeicherung zu lösen. - Mehrprozessorsysteme
- Hierzu fehlen bislang entsprechende Betriebs-
und Datenbankmanagementsysteme, die dieses
Leistungspotential ausschöpfen. - Objektorientierte Datenbanken
- Vom Denkansatz versprechen sie eine zweckmäßige
Lösung über die Instanzenbildung. Aktuelle OODBMS
leisten dies jedoch noch nicht.
51Datensicherung
- Zweck
- Zweck der Datensicherung ist die
Wiederherstellung eines konsistenten
Datenbestandes nach einem Störfall. - Verfahren
- Komplettsicherung
- Es werden immer alle Daten gesichert.
- Differenzsicherung
- Es werden nur die Änderungen zur vorhergehenden
Datensicherung gespeichert. - Technik
- Die von den Betriebssystemen UNIX und Windows
angebotenen Sicherungssysteme sind für eine
professionelle Sicherung großer Datenbestände
nicht geeignet. - Von Anbietern für Großraumspeicher werden
entsprechende Managementsysteme angeboten. - Organisation
- Datensicherungsplan
- Es ist in einem Plan festzuschreiben, wie die
Datensicherung durchzuführen ist. - Notfallplan
- Der Notfallplan beschreibt das Vorgehen bei der
Rekonstruktion der Datenbestände nach einem
Störfall.
52Richtlinien zur Verwaltung der Speicherressourcen
- Trenne Data Dictionary- und Benutzerdaten.
- Trenne die Daten unterschiedlicher Anwendungen.
- Speichere Tablespaces auf verschiedenen Platten
um I/O-Konflikte auszuschließen. - Trenne Rollbacksegmente von Datensegmenten, um
den Verlust von Daten durch Plattenabsturz zu
verhindern. - Halte individuelle Tablespaces offline.
- Schränke die Datenbanknutzung für einen
Tablespace ein auf - high update performance
- read only activity
- temporary segment storage
- Mache Backups von individuellen Tablespaces
- Lege Default-Speicherparameter für Objekte fest,
die in einer Tablespace angelegt werden sollen. - Lege Default-Speicherparameter für eine
Tablespace zur Verwaltung spezieller Objekte
fest. - Vergib Tablespace-Anteile an die Anwender.
Oracle-Avices
53Kostenfaktoren bei Datenbanksystemen
Im Durchschnitt entfallen 60 der Kosten eines
Datenbanksystems auf die Systemadministration.
54Datenbankadministration
- Datenadministration
- Benutzer- und Sicherheitsadministration
- Systemadministration
- Installation
- Datensicherung und -wiederherstellung
- Datenarchivierung
- Datenreorganisation
- Datenverifikation
- Laufzeitkontrolle
- Performance-Analyse und Tuning
- Auditing
- Massendatentransfer
Quelle H. Schöning "Datenbankadministration" in
Datenbank Rundbrief 17.5.1996 S. 77-81
55Entity Relationship Modell