3.3.2. Dateiorganisation

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