Datenbanksysteme. Motivation



Ähnliche Dokumente
Einführung. Informationssystem als Abbild der realen Welt

Themen. M. Duffner: Datenbanksysteme

Grundlagen von Datenbanken

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Einteilung von Datenbanken

SQL (Structured Query Language) Schemata Datentypen

Oracle Datenbank - Recovery

Vom Entity-Relationship-Modell (ERM) zum relationalen Datenmodell (RDM)

Allgemeines zu Datenbanken

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

9. Einführung in Datenbanken

Aufgaben zur fachwissenschaftlichen Prüfung Modul 3 Daten erfassen, ordnen, verarbeiten und austauschen: Schwerpunkt Datenbanken

Dipl. Inf. Dipl. Math. Y. Orkunoglu Datum:

Übersicht über Datenbanken

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

Das relationale Datenmodell

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Die Grundbegriffe Die Daten Die Informationen

Wirtschaftsinformatik 2. Tutorium im WS 11/12

SQL structured query language

Prozessarchitektur einer Oracle-Instanz

IV. Datenbankmanagement

6. Sichten, Integrität und Zugriffskontrolle. Vorlesung "Informa=onssysteme" Sommersemester 2015

SQL und MySQL. Kristian Köhntopp

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Datenbanken. Prof. Dr. Bernhard Schiefer.

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

SQL: statische Integrität

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

Arbeiten mit ACCESS 2013

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

Datenbanken Die Entwicklung der Datenbanksysteme ist eng an die der Hardware gekoppelt und wird wie jene in Generationen eingeteilt:

Universität Augsburg, Institut für Informatik WS 2006/2007 Dr. W.-T. Balke 27. Nov M. Endres, A. Huhn, T. Preisinger Lösungsblatt 5

4 Grundlagen der Datenbankentwicklung

Profilbezogene informatische Bildung in den Klassenstufen 9 und 10. Schwerpunktthema Daten und Datenbanken

ABTEILUNGS- ABTEILUNGS- LEITER NAME

Datenmanagement in Android-Apps. 16. Mai 2013

Datenbanken für Online Untersuchungen

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

Relationale Datenbanken in der Praxis

Klausur Interoperabilität

5.3 Datenänderung/-zugriff mit SQL (DML)

Bibliografische Informationen digitalisiert durch

7. Übung - Datenbanken

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Beispiel 1: Filmdatenbank

Grundzüge und Vorteile von XML-Datenbanken am Beispiel der Oracle XML DB

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Datenbanksysteme I. Klausur zum Praktikum. Mehrere Professoren prüfen mit genau einem Beisitzer genau einen Studenten.

Abbildung 1: Das ERM. Nun zu den Tabellen: Zunächst wird aus jeder Entity eine Tabelle, d.h. wir erhalten:

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Datenbanken (Bachelor) (SPO2007) WS 2011/12

Inhaltsverzeichnis. 1. Fragestellung

Erstellen einer Datenbank. Datenbankabfragen

Labor 3 - Datenbank mit MySQL

Referenzielle Integrität SQL

Informatik 12 Datenbanken SQL-Einführung

Arbeiten mit einem lokalen PostgreSQL-Server

Im Original veränderbare Word-Dateien

Redundanz: Dieselben Informationen werden doppelt gespeichert.

Übungsblatt 4. Aufgabe 7: Datensicht Fachkonzept (Klausur SS 2002, 1. Termin)

Oracle SQL Tutorium - Wiederholung DB I -

ACCESS das Datenbankprogramm. (Einführung) DI (FH) Levent Öztürk

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

Datenbanken. Einführung. Tobias Galliat. Sommersemester 2012

Definition Informationssystem

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Datenbanken Konsistenz und Mehrnutzerbetrieb III

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Kapitel 10 Aktive DBMS

Grundlagen von Datenbanksystemen

Physischer Datenbankentwurf: Datenspeicherung

Vielen Dank an Dennis Riehle für die Bereitstellung dieser Folien

Aufgaben zu XPath und XQuery

Datenbanken. Sommersemester 2010 Probeklausur

Schlüssel bei temporalen Daten im relationalen Modell

Software-Engineering und Datenbanken

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

Wiederholung VU Datenmodellierung

Probeklausur im Modul Informationstechnik 1, WS 2003/04. Studiengang IWD 1. Semester Seite 1 von 5

Praktische SQL-Befehle

Views in SQL. 2 Anlegen und Verwenden von Views 2

Relationale Datenbanken Datenbankgrundlagen

3. Stored Procedures und PL/SQL

Fragenkatalog zum Kurs 1666 (Datenbanken in Rechnernetzen) Kurstext von SS 96

Quelle: TU Dresden, Fakultät Informatik, Institut für Systemarchitektur, Professur für Datenbanken, Dr.-Ing. B. Keller

cs241: Datenbanken mit Übungen HS 2011

Datenbanken. Ein DBS besteht aus zwei Teilen:

Unterabfragen (Subqueries)

Einführung in. Logische Schaltungen

Carl-Engler-Schule Karlsruhe Datenbank 1 (5)

Raumbezogene Datenbanken (Spatial Databases)

Professionelle Seminare im Bereich MS-Office

Transkript:

