7 Datenbanksysteme - ias.uni-stuttgart.de

Werbung
Softwaretechnik II
ST II
§ 7 Datenbanksysteme
Lernziele
– Wissen, was Datenbanksysteme sind
– Ziele beim Einsatz von Datenbanksystemen verstehen
– Verschiedene Arten von Datenbanksystemen kennen
– Wissen, wie eine Datenbank modelliert wird
– Wissen, wie eine Datenbank implementiert wird
– SQL-Sprache kennen
Literatur
–
Vossen, G.: Datenmodelle, Datenbanksprachen und Datenbankmanagementsysteme, Oldenbourg, 2000
–
G. Matthiessen, M. Unterstein: Relationale Datenbanken und SQL,
Addison-Wesley, 2000
© 2015 IAS, Universität Stuttgart
297
Softwaretechnik II
§7
Datenbanksysteme
7.1
Einführung in Datenbanksysteme
7.2
Relationale Datenbanksysteme
7.3
Datenbanksprachen
7.4
Entwurf von Relationalen Datenbanksystemen
7.5
Objektorientierte Datenbanksysteme und neue Entwicklungen
© 2015 IAS, Universität Stuttgart
ST II
298
7.1 Einführung in Datenbanksysteme
ST II
Konzept eines Datenbanksystems
– Organisatorisch zentrale Betreuung der Daten
– Zugriff und Manipulation ausschließlich über Verwaltungssystem
– Trennung der Daten von den Nutzern
© 2015 IAS, Universität Stuttgart
299
7.1 Einführung in Datenbanksysteme
ST II
Schematische Darstellung eines Datenbanksystems
Schnittstelle
(interface)
Datenbank,
Anwendungsprogramm 1
Datenbankverwaltungssystem
Datenbasis
DBVS
(data base)
(data base management
system, DBMS)
Anwendungsprogramm N
Datenbanksystem (DBS)
(data base system)
© 2015 IAS, Universität Stuttgart
300
7.1 Einführung in Datenbanksysteme
ST II
3-Ebenen-Architektur nach ANSI/SPARC
SPARC = Standard Planning and Requirements Commitee
Teilbereiche der DB
für verschiedene
Benutzergruppen,
Zugriffsrechte
Externes
Schema 1
Externes
Schema 2
...
Externes
Schema n
externe
Ebene
Beschreibung der
kompletten Datenstruktur
inkl. Konsistenzbedingungen
im Datenmodell des DBMS
logisches
Schema
logische
Ebene
Implementierungsdetails, z.B.
Aufteilung auf verschiedene
Platten, Index, ...
internes
Schema
interne
Ebene
© 2015 IAS, Universität Stuttgart
301
7.1 Einführung in Datenbanksysteme
ST II
Ziele beim Einsatz von Datenbanksystemen (1)
– Datenunabhängigkeit
Unabhängigkeit zwischen den Anwendungsprogrammen, der
Datenspeicherung und der Datenorganisation
Unterscheidung zwischen logischer und physikalischer
Datenunabhängigkeit
Späte Bindung zwischen Daten und Anwendungsprogrammen
– Benutzerorientierte Sicht der Daten
– Datenintegrität
Korrektheit der Daten und deren korrekte Verwendung
Datenkonsistenz: Übereinstimmung und Vollständigkeit der
gespeicherten Daten (semantische Integrität)
Datensicherung: Schutz gegen Zerstörung und Verfälschung durch
fehlerhafte Software, Hardware und Benutzung
Datenschutz bei Abfrage, Eingabe und Änderung
© 2015 IAS, Universität Stuttgart
302
7.1 Einführung in Datenbanksysteme
ST II
Ziele beim Einsatz von Datenbanksystemen (2)
– Vermeidung von Redundanz
Speicherplatzreduzierung
Leichtere Aktualisierung der Daten
Datensicherheit benötigt gewisse Redundanz
Schneller Zugriff auf Kopien
– Unterstützung der Datenmanipulation
 einfügen
(insert)
 ändern
(update)
 löschen
(delete)
 auffinden
