Weblog von Mathias Kienberger
 
Samstag, 28. Oktober 2006
Prüfung des ER-Modells zum Buchhandel
Das in der Lehrveranstaltung bearbeitete ER(Entity Relationship)-Diagramm ist ein Modell, welches mit Hilfe eines fiktiven Buchhandels den Aufbau einer relationalen Datenbank und die dafür benötigten Daten beschreibt.




In diesem Modell gibt es verschiedene Elemente die gegenseitig in Beziehung stehen. Zunächst benötigt man einmal Entitäten, die hier mit Hilfe von Rechtecken dargestellt sind. Die verwendeten Entitäten im Modell des Buchhandels sind Kunde, Auftrag, Buch und Verlag.

Jeder dieser vier Entitäten sind Attribute zugeordnet, die in einem Oval dargestellt werden. Die Attribute dienen dazu, die jeweiligen Entitäten besser zu beschreiben. Bei der Entität Kunde sind dies Dinge wie Vorname, Nachname, die Adresse und die Kundennummer. Würde man genauere Information des Kunden benötigen könnte man weitere Attribute hinzufügen. Ich denke in diesem Zusammenhang an Dinge wie das Geschlecht oder vielleicht das Geburtsdatum. Das Ganze würde ich für eine sehr sinnvolle Erweiterung halten. Solche Informationen könnten verwendet werden, wenn man mit einem Buch zum Beispiel eine gewisse Generation ansprechen möchte. Wäre die Entität Kunde um diese Attribute erweitert, könnte man beispielsweise auch alle Kundinnen herausfiltern, wenn man nur diese braucht. Weitere Attribute könnten auch Dinge wie Handy- oder Festnetznummer sein, um den Kunden auch telefonisch kontaktieren zu könne. Dies sind nur einige Beispiele die ich in diesem Zusammenhang nennen möchte, natürlich könnte man jede Entität x-beliebig erweitern. Eine Frage die sich hier stellt ist, wie gern die Kunden solche, teilweise eher persönliche Daten hergeben.

Die einzelnen zuvor beschriebenen Entitäten sind mit Hilfe von so genannten Beziehungen miteinander verbunden, welche als Rauten dargestellt werden. Unterschieden werden im Modell des Buchhandels die „erteilt“, „über“ bzw. die „verlegt“ Beziehung. Die 1:n Beziehung „verlegt“ zwischen den Entitäten Verlag und Buch sagt beispielsweise aus, dass jedem Verlag (1) beliebig viele Bücher (n) zugeordnet sein können. Umgekehrt ist dies logischerweise nicht möglich, denn wie sollte es funktionieren wenn jedes Buch verschiedenen Verlagen zugeordnet werden könnte. Es würde zu Problemen führen, denn für gewöhnlich kommt es nicht vor, dass zwei verschiedene Verlage ein und dasselbe Buch verlegen. Dasselbe ist es bei der Beziehung „erteilt“ zwischen den Entitäten Kunde und Auftrag. Es kann jeder Auftrag auch immer nur einem Kunden zugewiesen sein während es umgekehrt natürlich möglich ist, dass ein und derselbe Klient mehrer Aufträge tätigt.

Zwischen den Entitäten Auftrag und Buch herrscht überhaupt eine n:m Beziehung, welche bedeutet, dass sowohl mehrere Bücher in einem Auftrag enthalten sein können als auch umgekehrt mehrere Aufträge einem Buch zugeordnet sein können.


Um die Beziehungen zu prüfen habe ich im vorliegenden Fall auf SQL.IDV.EDU folgenden Befehl eingegeben:

Select a.Nr,count(b.titel)
from Auftrag a, Buch b, Auftragspos au where a.Nr=au.Auftragsnummer and au.Buchnummer=b.Nr
group by a.Nr


Das Ergebnis zeigt, dass beispielsweise dem Auftrag Nr. 1 nicht nur ein Titel sondern wie der n:m Beziehung entsprechend mehrere, genauer gesagt im betreffenden Fall 14 verschiedene Titel zugeordnet sind.

Um die angesprochene Beziehung auch umgekehrt zu prüfen verwendete ich folgende Abfrage

Select b.Nr,count(a.Nr)as "Anzahl der Aufträge"
from Auftrag a, Buch b, Auftragspos au
where a.Nr=au.Auftragsnummer
and au.Buchnummer=b.Nr group by b.Nr


Diese zeigt deutlich, dass auch jeder Buchnummer mehrere Aufträge zugeordnet sein können. Bei der Buchnummer 5 sind es beispielsweise 6 zugeordnete Aufträge. Die n:m Beziehung zwischen den Entitäten Auftrag und Buch hat also funktioniert.

... comment

 
Online for 6811 days
Last update: 2007.01.22, 09:15
You're not logged in ... login
 
Oktober 2006
Mo
Di
Mi
Do
Fr
Sa
So
 
 
 
 
 
 
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 9 
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
29
30
31
 
 
 
 
 
 
Tutorium 22/01/2007
SQL - Abfragen Mit dieser Abfrage erhält man...
by Mathias.Kienberger.Uni-Linz (2007.01.22, 09:15)
3. Hausübung
Verbesserungen des Schulbuchhandels Bei meinem Resümee...
by Mathias.Kienberger.Uni-Linz (2007.01.14, 20:54)
Tutorium 13/11/2006
Alle Kunden der Buchhandelsdatenbank anzeigen. Übung...
by Mathias.Kienberger.Uni-Linz (2006.11.27, 08:00)
2. Hausübung
Aufgabenstellung Nachdem die Grundlagen der SQL-Abfragetechnik...
by Mathias.Kienberger.Uni-Linz (2006.11.20, 10:28)
Prüfung des ER-Modells...
Das in der Lehrveranstaltung bearbeitete ER(Entity...
by Mathias.Kienberger.Uni-Linz (2006.11.13, 09:06)

xml version of this page

made with antville
powered by
helma object publisher