Motivation Begriffe Systemarchitektur Datenbankmodelle Datenbank-Entwurf Nutzung von n Seite 1 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 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 Seite 3 Datenbanksystem Begriffe Nutzer 1 Datenbank (DB) Datenbankbetriebssystem (DBBS) Nutzer 2 Nutzer 3 Nutzer n Seite 4

Datenbanksystem Anforderungen Integration: einheitliche Verwaltung aller Daten ohne Redundanz und ohne unkontrollierten Zugriff Operationen: 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: bei Datenabhängigkeiten (referentielle Integrität) und konkurrierendem Zugriff Zugriffskontrolle: Vergabe von Zugriffsrechten und deren Kontrolle Transaktionen: logisch zusammengehörige Operationen werden nur komplett oder gar nicht ausgeführt Synchronisation: bei konkurrierendem Zugriff auf gleiche Daten Datensicherung: Permanente ("persistente") Speicherung der Daten Trennung der Daten von den Anwendungen Effizienz und Verfügbarkeit rund um die Uhr Seite 5 DB-System-Architektur Nutzerkomponenten Anfragen und Änderungen Transformationskomponenten Auswertung Optimierer Plattenzugriff P1 DB-Operationen Masken Data Dictionary Pn Einbettung Programmierkomponenten Sichtendefinition Dateiorganisation Definitionskomponenten Datendefinition 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 Seite 7 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 Leser # LeserNr * Name * Vorname Straße PLZ Ort Seite 8

Relationales Datenmodell Relationenschema R = Relation r(r) = A 1 A 2 d 1,1 d 2,1 d 1,2 d 2,2 d 1,i d 2,1 Attribut Domäne Tupel Wert Seite 9 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 BNr ExNr ISBN LNr RDatum 74300 1 3-446-21175-6 74300 2 3-446-21175-6 23985612 12.12.04 74302 1 3-211-81873-1 22110825 04.10.04 Seite 10

Datenbank-Nutzung Abfragesprache SQL Abfragesprache (query language) SELECT spalte, FROM tabelle, WHERE spalten-auswahlbedingung GROUP BY gruppierungsspalte, HAVING gruppen-auswahlbedingung ORDER BY spalte, ; Beispiel: Welche Bücher sind z.z. ausgeliehen (wer, was, bis wann)? SELECT Leser.Name, Buchhandel.Titel, Katalog.RDatum FROM Leser, Buchhandel, Katalog WHERE Leser.LNr = Katalog.LNr AND Buchhandel.ISBN = Katalog.ISBN AND Katalog.LNr is not null ORDER BY RDatum ; Seite 11 Betrieb von n 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 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 Seite 13 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 ); 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 ); Seite 15 Physische DB-Struktur Beispiel: Oracle F1 F2 F6 F3 F4 F5 Datenbank-Files Online-REDO-Log-Files Control-Files Fn DB-Tablespaces Seite 16

Datenbank-Software-Architektur Beispiel: Oracle Anwendungsprozesse ORACLE-Datenbankbetriebssystem ORACLE-Datenbank DB- C A C H E DBWR LGWR ARCH SMON PMON CHKP Shared und Dedicated ORACLE-Server-Prozesse ORACLE-Instanz mit DB-Cache (SGA) und Hintergrundprozessen Seite 17 Datenbank-Prozess-Struktur Beispiel: Oracle ORACLE-Datenbank-Server DB-Block- Puffer DB-Cache R E D O Shared SQL-Pool 1 4 2 3 3 4 DBWR LGWR PMON SMON ARCH 1 4 2 4 5 4' Datenbank-Files Redo-Log-Files archivierte 5 Redo-Log-Files Seite 18

Transaktionsablauf Beispiel: Oracle Prozess DB-Cache LGWR DBWR insert into <tabelle> update <tabelle> delete from <tabelle> commit DB- B L O C K P U F F E R R E D O Nach dem commit wird der Redo-Log-Puffer auf das Redo-Log-File geschrieben schreibt asynchron modifizierte DB-Blöcke vorausgegangener und eventuell aktueller Transaktionen zurück auf die DB-Files if ok then weiter Redo-Log-Files DB-Files Zeit Seite 19 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 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 write_item (X) read_item (Y) Y := Y + N write_item (Y) Transaktion2 read_item (X) X := X + M write_item (X) Zeit Seite 21 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) read_item (Y) Transaktion2 read_item (X) X := X + M write_item (X) Abbruch: T1 wird rückgängig gemacht Zeit 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 Gutschreiben Konto 2 Transaktion2 Saldenbestände lesen Zeit 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 Seite 24

Transaktionsablauf Beispiel: Oracle Prozess DB-Cache LGWR DBWR insert into <tabelle> update <tabelle> delete from <tabelle> commit DB- B L O C K P U F F E R R E D O Nach dem commit wird der Redo-Log-Puffer auf das Redo-Log-File geschrieben schreibt asynchron modifizierte DB-Blöcke vorausgegangener und eventuell aktueller Transaktionen zurück auf die DB-Files if ok then weiter Redo-Log-Files DB-Files Zeit Seite 25 Kontrolle des Nutzer-Zugriffs Datenbank- Administrator username / password Rechte Nutzer 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> Seite 27 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? Seite 28