Vorlesung Datenverarbeitung II Teilbereich Datenbanken SS 2008 Prof.Dr.Kühn Die Vorlesungskopien sollen die Studierenden entlasten – sie enthalten nicht den gesamten klausurrelevanten Stoff und ersetzen nicht den Besuch der Vorlesung Einführung: Kapitelinhalt Die Vorlesung befasst sich mit der Speicherung und Verwaltung großer Datenmengen Einleitende Fragen: • Was versteht man unter einer Datenbank • Welche Arten von Daten gibt es und welche werden hier betrachtet • Wie lassen sich diese Daten prinzipiell auf Datenträgern speichern (Dateiorganisation) • Welche Zugriffsarten können prinzipiell benötigt werden • Wie kann die Speicherung für die gewünschten Zugriffe optimiert werden • Welche Vorteile bietet ein zusätzliches Datenverwaltungsprogramm (DBMS) • Was charakterisiert eine Datenbank im Vergleich mit Dateien • Welche neuen Probleme können auftreten • Welche prinzipiellen Anforderungen muss ein DBMS erfüllen • Welche prinzipiell unterschiedlichen Typen von DBMS gibt (gab) es ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc 1.1 Datenbanken: Überblick Datenbanken bestehen aus einer Ansammlung vieler verschiedener Daten, auf die über ein Verwaltungsprogramm zugegriffen werden kann. Unterscheidungskriterien: Was wird gespeichert formatierte Daten unformatierte Daten Für welchen Zweck operativen Einsatz: OLTP Managementinformation: OLAP ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Datenbanken (formatierte Daten / OLTP) ¾ Datenbanken dienen zur langfristigen Speicherung von Daten ¾ Die Daten sind für viele Programme / Benutzer zugänglich ¾ Die Daten können nach vielen Gesichtspunkten ausgewertet werden ¾ Die Datenverwaltung und der Zugang erfolgt über ein eigenes Verwaltungsprogramm, das Datenbankmanagementsystem (DBMS) ¾ Die Speicherung der Daten entspricht einer Vielzahl von verknüpften Dateien Die verschiedenen möglichen Organisationsformen für die Daten entsprechen denen von Dateien ¾ ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc 1.2 Datenspeicherung ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Zur physischen Speicherung und Plattenzugriff Seite (Block): Transfereinheit zwischen Platte und Pufferbereich im Arbeitsspeicher; Größe vom Betriebssystem bestimmt; typische Größen: 512 Byte; 2 Kbyte (2048 B); o.a. Eine Seite enthält einen Header (Adresse Vorgängerseite, Adresse Nachfolgerseite, Sonstiges) und einen oder mehrere Datensätze. Datentransfer: (Richtwerte) Suchen+Übertragen des ersten Blockes: ca. 10 msec. Übertragen anschließender Blöcke: jeweils ca.1 ms. Die Anzahl der Plattenzugriffe ist häufig entscheidend für die Programmlaufzeit Æ minimieren erwünscht! ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Dateiorganisationsformen (formatierte Daten): Voraussetzung: Es werden Datensätze mit jeweils gleichem Satzaufbau gespeichert: Es gibt genau ein Schlüsselfeld. Es gibt nur begrenzte Möglichkeiten, die Datensätze auf der Platte zu organisieren: 1. Sequentielle Speicherung (sortiert) 2. Serielle Speicherung (unsortiert) 2a) Serielle Datei ohne Indexdatei 2b) Serielle Datei mit Indexdatei (Indexdatei unsortiert, sortiert, Baumstruktur*) 3. Hash-Speicherung *: wird hier nicht näher besprochen ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Zu 1: Sequentielle Speicherung Die Datensätze werden sortiert nach dem Inhalt des Schlüsselfeldes gespeichert. Die Sortierung erleichertert die Suche nach einem Satz mit einem bestimmten Schlüsselwert. Neu aufgenommene Datensätze werden „einsortiert“. Zu 2: Serielle Speicherung Die Datensätze werden in der Reihenfolge der Erfassung („zufällige Reihenfolge“, unsortiert) gespeichert, ohne den Inhalt des Schlüsselfeldes zu berücksichtigen. Bei der Suche nach einem Satz mit einem bestimmten Schlüsselwert muss von Anfang an gesucht werden. Um die Satzsuche zu beschleunigen kann eine zusätzliche Hilfsdatei (Indexdatei) eingerichtet werden (s.u.). Neu aufgenommene Datensätze werden gespeichert „wo Platz ist“, häufig am Dateiende. Zu 3: Hashdatei Der Speicherort jedes Datensatzes innerhalb der Datei wird aus dem Inhalt seines Schlüsselfeldes berechnet. Auf einen Satz mit einem bestimmten Schlüsselwert kann nach Rechnung direkt zugegriffen werden. So ergibt sich auch der Speicherort für jeden neuen Datensatz. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Bearbeitung von Dateien • Fortlaufendes Lesen, Satzreihenfolge beliebig (unsortiert) • Fortlaufendes Lesen, Satzreihenfolge sortiert nach Schlüsselwert • Wahlfreies Lesen (Satz mit einem bestimmten Schlüsselwert) • Speichern eines Satzes • Ändern eines bestimmten Satzes (Schlüsselwert bekannt) • Löschen eines bestimmten Satzes (Schlüsselwert bekannt) Die gewählte Dateiorganisationsform hat Einfluss darauf, wie schnell Datensätze gespeichert, gelöscht bzw. gefunden werden können (wahlfreier Zugriff). Die Zeit wird hierbei v.a. durch die Anzahl der benötigten Plattenzugriffe bestimmt ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Die serielle Speicherung: Beispiel Studentendatei Studentendatei={Student} Satzaufbau: Student=(MNr,Name,Vorname,Idat,Fachb,Stdg,Fsem) Idat=[SS|WS] JJJJ; Immatrikulationsdatum, JJJJ=Jahr, Fachb=Fachbereich, Stdg=Studiengang,FSem=Fachsemester* zu speichernder Inhalt: 1237 Zendt Sybille SS2004 W W-B 7 1437 Kant Egon SS2005 W W-B 5 1234 Müller Egon WS2003 W W-D 8 1340 Eder Martin SS2005 W IM-B 5 1451 Weber Elke WS2006 W IM-M 2 1235 Bauer Maria WS2003 W IM-B 8 1320 Ehrig Klaus SS2004 W W-D 7 1450 Schulz Peter WS2005 W IM-B 4 .............. Es soll eine Datei erstellt werden. derzeit umfasst sie 500 Datensätze zu je 400 Byte; Block-(Seiten-) größe: 512 Byte ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Serielle Datei (unsortiert) (1 Satz pro Block Æ 500 Blöcke) 2a) Hauptdatei (Datendatei) 1237 Zendt Sybille W W-B 5 Eder Martin SS2004 IM-M 2 1235 Klaus SS2004 W 4 … … SS2004 1234 W Bauer W-D … W Müller IM-B Maria 7 W-B Egon 5 WS2003 1450 7 WS2003 1451 W Schulz 1437 W Weber IM-B Peter Kant W-D Elke 8 WS2005 Egon 8 WS2005 1320 W SS2005 1340 W Ehrig IM-B Tabellenform: eine andere Darstellungsform derselben Datei (die Datensätze sind natürlich weiterhin fortlaufend gespeichert) 1237 1437 1234 1340 …. Zendt Kant Müller Eder …. Sybille Egon Egon Martin SS2004 SS2005 WS2003 SS2004 W W W W W-B W-B W-D IM-B 7 5 8 5 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Aufgabe: Auf die besprochene Studentendatei soll zugegriffen werden. a) Es sollen alle Datensätze gelesen werden (unsortiert) b) Es soll der Datensatz mit der Matrikelnummer 1320 gelesen werden c) Es soll ein Datensatz mit der Matrikelnummer 1350 gelesen werden (nicht vorhanden) d) Es soll ein neuer Datensatz gespeichert werden: (1370, Esser, Klaus, SS2008, W, IM-B, 1) wieviele Plattenzugriffe werden jeweils benötigt, wenn die Datei organisiert ist als 1. serielle Datei (ohne Index) 2. serielle Datei plus unsortierte Indexdatei 3. serielle Datei plus sortierte Indexdatei ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Wahlfreier Zugriff auf eine serielle Datei ist (zeit-)aufwendig. Deshalb: Einrichten einer Indexdatei als „Zugriffshilfe“: Zusätzliche Indexdatei für das Feld MNr Satzaufbau: MNr Eintrag in die Indextabelle Eintragslänge z.B. 8 Byte wievielter Satz=SatzNr Varianten: 2a) zusätzliche Indextabelle, unsortiert 1237 1 .... oder 1437 2 .... 1234 3 .... 1340 4 ... 1451 5 ... 1235 6 ... 1320 7 ... 1450 8 ... ..... ... ..... 1437 2 ... 1450 8 ... 1451 5 ... ..... ... .... 2b) zusätzliche Indextabelle, sortiert 1234 3 .... 1235 6 .... 1237 1 .... 1320 7 ... 1340 4 ... Umfang dieser Indexdatei: (Annahmen: Eintragslänge 8 B, Blockgröße 512 B; s.o.) 512:8 Æ64 Einträge pro Block Æ8 Blöcke ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Vorgehen bei der Erstellung einer Datei: 1. Satzaufbau festlegen (Feldnamen, Datentypen, Reihenfolge) 2. Dateiorganisationsform festlegen 3. Datensätze laden 4. Bearbeiten Die Wahl der Dateiorganisation wird bestimmt durch 1. Umfang der Datei 2. die häufigsten geplanten Bearbeitungen Insbesondere ist zu überlegen, ob das Anlegen einer Indexdatei (2b) die Gesamtbearbeitung beschleunigt. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc 1.3 Charakteristika von Datenbanken Unterschiede Dateien / Datenbanken ¾ In einer Datei werden jeweils (beliebig viele) Datensätze mit einheitlicher Struktur gespeichert (Studentendatei, Prüfungsdatei). In einer Datenbank werden Datensätze unterschiedlicher Struktur gespeichert (sowohl Studenten- als auch Prüfungsdaten) ¾ Bei Dateien muss der Benutzer „logisch zusammengehörige“ Datensätzen aus verschiedenen Dateien selbst heraussuchen. Bei einer Datenbank werden entsprechende Datensätze auf Anforderung vom System gesucht und geliefert. ¾ In Dateien findet man häufig Datenredundanz. In einer Datenbank erfolgt die Speicherung nahezu redundanzfrei ¾ Die Datenspeicherung in einer Datei wird vom Ersteller für seine Zwecke optimiert. Die Datei wird von wenigen Anwendern verwendet Die Datenspeicherung in einer Datenbank muss für viele Anwender „passen“. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Datenbanken ¾ Es werden viele Datensätze unterschiedlicher Struktur gespeichert ¾ Zwischen diesen Datensätzen können vielerlei Beziehungen bestehen ¾ Die Daten sind für viele Programme / Benutzer zugänglich ¾ Die Daten können nach vielen Gesichtspunkten ausgewertet werden ¾ Die Datenverwaltung und der Zugang erfolgt nur über ein eigenes Verwaltungsprogramm, das Datenbankmanagementsystem (DBMS) - dieses DBMS benötigt dafür bestimmte Komponenten - das DBMS legt für seine Arbeit zusätzliche Verwaltungsdaten an (data dictionary, repository,...). ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Komponenten eines DBMS Komponente zum Erstellen der DB: Datendefinitionssprache: DDL Speicherstruktursprache: SSL Komponente zur Datenmanipulation Datenmanipulationssprache: DML Komponente für die Benutzerverwaltung Datenkontrollsprache: DCL Komponente für Mehrbenutzerzugriffe: Transaktionskontrollsprache TCL und Transaktionsmonitor ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Vorteile und Probleme von Datenbanken: Vorteile • Datenunabhängigkeit der Programme --> • Beziehungen werden durch DBMS verwaltet --> • nur kontrollierte Redundanz --> • viele Abfragemöglichkeiten durch spezielle Sprachen --> Mögliche Probleme • sehr unterschiedliche Anforderungen --> • viele Benutzer in unterschiedlichen Positionen --> • Systemabsturz gefährdet Datenintegrität --> • gleichzeitiger Zugriff gefährdet Datenintegrität --> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Typen von Datenbanksystemen ¾ Hierarchische DBMS: seit ca.1960 ¾ Netzwerk-DBMS: seit ca.1970 ¾ Relationale DBMS: seit ca.1980 ¾ Objektorientierte DBMS: seit ca.1990 Gemeinsamkeiten • Speicherung von Daten • Verwaltung v. Beziehungen • Strukturänderungen möglich • alles vom DBMS verwaltet Unterschiede • Welche Datentypen gibt es • wie werden Beziehungen hergestellt • Flexibilität bzgl. Änderungen der Datenbankstruktur • Flexibilität bzgl. ungeplanten Abfragen • Effizienz bei vorgesehenen Abfragen ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Relationales Datenmodell: Datentypen:“rein“ relationale Systeme: Zahlen, Texte, Datum inzwischen erweitert („objektrelational“), abhängig vom Anbieter Flexibilität bzgl. Strukturänderungen: gut; besser als bei früheren Systemen Flexibilität bzgl. ungeplanten Abfragen: gut; besser als b. früheren Systemen Effizienz bzgl. vorhergesehenen Abfragen: aufgrund der Vorgehensweise langsamer als bei früheren Systemen; wird durch inzwischen viel schnellere HW kompensiert Beziehungen: In einer relationalen Datenbank wird (wie bei der Dateiorganisation) der Zusammenhang zwischen verschiedenen Datensatzmengen durch gleiche Feldinhalte hergestellt ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc Beispiel An einer Hochschule sind Studentendaten u. Studiengänge gespeichert Student (MNr,Name,Vorname,Idat,Fachb,Stdg,FSem) Studiengang (Stdg, Studiengangsname, Abschluss) Student MNr 1237 1340 1320 ... Studiengang Name Zendt Eder Ehrig … Stdg IM-B IM-M W-M … Vorname Sybille Martin Klaus … Idat Fachb SS2004 W SS2005 W SS2004 W Stdg W-B IM-B W-D FSem 7 5 7 Studiengangsname Abschluss International Management Bachelor of Science International Management Master of Science Wirtschaftsingenieurwesen Master of Science … … Die beiden Tabellen können über den Inhalt des Feldes „Stdg“ (Studiengang) miteinander verknüpft werden. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc • • • • • • • Einführung: Zusammenfassung Gegenstand der Vorlesung sind Datenbanken für formatierte Daten und operative Auswertungen (OLTP-Systeme) Die Speicherung der Daten erfolgt üblicherweise in unsortierten Dateien, evt. mit Indextabellen für der schnelleren Zugriff. In Spezialfällen sind andere Speicherungsformen möglich. Datenbanken haben Vorteile gegenüber Dateien (insbesondere bzgl. der Datenintegrität), aber aufgrund der großen Datenmengen, der vielen gleichzeitigen Nutzer und der unterschiedlichen Anforderungen treten neue Probleme auf. Das Antwortzeitverhalten aufgrund hoher Anforderungen wird über die Art der Datenspeicherung und Indextabellen sowie eigene Anfrageoptimierer des DBMS beeinflusst. Die Mehrbenutzerverwaltung ist Aufgabe des DBMS, wobei das Transaktionskonzept eine entscheidende Rolle spielt. Es gibt unterschiedliche Typen von DBMS (hierarchische, relationale, objektorientierte). Es können verschiedene Datentypen gespeichert werden und die Verwaltung der Daten und ihrer Beziehungen ist technisch unterschiedlich gelöst Heute spielen im kommerziellen Bereich nur die relationalen Datenbanken eine Rolle (evt. mit objektorientierten Erweiterungen) ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Prof. Dr.Kühn 2008 IMB-K1-Einfuehrung.doc