DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4 Mar 2013 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 Mar 2013 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 Mar 2013 Übung: Datenmodell vs. Klassendiagramm Thema: Seminarorganisation Überführen Sie das vorgegebene Datenmodell (ER-Modell) in ein Klassenmodell unter Berücksichtigung der richtigen UML-Syntax! Seite 3 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4 Mar 2013 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 Abbhä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 Mar 2013 Ü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 Mar 2013 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 Mar 2013 Ü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 Mar 2013 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 Mar 2013 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 Mar 2013 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 Mar 2013 Anhang: Lösungen der Übungen Thema: Seminarorganisation Seite 3: • Keine Fremdschlüssel • Min-max-Notation umdrehen und stattdessen Multiplizitäten • Generalisierung statt hierarchische Beziehung Person Personal-Nr Name Adresse Geburtsdatum Firma Kurzname Name Adresse Kurzmitteilung 0..1 Kunde * Funktion Umsatz Seite 11 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4 Mar 2013 Anhang: Lösungen der Übungen Thema: Verbrauchsmaterial Seite 5: Ggfs. Sollte man die Tabelle „geliefert von“ noch mit einem zusätzlichen Attribut=Datum versehen, Bestell-Nr. und Datum könnten dann alternative Primärschlüssel sein. Seite 12 DHBW Stuttgart, Informatik, SW-Engineering, Kapitel 4.4 Mar 2013 Anhang: Lösungen der Übungen Thema: Seminarorganisation 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