(retrieve)
© 2015 IAS, Universität Stuttgart
303
7.1 Einführung in Datenbanksysteme
ST II
Ziele beim Einsatz von Datenbanksystemen (3)
– Koordinierung des Mehrbenutzerbetriebs (Synchronisation)
– Datenneutralität
Unterschiedliche Anwendungen
– Flexibilität
– Vielfältige Auswertungsmöglichkeiten
– Effizienz
Zugriff auf Daten
Verbesserung und Optimierung leicht
© 2015 IAS, Universität Stuttgart
304
7.1 Einführung in Datenbanksysteme
ST II
Arten von Datenbanksystemen (1)
– Datenbanksystem
Organisatorisch zentralisierte Datenbasis, in der durch
ein Datenbankverwaltungssystem (DBVS) die Datenunabhängigkeit, Datenintegrität, Datenmanipulation und
die Synchronisierung der Zugriffe mehrerer Benutzer auf
die Datenbasis unterstützt werden
– Informationssystem
Datenbanksystem, das um eine Methodensammlung zur
Auswertung und Darstellung der abgefragten Daten
erweitert ist
Methodensammlung mit Funktionen wie Statistik,
Optimierung, Planungs- und Arbeitstechnik, Grafik,
Berichtgestaltung
© 2015 IAS, Universität Stuttgart
305
7.1 Einführung in Datenbanksysteme
ST II
Arten von Datenbanksystemen (2)
– Transaktionssystem
Problemorientierte Benutzungsschnittstelle
Anwendungsbezogene Funktionen in Form von Menüs
Banken- oder Buchungsprogramme
– Dokumentationssystem
Auffinden von Dokumenten aus Katalogen
Documentation Retrieval Systems
© 2015 IAS, Universität Stuttgart
306
7.1 Einführung in Datenbanksysteme
ST II
Evolution von Datenbanksystemen
Dateien
Dateisysteme
(60‘er Jahre)
Netzwerk- und
Hierarchische Datenbanken
(70‘er Jahre)
Relationale
Datenbanksysteme
(80‘er Jahre)
Objektorientierte
Datenbanken
(90‘er Jahre)
Semistrukturierte
(XML) Datenbanken
(seit 2000)
© 2015 IAS, Universität Stuttgart
Objektrelationale
Datenbanksysteme
(seit 2000)
307
Frage zu Kapitel 7.1
ST II
Frage zu Kapitel 7.1
Welche Ziele gehören zur Datenintegrität?
Antwort
f  Schneller Zugriff auf Kopien

 Korrektheit der Daten
 Datenkonsistenz

f  Speicherplatzreduzierung


Datensicherung
 Datenschutz bei Abfrage

© 2015 IAS, Universität Stuttgart
308
Softwaretechnik II
§7
Datenbanksysteme
7.1
Einführung in Datenbanksysteme
7.2
Relationale Datenbanksysteme
7.3
Datenbanksprachen
7.4
Entwurf von Relationalen Datenbanksystemen
7.5
Objektorientierte Datenbanksysteme und neue Entwicklungen
© 2015 IAS, Universität Stuttgart
ST II
309
7.2 Relationale Datenbanksysteme
ST II
Relationales Datenmodell
1970
erste Veröffentlichung von E. F. Codd (IBM)
1979
erstes relationales Datenbanksystem mit SQL (Oracle)
1981
Definition Relationales Datenbanksystem (Codd):
–
Alle Daten werden in Relationen dargestellt
–
Jeder Benutzerzugriff auf die Daten erfolgt über die Werte der
Daten
–
Es werden relationale Operatoren unterstützt
Keine Kenntnis von Zeigern und Verkettungen notwendig
© 2015 IAS, Universität Stuttgart
310
7.2 Relationale Datenbanksysteme
ST II
Relation
Definition
Teilmenge des Kartesischen Produkts von Wertebereichen
Beispiel
Student
= Matrikelnr X Fachbereich = Relation
Matrikelnr
= (5001, 5003, 5007)
= Wertebereiche = Menge
Fachbereich = (ET, MA)
möglicher Werte eines Attributs
vereinfachte, anschauliche
Darstellung durch Tabellen
Student
Matrikelnr
Fachbereich
5001
ET
5003
MA
5007
ET
Tupel (Zeile, Datensatz)
Relation (Tabelle)
Attribute (Spalte)
© 2015 IAS, Universität Stuttgart
311
7.2 Relationale Datenbanksysteme
ST II
Schlüssel
Identifizierende Attributskombination (superkey)
– Kombination von Attributen, deren Werte zusammengenommen
ein Tupel eindeutig identifizieren
Schlüssel (key)
– Eine minimale identifizierende Attributs-Kombination
Primärschlüssel (primary key)
– Zur eindeutigen Identifikation von Tupeln festgelegter Schlüssel
Fremdschlüssel (foreign key)
– Die Werte dieser Attribute müssen im Primärschlüssel einer anderen
Relation (Vaterrelation) vorhanden sein
Relation mit Fremdschlüssel = abhängige Relation
© 2015 IAS, Universität Stuttgart
312
7.2 Relationale Datenbanksysteme
ST II
Relationenalgebra (1)
Ergebnis einer Operation ist wieder eine Relation
Die wichtigsten Operationen:
Auswahl (Selektion)
A1
A2
A1
A2
A3
A4
Ergebnis = alle Tupel, die eine
bestimmte Bedingung erfüllen
Projektion
A3
A4
Ergebnis = Teilmenge der Attribute
© 2015 IAS, Universität Stuttgart
313
7.2 Relationale Datenbanksysteme
ST II
Relationenalgebra (2)
Verbund (Join)
Ergebnis = Kreuzprodukt der beteiligten Relationen, wobei gemeinsame
Attribute gleiche Werte enthalten
Natürlicher Verbund (Natural Join):
Gemeinsame Attribute sind in der Ergebnisrelation nur einmal vorhanden
A
B
B
C
A
B
C
a1
b1
b1
c1
a1
b1
c1
a2
b1
b2
c2
a2
b1
c1
a3
b3
b3
c3
a3
b3
c3
=
Kombination von Operationen möglich
Film: IAS-Datenbank
© 2015 IAS, Universität Stuttgart
314
Frage zu Kapitel 7.2
ST II
Frage zu Kapitel 7.2
Welche Kriterien sprechen für den Einsatz eines relationalen
Datenbanksystems?
Antwort

 Es sind relativ einfache, formatierte Datenbestände zu verwalten
