Datenmodellierung - Aufbau einer Datenbank - Einsatz eines Datenbankprogramms im Unterricht August 2007 1 Harald Weber Aufgabe: Bestellungen von Kunden Ein Fahrradzubehörhersteller hat verschiedene Kunden, an die er verschiedene Artikel verkauft. Diese Daten sollen in einer Datenbank verwaltet werden. Folgende Informationen sollen herausgefiltert werden: - Kundenliste eines bestimmten Ortes - Bestellungen durch einen bestimmten Kunden - Umsatz je Artikel - Rechnung für eine Kundenbestellung Grundüberlegungen zum Aufbau der Datenbank • Welche Daten sollen erfasst werden? • Wie sind die Daten strukturiert? -> KLASSEN und deren BEZIEHUNGEN (semantisches Datenbankmodell) • Wie sieht das logische Datenbankmodell aus? -> Umsetzung des semantischen Datenbankmodells in ein relationales Datenbankmodell • Implementierung mit einem DBMS (z.B. ACCESS) • Realisierung von Abfragen mit SQL • Erstellung eines Berichts (Rechnung für Kunden) Modellierung: 1. Abgrenzung gegen die Umwelt Welche „Dinge“ sind für die Problemstellung wichtig, welche kann ich weglassen? z. B. Fahrzeug, mit dem ein Kunde fährt. Modellierung: 2. Abstraktion / Idealisierung Von den Dingen die wichtig sind (Kunden, Orte, Artikel) werden nicht alle Aspekte betrachtet sondern nur die Attribute, die relevant sind. Details werden vernachlässigt (z.B. die Größe des Kunden) = Abstraktion. Es können aber auch neue Attribute eingeführt werden (z.B. Kundennr.) = Idealisierung Modellierung: 3. Aggregation - Klassen Gleichartige Objekte mit festgelegten Attributen werden zusammengefasst – es entstehen Klassen: Klasse „Kunde“ besteht aus Vorname, Nachname, Straße, Tel.Nr. Klasse „Ort“ besteht aus Ortsname und PLZ Klasse „Artikel“ besteht aus Artikelname und VK-Preis Modellierung: 4. Assoziation -> Klassenbeziehungen Die Assoziation (kurz Beziehung oder Klassenbeziehung) beschreibt die gemeinsame Struktur einer Menge von Objektverbindungen. Sie beschreibt wie die konkrete Objektbeziehung zwischen zwei Objekten dieser Klassen aussieht. Umsetzung des semantischen Modells in ein logisches Datenbankmodell 1. Darstellung von Klassen in Tabellen Umsetzung des semantischen Modells in ein logisches Datenbankmodell 2. Einrichten von Klassenbeziehungen Jetzt werden die Klassenbeziehungen auf das relationale Datenmodell abgebildet. 1:n lässt sich mit einem Fremdschlüssel umsetzen. Der Fremdschlüssel ist eine zusätzliches Attribut in einer Tabelle, das in einer anderen Tabelle Primärschlüssel ist. Umsetzung des semantischen Modells in ein logisches Datenbankmodell 2. Einrichten von Klassenbeziehungen Für eine n:m Beziehung benötigt man eine zusätzliche Tabelle (Beziehungstabelle). In die Beziehungstabelle werden die Primärschlüssel der zugehörigen Tabellen als Fremdschlüssel aufgenommen. Umsetzung des semantischen Modells in ein logisches Datenbankmodell 2. Einrichten von Klassenbeziehungen Grafische Datenbanksysteme unterstützen die Darstellung und den Aufbau des relationalen Datenmodells. Umsetzung des semantischen Modells in ein logisches Datenbankmodell Klassen und Beziehungstabelle in Tabellenansicht: Umsetzung des semantischen Modells in ein logisches Datenbankmodell Was heißt nun modellieren? Von einem realen System ausgehend, versucht man durch Systemanalyse, ein abstraktes Modell herzustellen. Zur Umsetzung des abstrakten Modells in eine Repräsentation gibt es in der Informatik viele Konzepte (z.B. Objektorientierte Modellierung). Realisierung von Abfragen mit SQL Kundenliste eines bestimmten Ortes: Es sollen alle Kunden erscheinen, die im Ort 2 wohnen! Realisierung von Abfragen mit SQL Bestellungen durch einen bestimmten Kunden: Welche Artikel hat ein bestimmter Kunde bestellt? (Daten aus mehreren Tabellen auswählen!) Realisierung von Abfragen mit SQL Umsatz je Artikel Wie groß ist der Umsatz je Artikel? Realisierung von Abfragen mit SQL Bestellnummer mit Gesamtpreis und MWST SELECT bestellt.BestellNr, KUNDEN.Name, KUNDEN.Straße, ORT.Postleitzahl, ORT.Ortsname, bestellt.Stueckzahl, ARTIKEL.Bezeichnung, ARTIKEL.Verkaufspreis, (Verkaufspreis*Stueckzahl) AS Gesamtnettopreis, (Gesamtnettopreis*0.16) AS MWSt, (Gesamtnettopreis+MWSt) AS Bruttopreis FROM KUNDEN, ARTIKEL, ORT, bestellt WHERE bestellt.BestellNr=[Geben Sie die Bestellnummer ein:] AND KUNDEN.KundenID=bestellt.Kundennr AND ORT.OrtsID=KUNDEN.OrtsNr AND ARTIKEL.ArtikelID=bestellt.Artikelnr; Bericht zur Abfrage: Bestellnummer mit Gesamtpreis und MWST Weitere Informationen im Internet: www.info-wr.de Harald Weber – Landesbeauftragter für Computereinsatz Landesbeauftragter für Computereinsatz im Fachunterricht Wirtschaft/Recht Harald Weber www.info-wr.de 20