3.3.2. Dateiorganisation
3.3.2. Dateiorganisation 3.3.2. Dateiorganisation
Datenorganisation Februar bis Mai 2007 Dipl.-Oek. Patrick Bartels Institut für Wirtschaftsinformatik Universität Hannover Telefon: +49 (0) 511 762 - 4979 +49 (0) 170 342 84 95 Email: bartels@iwi.uni-hannover.de Internet: www.iwi.uni-hannover.de
- Seite 2 und 3: 2 Nachtrag: Fremdschlüssel Ein Fre
- Seite 4 und 5: 4 3.2 Logisches Datenmodell 12. Mä
- Seite 6 und 7: 6 3.2.1 Hierarchisches Datenmodell
- Seite 8 und 9: 8 3.2.1 Hierarchisches Datenmodell
- Seite 10 und 11: 10 3.2.2 Netzwerkmodell 12. März 2
- Seite 12 und 13: 12 3.2.2 Netzwerkmodell Beispiel: 1
- Seite 14 und 15: 14 3.2.3 Relationales Datenmodell D
- Seite 16 und 17: 16 3.2.3 Relationales Datenmodell 1
- Seite 18 und 19: 18 3.2.3 Relationales Datenmodell 1
- Seite 20 und 21: 20 3.2.3 Relationales Datenmodell 1
- Seite 22 und 23: 22 3.2.3 Relationales Datenmodell R
- Seite 24 und 25: 24 3.2.3 Relationales Datenmodell E
- Seite 26 und 27: 26 3.2.4 Normalisierung 12. März 2
- Seite 28 und 29: 28 3.2.4 Normalisierung 12. März 2
- Seite 30 und 31: 30 3.2.4 Normalisierung Einfügeano
- Seite 32 und 33: 32 3.2.4 Normalisierung 12. März 2
- Seite 34 und 35: 34 3.2.4 Normalisierung 1. Normalfo
- Seite 36 und 37: 36 3.2.4 Normalisierung 1. Normalfo
- Seite 38 und 39: 38 3.2.4 Normalisierung 2. Normalfo
- Seite 40 und 41: 40 3.2.4 Normalisierung 3. Normalfo
- Seite 42 und 43: 42 3.2.4 Normalisierung Weitere Nor
- Seite 44 und 45: 44 3.3 Physischer Datenbankentwurf
- Seite 46 und 47: 46 3.3.1. Grundlagen der physischen
- Seite 48 und 49: 48 3.3.1. Grundlagen der physischen
- Seite 50 und 51: 50 3.3.1. Grundlagen der physischen
Datenorganisation<br />
Februar bis Mai 2007<br />
Dipl.-Oek. Patrick Bartels<br />
Institut für Wirtschaftsinformatik<br />
Universität Hannover<br />
Telefon: +49 (0) 511 762 - 4979<br />
+49 (0) 170 342 84 95<br />
Email: bartels@iwi.uni-hannover.de<br />
Internet: www.iwi.uni-hannover.de
2<br />
Nachtrag: Fremdschlüssel<br />
Ein Fremdschlüssel ist ein<br />
Primärschlüssel einer Relation, der in<br />
einer anderen Relation als<br />
Attributmenge auftaucht. Er dient als<br />
Verweis zwischen zwei Relationen,<br />
d. h. er zeigt an, welche Tupel der<br />
Relationen inhaltlich miteinander in<br />
Verbindung stehen. Beispiele für<br />
Fremdschlüssel sind die beiden<br />
Attribute „Vorgesetzter“ und<br />
„Untergebener“ aus der<br />
Beispielrelation<br />
Vgl. http://de.wikipedia.org/wiki/Fremdschl%C3%BCssel<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
3<br />
3.2 Logisches Datenmodell<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
4<br />
3.2 Logisches Datenmodell<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Logische Datenbankmodellierung ist der Prozess der<br />
Überführung eines konzeptionellen Datenmodells in ein<br />
logisches Datenbankmodell, das anschließend über ein DBMS<br />
implementiert werden kann.<br />
Beispiele für Datenbankmodelle:<br />
• Hierarchisches Datenmodell<br />
• Netzwerkmodell<br />
• Relationales Datenmodell<br />
• Objekt-orientiertes Datenmodell
5<br />
3.2.1 Hierarchisches Datenmodell<br />
Hierarchisches Datenmodell (1960 – 1980)<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Datensätze werden als Knoten, Beziehungen als Kanten dargestellt<br />
Es sind nur 1:n Beziehungen zugelassen, dadurch entsteht eine<br />
Baumstruktur<br />
Beim folgenden Beispiel muss eine Hierarchie für Kunden und eine für<br />
Artikel gebildet werden
6<br />
3.2.1 Hierarchisches Datenmodell<br />
Hierarchisches Datenmodell (1960 – 1980)<br />
Ein Knoten kann nur einen vorgelagerten Knoten besitzen.<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Einstieg in den Baum immer über die Wurzel. Existenzabhängigkeiten!<br />
Erstes logisches Datenmodell.<br />
Datensatzorientiert.<br />
Einsatz vor allem in Legacy-Systemen, insbes. in Großrechnersystemen.
7<br />
3.2.1 Hierarchisches Datenmodell<br />
Hierarchisches Datenmodell (1960 – 1980)<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
8<br />
3.2.1 Hierarchisches Datenmodell<br />
ER-Diagramm<br />
Hierarchisches Datenmodell<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
9<br />
3.2.1 Hierarchisches Datenmodell<br />
Hierarchisches Datenmodell (1960 – 1980)<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
10<br />
3.2.2 Netzwerkmodell<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
„Das Netzwerkmodell stellt Datenstrukturen als Netzwerke bestehend<br />
aus Knoten für Datensätze (Objekte) und Kanten für Beziehungen<br />
zwischen Datensätzen dar. Dabei werden üblicherweise 1:m- und n:m-<br />
Beziehungen zugelassen.“<br />
Ein Datensatztyp kann mit einer beliebigen Anzahl verschiedener<br />
anderer Datensatztypen verbunden sein.
11<br />
3.2.2 Netzwerkmodell<br />
Pfeile deuten 1:n-Beziehungen an.<br />
Datensatzorientiert.<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Das Netzwerkmodell wurde entwickelt, um die Limitierungen des<br />
hierarchischen Datenmodell zu beseitigen.<br />
Einsatz in Legacy-Systemen, insbes. in Großrechnersystemen.
12<br />
3.2.2 Netzwerkmodell<br />
Beispiel:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
13<br />
3.2.2 Netzwerkmodell<br />
Beispiel<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
14<br />
3.2.3 Relationales Datenmodell<br />
Das relationale Datenmodell<br />
Entwickelt von Dr. Edgar Frank Codd (1970)<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Erster systematischer Ansatz, Grundlage einer ersten<br />
Datenbanktheorie, Basis für viele Konzepte und Produkte<br />
12 Grundregeln (später erweitert auf 48, dann auf 333)<br />
Grundlage für die meisten heutigen DB-Systeme<br />
Tabellen (Relationen) sind das universelle Strukturierungsmittel<br />
Alle Daten werden als Werte in zweidimensionalen Tabellen<br />
dargestellt
15<br />
3.2.3 Relationales Datenmodell<br />
Relation = 2-dim. Tabelle<br />
Alle Daten werden in Tabellen gespeichert<br />
Abfrage-Ergebnisse sind Tabellen<br />
Abfragen sind Transformationen von Tabellen in Tabellen<br />
feste Anzahl von Spalten, beliebige Anzahl von Zeilen<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Die Reihenfolge der Zeilen spielt keine Rolle, ebenso die der Spalten<br />
Jede Zeile der Tabelle: ein Datensatz, ein „Tupel“<br />
Die Spalten (Felder) enthalten die Attribute des Datensatzes<br />
Die Zeilen müssen paarweise voneinander verschieden sein, d.h. es gibt<br />
keine zwei identischen Zeilen
16<br />
3.2.3 Relationales Datenmodell<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Die 12 Grundregeln (0 bis 12=13) für relationale Datenbanken:<br />
0. Ein relationales DBMS muss in der Lage sein, Datenbanken<br />
vollständig über seine relationalen Fähigkeiten zu verwalten.<br />
1. Darstellung von Informationen: Alle Informationen in einer<br />
relationalen Datenbank (einschließlich Namen von Tabellen und<br />
Spalten) sind explizit als Werte in Tabellen darzustellen.<br />
2. Zugriff auf Daten: Jeder Wert einer relationalen Datenbank muss<br />
durch eine Kombination von Tabellenname, Primärschlüssel und<br />
Spaltenname auffindbar sein.
17<br />
3.2.3 Relationales Datenmodell<br />
Die 12 Grundregeln (0 bis 12=13) für relationale Datenbanken:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
3. Systematische Behandlung von Nullwerten: Das DBMS<br />
behandelt Nullwerte durchgängig gleich als unbekannte oder<br />
fehlende Daten und unterscheidet diese von Standardwerten.<br />
4. Struktur einer Datenbank: Die Datenbank und ihre Inhalte werden<br />
in einem so genannten Systemkatalog auf derselben logischen<br />
Ebene wie die Daten selbst - also in Tabellen –beschrieben.<br />
Demzufolge lässt sich der Katalog mit Hilfe der Datenbanksprache<br />
abfragen.<br />
5. Abfragesprache: Zu einem relationalen System gehört mindestens<br />
eine Abfragesprache mit einem vollständigen Befehlssatz für<br />
Datendefinition, Manipulation, Integritätsregeln, Autorisierung und<br />
Transaktionen.
18<br />
3.2.3 Relationales Datenmodell<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Die 12 Grundregeln (0 bis 12=13) für relationale Datenbanken:<br />
6. Aktualisieren von Sichten: Alle Sichten, die theoretisch<br />
aktualisiert werden können, lassen sich auch vom System<br />
aktualisieren.<br />
7. Abfragen und Bearbeiten ganzer Tabellen: Das DBMS<br />
unterstützt nicht nur Abfragen, sondern auch die Operationen für<br />
Einfügen, Aktualisieren und Löschen in Form ganzer Tabellen.<br />
8. Physikalische Datenunabhängigkeit: Der logische Zugriff auf die<br />
Daten durch Anwendungen und Ad-Hoc-Programme muss<br />
unabhängig von den physikalischen Zugriffsmethoden oder den<br />
Speicherstrukturen der Daten sein.
19<br />
3.2.3 Relationales Datenmodell<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Die 12 Grundregeln (0 bis 12=13) für relationale Datenbanken:<br />
9. Logische Datenunabhängigkeit: Änderungen der<br />
Tabellenstrukturen dürfen keinen Einfluss auf die Logik der<br />
Anwendungen und Ad-Hoc-Programme haben.<br />
10.Unabhängigkeit der Integrität: Integritätsregeln müssen sich in<br />
der Datenbanksprache definieren lassen. Die Regeln müssen im<br />
Systemkatalog gespeichert werden. Es darf nicht möglich sein, die<br />
Regeln zu umgehen.<br />
11.Verteilungsunabhängigkeit: Der logische Zugriff auf die Daten<br />
durch Anwendungen und Ad-Hoc-Programme darf sich beim<br />
Übergang von einer nicht verteilten zu einer verteilten Datenbank<br />
nicht ändern.
20<br />
3.2.3 Relationales Datenmodell<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Die 12 Grundregeln (0 bis 12=13) für relationale Datenbanken:<br />
12.Kein Unterlaufen der Abfragesprache: Integritätsregeln, die über<br />
die Datenbanksprache definiert sind, dürfen sich nicht mit Hilfe von<br />
Low-Level-Sprachen umgehen lassen.
21<br />
3.2.3 Relationales Datenmodell<br />
Relationales Datenmodell<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
• Objekttypen und Beziehungstypen und deren Attribute werden<br />
mittels Relationen abgebildet, die anschaulich durch Tabellen<br />
dargestellt werden können.<br />
1. Präzisiert wird eine Relation durch Angabe eines Namens und der<br />
Attribute des betreffenden Objekttyps. Primärschlüssel-Attribute<br />
werden unterstrichen<br />
2. Schreibweise:<br />
[KONTO (Filiale; KontoNr; KontoInhaber; KontoStand)]
22<br />
3.2.3 Relationales Datenmodell<br />
Relationales Datenmodell<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Mathematisch ist jede Relation eine Teilmenge des kartesischen Produkts<br />
von zwei oder mehr Mengen.<br />
Das kartesische Produkt M1 x M2 zweier Mengen M1 und M2 ist die<br />
Menge aller Paare (p, q) mit p aus M1 und q aus M2<br />
Das kartesische Produkt ist die Menge aller möglichen<br />
Wertekombinationen<br />
Beispiel:<br />
Für M1 = {1,2,3} und M2 = {a,b,c} ist<br />
M1 x M2 = { (1,a), (1,b), (1,c), (2,a), (2,b), (2,c), (3,a), (3,b), (3, c) }<br />
Eine Relation ist eine Teilmenge des kartesischen Produkts, wobei alle Tupel<br />
(Datensätze) unter sich verschieden sind.
23<br />
3.2.3 Relationales Datenmodell<br />
Relationales Datenmodell<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Beim relationalen Datenmodell sind diese Mengen die<br />
Wertebereiche der Attribute des betreffenden Objekttyps.<br />
z.B. Konto<br />
Aufbau und Struktur einer Relation bezeichnet man auch als<br />
Schema (Datenbank-Schema).
24<br />
3.2.3 Relationales Datenmodell<br />
ER-Diagramm<br />
Relationales Datenmodell<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
25<br />
3.2.3 Relationales Datenmodell<br />
Relationales Datenmodell<br />
Für eine Tabelle des Relationenmodells gilt:<br />
Die Zeilen der Tabelle sind gleich lang<br />
In den Feldern gibt es keine Attributwiederholungen<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Die Spalten der Tabelle sind elementar (in den Spalten gibt es keine<br />
zusammengesetzten Attribute)<br />
Tabellen können Anomalien aufweisen:<br />
– Redundanz<br />
– Änderungsanomalie<br />
– Einfügeanomalie<br />
– Löschanomalie
26<br />
3.2.4 Normalisierung<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
27<br />
3.2.4 Normalisierung<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Eine gut-strukturierte Relation enthält keine Redundanz und<br />
ermöglicht es Datensätze einzufügen, zu ändern oder zu löschen,<br />
ohne dass Inkonsistenzen entstehen.<br />
Vermeidung von<br />
Änderungsanomalien<br />
Einfügeanomalien<br />
Löschanomalien
28<br />
3.2.4 Normalisierung<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Redundanz ist „die mehrfache Speicherung derselben Daten. Diese<br />
Redundanz ist im Regelfall unerwünscht, da unnötig Speicherplatz<br />
beansprucht wird und die Aktualisierung von Daten durch Redundanz<br />
erheblich erschwert wird.“<br />
Quelle: Schwarze
29<br />
3.2.4 Normalisierung<br />
Änderungsanomalie (Updateanomalie):<br />
Eine Änderung von Daten muss in mehreren Datensätzen<br />
durchgeführt werden.<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Beispiel: Die Videostammdaten sind in der Leihtabelle enthalten. Bei<br />
Änderungen der Videostammdaten müssen alle Datensätze geändert<br />
werden, bei denen dieses Video ausgeliehen worden ist.<br />
statt:<br />
Leihe(KNr, VINr, LDat, RDat, Titel, Leihgesellschaft, ...)<br />
Video(VINr, Titel, Leihgesellschaft, ...)<br />
Leihe(KNr, VINr, LDat, RDat)
30<br />
3.2.4 Normalisierung<br />
Einfügeanomalie:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Beim Einfügen von neuen Objekten (z. B. Videos) müssen andere<br />
Daten auch erfasst werden.<br />
Beispiel: Ein neues Video kann erst angelegt werden, wenn es von<br />
einem Kunden ausgeliehen wurde, weil die Kundennummer der<br />
Primärschlüssel ist.<br />
Leihe(KNr, VINr, LDat, RDat, Titel, Leihgesellschaft, ...)
31<br />
3.2.4 Normalisierung<br />
Löschanomalie:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Wird der letzte verbleibende Datensatz eines bestimmten Objektes (z.<br />
B. Leihvorgänge) gelöscht, verschwinden alle Daten des enthaltenen<br />
Objektes (z. B. Video) in der Datenbank.<br />
Beispiel: Wird der letzte Datensatz mit Leihdaten eines bestimmten<br />
Videos gelöscht, werden auch alle Videodaten<br />
(Titel, Leihgesellschaft, ...) gelöscht.
32<br />
3.2.4 Normalisierung<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Normalisierung:<br />
„Unerwünschte Eigenschaften können beseitigt werden, indem die<br />
Relation (bzw. Tabelle) nach bestimmten Vorschriften in einfachere<br />
Relationen (bzw. Tabellen) zerlegt wird. Diese Zerlegung bezeichnet<br />
man als Normalisierung.“<br />
Quelle: Schwarze
33<br />
3.2.4 Normalisierung<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Eine Normalform ist ein Zustand einer Relation, der durch die<br />
Anwendung einfacher Regeln erreicht werden kann. Es gibt<br />
theoretisch 5 Stufen der Normalform, wobei nur die ersten drei<br />
tatsächliche Relevanz besitzen.<br />
1. - 3. Normalform<br />
Boyce-Codd-Normalform<br />
4. - 5. Normalform<br />
Domain-Key Normalform
34<br />
3.2.4 Normalisierung<br />
1. Normalform<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Eine Tabelle des Relationenmodells, deren Zeilen gleich lang sind, ohne<br />
Attributswiederholungen, mehrfache und zusammengesetzte Attribute.<br />
Folgende Bedingungen müssen in der 1. Normalform erfüllt sein:<br />
Sie ist zweidimensional mit Reihen und Spalten<br />
Jede Reihe enthält Daten, die zu einem Objekt oder einem Teil eines<br />
Objektes gehören<br />
Jede Spalte enthält Daten für ein einziges Attribut des Objektes<br />
Jeden Datenzelle (Schnittstelle zwischen Reihe und Spalte) enthält einen<br />
einzigen Eintrag<br />
Jede Spalte muss einen (in der Tabelle) einmaligen Namen tragen<br />
Keine zwei Reihen dürfen identisch sein<br />
Die Reihenfolge der Spalten und Reihen ist bedeutungslos
35<br />
3.2.4 Normalisierung<br />
1. Normalform<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Beispiel für eine Relation, die NICHT in der 1. Normalform vorliegt!
36<br />
3.2.4 Normalisierung<br />
1. Normalform<br />
Beispiel für eine Relation, die in der 1. Normalform vorliegt!<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
37<br />
3.2.4 Normalisierung<br />
2. Normalform<br />
Eine Tabelle liegt in der ersten Normalform vor und<br />
außerdem sind alle Attribute voll funktional abhängig von<br />
einem Attribut oder einer Attributskombination.<br />
Eine Tabelle ist automatisch in 2. Normalform, wenn gilt:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
- Der Primärschlüssel besteht aus nur einem Attribut (künstliche<br />
Primärschlüssel: Autowert, Zähler!).<br />
- Jedes Nichtschlüsselattribut ist funktional abhängig von dem<br />
gesamten Primärschlüssel.
38<br />
3.2.4 Normalisierung<br />
2. Normalform<br />
Bestellungen<br />
Bestell_Nr Artikel_Nr Einzelpreis<br />
1002 17 14,44 €<br />
1002 28 12,80 €<br />
Eine Relation Bestellungen, die NICHT der 2NF entspricht, weil<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Anzahl<br />
- Einzelpreis sich nur auf Artikel_Nr und nicht auch auf Bestell_Nr bezieht.<br />
- Bestell_Nr und Artikel_Nr bilden den Primärschlüssel.<br />
- Jedes dieser Attribute stellt einen Teilschlüssel dar.<br />
3<br />
7
39<br />
3.2.4 Normalisierung<br />
3. Normalform<br />
Es liegt die 2. Normalform vor und es existieren außerdem<br />
keine transitiven Abhängigkeiten.<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
40<br />
3.2.4 Normalisierung<br />
3. Normalform<br />
Eine Relation Kunde, die NICHT der 3NF entspricht!<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
41<br />
3.2.4 Normalisierung<br />
3. Normalform<br />
Eine Relation Kunde, die der 3NF entspricht!<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
42<br />
3.2.4 Normalisierung<br />
Weitere Normalformen:<br />
4. und 5 Normalform:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
In der 4. Normalform werden mehrwertige Abhängigkeiten von<br />
Attributmengen zu einem so genannten Superschlüssel<br />
(übergeordnetem Schlüssel) eliminiert. Ist eine verlustfreie Zerlegung<br />
der Einzelabhängigkeiten in der 4. Normalform nicht möglich, werden<br />
in der 5. Normalform weitere Primärschlüssel hinzugefügt. Das<br />
geschieht so lange, bis nur noch Einzelabhängigkeiten der Attribute<br />
von einem oder mehreren Primärschlüsseln bestehen.
43<br />
3.3 Physischer Datenbankentwurf<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
44<br />
3.3 Physischer Datenbankentwurf<br />
Anforderungsanalyse<br />
statische Anforderungen dynamische Anforderungen<br />
Objekttypen<br />
Beziehungstypen<br />
Attribute<br />
Konzeptionelle Datenmodellierung<br />
Logische Datenmodellierung<br />
Physischer Datenbankentwurf<br />
Implementierung<br />
Laufender Betrieb<br />
Quelle: in Anlehnung an Schwarze<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Verarbeitungsprozeduren<br />
Zugriffsregelungen<br />
Sicherheitsanforderungen
45<br />
3.3.1. Grundlagen der physischen DM<br />
Physische Datenbankmodellierung ist der Prozess der<br />
Überführung eines logischen Datenmodells in ein<br />
datenbankinternes Modell, unter Beachtung von:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
• Logischen Datenstrukturen<br />
• Anforderungen der Benutzer bezüglich Antwortzeiten, Sicherheit,<br />
Recovery usw.<br />
• Besonderheiten des verwendeten DBMS und Betriebssystems
46<br />
3.3.1. Grundlagen der physischen DM<br />
Z. B. Strategien zur Datenverteilung:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
1. Zentrale Speicherung<br />
2. Partitionierung: Die Datenbank wird in mehrere disjunkte<br />
(nicht-überlappende) Partitionen aufgeteilt. Jede Partition wird<br />
an unterschiedlicher Stelle (Abteilung, Filiale, ...) gespeichert.<br />
3. Replikation: Eine vollständige Kopie der Datenbank wird an<br />
einer anderen Stelle gespeichert. Synchronisationsprobleme!<br />
4. Hybride Strategie: Nichtkritische Partitionen werden an<br />
einem Ort gespeichert; kritische Partitionen werden repliziert.
47<br />
3.3.1. Grundlagen der physischen DM<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Im Rahmen der physischen DM müssen das erwartete<br />
Datenvolumen und die Datenverwendung analysiert werden:<br />
• Datenvolumen: z. B. zur Auswahl geeigneter Speichermedien (Anzahl<br />
und Größe der Festplatten) und eines DBMS<br />
• Datenverwendung: z. B. zur Auswahl einer geeigneten<br />
<strong>Dateiorganisation</strong>, von Zugriffsmethoden, zur Planung von Indexen,<br />
einer verteilten Datenspeicherung
48<br />
3.3.1. Grundlagen der physischen DM<br />
Analyse des Datenvolumens:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Angabe der durchschnittlichen Anzahl an Objekten eines<br />
Objekttyps in einem bestimmten Zeitraum<br />
Angabe der durchschnittlichen Anzahl verbundener Objekte in<br />
einer Beziehung in einem bestimmten Zeitraum
49<br />
3.3.1. Grundlagen der physischen DM<br />
Informationen aus der Fachabteilung, z. B.:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Einmal jährlich soll archiviert werden<br />
Voraussichtlicher Kundenbestand: 5.000<br />
CDs: 1000, Lieder/CD: ca. 14, Videos: 500<br />
Pro Kunde + Jahr: 10 Leihvorgänge<br />
Im Schnitt 3 CDs + 1 Video je Leihvorgang<br />
Verlängerung einer Leihe: neue Rechnung (10 % der Leihen<br />
werden verlängert)
50<br />
3.3.1. Grundlagen der physischen DM<br />
Analyse des Datenvolumens:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
51<br />
3.3.1. Grundlagen der physischen DM<br />
Analyse des Datenvolumens:<br />
CD<br />
1.000<br />
14<br />
Lieder je<br />
CD<br />
14.000<br />
3<br />
Leihe<br />
400.000<br />
Kunde<br />
10.000<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
10<br />
1<br />
11<br />
Datenorganisation | Veranstaltung 5<br />
Video<br />
500<br />
Rechnung<br />
110.000<br />
4<br />
Rechn.position<br />
440.000
52<br />
3.3.1. Grundlagen der physischen DM<br />
Analyse der Datenverwendung:<br />
Identifikation der wichtigsten Vorgänge<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Zu jedem Vorgang werden die Zugriffspfade und -häufigkeiten<br />
bestimmt<br />
Zusammenführung der einzelnen Vorgänge in einem<br />
Verwendungs-Chart
53<br />
3.3.1. Grundlagen der physischen DM<br />
Vorgang „Ausleihe speichern“:<br />
1. Kunde suchen<br />
2. CD oder Video suchen<br />
3. Leihdaten speichern (inkl. LDat und RDat)<br />
4. weitere CD oder Video suchen ...<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
54<br />
3.3.1. Grundlagen der physischen DM<br />
Zugriffe je Vorgang „Ausleihe speichern“:<br />
3 Zugriffe/Leihe<br />
2<br />
CD<br />
1.000<br />
1<br />
1 Zugriffe/Leihe<br />
4 Zugriffe/Leihe<br />
Leihe<br />
200.000<br />
Kunde<br />
5.000<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
3<br />
Datenorganisation | Veranstaltung 5<br />
Video<br />
500<br />
2<br />
1 Zugriffe/Leihe<br />
? Reihenfolge-Position im Vorgang
55<br />
3.3.1. Grundlagen der physischen DM<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Max. Anzahl Zugriffe je Periode (Stunde) bei Vorgang „Ausleihe<br />
speichern“?<br />
(10 Kunden)<br />
30 Zugriffe/Std<br />
2<br />
CD<br />
1.000<br />
1<br />
10 Zugriffe/Std<br />
40 Zugriffe/Std<br />
Leihe<br />
200.000<br />
Kunde<br />
5.000<br />
3<br />
Video<br />
500<br />
10 Zugriffe/Std<br />
? Reihenfolge-Position im Vorgang<br />
2
56<br />
3.3.1. Grundlagen der physischen DM<br />
Max. Anzahl Zugriffe je Periode (Stunde) alle Vorgänge?<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
57<br />
3.3.1. Grundlagen der physischen DM<br />
Unterscheidung der Art des Zugriffs:<br />
Lesen<br />
Einfügen<br />
Ändern<br />
Löschen<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
58<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong><br />
<strong>Dateiorganisation</strong>:<br />
Physische Organisation der Datenspeicherung<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Auch Datenbanken speichern die Relationen bzw. Tupel auf ein<br />
sekundäres Speichermedium, in der Regel in eine Datei auf einer<br />
Festplatte
59<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong><br />
Verarbeitungsformen von Daten<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Operationen zur Speicherung, Nutzung und Verwaltung von Daten
60<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong><br />
Kriterien:<br />
1. Zugriffsgeschwindigkeit<br />
2. Effiziente Verwendung des Speicherplatzes<br />
3. Minimaler Reorganisationsaufwand<br />
4. Eignung bei steigendem Datenvolumen<br />
5. Schutz vor unautorisiertem Zugriff<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
61<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong><br />
Primärspeicher:<br />
Hauptspeicher, Arbeitsspeicher<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Enthält alle Programme des DBMS und gepufferte Daten.<br />
I. d. R. flüchtig (RAM)<br />
Direkt adressierbar<br />
Feine Granularität: Zugriffseinheit ist eine Speicherzelle<br />
Alle Datenbankoperationen werden direkt im Arbeitsspeicher<br />
durchgeführt<br />
Größe i.d.R. im Megabyte- bis Gigabyte-Bereich<br />
Zugriffszeit: einige Nanosekunden
62<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong><br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Datenbankpuffer:<br />
Die Daten werden vor ihrer Verarbeitung in einen bestimmten<br />
Bereich des Arbeitsspeichers, den Datenbankpuffer, geladen<br />
Nach der Verarbeitung verbleiben die Daten im Datenbankpuffer<br />
Der Datenbankpuffer ist in Seiten, den Pufferrahmen, eingeteilt, die<br />
jeweils aus mehreren Festplatten-Blöcken bestehen<br />
Sind alle Seiten des Datenbankpuffers voll, werden bestehende<br />
Seiten ersetzt und evtl. auf Festplatte gesichert
63<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong><br />
Sekundäre Speichermedien:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Sequentielle Speichermedien, z. B. Magnetbänder: die Daten<br />
werden sequentiell, d. h. nacheinander abgespeichert (meist<br />
Archivspeicher)<br />
Direkt adressierbare Speichermedien,<br />
z. B. Festplatten: eine Speichereinheit<br />
(z. B. Speicherblock mit 1024 Byte) besitzt eine eigene Adresse<br />
Kapazität im Gigabyte-Bereich<br />
Zugriffszeit: Einige Millisekunden
64<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong><br />
Verarbeitungszeit und –kosten<br />
hängen ab von<br />
der Anzahl der gerätetechnischen Zugriffe,<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
der Daten-Übertragungskapazität vom externen zum internen<br />
Speicher,<br />
der zu speichernden Datenmenge auf dem externen Speicher.
65<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong><br />
Speicherung von Relationen auf Festplatte:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Relation = Datei<br />
Datei enthält viele Datenbankseiten<br />
Seite verteilt sich auf mehrere Blöcke<br />
Je Seite werden die Datensätze (Tupel) so abgespeichert, dass<br />
eine Seitengrenze nicht überschritten wird<br />
Seite enthält Datensatztabelle: Verweise auf die in der Seite<br />
enthaltenen Tupel
66<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong><br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Zugriffsformen:<br />
Die für ein Speichermedium zulässigen Zugriffsformen sind von der<br />
Hardware abhängig:<br />
Direkter Zugriff: über die Adresse<br />
Indirekter Zugriff: die Adresse wird über einen Schlüssel<br />
bestimmt<br />
Sequentieller Zugriff: die Daten werden<br />
der Reihe nach gelesen, bis die gesuchten Daten gefunden<br />
wurden
67<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Primäre Organisationsformen<br />
Primäre Organisationsformen:<br />
Sequentielle Organisationsform<br />
Index-Sequentielle Organisationsform<br />
Reine Index-Organisationsform<br />
Direkte Organisationsform<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
68<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Primäre Organisationsformen<br />
Sequentielle <strong>Dateiorganisation</strong><br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
69<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Primäre Organisationsformen<br />
Sequentielle <strong>Dateiorganisation</strong><br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
70<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Primäre Organisationsformen<br />
Indizierte <strong>Dateiorganisation</strong><br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
71<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Primäre Organisationsformen<br />
Sequentielle Organisationsform:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
- die Daten werden der Reihe nach gelesen, bis die gesuchten<br />
Daten gefunden wurden.<br />
- kein direkter Zugriff auf Sätze möglich<br />
- ausreichend für Batch-Verarbeitung (gleichzeitige Benötigung<br />
vieler Sätze)<br />
- völlig ungeeignet für Dialogverarbeitung (schneller gezielter<br />
Zugriff auf einzelne Sätze)
72<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Primäre Organisationsformen<br />
Sequentielle Organisationsform:<br />
Von Bedeutung für<br />
Sicherungskopien<br />
Protokolldateien (Logfile)<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
73<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Primäre Organisationsformen<br />
Index-Sequentielle Organisationsform:<br />
häufige Verwendung in DBMS<br />
– einfache Struktur<br />
– direkter Zugriff auf einzelne Datensätze über<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Datensätze innerhalb eines Blocks sind nach Schlüsseln geordnet<br />
Problem: nachträglich einzufügende Sätze
74<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Primäre Organisationsformen<br />
Index-Sequentielle Organisationsform<br />
Viele DBMS verzichten auf sequentielle Komponente<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Satzschlüssel ist eine von System vorgegebene interne Satznummer<br />
Index gibt Auskunft: In welchen Block befindet sich ein Satz mit<br />
bestimmten Schüssel<br />
vollständiger Index
75<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Primäre Organisationsformen<br />
Index-Sequentielle Organisationsform<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
76<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Primäre Organisationsformen<br />
Direkte Organisationsform<br />
Zuordnung eines Schlüssels wird über einen Algorithmus<br />
(Schlüsseltransformation) gelöst<br />
Beschreibung über sog. Hash-Funktion<br />
sehr schnelle Methode, kann im internen Speicher erfolgen<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
häufigste Funktion: Divisionsrestverfahren<br />
Block Adresse(s) = s modulo n mit n=Anzahl der Blöcke, s=Schlüssel
77<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Primäre Organisationsformen<br />
Suchverfahren:<br />
Sukzessives oder sequentielles Suchen: der Reihe nach<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Binäres Suchen: Aufteilung der Datei in jeweils zwei Hälften, bis<br />
Datensatz gefunden<br />
n-Wege-Suchen: mehrstufiges Suchen, erst wird der Block gesucht,<br />
dann der Datensatz innerhalb des Blocks (beliebig erweiterbar)<br />
Indirektes Suchen: über eine Indexdatei<br />
Algorithmisches Suchen: Berechnung der Adresse über einen Hash-<br />
Algorithmus
78<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Primäre Organisationsformen<br />
Indizierte <strong>Dateiorganisation</strong>:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
„Bei indizierter Organisation einer Datei ... werden die Datensätze<br />
sequentiell, im allgemeinen in chronologischer Reihenfolge, unter<br />
fortlaufenden Adressen gespeichert. Suchschlüssel und Adresse<br />
werden in einer Indexdatei (Index) gespeichert. Über diese<br />
Indexdatei wird dann indirekt gesucht.“<br />
Quelle: Schwarze
79<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Sekundäre Organisationsformen<br />
Arten der Sekundärorganisation<br />
Listenorganisation<br />
Invertierte Liste<br />
Indizes
80<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Sekundäre Organisationsformen<br />
Listenorganisation<br />
Verkettung zusammengehöriger Sätze<br />
– sortierte Listen<br />
– unsortierte Listen<br />
Anfang der Liste steht in einem sog. Anker<br />
Hinter der Attributsausprägung steht nur die Adresse des<br />
ersten Satzes<br />
Information zum nächsten Satz in Form eines Zeigers mit den<br />
Daten in einem Zeigerfeld
81<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Sekundäre Organisationsformen<br />
Listenorganisation
82<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Sekundäre Organisationsformen<br />
Invertierte Listen:<br />
Ein Index für einen Sekundärschlüssel enthält nicht die Adresse<br />
des Datensatzes, sondern einen Verweis auf den<br />
Primärschlüssel<br />
Über den Primärschlüssel kann dann auf den Datensatz<br />
zugegriffen werden.<br />
Mehrstufiges Suchen
83<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
<strong>3.3.2.</strong> <strong>Dateiorganisation</strong> | Sekundäre Organisationsformen<br />
Invertierte Listen:<br />
2<br />
3<br />
1<br />
1<br />
2<br />
1<br />
1<br />
1<br />
1
84<br />
3.3.3. Indexe<br />
Beschleunigung des Suchvorgangs durch<br />
einen Index:<br />
Indexdatei ist kleiner als Originaldatei<br />
Indexdatei ist sortiert (Relation nicht)<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Teile des Index können im Hauptspeicher gehalten werden (der<br />
Hauptspeicher ist um ein Vielfaches (Faktor: 10 5 ) schneller als<br />
eine Festplatte)
85<br />
3.3.3. Indexe<br />
Indexformen:<br />
Physisch sortierter Index (Updates!)<br />
Logisch sortierter Index (Kette): die Reihenfolge der<br />
Indexeinträge wird über Zeiger (Pointer) realisiert (nur<br />
sequentielle Suche)<br />
Logisch sortierter Index (Baum): sehr schnell<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
86<br />
3.3.3. Indexe<br />
Bäume:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Bäume (trees) sind die am häufigsten eingesetzte Struktur für<br />
Indexdateien<br />
Wurzel (Level 0), Knoten, Blatt, Vater, Kind, Bruder<br />
Ein Knoten enthält Verweise (Pointer) auf jedes seiner Kinder
87<br />
3.3.3. Indexe<br />
Erwünschte Eigenschaften von Bäumen:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Einheitliche Zugriffszeit (z. B. durch einheitlichen Abstand aller<br />
Blätter von der Wurzel)<br />
Hoher Verzweigungsgrad (viele Kinder)<br />
Geringe Tiefe bzw. Höhe (wenige Levels)
88<br />
3.3.3. Indexe<br />
B-Bäume (Balanced Trees oder Bayer-Baum):<br />
Häufigste Indexstruktur<br />
Alle Blätter haben den gleichen Abstand zur Wurzel<br />
Ein Knoten entspricht einer Datenbankseite<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Ein Knoten enthält den Schlüssel, den Datensatz, einen Verweis<br />
auf Knoten mit kleineren Schlüsseln und einen Verweis auf<br />
Knoten mit größeren Schlüsseln
89<br />
3.3.3. Indexe<br />
B-Bäume (Balanced Trees):<br />
1 2<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
10<br />
3 7 13 19<br />
4 5 6<br />
8 9 14 15 16 18<br />
11 12<br />
Quelle: Kemper/Eickler<br />
Datenorganisation | Veranstaltung 5<br />
20 21
90<br />
3.3.3. Indexe<br />
Einfügen von Schlüsseln:<br />
Einfügen von Datensatz mit Schlüssel 17<br />
Der Knoten ist voll, der mittlere Knoten wird nach oben<br />
geschoben, der volle Knoten wird geteilt<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
91<br />
3.3.3. Indexe<br />
Einfügen von Schlüssel 17:<br />
1 2<br />
Quelle: Kemper/Eickler<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
10<br />
3 7 13 19<br />
4 5 6<br />
8 9 14 15 16 18<br />
11 12<br />
Datenorganisation | Veranstaltung 5<br />
20 21
92<br />
3.3.3. Indexe<br />
Einfügen von Schlüssel 17:<br />
1 2<br />
Quelle: Kemper/Eickler<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
10<br />
3 7 13 16 19<br />
4 5 6<br />
8 9 14 15<br />
11 12<br />
Datenorganisation | Veranstaltung 5<br />
17 18<br />
20 21
93<br />
3.3.3. Indexe<br />
Löschen von Schlüsseln:<br />
Schlüssel in Blattknoten können einfach gelöscht werden<br />
Bei inneren Knoten: der nächstgrößere (nächstkleinere)<br />
Schlüssel wird an die Stelle des gelöschten Schlüssel<br />
verschoben<br />
Bei Unterbesetzung von Knoten: evtl. Ausgleich oder<br />
Verschmelzen<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
94<br />
3.3.3. Indexe<br />
Löschen von Schlüssel 7:<br />
1 2<br />
Quelle: Kemper/Eickler<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
10<br />
3 7 13 16 19<br />
4 5 6<br />
8 9 14 15<br />
11 12<br />
Datenorganisation | Veranstaltung 5<br />
17 18<br />
20 21
95<br />
3.3.3. Indexe<br />
Löschen von Schlüssel 7:<br />
1 2<br />
Quelle: Kemper/Eickler<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
10<br />
3 6 13 16 19<br />
4 5<br />
8 9 14 15<br />
11 12<br />
Datenorganisation | Veranstaltung 5<br />
17 18<br />
20 21
96<br />
3.3.3. Indexe<br />
Verzweigungsgrad bei B-Bäumen:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Je mehr Verzweigungen ein Baum hat, desto flacher ist er<br />
(weniger Seitenzugriffe!)<br />
Je größer die einzelnen Datensätze sind, desto weniger<br />
Verzweigungen sind möglich<br />
Reale B-Bäume: ca. 100 Verzweigungen
97<br />
3.3.3. Indexe<br />
B + -Bäume:<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Bei B + -Bäumen werden die Datensätze nur noch in den Blättern<br />
gespeichert,<br />
d. h. außerhalb des Index (es sind viel mehr Verzweigungen<br />
möglich!)<br />
In den inneren Knoten werden Referenzschlüssel gespeichert<br />
Die Blattknoten enthalten Zeiger auf den vorhergehenden und<br />
nachfolgenden Datensatz (ermöglicht sequentielle Suche)
98<br />
3.3.3. Indexe<br />
B + -Bäume:<br />
Effizientere Verwaltung der Struktur<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Es können mehrere B + -Bäume für eine Relation erzeugt werden<br />
Die Blattknoten sind sortiert<br />
Für Bereichsanfragen wird der erste passende Wert gesucht.<br />
Anschließend kann sequentiell gelesen werden, bis der Bereich<br />
verlassen wird
99<br />
3.3.3. Indexe<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Einsatz von Indexen:<br />
Bewusste Auswahl der Attribute, für die ein Index erzeugt<br />
werden soll<br />
Höhere Performanz für Abfragen<br />
Reduzierte Performanz für Einfügen, Löschen und Änderungen<br />
von Datensätzen<br />
Data Warehouse: viele Indexe<br />
Operative Systeme: wenige Indexe
100<br />
3.3.3. Indexe<br />
Einsatz von Indexen:<br />
Primärschlüsselindex:<br />
CREATE UNIQUE INDEX<br />
eindeutiger Index<br />
Sekundärschlüsselindex:<br />
CREATE INDEX<br />
nicht-eindeutiger Index<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5
101<br />
3.3.3. Indexe<br />
Einsatz von Indexen:<br />
Primärschlüssel sollte einen eindeutigen Index haben<br />
12. März 2007 Dipl.-Ök. Patrick Bartels<br />
Datenorganisation | Veranstaltung 5<br />
Fremdschlüssel sollten einen nicht-eindeutigen Index haben<br />
(beschleunigt Joins)<br />
Attribute, die häufig in Abfragen, Sortiervorgängen und<br />
Gruppierungen verwendet werden, sollten ebenfalls einen nichteindeutigen<br />
Index bekommen