f  Es müssen komplexe graphenartige Strukturen verwaltet werden

 Die Antwortzeiten auf Anfragen sind von der Anwendung her nicht kritisch
f  Die Anwendungsprogramme bestehen aus Objekten
© 2015 IAS, Universität Stuttgart
315
Softwaretechnik II
§7
Datenbanksysteme
7.1
Einführung in Datenbanksysteme
7.2
Relationale Datenbanksysteme
7.3
Datenbanksprachen
7.4
Entwurf von Relationalen Datenbanksystemen
7.5
Objektorientierte Datenbanksysteme und neue Entwicklungen
© 2015 IAS, Universität Stuttgart
ST II
316
7.3 Datenbanksprachen
ST II
Datenbanksprachen
– Datendefinitionssprachen (Data Definition Language, DDL)
Beschreibung des logischen Schemas, d.h. des gesamten
Datenbestandes
Beschreibung des externen Schemas, d.h. der Daten aus der Sicht
einer Anwendung
– Datenmanipulationssprachen (Data Manipulating Language, DML)
Formulierung von Operationen auf Daten
Einfügen, Ändern, Löschen
– Daten-Kontrollsprachen (Data Control Language, DCL)
Formulierung von Zugriffsrechten
SQL enthält DDL, DML, DCL
© 2015 IAS, Universität Stuttgart
317
7.3 Datenbanksprachen
ST II
Geschichte
1974
SEQUEL (Structured English Query Language, IBM)
1987
ISO-Standard SQL1 (oder SQL-86, Structured Query Language)
1989
Ergänzungen: ISO-Standard SQL-89
1992
Ergänzungen und Modifikationen: ISO-Standard SQL2 (oder SQL-92)
1999
Aufnahme objektorientierter Konzepte: SQL:1999 (oder SQL3)
2003
SQL:2003 ISO/IEC 9075:2003
2006
SQL:2006 ISO/IEC 9075-14:2006 (Verbindung zu XML)
2008
SQL:2008 ISO/IEC 9075:2008
2011
SQL:2011 ISO/IEC 9075:2011 (aktuelle Revision)
Merkmale
– SQL2 wird von den aktuellen relationalen DBMS weitgehend unterstützt
– SQL ist nicht prozedural
– Auffinden von Daten erfolgt über die Beschreibung von Attributwerten mit
Hilfe von logischen Bedingungen
– Ergebnis = Tabelle
© 2015 IAS, Universität Stuttgart
318
7.3 Datenbanksprachen
ST II
DDL-Beispiel in SQL2
Erstellung einer Tabelle
CREATE TABLE tabelle
(spaltendefinitionsliste,
[tabellenintegritätsregelliste])
Beispiel
CREATE TABLE Student
( Matrikelnr
INTEGER
NOT NULL,
Fachbereich CHAR(4)
NOT NULL,
PRIMARY KEY (Matrikelnr));
Löschen einer Tabelle
DROP TABLE tabelle
Ändern einer Tabelle
ALTER TABLE ...
© 2015 IAS, Universität Stuttgart
319
7.3 Datenbanksprachen
ST II
DCL-Beispiel in SQL2
Zugriffsrechte auf Tabellen vergeben
GRANT recht ON tabellen TO benutzer
Beispiel
GRANT SELECT ON Student TO goehner;
Zugriffsrechte entziehen
REVOKE recht ON tabelle FROM benutzer
DML-Beispiele in SQL2 (1)
Zeilen in einer Tabelle einfügen
INSERT INTO tabelle [(spaltenliste)]
VALUES (werteliste)
Beispiel
INSERT INTO Student (Matrikelnr, Fachbereich)
VALUES (4711, ‘ETI‘);
© 2015 IAS, Universität Stuttgart
320
7.3 Datenbanksprachen
ST II
DML-Beispiele in SQL2 (2)
Zeilen löschen
DELETE FROM tabelle
[ WHERE prädikat ]
Beispiel
DELETE FROM Student
WHERE Matrikelnr = 4711;
Zeilen ändern
UPDATE tabelle
SET spalte = wert {spalte=wert}
[ WHERE prädikat ]
Beispiel
UPDATE Student
SET Fachbereich = ‘MA‘
WHERE Matrikelnr = 4711;
© 2015 IAS, Universität Stuttgart
321
7.3 Datenbanksprachen
ST II
DML-Beispiele in SQL2 (3)
Zeilen suchen (vereinfacht)
SELECT attributliste
FROM tabellenliste
WHERE selektionsbedingung
GROUP BY attributliste
HAVING selektionsbedingung
ORDER BY attributliste
Beispiel
SELECT Matrikelnr, Fachbereich
FROM Student
WHERE Matrikelnr > 4000
ORDER BY Fachbereich;
© 2015 IAS, Universität Stuttgart
322
Frage zu Kapitel 7.3
ST II
Frage zu Kapitel 7.3
Welche Möglichkeiten bietet SQL?
Antwort

 Definition der Daten

 Formulierung von Operationen auf Daten
