Einführung
• Informationsflut
• Motivation
– Komplexe Datenstrukturen
– Aktuelle, richtige, redundanzfreie Daten – Trennung von Daten und Programmen – Viele Benutzer greifen zeitgleich zu
• Aufgaben
– komfortable und sichere Eingabe der Daten
– persistente und Platz sparende Speicherung der Daten – Schneller und komfortabler Zugriff auf die Daten
Grundsätzliches zu Datenbanken
Datenbank
• Oft ungenaue Begriffsverwendung
• In der Regel ist ein Datenbanksystem (DBS) gemeint oder auch eine Datenbasis
Datenbasis
• die in einem DBS (Datenbanksystem) nach einheitlichen Regeln persistent gespeicherten Daten
• die Daten werden in Dateien des File-Systems gespeichert
Was ist eine „Datenbank“? (1)
Datenbanksystem (DBS)
• In einem DBS werden Daten nach einheitlichen Regeln gespeichert (persistente Datenhaltung) und verwaltet.
• Alle Benutzer und Anwendungen können nach einheitlichen Regeln auf die gespeicherten Daten zugreifen.
• DBS = Datenbasis + DB-Verwaltungssystem (DBMS)
Was ist eine „Datenbank“? (2)
Prof. Dr. T. Kudraß 5
DBMS (Data Base Management System)
• Programme zur Verwaltung persistenter Daten (der sog.
Datenbasis)
• liegt in der Funktionalität zwischen Anwendungsprogrammen und
Betriebssystem
• effiziente Verwaltung großer Datenmengen
• ein einheitliches Datenmodell liegt zugrunde, mit dessen Konzepten
alle Daten einheitlich beschrieben werden.
• Operationen und deskriptive Sprachen wie z.B. SQL:
DDL (Data Definition Language), DML (Data Manipulation Language),
DCL (Data Control Language) …
• Transaktionskonzepte und Mehrbenutzerbetrieb
• Datenschutz und Datensicherheit
Was ist eine „Datenbank“? (3)
Prof. Dr. T. Kudraß 6
Data Dictionary
• Informationsbasis des DBMS zur Speicherung und Verwaltung der
,Anwendungsdaten‘
• Informationsbasis für DB-Benutzer zur Suche nach gespeicherten
,Anwendungsdaten‘, Gewinnung von Strukturdaten und Diagnose von
Leistungsproblemen
• enthält die Daten, die den Datenbestand beschreiben/
definieren:
Metadaten/Verwaltungsdaten
(Informationen über: Tabellennamen, Attributnamen, Datentypen,
Beziehungen …)
• Metadatenbank arbeitet mit den gleichen Konzepten wie das DBMS
Was ist eine „Datenbank“? (4)
Ein Datenmodell stellt einen allgemeinen Begriffsapparat zur Verfügung, der es gestattet, Realitätsausschnitte ohne Eingrenzung auf ein bestimmtes Sachgebiet zu modellieren.
Mit dem Datenmodell werden die Datenobjekte und die Operatoren auf diesen Objekten festgelegt.
Das Datenmodell ist somit analog zu einer Programmier- sprache, die Datentypen und Funktionen werden mit Mitteln der Datenbanksprache beschrieben.
(Vossen, 1999)
Was ist ein Datenmodell?
• Flache Dateien
(vor DB-Zeitalter/ohne DB)• Hierarchische Datenbanken
• Netzwerkdatenbanken
• Relationale und objektrelationale Datenbanken
• Objektorientierte Datenbanken
Nach dem Typ des Datenmodells:
(und der zeitlichen Entwicklung)
Klassifizierung von Datenbanken
Die Daten und ihre Beziehungen werden in Tabellen
(Relationen) abgebildet. Eine Tabelle ist horizontal in Zeilen und vertikal in Spalten aufgeteilt. Jeder Datensatz wird als Zeile dargestellt. Die Zeilen heißen Tupel und die
Spaltenüberschriften Attribute.
Relationale Datenbank
Informationssystem vs. Datenbanksystem
• Ein Informationssystem (IS) besteht aus Menschen und Maschinen, die Informationen erzeugen und/oder
benutzen und die durch Kommunikationsbeziehungen miteinander verbunden sind.
• Ein rechnergestütztes Informationssystem (CIS) ist ein System, bei dem die Erfassung, Speicherung und/oder Transformation von Informationen durch den Einsatz von EDV teilweise automatisiert ist.
Hardware Datenbanksystem Anwendungssysteme
Betriebssystem CIS
IS
Beispiele für Informationssysteme
• Universitätsdatenbank
– Objekte: Fachbereiche, Studenten, Professoren, Mitarbeiter, Vorlesungen, Prüfungen
– Anwendungen:
Immatrikulation
Ausfertigung von Studienbescheinigungen
Stundenplanerstellung
Raumbelegung
Ausstellung von Zeugnissen
Statistiken
• Bank-Informationssystem
– Objekte: Partner (Kunden, Geschäftspartner), Produkte (bestehend aus Features), Tarife, Standardkosten, Konten, Finanzinstrumente,
Geschäftsprozesse (Beschreibungen und Logs), Referenzdaten (z.B.
Kalender)
– Anwendungen:
Buchung von Zahlungsvorgängen auf verschiedenen Konten
Einrichten und Auflösen von Konten
Zinsberechnung und Verbuchung
Personalverwaltung (Gehaltsabrechnung)
Bereitstellung von Statistiken über Kundenverhalten zu Marketing- Zwecken
Typen von Informationssystemen
Information Retrieval (Recherche-Systeme)
Kommerzielle EDV Wiss.-techn.
Anwendungen
große Datenmengen
(unformatiert) große Datenmengen (formatiert)
Einfache Daten-
struktur/Datentypen
Kleine Datenmengen, numerische Daten
Komplexe
Suchalgorithmen Einfache Algorithmen Komplexe Algorithmen Retrieval-orientiert Update-orientiert,
transaktionsorientiert prozeßorientiert
Non-Standard-Anwendungen
große Datenmengen (formatiert und unformatiert) Komplexe Datentypen
Komplexe Algorithmen
Datenbankmanagementsysteme
Entwicklung der Datenbanken (1)
Entwicklung der Datenbanken (2)
Entwicklung der Datenbanken (3)
Vorteile eines DBMS
• Datenunabhängigkeit
• Effizienter Zugriff
• Verminderte Entwicklungszeit
• Kontrolle der Datenintegrität
• Zugriffskontrolle auf die Daten
• Datensicherheit und Zugriffskontrolle auf die Daten (Korrektheit bei fehlerhaftem Ablauf einzelner
Anwendungen und System-absturz)
• Einheitliche Datenadministration
• Unterstützung von Nebenläufigkeit (Concurrency Control)
• Recovery-Fähigkeiten (Korrektheit bei fehlerhaftem Ablauf einzelner Anwendungen und Wiederherstellung der DB nach System-Crash)
Unter Datenunabhängigkeit versteht man die Unabhängigkeit von Anwendungsprogrammen und den Daten, die die
Anwendungsprogramme benötigen.
Datenbank
Programm 1 . . . . . Programm x Programm y
Datenunabhängigkeit (1)
Welche Vorteile hat die Datenunabhängigkeit?
• Weniger Redundanz
• keine inkonsistenten Daten
• Anpassungsfähigkeit
Arten der Datenunabhängigkeit
• vertikal und logisch: Anwenderprogramme von den Daten
• horizontal und logisch: Anwenderprogramme untereinander
• physisch: Unabhängig von der physikalischen Speicherung
Datenunabhängigkeit (2)
Datenmanipulation (DML)
Datendefinition (DDL)
Physische Datenspeicherung und Administration (DCL) Hardware: Speichermedium
Anwendungs- programm 1
Anwendungs- programm 2
Anwendungs- programm n Anwender
D B M S
...
..
Datenabfragesprache (DQL)
Sprachebenen und Sprachklassen
Datenbankendbenutzer Datenbank-
entwickler
DBA
Kategorien von Datenbankbenutzern
•
Datenbankdesign, Anlegen der Datenbank
•
Softwareinstallation und -wartung
•
Speicherplatzverwaltung
•
Implementierung von Sicherheitsmechanismen
•
Laden von Daten
•
Backup und Recovery.
•
Reorganisation von Datenbeständen
•
Systembeobachtung und-Tuning
Aufgaben des Datenbankadministrators
Systemanalyse
• Entwurf des konzeptionellen Datenbankmodells, z.B. Erstellung eines ER-Modells
• Erstellung einer kompletten Aufgabenbeschreibung
• Abstimmung mit bestehenden Applikationen und Einbindung in eine komplexes Datenmodell
Ad-Hoc-Abfragen
• Beobachtung der Datenbank und der Entwicklung der Datenmenge
• Beantwortung von Benutzerfragen, die nicht fest programmiert werden sollen
• Bedienung von SQL-Werkzeugen
Aufgaben des Datenbankentwicklers (1)
Anwendungsentwicklung
• Entwicklung von Masken
• Entwicklung von Reports, schriftlichen Dokumenten
• Programmiersprache: 4 GL-Sprachen, wie PL/SQL von ORACLE
• Erstellung von Datenbankprozeduren und Datenbanktriggern in Datenbank
• Anbindung der Datenbank ans INTERNET, z.B. mit JDBC und Java
Aufgaben des Datenbankentwicklers (2)
• Benutzung der vom Datenbankentwickler erstellten Programme
• Benutzung von QBE-Werkzeugen (Query by Example) zur Beantwortung von Ad-Hoc-Abfragen
Aufgaben des Datenbankendbenutzers
Buffer- manager
Data- Manager
Ebene 5 Seitenschnittstelle
Recordorientierte Schnittstelle
Transaktionsverwaltung
Scheduler Recovery-
Manager Person Person
Benutzerschnittstelle
Mengenorientierte Schnittstelle
Datenbankmanagementsystem
Ebene 4 Code- Erzeugung
Optimierer Zugriffsplan-
erstellung
Query- prozessor Update-
Prozessor Integritäts-
prtüfung
Ebene 2
Ebene 3
Geräteschnittstelle Person
Input/Output- Prozessor
Parser Precompiler
Autorisierungskontrolle
Ebene 1
Datenbankarchitektur
Anwendung 1
Anwendung n
externe
Datenstruktur externe
Datenstruktur
externe Datenstruktur
konzeptionelles Schema
anwendungs- und datenunabhängige Datenstruktur
Datenbankschema
anwendungsunabhängig / datenbankspezifisch Anwendung
2 ...
ANSI-3-Ebenen-Modell
Flughafenbetrieb Externe Ebene
Benutzersicht auf den Flugbetrieb, also z.B.
• Unterstützung von Buchung,
• Auswahl und Reservierung der Plätze
• die Ausgabe der Flugscheine
• mehr und mehr über das INTERNET
Beispiel zum ANSI-3-Ebenen-Modell
S i t z p l a t z
C o u p o n F l u g
F l u g g a s t F l u g z e u g
T i c k e t
.
Konzeptionelles Schema
Das Datenbankschema besteht bei einer relationalen Datenbank aus dem Relationenschema, also den
Tabellen, die in der Datenbank abgelegt werden sollen.
Nr Position Raucherkennzeichen 1 rechts nein
2 rechts nein 23 links ja
Nr. von nach Uhrzeit Datum 216 Köln München 14.11 2.12.95 217 Köln Paris 15.15 2.12.95 218 Köln Tokio 16.00 2.12.95
Sitzplatz Flug
Datenbankschema
Physische Speicherstruktur der Daten:
• Indizes (z.B. Baum- Baumstruktur)
• Hash-Zugriff
• Heap
• Indizes
8
5 12 15
1 3 6 7 9 11 13 16 18
Interne Ebene
Beschreibt die Daten in Form von Datensätzen (Records), spezifischen Zugriffspfaden, die Abbildung der logischen
Records auf die Speicherstrukturen (physische Records, Seiten)
Concurrency Control
• Nebenläufige Ausführung von Anwendungsprogrammen wichtig für Performance
–Nebenläufige Arbeit wichtig für gute CPU-Auslastung
• Überlappende Aktionen von verschiedenen Programmen können zu Inkonsistenz führen
z.B. Berechnung eines Kontostandes durch eine Transaktion und gleichzeitige Ausführung einer Überweisung
• DBMS garantiert Isolation und Konsistenz
• Isolation
Illusion einer Transaktion, allein Zugriff auf die Datenbank zu haben. Eine Transaktion sieht nur einen konsistenten Zustand der Datenbank.
• Konsistenz
Korrekter Ablauf einer Transaktion
Transaktionskonzept
• Transaktion
– Atomare Sequenz von Datenbank-Aktionen (read / write)
• Atomizität = All or Nothing
• Jede Transaktion hinterläßt die DB in einem konsistenten Zustand, wenn diese bei Transaktionsbeginn schon
konsistent war.
– Benutzer können Integritätsbedingungen auf den Daten formulieren, die vom DBMS kontrolliert werden.
– Das DBMS “versteht“ nicht die Semantik der Daten Benutzer ist für den korrekten Ablauf einer Transaktionen verantwortlich
– DBMS garantiert, daß die verschachtelte Ausführung einer Menge von Transaktionen {T1, ..., Tn} äquivalent zu
irgendeiner seriellen Ausführung T1... Tn sind.
Datensicherheit
• DBMS sichert Atomizität auch, wenn das System mitten in einer Transaktion abstürzt
• Idee: Protokollierung aller Aktionen (Logging), die vom DBMS ausgeführt werden während der Ausführung der Transaktionen
– Vor dem Ändern der DB wird der entsprechende Log-Eintrag auf einen sicheren Platz geschrieben.
– Nach einem Crash werden die Effekte von teilweise ausgeführten Transaktionen zurückgesetzt (undo)
• Logging von
– Write (alter und neuer Wert) durch Ti – Commit oder Abort von Ti
• Logs werden oft zusätzlich gesichert auf einem anderen Datenträger
• Alle Aktivitäten von Logging und Concurrency Control werden transparent durch das DBMS behandelt.
Zusammenfassung
• Vorteile eines Datenbanksystems
– Integrierter Datenbestand Vermeidung von Redundanz – Konsistenz, höhere Qualität des Datenbestandes
– Einheitliche Mechanismen für Datenschutz, Datensicherheit (Recovery) und Nebenläufigkeit (Concurrency Control)
– Physische und logische Datenunabhängigkeit
– Leichtere und schnellere Programmentwicklung und -wartung durch einheitliche und explizite
Strukturdarstellung, Nutzung von 4GL, Form- und Reportgeneratoren
– Optimierbare Anfragesprache (Query Language)
• Nachteile eines Datenbanksystems
– General-Purpose Software oft weniger effizient als spezialisierte Software
– Bei konkurrierenden Anforderungen kann DBS nur für einen Teil der AP optimiert werden
– Kosten: DBMS und zusätzliche Hardware
– Hochqualifiziertes Personal (DB-Administration)