Datenbanksysteme Motivation

Werbung
Datenbanksysteme
•
•
•
•
•
•
Motivation
Begriffe
Systemarchitektur
Datenbankmodelle
Datenbank-Entwurf
Nutzung von Datenbanksystemen
Informatik 2006
Datenbanksysteme
Seite 1
Klöditz
Hochschule Anhalt (FH)
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
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenbanksysteme
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
Informatik 2006
Datenbanksysteme
Seite 3
Klöditz
Hochschule Anhalt (FH)
Datenbanksystem
Begriffe
Nutzer 1
Datenbank
(DB)
Nutzer 2
Nutzer 3
Datenbankbetriebssystem
(DBBS)
...
Nutzer n
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenbanksysteme
Seite 4
Datenbanksystem
Anforderungen
•
Integration:
•
Operationen:
einheitliche Verwaltung aller Daten ohne Redundanz und ohne unkontrollierten Zugriff
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:
•
Zugriffskontrolle:
•
Transaktionen:
•
Synchronisation:
•
Datensicherung:
•
•
Trennung der Daten von den Anwendungen
Effizienz und Verfügbarkeit „rund um die Uhr“
bei Datenabhängigkeiten (referentielle Integrität) und konkurrierendem Zugriff
Vergabe von Zugriffsrechten und deren Kontrolle
logisch zusammengehörige Operationen werden nur komplett oder gar nicht ausgeführt
bei konkurrierendem Zugriff auf gleiche Daten
Permanente ("persistente") Speicherung der Daten
Informatik 2006
Datenbanksysteme
Seite 5
Klöditz
Hochschule Anhalt (FH)
DB-System-Architektur
Nutzerkomponenten
Anfragen und
Änderungen
Auswertung
P1
DB-Operationen
...
Masken
Pn
Einbettung
Programmierkomponenten
Klöditz
Hochschule Anhalt (FH)
Transformationskomponenten
Optimierer
Plattenzugriff
Data Dictionary
Sichtendefinition
Dateiorganisation
Datendefinition
Definitionskomponenten
Informatik 2006
Datenbanksysteme
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
Informatik 2006
Datenbanksysteme
Seite 7
Klöditz
Hochschule Anhalt (FH)
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
Klöditz
Hochschule Anhalt (FH)
Leser
# LeserNr
* Name
* Vorname
° Straße
° PLZ
° Ort
Informatik 2006
Datenbanksysteme
Seite 8
Relationales Datenmodell
Relationenschema R =
A1
A2
...
d1,1
d2,1
...
d1,2
d2,2
...
Domäne
...
...
...
Tupel
...
...
...
d1,i
d2,1
...
...
...
...
...
...
...
Relation r(R) =
Attribut
Wert
Informatik 2006
Datenbanksysteme
Seite 9
Klöditz
Hochschule Anhalt (FH)
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
Klöditz
Hochschule Anhalt (FH)
BNr
ExNr
ISBN
74300
1
3-446-21175-6
LNr
RDatum
74300
2
3-446-21175-6
23985612
12.12.04
74302
1
3-211-81873-1
22110825
04.10.04
...
...
...
...
...
Informatik 2006
Datenbanksysteme
Seite 10
Datenbank-Nutzung
Abfragesprache SQL
• Abfragesprache (query language)
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
spalte, ...
tabelle, ...
spalten-auswahlbedingung
gruppierungsspalte, ...
gruppen-auswahlbedingung
spalte, ... ;
• Beispiel:
Welche Bücher sind z.Z. ausgeliehen (wer, was, bis wann)?
SELECT
FROM
WHERE
AND
AND
ORDER BY
Leser.Name, Buchhandel.Titel, Katalog.RDatum
Leser, Buchhandel, Katalog
Leser.LNr = Katalog.LNr
Buchhandel.ISBN = Katalog.ISBN
Katalog.LNr is not null
RDatum ;
Informatik 2006
Datenbanksysteme
Seite 11
Klöditz
Hochschule Anhalt (FH)
Betrieb von Datenbanksystemen
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
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenbanksysteme
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
Informatik 2006
Datenbanksysteme
Seite 13
Klöditz
Hochschule Anhalt (FH)
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
);
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenbanksysteme
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
);
Informatik 2006
Datenbanksysteme
Seite 15
Klöditz
Hochschule Anhalt (FH)
Physische DB-Struktur
Beispiel: Oracle
F6
F1
F2
F4
F3
F5
Datenbank-Files
Online-REDO-Log-Files
Control-Files
Fn – DB-Tablespaces
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenbanksysteme
Seite 16
Datenbank-Software-Architektur
Beispiel: Oracle
Anwendungsprozesse
ORACLE-Datenbankbetriebssystem
ORACLE-Datenbank
DBWR
DBC
LGWR
A
ARCH
C
H
SMON
E
PMON
CHKP
Shared und Dedicated
ORACLE-Server-Prozesse
ORACLE-Instanz mit DB-Cache (SGA)
und Hintergrundprozessen
Informatik 2006
Datenbanksysteme
Seite 17
Klöditz
Hochschule Anhalt (FH)
Datenbank-Prozess-Struktur
Beispiel: Oracle
ORACLE-Datenbank-Server
DB-Cache
R
E
D
O
DB-BlockPuffer
1
4
DBWR
1
2
3
LGWR
4
PMON
Shared
SQL-Pool
3
4
SMON
2
ARCH
4
5
5
4'
Datenbank-Files
Klöditz
Hochschule Anhalt (FH)
Redo-Log-Files
archivierte
Redo-Log-Files
Informatik 2006
Datenbanksysteme
Seite 18
Transaktionsablauf
Beispiel: Oracle
Prozess
insert into
<tabelle>
update <tabelle>
delete from
<tabelle>
DB-Cache
DBB
L
O
C
K
P
U
F
F
E
R
R
E
D
O
commit
LGWR
DBWR
schreibt asynchron
modifizierte DB-Blöcke
vorausgegangener und
eventuell aktueller
Transaktionen zurück
auf die DB-Files
Nach dem commit
wird der Redo-Log-Puffer
auf das Redo-Log-File
geschrieben
if ok then weiter
Redo-Log-Files
Zeit
DB-Files
Informatik 2006
Datenbanksysteme
Seite 19
Klöditz
Hochschule Anhalt (FH)
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
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenbanksysteme
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
Transaktion2
read_item (X)
X := X + M
write_item (X)
read_item (Y)
write_item (X)
Y := Y + N
write_item (Y)
Zeit
Informatik 2006
Datenbanksysteme
Seite 21
Klöditz
Hochschule Anhalt (FH)
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)
Transaktion2
read_item (X)
X := X + M
write_item (X)
read_item (Y)
Klöditz
Hochschule Anhalt (FH)
Abbruch:
T1 wird
rückgängig
gemacht
Zeit
Informatik 2006
Datenbanksysteme
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
Transaktion2
Saldenbestände
lesen
Gutschreiben
Konto 2
Zeit
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenbanksysteme
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
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenbanksysteme
Seite 24
Transaktionsablauf
Beispiel: Oracle
Prozess
DB-Cache
insert into
<tabelle>
update <tabelle>
delete from
<tabelle>
DBB
L
O
C
K
P
U
F
F
E
R
R
E
D
O
commit
LGWR
DBWR
schreibt asynchron
modifizierte DB-Blöcke
vorausgegangener und
eventuell aktueller
Transaktionen zurück
auf die DB-Files
Nach dem commit
wird der Redo-Log-Puffer
auf das Redo-Log-File
geschrieben
if ok then weiter
Redo-Log-Files
Zeit
DB-Files
Informatik 2006
Datenbanksysteme
Seite 25
Klöditz
Hochschule Anhalt (FH)
Kontrolle des Nutzer-Zugriffs
DatenbankDatenbankAdministrator
username / password
Rechte
Nutzer
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenbanksysteme
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>
Informatik 2006
Datenbanksysteme
Seite 27
Klöditz
Hochschule Anhalt (FH)
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?
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenbanksysteme
Seite 28
Herunterladen