f  Modellierung der Daten

 Formulierung von Zugriffsrechten
f  Graphische Darstellung der Daten
© 2015 IAS, Universität Stuttgart
323
Softwaretechnik II
§7
Datenbanksysteme
7.1
Einführung in Datenbanksysteme
7.2
Relationale Datenbanksysteme
7.3
Datenbanksprachen
7.4
Entwurf von Relationalen Datenbanksystemen
7.5
Objektorientierte Datenbanksysteme und neue Entwicklungen
© 2015 IAS, Universität Stuttgart
ST II
324
7.4 Entwurf von Relationalen Datenbanksystemen
ST II
Vorgehen bei der Entwicklung einer Datenbank-Anwendung
Problem
ProblemAnalyse
Anforderungsdefinition
konzeptioneller
Entwurf

Konzeptionelles Schema
logischer
Entwurf

logisches Schema
physischer
Entwurf

Anforderungsdefinition
Anforderungsdefinition
Datenbankentwurf
DB-Beschreibung
Datenbankrealisierung
DBBeschr.

DB
Anwend.entwurf
Spezifikation
Anwend.implem.

Datenbank

Test und
Korrektur
Programm
physisches Schema
Endprodukt
© 2015 IAS, Universität Stuttgart
325
7.4 Entwurf von Relationalen Datenbanksystemen

ST II
Problemanalyse
z.B.
Die Datenbank soll alle Studierende der Universität Stuttgart enthalten. Für
jeden Studierenden sollen Name, Straße, Ort, Matrikelnummer, Fachbereich
und alle seine Prüfungsnoten gespeichert werden. Der Fachbereich besitzt
eine Nummer, eine Bezeichnung und einen Dekan. Die Prüfungsdaten
bestehen aus einer Nummer, einer Bezeichnung und einem Prüfer.

Ziel:
Konzeptioneller Entwurf
Erstellung eines konzeptionellen, zielsystem-unabhängigen
Datenbankschemas
Beispiele für Modellierungen für konzeptionelles Schema:
– Objektorientiertes Modell (OO-Modell)
– Entitiy-Relationship-Modell (ER-Modell)
wird vor allem beim Entwurf von RDBS eingesetzt
© 2015 IAS, Universität Stuttgart
326
7.4 Entwurf von Relationalen Datenbanksystemen
ST II
Entity-Relationship-Modell (P. Chen, 1976) (1)
Entität (entity)
Individuelles, unterscheidbares und identifizierbares Exemplar von
Dingen, Personen oder Begriffen aus der realen oder der Vorstellungswelt
Zusammenfassung von gleichen Entitäten: Entitätstyp
Beziehung (relationship)
Wechselseitige Verbindung von zwei oder mehr Entitäten
Zusammenfassung von gleichartigen Beziehungen: Beziehungstyp
(Assoziation)
mögliche Kardinalitäten:
© 2015 IAS, Universität Stuttgart
1:1
1:C
1:N
1:NC
M:N
M:NC
und Kombinationen
327
7.4 Entwurf von Relationalen Datenbanksystemen
ST II
Entity-Relationship-Modell (2)
Attribute
Eigenschaften von Entitäten und Beziehungen
Schlüssel
Attribute zur eindeutigen Identifizierung einer Entität
© 2015 IAS, Universität Stuttgart
328
7.4 Entwurf von Relationalen Datenbanksystemen
ST II
Grafische Notation
Entitätstyp
Attribut
Schlüssel
Person
Name
Person
ID_Person
Person
Beziehungstyp
arbeitet in
Person
n
arbeitet in
Name
Kardinalität
der
Assoziation
_1___
1 Firma
© 2015 IAS, Universität Stuttgart
329
7.4 Entwurf von Relationalen Datenbanksystemen
ST II
ER-Diagramm Beispiel aus Anforderung
Prüfungnr
Prüfung
Bezeichnung
Prüfer
nc
absolviert
Note
nc
Studierender
nc
gehört zu
n
Fachbereich
Matrikelnr
Fachbereichnr
Name
Bezeichnung
Straße
Dekan
Ort
© 2015 IAS, Universität Stuttgart
330
7.4 Entwurf von Relationalen Datenbanksystemen

