Entwurf des Datenbanksystems (DBS)

Ähnliche Dokumente
Daten-Definitionssprache (DDL) Bisher: Realwelt -> ERM -> Relationen-Modell -> normalisiertes Relationen-Modell. Jetzt: -> Formulierung in DDL

Einleitung 19. Teil I Einführung in Datenbanksysteme 25. Kapitel 1 Wozu Datenbanksysteme da sind 27

Datenbanken. Zusammenfassung. Datenbanksysteme

6 Implementierung komplexer Systeme. 6.2 Datenbank-Anbindung

SQL. SQL: Structured Query Language. Früherer Name: SEQUEL. Standardisierte Anfragesprache für relationale DBMS: SQL-89, SQL-92, SQL-99

Wiederholung VU Datenmodellierung

Theorie zur Übung 8 Datenbanken

Datenmodelle und Datenbanken 2

OM Datenbanken. OM Datenbanken. 8.1 Was ist ein Datenbanksystem? Motivation

Datenbanken. Seminararbeit. Einführung in das wissenschaftliche Arbeiten

Datenbanken Datenbanken 1 Belegnummer Belegnummer

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

7. Datenbankdefinitionssprachen

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Relationale Datenbanken

Inhaltsverzeichnis Vorwort zur vierten Auflage Vorwort zur dritten Auflage Vorwort zur zweiten Auflage Vorwort zur ersten Auflage Hinweise zur CD

Einführung in die Informatik II

Kapitel 1: Wiederholungsfragen Grundlagen DBS

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort... 13

Datenbanken als Grundlage für Informationssysteme

Inhaltsverzeichnis. Vorwort Kapitel 1 Einleitung... 15

Auf einen Blick. Abfrage und Bearbeitung. Erstellen einer Datenbank. Komplexe Abfragen. Vorwort 13

Geoinformation Abbildung auf Tabellen

Entwicklung der Datenbanksysteme

Visualisierung in Informatik und Naturwissenschaften

Inhaltsverzeichnis. Vorwort 13. Kapitel 1 Einleitung 15

Curriculum des Wahlfaches Informatik für das Gymnasium Dialog

Teil IV Datenbankentwurf

Vorlesung Datenbank-Entwurf Klausur

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

Microsoft Access 2010 SQL nutzen

7. XML-Datenbanksysteme und SQL/XML

Wirtschaftsinformatik 7a: Datenbanken. Hochschule für Wirtschaft und Recht SS 16 Dozent: R. Witte

d.h. zu Definitions-Stelle eindeutiger Funktionswert x X! y Y : (x,y) f umgekehrt: (x 1,y), (x 2,y) f ist o.k. X Y f(x) = y

Einteilung von Datenbanken

Inhaltsverzeichnis. Inhalt. 1 Einführung in die Datenbanktechnologie

Relationale Datenbanken Kursziele

Datenbanken Die Entwicklung der Datenbanksysteme ist eng an die der Hardware gekoppelt und wird wie jene in Generationen eingeteilt:

Folien zum Textbuch. Kapitel 2: Planung, Entwicklung und Betrieb von IS. Teil 3: Modellierung von betrieblichen Informationssystemen

Die Anweisung create table

Überblick Felix Naumann. Zugriffsrechte Zugriffsrechte erzeugen Zugriffsrechte prüfen Zugriffsrechte vergeben Zugriffsrechte entziehen

Es geht also im die SQL Data Manipulation Language.

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

Software-Engineering Einführung

Gruppe B Bitte tragen Sie SOFORT und LESERLICH Namen und Matrikelnr. ein, und legen Sie Ihren Studentenausweis bereit.

Abstraktionsschichten. Das Relationale Datenmodell

Informatik II Datenorganisation Datenbanken

Universität Augsburg, Institut für Informatik WS 2007/2008 Prof. Dr. W. Kießling 18. Jan Dr. A. Huhn, M. Endres, T. Preisinger Übungsblatt 12

Vorlesung Datenbankmanagementsysteme

ISU 1. Ue_08/02_Datenbanken/SQL. 08 Datenbanken. Übung. SQL Einführung. Eckbert Jankowski.

A Datendenition in SQL ( Punkte)

Relationales Datenbanksystem Oracle

SQL: Weitere Funktionen

Garten - Daten Bank. - survival pack -

IBM DB2 für Unix/Linux/Windows SQL Grundlagen

1. Einführung. Datenbanken Grundlagen

Es geht also um die sogenannte SQL- Data Definition Language.

10. Datenbank Design 1

D1: Relationale Datenstrukturen (14)

Arbeiten mit ACCESS 2013

Datenbanksysteme I. Lehrveranstaltungen zu Datenbanken (SS 07) DBS 2 (2+1) DBS2 IDBS2. Datenschutz und Datensicherheit. Data-Warehouse- Praktikum

