Title: Einf
1Einführung
2Grundsätzliches zu Datenbanken
- 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
3Was ist eine Datenbank? (1)
- 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
4Was ist eine Datenbank? (2)
- 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)
5Was ist eine Datenbank? (3)
- 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
-
(vgl. Heuer/Saake
Datenbanken, 1995) -
6Was ist eine Datenbank? (4)
- 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/Verwaltung
sdaten (Informationen über Tabellennamen,
Attributnamen, Datentypen, Beziehungen ) - Metadatenbank arbeitet mit den gleichen
Konzepten wie das DBMS selbst (Tabellen,
Attribute, Beziehungen, gleiche Anfragesprache )
7Was ist ein Datenmodell?
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)
8Klassifizierung von Datenbanken
Nach dem Typ des Datenmodells(und der
zeitlichen Entwicklung)
- Flache Dateien (vor DB-Zeitalter/ohne DB)
- Hierarchische Datenbanken
- Netzwerkdatenbanken
- Relationale und objektrelationale Datenbanken
- Objektorientierte Datenbanken
9Relationale Datenbank
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.
10Informationssystem 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.
IS
CIS
Anwendungssysteme
Datenbanksystem
Betriebssystem
Hardware
11Beispiele 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
12Typen 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
Datenbankmanagementsysteme
Non-Standard-Anwendungen
große Datenmengen (formatiert und unformatiert)
Komplexe Datentypen
Komplexe Algorithmen
Komplexe Transaktionen
13Entwicklung der Datenbanken (1)
14Entwicklung der Datenbanken (2)
15Entwicklung der Datenbanken (3)
16Vorteile 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)
17Datenunabhängigkeit (1)
Unter Datenunabhängigkeit versteht man die
Unabhängigkeit von Anwendungsprogrammen und den
Daten, die die Anwendungsprogramme benötigen.
18Datenunabhängigkeit (2)
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
19Sprachebenen und Sprachklassen
20Kategorien von Datenbankbenutzern
21Aufgaben des Datenbankadministrators
- Datenbankdesign, Anlegen der Datenbank
- Softwareinstallation und -wartung
- Speicherplatzverwaltung
- Implementierung von Sicherheitsmechanismen
- Laden von Daten
- Backup und Recovery.
- Reorganisation von Datenbeständen
- Systembeobachtung und-Tuning
22Aufgaben des Datenbankentwicklers (1)
- 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
23Aufgaben des Datenbankentwicklers (2)
- 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
24Aufgaben des Datenbankendbenutzers
- Benutzung der vom Datenbankentwickler
erstellten Programme - Benutzung von QBE-Werkzeugen (Query by
Example) zur Beantwortung von
Ad-Hoc-Abfragen
25Datenbankarchitektur
26ANSI-3-Ebenen-Modell
27Beispiel zum 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
28Konzeptionelles Schema
29Datenbankschema
Das Datenbankschema besteht bei einer
relationalen Datenbank aus dem Relationenschema,
also den Tabellen, die in der Datenbank abgelegt
werden sollen.
Flug
Sitzplatz
30Interne Ebene
Beschreibt die Daten in Form von Datensätzen
(Records), spezifischen Zugriffspfaden, die
Abbildung der logischen Records auf die
Speicherstrukturen (physische Records, Seiten)
- Physische Speicherstruktur der Daten
- Indizes (z.B. Baum- Baumstruktur)
- Hash-Zugriff
- Heap
- Indizes
31Concurrency 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
32Transaktionskonzept
- 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.
33Datensicherheit
- 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.
34Zusammenfassung
- 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)
- Verwundbarkeit durch Zentralisierung (Ausweg
Verteilung)