Ziel:
ST II
Logischer Entwurf
Transformation des konzeptionellen Datenbankschemas in ein
logisches Datenbankschema in Abhängigkeit vom DBMS
z.B. bei RDBMS: relationales Modell/Datenbankschema
Transformationsregeln (vereinfacht)
– Entitätstyp
zu Tabelle
– 2 Entitätstypen mit 1:1/1:C/C:C-Beziehung
zu 1 Tabelle
– 2 Entitätstypen mit 1:N/1:NC-Beziehung
zu 2 Tabellen, Verbindung
über Fremdschlüssel
– 2 Entitätstypen mit N:N/N:NC/NC:NC-Beziehung
zu 3 Tabellen, Verbindung
über Fremdschlüssel
Transformation i.d.R. mit Werkzeugunterstützung
© 2015 IAS, Universität Stuttgart
331
7.4 Entwurf von Relationalen Datenbanksystemen
ST II
Beispiel eines logisches Datenbankschemas
Prüfung
Prüfungnr
integer
Bezeichnung
long varchar
Prüfer
long varchar
Prüfungnr = Prüfungnr
Fachbereich
Fachbereichnr
integer
Bezeichnung
long varchar
Dekan
long varchar
Prüfungsleistung
Prüfungnr
integer
Matrikelnr
integer
Note
decimal(2,1)
Matrikelnr = Matrikelnr
Fachbereichnr = Fachbereichnr
Studierender
Matrikelnr
integer
Fachbereichnr
integer
Name
long varchar
Straße
long varchar
Ort
long varchar
© 2015 IAS, Universität Stuttgart
Matrikelnr = Matrikelnr
Relation Stud-FB
Fachbereichnr integer
Matikelnr
integer
332
7.4 Entwurf von Relationalen Datenbanksystemen
ST II
Normalisierung
Ziel:
 keine untergeordneten Relationen
 so wenig Redundanz wie möglich
 keine Probleme bei der Datenpflege
Normalisierung erfolgt in mehreren Stufen
Beispiel: unnormalisierte Relation
Matri- Name
kelnr
5001 Müller, Mike
Straße
Ort
FBnr
FB
Mühlbach 12
Mühlhausen 10
ETI
5003
Maier, Max
Bachstr. 8
Sipplingen
12
MA
5007
Stoll, Silke
Kurzgasse 25
Stuttgart
14
EE
Dekan Prüfung
nr
Gö
1200
1212
1250
At
1200
1400
Te
1200
1312
Prüfung
Prüfer
Note
ST I
ST II
AT I
ST I
TDF
ST I
Info II
Gö
Ja
Mw
Gö
Xy
Gö
Fa
2,7
1,3
1,7
2,3
4,0
1,0
2,3
Relation Studierender
© 2015 IAS, Universität Stuttgart
333
7.4 Entwurf von Relationalen Datenbanksystemen
ST II
1. Normalform
1. NF:
Alle Attribute sind atomar
Normalisierungsschritt: eigene Relation für jedes nichtatomare Attribut
und Verknüpfung über Fremdschlüssel
Relationen in 1. NF
Matrikelnr
5001
5003
5007
Name
Straße
Ort
Müller, Mike
Maier, Max
Stoll, Silke
Mühlbach 12
Bachstr. 8
Kurzgasse 25
Mühlhausen 10
Sipplingen
12
Stuttgart
14
Matrikelnr
5001
5001
5001
5003
5003
5007
5007
Prüfung
nr
1200
1212
1250
1200
1400
1200
1312
Prüfung
Prüfer
Note
ST I
ST II
AT I
ST I
TDF
ST I
Info II
Gö
Ja
Mw
Gö
XY
Gö
Fa
2,7
1,3
1,7
2,3
4,0
1,0
2,3
© 2015 IAS, Universität Stuttgart
FBnr
FB
Dekan
ETI
MA
EE
Gö
At
Te
Relation Studierender (1.NF)
Relation Prüfungsleistung (1.NF)
334
7.4 Entwurf von Relationalen Datenbanksystemen
ST II
2. Normalform
2. NF:
1.NF und alle Attribute, die nicht zu einem Schlüssel
gehören, sind von diesem voll funktional abhängig
Normalisierungsschritt: neue Relation aus den Attributen, welche bereits von
einem Teil eines Schlüssels abhängig sind
Beispiel Relation Prüfungsleistung (1.NF)
Matrikelnr
5001
5001
5001
5003
5003
5007
5007
Prüfung
nr
1200
1212
1250
1200
1400
1200
1312
Prüfung
Prüfer
Note
ST I
ST II
AT I
ST I
TDF
ST I
Info III
Gö
Ja
Mw
Gö
XY
Gö
Fa
2,7
1,3
1,7
2,3
4,0
1,0
2,3
Relation
Prüfung
(2.NF)
Relation
Prüfungsleistung
(2.NF)
Schlüssel: Matrikelnr, Prüfungnr
Funktionale Abhängigkeiten:
1. Matrikelnr, Prüfungnr  Note
2. Prüfungnr  Prüfung, Prüfer
© 2015 IAS, Universität Stuttgart
()
()
Prüfung
nr
1200
1212
1250
1400
1312
Matrikelnr
5001
5001
5001
5003
5003
5007
5007
Prüfung
Prüfer
ST I
ST II
AT I
TDF
Info II
Gö
Ja
Mw
XY
Fa
Prüfung
nr
1200
1212
1250
1200
1400
1200
1312
Note
2,7
1,3
1,7
2,3
4,0
1,0
2,3
335
7.4 Entwurf von Relationalen Datenbanksystemen
ST II
3. Normalform
3. NF:
2.NF und alle Attribute, die nicht zu einem Schlüssel
gehören, sind von diesem nicht transitiv abhängig
Normalisierungsschritt: neue Relation aus den Attributen, welche von einem
Schlüssels transitiv abhängig sind
Beispiel
Matrikelnr
Relation 5001
Studierender 5003
(1.NF+2.NF) 5007
Schlüssel: Matrikelnr
Name
Straße
Ort
Müller, Mike
Maier, Max
Stoll, Silke
Mühlbach 12
Bachstr. 8
Kurzgasse 25
Mühlhausen 10
Sipplingen
12
Stuttgart
14
Funktionale Abhängigkeiten:
1. Matrikelnr  FBnr,
2. FBnr  FB, Dekan
Matri- Name
Straße
kelnr
5001 Müller, Mike Mühlbach 12
5003 Maier, Max
Bachstr. 8
5007 Stoll, Silke
Kurzgasse 25
Relation Studierender (3.NF)
© 2015 IAS, Universität Stuttgart
Ort
Mühlhausen
Sipplingen
Stuttgart
FBnr
FB
Dekan
ETI
MA
EE
Gö
At
Te
Transitive Abhängigkeit
Matrikelnr  FB, Dekan
FBnr
FBnr
10
12
14
FB
ETI
MA
EE
Dekan
Gö
At
Te
10
12
14
Relation Fachbereich (3.NF)
336
7.4 Entwurf von Relationalen Datenbanksystemen
ST II
Weitere Normalformen
– Boyce-Codd-Normalform
– 4. Normalform
– 5. Normalform
Nachteile weiterer Normalisierung:
Viele Relationen/Tabellen entstehen
Schema wird unübersichtlich
Sinkende Performanz, da viele Verbundoperationen (Joins)
notwendig
 Stellenweise gezielte Denormalisierung
