Post on 05-Apr-2015
transcript
Prof. Dr. T. Kudraß 1
Einführung
Prof. Dr. T. Kudraß 2
• 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
Prof. Dr. T. Kudraß 3
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)
Prof. Dr. T. Kudraß 4
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 (vgl. Heuer/Saake: Datenbanken, 1995)
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 selbst (Tabellen, Attribute, Beziehungen, gleiche Anfragesprache …)
Was ist eine „Datenbank“? (4)
Prof. Dr. T. Kudraß 7
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?
Prof. Dr. T. Kudraß 8
• Flache Dateien (vor DB-Zeitalter/ohne DB)
• Hierarchische Datenbanken
• Netzwerkdatenbanken
• Relationale und objektrelationale Datenbanken
• Objektorientierte Datenbanken
• NoSQL-Datenbanken (Dokumente, Graphen)
Nach dem Typ des Datenmodells:(und der zeitlichen Entwicklung)
Klassifizierung von Datenbanken
Prof. Dr. T. Kudraß 9
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.
Auftrags_Nr Autrags_Typ Kun_Nr …1 Auftrag 1 …2 Auftrag 2 …3 Angebot 5 …4 Auftrag 2 …5 Angebot 3 …… … … …
TNR Auftrags_Nr Menge1 1 1
31 1 231 2 260 2 157 2 1
TNr Bezeichnung Artikel_Typ Verkaufspreis …1 Rocky Mountain Element Race Typ 1 Mountainbike 3500 …31 Herrenrad GT-LTS 18 Rennrad 3500 …54 Klapprad Prompton P3 Klapprad 1600 …55 CANNONDALE FSL Mountainbike 3700 …56 HERCULES NEPA Trekkingrad 1700 …57 Steppenwolf TAO Mountainbike 1900 …58 SWITCHBACK AGENT Jugendrad 899 …
Relationale Datenbank
Prof. Dr. T. Kudraß 10
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
Prof. Dr. T. Kudraß 11
Beispiele für Informationssysteme• Universitätsdatenbank
– Objekte: Fachbereiche, Studenten, Professoren, Mitarbeiter, Vorlesungen, Prüfungen
– Anwendungen: ImmatrikulationAusfertigung von StudienbescheinigungenStundenplanerstellungRaumbelegungAusstellung von ZeugnissenStatistiken
• 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 KontenEinrichten und Auflösen von KontenZinsberechnung und VerbuchungPersonalverwaltung (Gehaltsabrechnung)Bereitstellung von Statistiken über Kundenverhalten zu
Marketing-Zwecken
Prof. Dr. T. Kudraß 12
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
Komplexe Transaktionen
Datenbankmanagementsysteme
Prof. Dr. T. Kudraß 13
Entwicklung der Datenbanken (1)
Vor 1960 1960-65
Daten in nicht-magnetischen Medien (z.B. Lochkarten) gespeichert
Plattenspeicher und Trommeln: Direktzugriff auf Daten über deren Adressen
Daten auf sequentiellen magnetischen Medien (Magnetband)
Große Datenmengen weiter auf Magnetband
Daten werden als anwendungsspezifische Dateien gespeichert, auch Zugriffsmechanismen in Anwendungen
Prof. Dr. T. Kudraß 14
Entwicklung der Datenbanken (2)
1965-70 1970-80
Erstes DBMS von Bachman: Integrated Data Store (IDS), Netzwerk-Datenmodelle, CODASYL-Standard
Standardisierung
IBM: Information Management System (IMS), hierarch. Datenmodell
Relationenmodell
ERM (Chen, 1976)
DB-Systeme
Data Dictionary
Prof. Dr. T. Kudraß 15
Entwicklung der Datenbanken (3)
1980-90 1990-20xx
Kommerzielle relationale Datenbanksysteme (DB2, Oracle, MS-SQL Server, Sybase, Informix)
Generische anwendungsorientierte Schichten on top of a DBMS (z.B. SAP, Oracle), die applikationsspezifisch angepasst werden können
Objektorientierte Datenbanksysteme (z.B. Objektstore)
Data Warehouse Systeme (z.B. SAS)
Erweiterbare Datenbanksysteme mit neuen Datentypen für multimediale Anwendungen (z.B. Text, Image)
Anbindung von Datenbanken ans Internet (Web 1.0 → Web 2.0)
Wissensdatenbanken
Zukunft: Steigende Datenmengen in Vielfalt und Umfang → wachsende Anforderungen an DB-Technologie (Big Data)
Prof. Dr. T. Kudraß 16
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)
Prof. Dr. T. Kudraß 17
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)
Prof. Dr. T. Kudraß 18
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)
Prof. Dr. T. Kudraß 19
Datenmanipulation (DML)
Datendefinition (DDL)
Physische Datenspeicherung und Administration (DCL)
Hardware: Speichermedium
Anwendungs-programm 1
Anwendungs-programm 2
Anwendungs-programm n
Anwender
DB
MS
... .
.
Datenabfragesprache (DQL)
Sprachebenen und Sprachklassen
Prof. Dr. T. Kudraß 20
Datenbankendbenutzer
Datenbank-entwickler
DBA
Kategorien von Datenbankbenutzern
Prof. Dr. T. Kudraß 21
• 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
Prof. Dr. T. Kudraß 22
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)
Prof. Dr. T. Kudraß 23
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)
Prof. Dr. T. Kudraß 24
• Benutzung der vom Datenbankentwickler erstellten Programme
• Benutzung von QBE-Werkzeugen (Query by Example) zur Beantwortung von Ad-Hoc-Abfragen
Aufgaben des Datenbankendbenutzers
Prof. Dr. T. Kudraß 25
Buffer-manager
Data-Manager
Ebene 5
Seitenschnittstelle
Recordorientierte Schnittstelle
Transaktionsverwaltung
SchedulerRecovery-Manager
Person PersonBenutzerschnittstelle
Mengenorientierte Schnittstelle
Da
ten
ban
kma
nag
emen
tsys
tem
Ebene 4
Code- Erzeugung
OptimiererZugriffsplan-
erstellung
Query-prozessor
Update-Prozessor
Integritäts-prtüfung
Ebene 2
Ebene 3
Daten-basis
Geräteschnittstelle
LogBuch
Data-Dictionary
Person
Input/Output- Prozessor
Parser Precompiler
Autorisierungskontrolle
Ebene 1
Datenbankarchitektur
Prof. Dr. T. Kudraß 26
Anwendung1
Anwendungn
externeDatenstruktur externe
Datenstruktur
externeDatenstruktur
konzeptionelles Schemaanwendungs- und datenunabhängige Datenstruktur
physische Datenstruktur
Datenbankschemaanwendungsunabhängig / datenbankspezifisch
Anwendung2 ...
ANSI-3-Ebenen-Modell
Prof. Dr. T. Kudraß 27
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
Prof. Dr. T. Kudraß 28
Sitzplatz
Coupon Flug
Fluggast
Flugzeug
Ticket
.
Konzeptionelles Schema
Prof. Dr. T. Kudraß 29
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
Prof. Dr. T. Kudraß 30
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)
Prof. Dr. T. Kudraß 31
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ührenz.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.
• KonsistenzKorrekter Ablauf einer Transaktion
Prof. Dr. T. Kudraß 32
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.
Prof. Dr. T. Kudraß 33
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.
Prof. Dr. T. Kudraß 34
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)– Verwundbarkeit durch Zentralisierung (Ausweg: Verteilung)