EINFšHRUNG IN DATENBANKSYSTEME

Werbung
Einführung in Datenbanksysteme
EINFÜHRUNG IN DATENBANKSYSTEME
F. Steyer
Einsatz, Nutzen von Datenbanksystemen
Entwicklung von Datenbanksystemen
Entwicklung von relationalen Datenbanksystemen
Architektur eines Datenbanksystems
Architektur eines Anwendungsystems
Architektur eines Datenbanksystems im Client/Server-Verbund
Architektur eines Anwendungsystems im Rechnernetz
Architektur eines Anwendungsystems lokal und im Internet
Bereiche
Benutzungsbereich
Operationsbereich
Datenbereich
Technikbereich
Sonstiges
Datenunabhängigkeit, Datenintegrität
Dateien
Datenbanklebenszyklus
Datenbankliteratur
01.05.2012
Fehler und Wünsche bitte an den Autor.
BEUTH/Steyer
Einführung in Datenbanksysteme
Einsatz, Nutzen von Datenbanksystemen
Technische Argumente
-
Permanente Datenhaltung
-
Integrierte Datenhaltung
-
Standardisierung (Daten/Funktionen/Schnittstellen/Architektur)
-
Endbenutzerwerkzeuge und Anwendungsgeneratoren
-
Prototyping von Anwendungen
Betriebswirtschaftliche Argumente
-
Erhöhung der Produktivität in der Entwicklung von Anwendungssoftware
-
Verbesserung der Qualität der Anwendungssoftware
-
Effizientere und flexiblere Wartung der Anwendungssoftware
-
Datenaustausch
Einsatzgebiete von Anwendungen
-
Es gibt zwei Benutzungsarten von Datenbanksystemen
DB als genaues Abbild der Wirklichkeit (Modell, OLTP)
DB als Datenspeicher (Archiv, OLAP)
-
breites Spektrum kommerzieller Anwendungen
(Banken, Versicherungen, Kommunalverwaltungen)
-
zunehmende Akzeptanz in technischen Anwendungen
(Buchungssysteme, Leitsysteme, Lagerverwaltung, CIM, FM)
-
Zentrale Rolle bei der Bürointegration
(Text- und Dokumentenverwaltung, DTP)
-
Neue Einsatzgebiete bei Software Engineering
-
Künstliche Intelligenz und CAD
BEUTH/Steyer
Einführung in Datenbanksysteme
Entwicklung von Datenbanksystemen
JAHR
TECHNIK
EIGENSCHAFTEN
konventionelle
Dateiverarbeitung
starre Satzstruktur
pro Satz ein Schlüssel
Vorläufer
bis 1968
Vorläufer bei den Datenmodellen
1968-1975 erste DBS verschiedener Struktur:
(Bäume, Netze)
batchorientierte DBS
wenige Benutzerhilfen
nur für Grossrechner
Codasyl-Normung
1975-1980
verbesserte Netzwerkmodelle
erste relationale
Systeme
dialogorientierte DBS
Mehrbenutzerfähigkeit
DBS für Minis
ANSI/SPARC-Norm
Relationale Systeme
1980-1985
verbesserte relationale Systeme
Erweiterung der Toolumgebung von DBS
portable DBS
Data Dictionary Systeme
SQL-Normung
DBMS für Micros und PCs
Endbenutzerunterstützung
ausfallsichere DBVS
Datenbankmaschinen
Weiterentwicklungen
1985-heute verteilte DBS
objektorientierte DBS
Non-Standard-DBMS
1990-heute Datenbankmaschinen
getrennt von den
Datenbankoberflächen
Datenbank im Internet
BEUTH/Steyer
neue Anwendungsgebiete,
z.B. SW-Entwicklung,
Büroautomation,CAD/CAM/CIM
Kombinierbarkeit von
Datenbankmaschinen und
-oberflächen verschiedener
Hersteller über eine
Standardschnittstelle ODBC
Einführung in Datenbanksysteme
Entwicklung der relationalen Datenbanksysteme
Theorie/Forschung
1970
E.F. Codd bei IBM San Jose
'A Relational Model of Data for Large Shared Data Banks',
wird veröffentlicht (Comm. ACM, 13/6, June 1970)
1974
D.O. Chamberlin et al. bei IBM San Jose,
'Structured Query Language (SEQUEL)'
1977
Forschungssystem System R lauffähig
ORACLE von Relational Software Inc.
Erste Produkte
1981
SQL/DS und DB2 von IBM
1985
SQL-Schnittstelle für Ingres von Relational Technology Inc. und IDM von Britton Lee Inc.
1986
SYBASE von Sybase Inc.
Normierung
1986
American National Standards Institute (ANSI)
International Standards Organization (ISO) und Deutsche Industrie Norm (DIN) übernehmen SQL
Anwendungen
Vielzahl an DB-Softwareprodukten mit SQL-Schnittstelle, z.B. Oracle
Einschätzung
Internationale Standardisierungen durch ANSI, ISO, DIN, X/OPEN
Industriestandardisierung durch Software-Produkte wie DB2, Oracle, MS SQL Server
SQL als Datenbankstandard wird die nächsten Jahre dominieren, Nachfolgesysteme werden wenigstens
SQL beherrschen (Aufwärtskompatibilität).
Die Anwendungsprogrammierung wurde durch die ODBC-Normierung stark vereinfacht.
Anwender wollen ihre Investitionen schützen bzgl. Anwendungssoftware, Schulung und Personalmarkt.
SQL verschwindet aber zunehmend in der Tiefe der Systeme (im DB-Server, unter Window-Oberflächen),
hat sich aber als funktionaler DB-Standard für Programmierer und Toolentwickler etabliert.
BEUTH/Steyer
Architektur eines Datenbanksystems
Client/Server-Architektur eines Datenbanksystems
Anwendungsprogramme
Dialog
Dienstprogramme
XML
Netzserverfähigkeit
Mehrbenutzerfähigkeit
Zugriffsschutz
Transaktionsschutz
Leistung
Speicherfunktionen
Benutzerdaten
Data Dictionary
Logdaten
TFH Berlin/Steyer
ODBC
Internet
Architektur eines Datenbanksystems
Datenbankoberflächen:
Dialog:
Editor für den interaktiven Datenbank-Zugang
Lokaler Speicher für Sitzungsgeschichte
Anwendungsprogramme:
beliebige Programmiersprachen für dedizierte Oberflächen
Datentypkonversion notwendig
DB-Bibliothekszugriff notwendig
Dienstprogramme:
Wartung und Pflege des Datenbanksystems
wichtige Tätigkeiten: save/restore
sonst: Überwachung/Leistungssteigerung/kleinere Anpassungen
ODBC
dynamischer Microsoft-Anschluss
XML
von der Datenbank gelieferte normierte Darstellungsform
Internet
Datenbankzugriff durch Webserver
Datenbankoberfläche sind dann Web-Pages
Schichten eines Datenbankmanagementsystems und Realisierung:
Netzserverfähigkeit
sockets
Mehrbenutzerfähigkeit
pipes
Zugriffsschutz
Benutzertabelle
Privilegientabelle
Transaktionsschutz
Logprotokolldatei und die Fähigkeit zur Nacharbeit
Leistung
Indexdatei
Speicherorganisation durch Bäume (geordnet, balanciert, Mehrweg-
)
Auch Benutzung des Systempuffers
Speicherfunktionen
Dateisystem des Betriebssystems oder raw I/O
Speicherorganisation durch Bäume (entpricht einem mehrstufigen
Index)
Operationen sind nur noch schreiben und lesen von 4KSpeicherblöcken
Daten auf der Platte:
Benutzerdaten
Data Dictionary
Logprotokolldaten
TFH Berlin/Steyer
Architektur eines Datenbanksystems
Datenbanksystem als Schalenmodell mit Schnittstellen (SS)
1) ServerSS
sockets
2) MehrbenutzerSS
pipes
3) EinbenutzerSS
Bibliotheken
4) ZugriffsschutzSS
Privilegientabelle (permanent) und Lockliste/Lockrequestliste (temporär)
5) TransaktionsSS
Logdatei
6) LeistungsSS
7) SpeicherSS
TFH Berlin/Steyer
Indexe, Bäume, Systempuffer
Sekundärspeicher (Platte)
Einführung in Datenbanksysteme
Architektur eines Anwendungssystems
Oberfläche
Anwendungsprogramm
Datenverwaltung
BEUTH/Steyer
Einführung in Datenbanksysteme
Datenbanken im Client/Server-Verbund
mit Frontend- und Backend-Systemen
Backend-DBS: z.B. SQL Server
Fertige Tools
(z.B. Enterprise Manager,
Query Analyser, bcp)
Programme (z.B. VB, Java)
Frontend-DBS
Access
Internet
BEUTH/Steyer
Einführung in Datenbanksysteme
Datenbanksysteme im Rechnernetz
am Anfang: monolithisches System
bald: Client-Server-System (n Clients, 1 Server)
heute : Service-orientierte Architektur (n Clients, m Servers)
BEUTH/Steyer
Einführung in Datenbanksysteme
SW-Architektur mit Datenbank lokal
Oberfläche
Programme
Datenbank
SW-Architektur mit Datenbank im Internet
Browser
BEUTH/Steyer
Server
Einführung in Datenbanksysteme
Operationsbereich: Zugriffssprache
SQL – Vorläufer
Dateien und Programme
Bäume
Graphen
schliesslich
Tabellen
SQL – Generationen
ANSI oder ISO SQL (1983-1986)
DDL (CREATE SCHEMA, CREATE TABLE, CREATE VIEW, GRANT)
DML (DECLARE CURSOR, OPEN, FETCH, CLOSE, DELETE, UPDATE,
SELECT, INSERT, UPDATE, DELETE, COMMIT, ROLLBACK)
DModL (MODULE, PROCEDURE)
Cobol, Fortran, Pascal, PL/1
SQL/89
Integritätserweiterungen (DEFAULT, UNIQUE, NOT NULL,
CHECK, PRIMARY KEYS, referential integrity:u.a.
Ada, C, embedded SQL
SQL/92
Standardkataloge, neue Datentypen, mehr Orthogonalität,
neue Join-Typen, Isolation levels, Cursor,
dynamisches SQL, SQLSTATE
(in kleinerem Umfang z.Zt. existierender Standard)
SQL/99
Triggers, Call level interface, Prozedursprache, loop, for,
ADTs mit Funktionen, Dot Notation, ADT-Privilegien,
Roles, Typensystem, Zeilentypen, Client-Module, Server-Module,
Ausnahmebehandlung (undo, redo, continue), Savepoints, Rekursion,
Cursor-Erweiterungen, referentielle Integrität
Ergebnis: Tabellensprache
SQL = DDL union DML union DCL union ProzL
DDL =
{create database, drop database,
create table, drop table,
create view, drop view,
create index, drop index}
DML =
{insert, update, delete, select}
DCL =
{create user, drop user, grant, revoke}
ProzL =
{create trigger, drop trigger, create procedure, drop procedure,
execute}
BEUTH/Steyer
Einführung in Datenbanksysteme
Operationsbereich: SQL und Dialekte
IBM SQL
Oracle - SQL
SQL Kern
MS - SQL
BEUTH/Steyer
Einführung in Datenbanksysteme
Benutzungsbereich: Benutzertypen
Ein Benutzer ist jeder, der etwas mit der Datenbank zu tun hat: Endbenutzer, Entwickler, Administrator
traditionell drei Gruppen:
Endbenutzer: gelegentlich, einfache Oberfläche, kleinere Aufgaben
Anwendungsentwickler: Entwicklung von Anwendngssystemen
Administratoren: systemnahe oder anwendungsnahe Verwalter, Operatoren
SQL-artig (Oracle)
- create user, change user, drop user
- grant { connect | resource | dba } to meier identified by z97d
- grant select on person to meier
Ablauf: - Superuser wird bei Installation festgelegt.
- Superuser legt Datenbankadministratoren an.
- Jeder Datenbankadministrator legt seine Mitarbeiter-User an (resource, connect).
(2) Windows like (Access) visuell mit Menü, Tabelle, Ankreuzen:
->Menü->Zugriffsrechte->neu: Name, Passwort, Gruppe
->Menü->Zugriffsrechte->Gruppe: neu
->Menü->Zugriffsrechte->Berechtigungen
Die Benutzer eines Datenbanksystems befinden sich in dem Bereich zwischen EDV-Abteilung und
Anwender-/Fachabteilung. Sie unterscheiden sich nach Breite und Tiefe.
EDV-Abteilung
Fachabteilung
Endbenutzer
(Betriebsphase)
Benutzerservice
(Betriebsphase)
Anwendungsprogrammierer
(Einführungsphase, Betriebsphase, Änderungsphase)
Systemanalytiker
(Planungsphase)
Datenbankadministrator
(Einführungsphase, Betriebsphase, Änderungsphase)
DB-Operating
(Betriebsphase)
BEUTH/Steyer
Einführung in Datenbanksysteme
Benutzungsbereich: Benutzersicht (VIEW)
Es soll jeder nur das sehen, was er braucht und darf.
Definition : benutzerdefiniertes Fenster, spaltenweise, zeilenweise, virtuell, joined
Zweck
: Datenschutz und Übersichtlichkeit
Realisierung: Speicherung der Definition, Und-Verknüpfung mit jedem Befehl, der den Benutzersichtnamen
verwendet
Probleme : kostet das System etwas Mehrarbeit, bringt manchmal kryptische Fehlermeldungen
Beispiel
fremdsprachige Benutzersicht
deutsche Basistabelle
Benutzungsbereich: Privilegien
Es darf nicht jeder alles überall sehen und tun.
Definition : permanente (längerdauernde) Zugriffskontrolle bzgl. - welche Aktion auf welchem Objekt wer
Zweck
: Zugriffsschutz, Datensicherheit
Realisierung
: Planung in der Zeit der Systemanalyse, Schulung
Privilegientabelle, die als Filter für jedes Kommando fungiert
Probleme : kleine Verzögerung immer
Die Oberflächen werden immer "höher", d.h. entfernen sich immer mehr vom DBMS. Die
Benutzer werden immer datenbankunausgebildeter. SQL verschwindet in den Tiefen der
Systeme, bleibt aber als funktionaler Standard erhalten.
meier
Tab1
form1
BEUTH/Steyer
Operationen (select, insert, update, delete, definieren, benutzen)
x
x
Einführung in Datenbanksysteme
Benutzungsbereich: Sperren
Es dürfen nicht alle alles gleichzeitig machen.
Es gibt zwei Arten: exclusive: verbietet anderen Lesen und Schreiben,
shared: erlaubt wenigstens paralleles Lesen
SQL-artig (Oracle, 1989) einzeln:
lock table person in share mode
lock row with pid = 4711 in person in exclusive mode
oder neuer (1992): isolation levels
0 read uncommitted (ungesperrt)
1 read committed (1 Zeile kurz gesperrt, Beispiel Umbuchung)
2 repeatable read (1 Zeile länger gesperrt, Beispiel Gehaltserhöhung)
3 cursor stability (Ergebnismenge gesperrt)
entscheidend sind also die Sperrbereiche und die Sperrdauer
Windows like (Access):
Beim Öffnen schon ist ankreuzbar: gemeinsam oder exklusiv. Sperrstrategie kann eingestellt werden:
Aber die Granularität ist grob.
Definition
Zweck
Realisierung
: temporäre (kürzerdauernde) Zugriffskontrolle
- "exclusive" verbietet anderen Lesen und Schreiben
- "shared" erlaubt wenigstens paralleles Lesen
: operationale Datensicherheit
: Sperrliste, die als Filter für jedes Kommando fungiert
Probleme
: langes Warten evtl. oder gar Deadlock
BEUTH/Steyer
Einführung in Datenbanksysteme
Datenbereich: TABELLE, VIEW und materialisierte VIEW
(„OLAP“: online analytic processing)
Tabelle: Daten und Definition sind gespeichert
View: nur Definition ist gespeichert, Daten werden jedesmal aus der Tabelle geholt oder abgeleitet
Materialisierte View: Daten sind doch (in die Nähe) gespeichert.
Zweck: schnellerer Aufbau
SQL: statt CREATE VIEW ... nun CREATE TABLE … und INSERT SELECT …
Notwendig ist ein periodischer Update.
Realisierung einer Tabelle oft mit dynamischen Baumstrukturen.
Beispiel für das Verhältnis Tabelle – Views:
- Tabelle mit Daten liegt in der Zentrale
- Views mit besonderen Darstellungen liegen in den Filialen (englisch, französisch)
Datenbereich: INDEX
Umorganisierte Hilfsdatei zu einer Tabelle beschleunigt das Lesen.
Tabelle
Indexdatei
einfach zu finden
x
y
y
x
aufwendig zu finden
lesefreundlich, änderungsunfreundlich
SQL: CREATE INDEX <indexname> ON <tabellenname>(<tabellenspalte>)
Indexe über mehrere Tabellenspalten sind möglich.
BEUTH/Steyer
Einführung in Datenbanksysteme
Technikbereich: Transaktion
benutzerdefinierte Befehlsfolge, die ganz oder garnicht ausgeführt wird, auch wenns länger dauert
impliziter Beginn am Anfang der Sitzung
implizites Ende am Ende der Sitzung
dazwischen mit "commit" Ende und Anfang zugleich (früher mal begin transaction, end transaction)
Zweck
: Realisierungsgarantie auch längerer Abläufe
Realisierung: Im Log-Protokoll werden alle Datenänderungen (kein Lesen) schnell parallel notiert und bei
Bedarf nachgearbeitet oder rückgängig gemacht ("rollback, undo").
SQL
Probleme
: COMMIT, ROLLBACK
: Je weiter zurück die Dinge liegen, die man ungeschehen machen will, desto mehr Platz für das
Protokoll braucht man.
ACID-Eigenschaften:
A (atomicity):
C (consistency):
I (isolation):
D (durability):
Eine Transaktion ist unteilbar, wird also ganz oder gar nicht ausgeführt.
VOR und NACH der Transaktion ist der Datenbestand konsistent.
Die Einzelaktionen können ungestörte durchgeführt werden.
Die Ergebnisse werden dauerhaft/permanente gespeichert.
Beispiel: Eine Geldüberweisung ist eine Transaktion.
Sie besteht aus zwei Datenbankoperationen, der Operation auf einer Zeile (Reduzierung des
Kontostandes), der Operation auf der anderen Zeile (Erhöhung des Kontostandes). Beide Operationen
müssen gemeinsam oder gar nicht stattfinden.:
BEUTH/Steyer
Einführung in Datenbanksysteme
Technikbereich: Operationale Sicherheit
Bei gleichzeitiger Mehrfachbenutzung tritt evtl. lost update auf (Die spätere Änderung überschreibt die
frühere.) oder inconsistent analysis (Lesen und Ändern passieren gleichzeitig.) Abhilfe für beides ist sperren.
1. Problem: Lost update
in der Datenbank:
meier 500
user 1
user 2
meier +100
meier -100
Ablauf: - user1 holt den Satz mit 500
- user2 holt den Satz mit 500
- user1 addiert 100: 600
- user2 subtrahiert 100: 400
- user1 schreibt zurück: 600
- user2 schreibt zurück: 400
Ergebnis: Die Änderung des user1 (+100) geht verloren.
Abhilfe: user1 müsste den Satz während der ganzen Zeit sperren.
2. Problem: Inconsistent analysis
user1
user2:
adam
berta
cäsar
dora
emil
fritz
400
700
200
900
100
100
Addition von
oben nach unten
Änderungen von
unten nach oben
Ergebnis: Die Summanden haben verschiedene Änderungszustände.
Abhilfe: user1 müsste die Tabelle während der ganzen Zeit sperren.
BEUTH/Steyer
Einführung in Datenbanksysteme
Sonstiges: Datenbanklebenszyklus (Kreis, eigentlich Spirale)
Änderung und
Anpassung
Datenbankentwurf
Betrieb und
Überwachung
Installation
Anwendungsprogramme
Daten
definieren
und laden
DATENBANKENTWURF
- Benutzeranforderungen
- konzeptionelles Modell
- logisches, externes, internes DB-Schema
INSTALLATION
- Einlesen des Installationsbandes
- Setzen der Umgebung, Initialisierung der Datenbereiche
- Hochfahren des Datenbanksystems, Laden der Systemtabellen
- Probebetrieb, Sicherung
DATEN DEFINIEREN UND LADEN
- Laden des Datenbankschemas, Probebetrieb
- Laden der Daten mit Sicherungen
ANWENDUNGSPROGRAMME
- Subsysteme, Pflichtenheft, Tools, Testfälle, Dokumentation
- Aus Sicht der Datenbank achten auf Mehrbenutzerproblematik, Datenabsicherung, Datenintegrität,
Laufzeit, Blockaden, Sicherung
BETRIEB UND ÜBERWACHUNG
- Sicherungskonzept, Wiederherstellverfahren
- Tagesaktivitäten (interaktiver Betrieb), Nachtaktivitäten ( Stapelläufe, Druck, Sicherungen)
- Bedienerausbildung
- Monitoring für die Leistungsbewertung (für kritische Bereiche, Lastspitzen)
- Notfallplanung (Bereitschaft, Notbetrieb)
ÄNDERUNG UND ANPASSUNG
- Anpassung an neue Anforderungen (logische Änderungen)
- Optimierung (physische Änderungen auf Hardware-, Betriebssystem-, Datenbank- und
Programmebene)
BEUTH/Steyer
Herunterladen