Datenbanksysteme • • • • • • Motivation Begriffe Systemarchitektur Datenbankmodelle Datenbank-Entwurf Nutzung von Datenbanksystemen Informatik 2006 Datenbanksysteme Seite 1 Klöditz Hochschule Anhalt (FH) Motivation • Dateien: – innere Struktur durch den Entwickler definiert – Zugriffs- und Verarbeitungsoperationen müssen individuell programmiert werden • Zugriff auf Daten in Dateien – Kenntnis von Dateinamen und innerer Struktur notwendig – Dateizugriff zu einer Zeit auf einen Nutzer beschränkt • Bedarf: – Dialog-Betrieb mit Zugriff mehrerer Nutzer "gleichzeitig" – Zugriff ohne Kenntnis von Dateinamen und innerer Struktur – flexible Dateistruktur, während der Nutzung veränderbar Klöditz Hochschule Anhalt (FH) Informatik 2006 Datenbanksysteme Seite 2 Datenbanksystem Begriffe • Ein Datenbanksystem (DBS) ist eine Menge von – großen, – integrierten und – mehrfach und unterschiedlich nutzbaren Datenbanken (DB) samt Software (+ evtl. Hardware) für ihre – dauerhafte ("persistente"), – zuverlässige und – programmunabhängige Verwaltung – durch ein DB-Managementsystem (DBMS) / DB-Betriebssystem (DBBS) also: DBS = DB + DBMS Informatik 2006 Datenbanksysteme Seite 3 Klöditz Hochschule Anhalt (FH) Datenbanksystem Begriffe Nutzer 1 Datenbank (DB) Nutzer 2 Nutzer 3 Datenbankbetriebssystem (DBBS) ... Nutzer n Klöditz Hochschule Anhalt (FH) Informatik 2006 Datenbanksysteme Seite 4 Datenbanksystem Anforderungen • Integration: • Operationen: einheitliche Verwaltung aller Daten ohne Redundanz und ohne unkontrollierten Zugriff Bereitstellung grundlegender Operationen für Daten-Speicherung, -Änderung und –Suche • Datenunabhängigkeit: Möglichkeit unterschiedlicher Benutzersichten auf die Daten (Zusammenfassen / Ausblenden von Daten) • Konsistenzüberwachung: • Zugriffskontrolle: • Transaktionen: • Synchronisation: • Datensicherung: • • Trennung der Daten von den Anwendungen Effizienz und Verfügbarkeit „rund um die Uhr“ bei Datenabhängigkeiten (referentielle Integrität) und konkurrierendem Zugriff Vergabe von Zugriffsrechten und deren Kontrolle logisch zusammengehörige Operationen werden nur komplett oder gar nicht ausgeführt bei konkurrierendem Zugriff auf gleiche Daten Permanente ("persistente") Speicherung der Daten Informatik 2006 Datenbanksysteme Seite 5 Klöditz Hochschule Anhalt (FH) DB-System-Architektur Nutzerkomponenten Anfragen und Änderungen Auswertung P1 DB-Operationen ... Masken Pn Einbettung Programmierkomponenten Klöditz Hochschule Anhalt (FH) Transformationskomponenten Optimierer Plattenzugriff Data Dictionary Sichtendefinition Dateiorganisation Datendefinition Definitionskomponenten Informatik 2006 Datenbanksysteme Seite 6 Datenbankmodelle Entity-Relationship-Modell • Entity (Objekt, Ding, Gegenstand, Entität): – wird durch seine Eigenschaften beschrieben – gleichartige Beschreibungen bilden Entity-Typ • Relationship (Beziehung, Relation): – Beschreibung der Beziehungen zwischen einzelnen Entity's – kann selbst Eigenschaften besitzen • Attribute: – sind Abbildungen der Eigenschaften von Entity's und/oder Relationship's – besitzen einen Namen und einen Datentyp • Schlüssel (key): – Attribut(e) zur eindeutigen Identifizierung von Entity's • Kardinalitäten: – definieren, wie oft ein Entity des einen Typs eine Beziehung mit einem Entity des anderen (an der Beziehung beteiligten) Typs eingehen kann / darf / muss Informatik 2006 Datenbanksysteme Seite 7 Klöditz Hochschule Anhalt (FH) Entity-Relationship-Diagramm Buchhandel # ISBN * Autor * Titel ° Preis Buch ist im Katalog Katalogeintrag ist Buch Katalog # BuchNr # ExemplarNr Katalog-Buch wird von Leser ausgeliehen Rückg.Datum (RDatum) Leser leiht Katalog-Buch aus Einfache Verwaltung einer Bibliothek • Bibliotheksbestand steht im Katalog • Buchdaten stehen im Buchhandel • Leserdaten in Leser Klöditz Hochschule Anhalt (FH) Leser # LeserNr * Name * Vorname ° Straße ° PLZ ° Ort Informatik 2006 Datenbanksysteme Seite 8 Relationales Datenmodell Relationenschema R = A1 A2 ... d1,1 d2,1 ... d1,2 d2,2 ... Domäne ... ... ... Tupel ... ... ... d1,i d2,1 ... ... ... ... ... ... ... Relation r(R) = Attribut Wert Informatik 2006 Datenbanksysteme Seite 9 Klöditz Hochschule Anhalt (FH) Relationales Datenmodell Beispiel: Bibliothek Leser LNr Name Vorname Straße PLZ Ort 22110825 Nenast Hans-Peter Karl-May-Weg 1 06628 Bad Kösen 23985612 Röhn Thomas J.-R.-Becher-Str. 19 06231 Bad Dürrenberg 23986179 Schirmer Jürgen Leninstr. 58 06231 Bad Dürrenberg ... ... ... ... ... ... Buchhandel ISBN Autor Titel Preis 3-446-21175-6 Borkner-Delcarlo, Olaf Java 1,2 auf Linux 89.80 3-446-19341-3 Greenspun, Philip Datenbankgestützte Web-Sites 79.80 3-211-81873-1 Reinauer, G. Computerunterstütztes Konstruieren 32.00 ... ... ... ... Katalog Klöditz Hochschule Anhalt (FH) BNr ExNr ISBN 74300 1 3-446-21175-6 LNr RDatum 74300 2 3-446-21175-6 23985612 12.12.04 74302 1 3-211-81873-1 22110825 04.10.04 ... ... ... ... ... Informatik 2006 Datenbanksysteme Seite 10 Datenbank-Nutzung Abfragesprache SQL • Abfragesprache (query language) SELECT FROM WHERE GROUP BY HAVING ORDER BY spalte, ... tabelle, ... spalten-auswahlbedingung gruppierungsspalte, ... gruppen-auswahlbedingung spalte, ... ; • Beispiel: Welche Bücher sind z.Z. ausgeliehen (wer, was, bis wann)? SELECT FROM WHERE AND AND ORDER BY Leser.Name, Buchhandel.Titel, Katalog.RDatum Leser, Buchhandel, Katalog Leser.LNr = Katalog.LNr Buchhandel.ISBN = Katalog.ISBN Katalog.LNr is not null RDatum ; Informatik 2006 Datenbanksysteme Seite 11 Klöditz Hochschule Anhalt (FH) Betrieb von Datenbanksystemen Bearbeitung von Datenbeständen • Anfrage (query / select): – Abgrenzen eines Datenbank-Ausschnitts und Herauslesen des Inhalts (ohne Änderung) • Änderung (insert / update / delete): – (teilweise oder vollständige) Veränderung eines abgegrenzten Datenbank-Ausschnitts • Transaktion: – aus Anwendersicht abgeschlossene, konsistenzerhaltende Folge von elementaren Operationen auf einer Datenbank Klöditz Hochschule Anhalt (FH) Informatik 2006 Datenbanksysteme Seite 12 Datenbank-Implementierung • Entwurf: – Definition der Tabellen – Festlegung von Primärschlüsseln – Abbildung der Beziehungen zwischen Tabellen durch Fremdschlüssel • Beschreibung in einer Datendefinitionssprache (DDL) • Füllen der Datenbank mit Daten Informatik 2006 Datenbanksysteme Seite 13 Klöditz Hochschule Anhalt (FH) Implementierung von Tabellen Datendefinitionssprache (DDL) CREATE TABLE Leser ( LNr CHAR(8) NOT NULL, Name VARCHAR2(30), Vorname VARCHAR2(30), Str VARCHAR2(30), PLZ VARCHAR2(10), Ort VARCHAR2(30), CONSTRAINT L_pk PRIMARY KEY (LNr) ); CREATE TABLE Buchhandel ( ISBN CHAR(13) NOT NULL, Autor VARCHAR2(80), Titel VARCHAR2(180), Preis NUMBER(8,2), CONSTRAINT B_PK PRIMARY KEY (ISBN) ); CREATE TABLE Katalog ( BNr CHAR(6) NOT NULL, ExNr CHAR(2) NOT NULL, ISBN CHAR(13) NOT NULL, LNr CHAR(8), RDatum DATE, CONSTRAINT K_pk PRIMARY KEY (BNr, ExNr), CONSTRAINT K_fk1 FOREIGN KEY (ISBN) REFERENCES Buchhandel, CONSTRAINT K_fk2 FOREIGN KEY (LNr) REFERENCES Leser ); Klöditz Hochschule Anhalt (FH) Informatik 2006 Datenbanksysteme Seite 14 Füllen der Tabellen / Datenänderung Datenmanipulationssprache (DML) INSERT INTO Leser VALUES ( 23986179, 'Schirmer', 'Jürgen', 'Leninstr. 58', '06231', 'Bad Dürrenberg' ); UPDATE Buchhandel ( SET Preis = 49.90 WHERE ISBN = '3-211-81873-1' ); DELETE Katalog WHERE BNr = 74300 AND ExNr = 1 ); Informatik 2006 Datenbanksysteme Seite 15 Klöditz Hochschule Anhalt (FH) Physische DB-Struktur Beispiel: Oracle F6 F1 F2 F4 F3 F5 Datenbank-Files Online-REDO-Log-Files Control-Files Fn – DB-Tablespaces Klöditz Hochschule Anhalt (FH) Informatik 2006 Datenbanksysteme Seite 16 Datenbank-Software-Architektur Beispiel: Oracle Anwendungsprozesse ORACLE-Datenbankbetriebssystem ORACLE-Datenbank DBWR DBC LGWR A ARCH C H SMON E PMON CHKP Shared und Dedicated ORACLE-Server-Prozesse ORACLE-Instanz mit DB-Cache (SGA) und Hintergrundprozessen Informatik 2006 Datenbanksysteme Seite 17 Klöditz Hochschule Anhalt (FH) Datenbank-Prozess-Struktur Beispiel: Oracle ORACLE-Datenbank-Server DB-Cache R E D O DB-BlockPuffer 1 4 DBWR 1 2 3 LGWR 4 PMON Shared SQL-Pool 3 4 SMON 2 ARCH 4 5 5 4' Datenbank-Files Klöditz Hochschule Anhalt (FH) Redo-Log-Files archivierte Redo-Log-Files Informatik 2006 Datenbanksysteme Seite 18 Transaktionsablauf Beispiel: Oracle Prozess insert into <tabelle> update <tabelle> delete from <tabelle> DB-Cache DBB L O C K P U F F E R R E D O commit LGWR DBWR schreibt asynchron modifizierte DB-Blöcke vorausgegangener und eventuell aktueller Transaktionen zurück auf die DB-Files Nach dem commit wird der Redo-Log-Puffer auf das Redo-Log-File geschrieben if ok then weiter Redo-Log-Files Zeit DB-Files Informatik 2006 Datenbanksysteme Seite 19 Klöditz Hochschule Anhalt (FH) Konkurrierende Transaktionen Beispiel • In einem Platzreservierungssystem werden durch eine Transaktion1 N Plätze im Flug "X" rückgängig gemacht und anschließend im Flug "Y" reserviert; eine Transaktion2 reserviert M Plätze im Flug "X" Transaktion1 read_item (X) X := X – N write_item (X) read_item (Y) Y := Y + N write_item (Y) Transaktion2 read_item (X) X := X + M write_item (X) Zeit Klöditz Hochschule Anhalt (FH) Informatik 2006 Datenbanksysteme Seite 20 Konkurrierende Transaktionen Lost-Update-Problem • Liest T2 den Wert von X, bevor T1 die Änderung in der Datenbank abgespeichert hat, ist der Endwert von T1 verloren • "verlorene Änderung", "Lost-Update-Problem" Transaktion1 read_item (X) X := X – N Transaktion2 read_item (X) X := X + M write_item (X) read_item (Y) write_item (X) Y := Y + N write_item (Y) Zeit Informatik 2006 Datenbanksysteme Seite 21 Klöditz Hochschule Anhalt (FH) Konkurrierende Transaktionen Temporary-Update-Problem • Transaktion scheitert während ihrer Ausführung – Änderungen in der Datenbasis sind bereits vorgenommen, – andere Transaktion greift auf geändertes Datenelement zu, ehe der alte Zustand wiederhergestellt wurde • "temporäre Änderung", "Temporary Update Problem" Transaktion1 read_item (X) X := X – N write_item (X) Transaktion2 read_item (X) X := X + M write_item (X) read_item (Y) Klöditz Hochschule Anhalt (FH) Abbruch: T1 wird rückgängig gemacht Zeit Informatik 2006 Datenbanksysteme Seite 22 Konkurrierende Transaktionen Dirty-Read-Problem • Wird über mehrere Datensätze z.B. die Summe von einzelnen Datenelementen gebildet, während eine andere Transaktion gerade eines aktualisiert, können falsche Werte entstehen • "schmutziges Lesen", "Dirty-Read-Problem", "incorrect summary problem" Transaktion1 Abbuchen Konto1 Transaktion2 Saldenbestände lesen Gutschreiben Konto 2 Zeit Klöditz Hochschule Anhalt (FH) Informatik 2006 Datenbanksysteme Seite 23 Fehler bei der Ausführung von Transaktionen • Hard- oder Software-Fehler während einer Transaktion (crash): meist Verlust der Daten im Hauptspeicher • Systemabsturz während einer Transaktion (z.B. Division durch Null, falsche Parameter) • Abbruch der Transaktion wegen selbsterkanntem Fehler (z.B. Zugriff auf Datenelemente, die nicht gefunden werden): Transaktion wird zurückgesetzt • Integritätskontroll-Komponente verlangt den Abbruch • Schreibkopf einer Platte berührt die Oberfläche (head crash): Schreib-/Lesefehler; Datenblöcke werden unlesbar • Einfluss höherer Gewalt: Feuer, Wasser, Diebstahl, Sabotage Klöditz Hochschule Anhalt (FH) Informatik 2006 Datenbanksysteme Seite 24 Transaktionsablauf Beispiel: Oracle Prozess DB-Cache insert into <tabelle> update <tabelle> delete from <tabelle> DBB L O C K P U F F E R R E D O commit LGWR DBWR schreibt asynchron modifizierte DB-Blöcke vorausgegangener und eventuell aktueller Transaktionen zurück auf die DB-Files Nach dem commit wird der Redo-Log-Puffer auf das Redo-Log-File geschrieben if ok then weiter Redo-Log-Files Zeit DB-Files Informatik 2006 Datenbanksysteme Seite 25 Klöditz Hochschule Anhalt (FH) Kontrolle des Nutzer-Zugriffs DatenbankDatenbankAdministrator username / password Rechte Nutzer Klöditz Hochschule Anhalt (FH) Informatik 2006 Datenbanksysteme Seite 26 Rechte • Datenbank-Sicherheit unterscheidet – Systemsicherheit – Datensicherheit • Systemrechte: gesicherter Zugriff zur Datenbasis – connect – resource – dba to <nutzer> • Objektrechte: Änderungen des Inhalts von Datenbank-Objekten – select – update – delete on <datenbankobjekt> to <nutzer> Informatik 2006 Datenbanksysteme Seite 27 Klöditz Hochschule Anhalt (FH) Kontrollfragen 1. Welche Anforderungen erfüllen Dateien nicht, die bei DBS erfüllt sind? 2. Wie kann man sich die Struktur einer relationalen Datenbank vorstellen? 3. Wie werden Beziehungen zwischen den Daten abgebildet? 4. Was versteht man unter Primär-, was unter Fremdschlüsseln? 5. Wie erfolgt der Zugriff auf Daten in einer Datenbank? 6. Was ist eine Transaktion? 7. Wie wird verhindert, dass bei Fehlern Daten verloren gehen? 8. Wie kann man sichern, dass Nutzer nur Zugriff zu bestimmten Daten bekommen? Klöditz Hochschule Anhalt (FH) Informatik 2006 Datenbanksysteme Seite 28