Vorlesung Informatik II

Datenorganisation: (Daten)Datei versus Datenbank

SQL (Structured Query Language) Schemata Datentypen

Die Grundbegriffe Die Daten Die Informationen

Das relationale Datenmodell

Datenbanken I. Karczewski Datenbanken I 1. Produkt (0,*) (0,*)

anwendungen programmieren Datenbank entwerfen & Implementierung Analyse bis zur SQL- NoSQL-Datenbanken Uwe Klug Mit einer Einführung in 2.

Einführung in die Informatik II

Inhalt. Ein Einführung in die Nutzung von SQL-Datenbanken am Beispiel Oracle. Daten und Tabellen - ein Beispiel. Daten und Tabellen - Normalisierung

Relationales Datenbankpraktikum 2016ss

Datenbanken. Dateien und Datenbanken:

Medizininformatik Software Engineering

Vorlesung: Relationale Datenbanksysteme

Relationale Datenbanken Datenbankgrundlagen

- Gewinnung neuer Informationen durch Berechnungen - Einsatz graphischer Mittel zur Präsentation / Visualisierung von Datenreihen

A Datenbanken. A.1 Firebird. A.1.1 Installation des Servers. A.1.2 Installation der Beispieldatenbanken. Datenbanken 1

Kapitel 1: Einführung 1.1 Datenbanken?

Objektbasierte und objektorientierte Datenbanken

Datenmodellierung im Zeitalter agiler Softwareentwicklung

3. Das Relationale Datenmodell

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle

Übung 5. Implementierung einer Datenbank. Prof. Dr. Andreas Schmietendorf 1. Übung 5

Kapitel 3: Datenbanksysteme

Kapitel 2: Das Relationale Modell

Andreas Heuer Gunter Saake Kai-Uwe Sattler. Datenbanken. kompakt

Relationale Datenbanken

IBM Informix SQL. Seminarunterlage. Version vom

Probeklausur Datenmodellierung und Datenbanksysteme

Gliederung und Einordnung

4. Datenbanksprache SQL

Informations-, Daten- und Wissensmanagement

1. Einführung Seite 1. Kapitel 1: Einführung

Kapitel DB:IV (Fortsetzung)

Übersicht über Datenbanken

9. Sicherheitsaspekte

Datenbanksysteme (5 LP) Softwaretechnik (5 LP) Kommunikationssysteme (5 LP) Automaten und Sprachen. Diskrete Strukturen (5 LP)

Informationssysteme Übersicht Sommersemester 2017

Relationale Datenbanken - Theorie und Praxis

Transkript:

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

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

Ü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

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

Ü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. Lief.-Nr. Firmenname Bestell-Nr. Verp.-Einh. Preis 12 HD-Diskette 8 Infotrade 80808 10 29,40 12 HD-Diskette 10 Softdis 1304 10 25,90 10 DD-Diskette 8 Infotrade 80807 10 14,60 Normalisieren Sie das Relationenschema weiter! Seite 5

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

Ü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

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-Baum- Organisationsformen 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

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; interface Firma (extent Firmen key Kurzname) { attribute String Kurzname; attribute String Name; attribute String Adresse; }. attribute String Kurzmitteilung; relationship Set <Kunde> ist_arbeitgeber_von inverse Kunde:: ist_mitarbeiter_von; void Mitteilung_drucken ( ); Assoziationen, Aggregationen und Kompositionen aus dem OOA-Diagramm werden durch eine relationship- Anweisung in den beiden beteiligten Klassen beschrieben Java-Sprachanbindung legt die Erzeugung und Verwaltung von Extensionen nicht verbindlich fest: Üblich ist Plural des Klassennamens als Name der Ext. und Definition der Schlüssel dort Ist keine Extension angegeben, dann kann mit der select- Operation nicht selektiert werden. Seite 9

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

Lösung der Übung: Datenmodell vs. Klassendiagramm (Seite 3) Firma Per son Personal-Nr Name Adresse Gebur tsdatum Kurzm itteilung erstelle Mitteilung Kurzname Name Adresse Kurz mitteilung erstelle Mitteilung ist_ar beitgeber_von ist_mitarbeiter_von 0..1 * Arbeitgeber Mitarbeiter Kunde Funk tion Um satz Seite 11

Mat.- Nr. Lösung der Übung: Normalisierung (Seite 5) Mat.-Bez. Lief.-Nr. Firmenname Bestell-Nr. Verp.-Einh. Preis 12 HD-Diskette 8 Infotrade 80808 10 29,40 12 HD-Diskette 10 Softdis 1304 10 25,90 10 DD-Diskette 8 Infotrade 80807 10 14,60 Seite 12

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