© 2015 IAS, Universität Stuttgart
337
7.4 Entwurf von Relationalen Datenbanksystemen

Ziel:
ST II
Physischer Entwurf
Entwicklung des internen Schemas
z. B.
– Aufteilung der Datenbank auf verschiedene Platten oder Server
– Indexe zur Zugriffsbeschleunigung

Ziel:
Datenbankrealisierung
Implementierung der Datenstruktur mit SQL
z. B.
CREATE TABLE Prüfungsleistung
(
Matrikelnr INTEGER
NOT NULL,
Prüfungnr INTEGER
NOT NULL,
Note
DECIMAL (2,1)
NOT NULL,
PRIMARY KEY (Matrikelnr, Prüfungnr));
© 2015 IAS, Universität Stuttgart
338
7.4 Entwurf von Relationalen Datenbanksystemen

Ziel:
ST II
Anwendungsimplementierung
Implementierung der Anwendung (Benutzungsoberfläche)
z. B. mit Hilfe von embedded SQL
SELECT count(*)
INTO :anzahl
FROM Prüfungsleistung
Speicherung der Anzahl von Prüfungen in der Variable anzahl der
Wirtssprache
SQL allein bietet keine Kontrollstrukturen
wie Verzweigungen oder Schleifen
© 2015 IAS, Universität Stuttgart
339
Frage zu Kapitel 7.4
ST II
Frage zu Kapitel 7.4
Warum werden im logischen Datenbankschema vorwiegend künstliche
Primärschlüssel verwendet?
Antwort

 Eindeutigkeit immer gegeben

 Weniger Speicherplatzbedarf als (zusammengesetzte) natürliche
Schlüsselattribute
f  Notwendig zur Vergabe der Zugriffsrechte

 Primärschlüsselwert (und ggf. Fremdschlüsselwert) muss später nicht
geändert werden
© 2015 IAS, Universität Stuttgart
340
Softwaretechnik II
§7
Datenbanksysteme
7.1
Einführung in Datenbanksysteme
7.2
Relationale Datenbanksysteme
7.3
Datenbanksprachen
7.4
Entwurf von Relationalen Datenbanksystemen
7.5
Objektorientierte Datenbanksysteme und neue Entwicklungen
© 2015 IAS, Universität Stuttgart
ST II
341
7.5 Objektorientierte Datenbanksysteme und neue Entwicklungen
ST II
Objektorientierte Datenbanken (OODBS)
Nachteile der Datenmodellierung mit klassischen Verfahren
– Datenobjekte nur als Tupel einfacher, unstrukturierter Attribute
– Nur einfache (Standard-) Datentypen
– Keine komplexen semantischen Integritätsbedingungen im
Datenmodell selbst
– Normalisierung mit Aufsplitterung des Datenbestandes bedeutet
viele Externspeicherzugriffe
– Diskrepanz zwischen Datenbankmodell und (OO-) Programmiersprache
 Aufwändige Transformationsoperationen
