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