Entwurf des Datenbanksystems (DBS)

Werbung
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4
Okt 2010
Entwurf des Datenbanksystems (DBS)
Inhalt
• Gründe für die Auswahl eines DBS
• Haupttätigkeiten beim Entwurf eines Relationalen DBS
– Relationenmodell (Schemata, Schlüssel, Integritätsbedingungen)
– Normalisierung
– Views
– Indices
– Zugriffsrechte
• Haupttätigkeiten beim Entwurf eines Objektorientierten DBS
– Definition der Objekte mittels ODL
– Formulierung von Abfragen mittels OQL
Christoph Riewerts, © Prof. Dr. Helmut Balzert V2.0
Datei: DesignDBMSVorlesung.ppt,
Seite 1
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4
Okt 2010
Entwurf des Datenbanksystems (DBS)
Kriterien für die Notwendigkeit eines DBS (statt eines Dateisystems):
• mehrere Benutzer/Programme gleichzeitig
• redundanzarme Speicherung
• umfangreiche Daten
• zuverlässige Verwaltung
• dezidierte Zugriffsrechte
• ungeplante Abfragen
• Datenstrukturen müssen während der Nutzungsphase begrenzt angepasst werden
• Erstelltes ER- oder OOA-Modell enthält mehrere Entitätsmengen bzw. Klassen mit
mehreren Assoziationen und/oder Aggregationen
(M:N-Kardinalitäten).
Gründe für ein Relationales Datenbanksystem (RDBS):
• Relativ einfache, formatierte Datenbestände, Antwortzeiten auf Anfragen nicht kritisch,
Anwendungsprogramme sind nicht objektorientiert
Gründe für ein objektorientiertes Datenbanksystem (ODBS):
• Komplexe graphartige Strukturen (CAx-Systeme, geographische Informationssysteme,
Netzleitsysteme, Multimedia-Anwendungen), Anwendungsprogramme objektorientiert.
Seite 2
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4
Okt 2010
Übung: Datenmodell vs. Klassendiagramm
Thema: Seminarorganisation
Überführen Sie das vorgegebene Datenmodell (ER-Modell) in ein Klassendiagramm
unter Berücksichtigung der richtigen UML-Syntax!
Seite 3
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4
Okt 2010
Entwurf eines relationalen Datenbanksystems (RDBS)
Haupttätigkeiten in der DB-Entwurfsphase:
• Entwurf des Relationenmodell
– Festlegen der Relationenschemata mit Namen, Attributen und deren
Wertebereichen
– Beschreibung der Abhängigkeiten (Schlüsselattribute)
– Beschreibung der Integritätsbedingungen
• Normalisierung bis zur 3. Normalform (3NF-Zerlegung)
– Optimierung des logischen Schemas unter allgemeinen oder spezifischen
Kriterien und dazu Eliminierung bzw. Reduzierung der Datenredundanzen
• Festlegung von view-Schemata für externe Sichten
• Festlegung von Indexattributen, um bestimmte, häufig wiederkehrende gleiche Anfragen
in einer vorgegebenen Dialogzeit beantworten zu können
• Festlegen von Zugriffsrechten
Haupttätigkeit in der DB-Implementierungsphase:
• Einrichten der DB mittels der Sprache DDL (data definition language) und Formulierung
der Abfragen (ggfs Einbringen von stored procedures) mittels der Sprache DML (data
manipulation language)
Seite 4
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4
Okt 2010
Übung: Normalisierung eines Relationenschemas
Thema: Verwaltung von Verbrauchsmaterial
• Material besitzt eine eindeutige Materialnummer, eine Bezeichnung, im Allgemeinen
mehrere Lieferanten, die eine eindeutige Lieferantennummer besitzen, sowie einen
Firmennamen und eine Anschrift.
• Für jeden Lieferanten ist die Bestellnummer des Materials, die Verpackungseinheit und
der Preis zu speichern.
Welche Normalform besitzt das folgende Relationenschema:
Mat.- Nr. Mat.-Bez.
12
HD-Diskette
12
HD-Diskette
10
DD-Diskette
Lief.-Nr. Firmenname
8
Infotrade
10
Softdis
8
Infotrade
Bestell-Nr.
80808
1304
80807
Verp.-Einh.
10
10
10
Preis
29,40
25,90
14,60
Normalisieren Sie das Relationenschema weiter!
Seite 5
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4
Okt 2010
Entwurf eines relationalen Datenbanksystems (RDBS)
Festlegung von view-Schemata (Tabellen) für externe Sichten (zur Auswertung)
• Ein view-Schema kann sowohl auf Relationenschemata als auch auf bereits definierten
view-Schemata aufbauen
• ein view-Schema enthält Name, Attributnamen und Selektionsbedingungen
• Zu jedem Attributnamen muss das Attribut und das Relationenschema/view-Schema
angegeben werden, auf welches es sich bezieht
• Selektionsbedingungen (Konditionen) geben an, wie der Inhalt des view-Schemas aus
den Inhalten der zugehörigen Schemata ermittelt werden soll.
Beispiel eines view-Schemas:
Name:
Teilnehmerliste_Nr_99
Attribute:
Person.Name
Person.Vorname
Person.Ort
Conds:
Person.Personal-Nr = Kunde.Personal-Nr
and
bucht.Personal-Nr = Kunde.Personal-Nr
and
bucht.Veranstaltungs-Nr = 99.
Seite 6
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4
Okt 2010
Übung: Herstellen eines view-Schemas
Thema: Seminarorganisation
Erstellen sie eine Liste mit Personalnummer, Funktion, Umsatz, Stichtag und Betrag
von allen Kunden, die im Zahlungsverzug sind. Syntax siehe Beispiel.
Personalnummer, Funktion und Umsatz sind Attribute des Relationenschemas/Tabelle
Kunde.
Betrag und Stichtag sind Attribute des Relationenschemas/Tabelle Zahlungsverzug.
Seite 7
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4
Okt 2010
Entwurf eines relationalen Datenbanksystems (RDBS)
Festlegung von Indexattributen (in SQL: CREATE INDEX ...):
• Alle heutigen Standard-Datenbankmanagementsysteme (DBMS) machen für die
Einrichtung von Zugriffspfaden (Indexen) extensiven Gebrauch von B-BaumOrganisationsformen und den dazugehörenden Algorithmen (für den Anwender auf der
logischen Ebene nicht sichtbar); unter Oracle wird z.B. bei der Deklaration des Attributs
PRIMARY KEY automatisch ein entsprechender Index eingerichtet..
• Indexe haben häufig eine Doppelfunktion: Unterstützung eines schnellen Zugriffs über
Suchschlüssel und „Kontrollverzeichnis“, um auf doppelte Schlüsselwerte prüfen bzw.
deren Eintrag in die Datenbank verhindern zu können, wenn dies gewünscht ist. (z.B. bei
Primärschlüsseln)
Festlegen von Zugriffsrechten (in SQL: GRANT ...):
• Hängt von dem Ziel-DBMS ab, so daß oft nur Zugriffsrechte für Relationen bzw. views
als ganzes vergeben werden können
• U.U. müssen geeignete views gebildet werden
• Wird ein Recht entzogen, dann erlischt es auch für alle, an die es weitergegeben worden
ist
Seite 8
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4
Okt 2010
Entwurf eines objektorientierten Datenbanksystems (ODBS)
•
•
Objekte werden unverändert gespeichert, sie werden nicht in Tabellen transformiert
Objekt-Definitionssprache ODL (Object Definition Language) der ODMG (Object
Database Management Group):
– Jede Klasse des OOA-Modells wird in ODL durch eine Schnittstellendeklaration
(interface declaration) beschrieben;
• Assoziationen, Aggregationen und
Kompositionen aus dem OOA-Diagramm
interface Firma
werden durch eine relationship(extent Firmen
Anweisung in den beiden beteiligten
key
Kurzname)
Klassen beschrieben
{
• Java-Sprachanbindung legt die
attribute
String
Kurzname;
Erzeugung und Verwaltung von
attribute
String
Name;
attribute
String
Adresse;
Extensionen nicht verbindlich fest:
attribute
String
Kurzmitteilung;
– Üblich ist Plural des Klassenrelationship Set <Kunde>
namens als Name der Ext. und
ist_Arbeitgeber_von inverse Kunde::
Definition der Schlüssel dort
ist_Mitarbeiter_von;
– Ist keine Extension angegeben,
void Mitteilung_drucken ( );
dann kann mit der select}.
Operation nicht selektiert werden.
Seite 9
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4
Okt 2010
Entwurf eines objektorientierten Datenbanksystems (ODBS)
•
Anfragesprache OQL (object query language) der ODMG:
– Ermöglicht – wie die DML bei RDBS – einen deklarativen Zugriff auf ODBS
– Kann als eigenständige, interaktive Datenbank-Sprache und eingebettet in
verschiedene Programmiersprachen benutzt werden
– OQL besitzt aber keine Einfüge- und Änderungsoperationen (wie z.B. »insert« in
SQL), dazu müssen Anwendungsprogramme geschrieben werden
– OQL besitzt die grundsätzliche »select-from-where«-Struktur von SQL-Anfragen,
ist jedoch nicht mit SQL kompatibel: Beispiel: Liste aller Kunden:
select x
from Kunden x
where x.Adresse = ’Dortmund’
and x.Umsatz > 5000.00
–
Ergebnis: Menge aller Objekte aus der Klassenextension Kunden, bei denen
die angegebenen Bedingungen erfüllt sind
Seite 10
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4
Okt 2010
Lösung der Übung: Datenmodell vs. Klassendiagramm
(Seite 3)
Per son
Personal-Nr
Name
Adresse
Gebur tsdatum
Kurzm itteilung
erstelle Mitteilung
Fir m a
Kur znam e
Nam e
Adresse
Kurz mitteilung
erstelle Mitteilung
ist_Ar beitgeber_von
ist_Mitarbeiter_von
0..1
Arbeitgeber
Kunde
*
Mitarbeiter
Funk tion
Um satz
Seite 11
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4
Okt 2010
Lösung der Übung: Normalisierung
(Seite 5)
Mat.- Nr. Mat.-Bez.
12
HD-Diskette
12
HD-Diskette
10
DD-Diskette
Lief.-Nr. Firmenname
8
Infotrade
10
Softdis
8
Infotrade
Bestell-Nr.
80808
1304
80807
Verp.-Einh.
10
10
10
Preis
29,40
25,90
14,60
Seite 12
DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4
Okt 2010
Lösung der Übung: Herstellen eines view-Schemas
(Seite 7)
Name:
Liste der Kunden mit Zahlungsverzug
Attribute:
Kunde.Personal_Nr,
Kunde.Funktion,
Kunde.Umsatz,
Zahlungsverzug.Betrag,
Zahlungsverzug.Stichtag
Conditions:
Kunde.Personal_Nr =
Zahlungsverzug.Personal_Nr
In SQL-Statements:
Select
Kunde.Personal_Nr,Umsatz,Funktion,Betrag,Stichtag
from
Kunde, Zahlungsverzug
Where
Kunde.Personal_Nr=Zahlungsverzug.Personal_Nr
Seite 13
Herunterladen