© 2015 IAS, Universität Stuttgart
342
7.5 Objektorientierte Datenbanksysteme und neue Entwicklungen
ST II
Definition eines objektorientierten DBS (Atkinson, 1989)
Ein objektorientiertes Datenbanksystem muss
– Ein Datenbanksystem und
–
ein objektorientiertes System sein
Grundlegende Aspekte eines objektorientierten Systems:
– Objektidentität
–
Komplexe Objekte
–
Kapselung
–
Typ-/Klassenhierarchie
–
Vererbung
–
Überladen und spätes Binden
–
Operationale Vollständigkeit
–
Erweiterbarkeit
© 2015 IAS, Universität Stuttgart
343
7.5 Objektorientierte Datenbanksysteme und neue Entwicklungen
ST II
Schemadefinition in
objektorientierten
Datenbanksystemen
define type Lager
supertypes = {Entity}
properties =
{ Adresse
:
Lagerflaeche
:
hat_gelagert
:
Beispiel
};
operations =
{ Anlegen ( ... );
Aufloesen ( ... );
};
end Lager;
In Lagern
können
verschiedene
Geräte vorrätig
sein, die für
bestimmte
Projekte
eingesetzt
werden
können
© 2015 IAS, Universität Stuttgart
define type Geraet
supertypes = {Entity}
properties =
{ Geraete_Nr
:
Bezeichnung
:
Standort
:
eingesetzt_bei
:
String;
Integer;
optional distributed
Set (Geraet)
invers Geraet$Standort;
Integer;
String;
Lager
invers Lager$hat_gelagert;
optional distributed
Set (Projekt)
invers Projekt$braucht;
};
operations =
{ Einlagerung (Ort: Lager);
Einsetzen (Wo: Projekt);
.
.
.
};
end Geraet;
344
7.5 Objektorientierte Datenbanksysteme und neue Entwicklungen
ST II
Abfragen in objektorientierten Datenbanken
Herstellerspezifische Abfragesprachen, z.B.
– O2SQL (Datenbanksystem O2)
– Erweiterung von C++ (Datenbanksystem ObjectStore)
Standardisierungsbemühungen: OQL (Object Query Language) der
ODMG (Object Data Management Group)
– Basiert auf der SELECT-Anweisung aus SQL92
– Ist deklarativ
– Neben Mengen können auch Tupel und Listen als
Anfrageergebnis ermittelt werden
– Enthält keine Änderungsbefehle
(müssen über eigene Methoden realisiert werden)
– Festgelegte Einbettung in OO-Programmiersprachen
(C++ OQL, Java OQL)
© 2015 IAS, Universität Stuttgart
345
7.5 Objektorientierte Datenbanksysteme und neue Entwicklungen
ST II
Objektrelationale Datenbanken (ORDBMS)
– Erweiterung von RDBMS um objektorientierte Konzepte
– Benutzerdefinierte Datentypen
– Komplexe Datentypen (nicht-atomar)
– Relationale Konzepte werden beibehalten (z.B. deklarativer Zugriff)
Heute:
Herstellerspezifische Erweiterungen
In Zukunft:
Standard SQL3
© 2015 IAS, Universität Stuttgart
346
7.5 Objektorientierte Datenbanksysteme und neue Entwicklungen
ST II
Deduktive Datenbanksysteme
–
Zusätzlich Regeln zur Ableitung implizit vorhandener Informationen
–
Verwaltete Informationen werden als Fakten bezeichnet
z. B.
Fakten:
Elternschaft
Elternteil Kind
Martin
Lisa
Lisa
Sandra
Maria
Michaela
Martin
Mike
Robin
Ralf
Abfrage: Wer sind die Kinder von Martin?
Logik: ?- Elternschaft(Martin, X)
Antwort: X={Lisa, Mike}
Regeln:
Vorfahre(X,Y) :- Elternschaft(X,Y).
Vorfahre(X,Y) :- Elternschaft(X,Z), Vorfahre (Z,Y).
Abfrage: Wer sind die Vorfahren von Sandra?
Logik:
?- Vorfahre(X, Sandra)
Antwort: X={Lisa, Martin}
© 2015 IAS, Universität Stuttgart
347
7.5 Objektorientierte Datenbanksysteme und neue Entwicklungen
ST II
Aktive Datenbanksysteme
Überwachen den Systemzustand
Veranlassen Aktionen automatisch und rechtzeitig
Mechanismen:
– Trigger
• Werden durch Modifikationsoperationen ausgelöst
• Bestehen aus einer Folge von Datenbankoperationen
– Alerter
• Reaktion mit Anwendungsbezug (z.B. Auslösen von
Nachbestellungen)
• Semantik der Reaktion ist dem DBMS nicht mehr bekannt
– Regeln
• Verarbeitungswissen in Form von WENN-DANN-Regeln
• Aktualisierung abgeleiteter Daten, wenn sich die zu Grunde liegenden
Daten ändern
• Aktivität wird auf Grund logischer Situation ausgelöst
© 2015 IAS, Universität Stuttgart
348
7.5 Objektorientierte Datenbanksysteme und neue Entwicklungen
ST II
Temporale Datenbanksysteme
Nachteile klassischer Datenbanksysteme
– Beschreibung der Anwendung zum jeweils aktuellen Zeitpunkt
– Vorhergegangene Werte nicht mehr verfügbar
Temporale Datenbanksysteme
– Speicherung der verschiedenen Versionen eines Objektes/Attributes
– Relation = dreidimensionales Objekt (Attribute, Werte, Zeit)
– Zeitarten: Transaktionszeit, gültige Zeit („Verfallsdatum“), benutzerdef. Zeit
Beispielrelation mit Transaktionszeit Abfrage:
Was war Martins Titel am 10.12.2010?
Name
Titel
Martin
Martin
Robin
Robin
Robin
Assistent
Professor
Student
Assistent
Professor
Trans.
Beginn
25.08.2005
15.05.2014
22.07.2004
24.11.2007
22.03.2012
© 2015 IAS, Universität Stuttgart
Trans.
Ende
15.12.2010
SELECT Titel
23.11.2007
22.03.2010
WHERE Name = ‘Martin‘
FROM Mitarbeiter
AS OF ‘10.12.2010‘
349
7.5 Objektorientierte Datenbanksysteme und neue Entwicklungen
ST II
Echtzeit-Datenbanksysteme
Unterschied zu DBS:
Transaktion muss innerhalb garantierter Zeit (Deadline) beendet sein
Schwierigkeiten bei harten Deadlines:
– Schwankende Auslastung des DBMS
– Unvorhersehbare Mehrbenutzereffekte (z.B. Sperrkonflikte)
Lösungsansätze
– Berücksichtigung der Deadlines durch Prioritäten für Transaktionen
– Behandlung von Synchronitätskonflikten
© 2015 IAS, Universität Stuttgart
350
7.5 Objektorientierte Datenbanksysteme und neue Entwicklungen
ST II
Mobile Datenbanksysteme
– Möglichst wenig Ressourcenbedarf
– Replikationsmechanismen zum Datenabgleich
Lösungsansatz:
Analyse der Anwendung und Entfernen nicht benötigter Funktionalität aus
dem DBMS
Embedded Datenbanksysteme
DBMS kann direkt in die Anwendung eingebunden werden
z.B. als Klasse in eine Java-Anwendung
© 2015 IAS, Universität Stuttgart
351
7.5 Objektorientierte Datenbanksysteme und neue Entwicklungen
ST II
Föderierte Datenbanksysteme
– Integration logisch und physisch verteilter Datenbanksysteme
(Komponentendatenbanksysteme KDBS)
– Erhaltung der lokalen Autonomie soweit möglich
Referenz-Architektur
FDBS
globale
– Übergreifendes Schema
Anwendung
– Verwaltung von Metainformationen
und Daten auf globaler Ebene
– Anwendungen können über eine
Schnittstelle auf gesamtes System
zugreifen
FDBMS
Präsentation
Metadaten
Integration
Datenzugriff
lokale
Anwendung
RDBMS
OODBMS
KDBS
DB 1
DB 2
FDBS
© 2015 IAS, Universität Stuttgart
352
7.5 Objektorientierte Datenbanksysteme und neue Entwicklungen
ST II
Beispiele für Datenbanksysteme
Desktop-Datenbanken: Microsoft Access, MySQL, XAMPP
– Lokaler Einbenutzerbetrieb
– Werkzeuge für einfache Erstellung von Benutzungsoberflächen
– Eingeschränkte SQL-Abfragemöglichkeiten
– Kostengünstig
Datenbank-Server: Oracle, IBM DB/2, Microsoft SQL Server
– Optimiert für viele Benutzer und hohen Datendurchsatz
– Umfangreiche Administrationswerkzeuge
– Volle SQL-Funktionalität, eigene SQL-Erweiterungen
– Objektrelationale Erweiterungen
© 2015 IAS, Universität Stuttgart
353
Frage zu Kapitel 7.5
ST II
Frage zu Kapitel 7.5
Welche Mechanismen können zur Überwachung des Systemzustands
verwendet werden?
Antwort
 Regeln

 Trigger

f  Datenmanipulation


Alerter
f  Datenspeicherung
© 2015 IAS, Universität Stuttgart
354
Vorbereitungsfragen
ST II
Vorbereitungsfragen zu § 7
Frage 1: Datenmodellierung (WS 04/05)
Was ist die Aufgabe der relationalen Datenmodellierung? Welche Teilaufgaben müssen
dabei durchgeführt werden?
Frage 2: Föderierte Datenbanksysteme (WS 07/08)
Wozu dienen die föderierten Datenbanksysteme? Welche Eigenschaften haben Sie?
Frage 3: Normalform (SS 08)
Gegeben ist folgende Tabelle:
CD-Nr.
Interpret
Albumtitel 1
Gründungsjahr der Band
1
Dire Straits
Brothers In Arms
1978
Ist diese Tabelle in der 3. Normalform? Begründen Sie Ihre Aussage. Falls Ihre Antwort
negativ ist, dann bringen Sie die Tabelle in die 3. Normalform.
Hinweis: Jedes Album kann man nur einmal kaufen.
© 2015 IAS, Universität Stuttgart
355
Herunterladen