pcb

2.1 Weltausschnitt / Aufgabe

In einem Unternehmen soll der Vorgang der PC-Beschaffung durch eine Datenbank festgehalten werden. Dafür soll ein ER-Modell erstellt werden.

Folgende Festlegungen ergaben sich in den Interviews, die im Vorfeld mit den Betroffenen geführt wurden. Die Attributsnamen wurden, soweit möglich, auch gleich geklärt:

  • Jeder PC erhält eine Inventarnummer (InvPC), die sich allerdings nicht auf den jeweiligen Bildschirm bezieht. Bildschirme erhalten eine eigene Inventarnummer (InvBild). Jedem PC ist genau ein Bildschirm zugeordnet.
  • Für jeden PC wird folgendes festgehalten: der Prozessortyp (PROZ), die Größe des Arbeitsspeichers (ARBSP), ob ein CD-ROM - Laufwerk vorhanden ist und falls ja, welche Bezeichnung  und welche Geschwindigkeit (CDROM_BEZ bzw. GESCHW) es hat. Außerdem werden jeweils mit Hilfe einer Kurzbezeichnung (KBezSK) die sonstigen Komponenten (Streamer, SoundBlaster, usw.) festgehalten. Jede dieser Komponenten ist genau einem PC zugeordnet. Ein PC hat natürlich typischerweise mehrere.
  • Für jede Festplatte wird festgehalten: Name und Größe (PlName, Größe) sowie die Zugriffsgeschwindigkeit (Zugriff). Es kommt durchaus vor, dass ein PC mehrere Festplatten hat (aber nicht umgekehrt).
  • Für jeden PC wird weiterhin festgehalten, in welcher Abteilung er steht (Abteilung), wer ihn nutzt (erfasst über die PersNr) und wann er dort eingerichtet wurde (Einrichtung). Es kommt vor, wenn auch nicht oft, dass ein PC von mehreren Mitarbeitern genutzt wird. Allerdings ist er immer einer einzigen Abteilung zugewiesen.
  • Die Nutzer werden durch ihre Personalnummer (PersNr), den Namen (Name, Vorname) und ihre Telefonnummer (Tel) erfasst.
  • Für Bildschirme wird neben der Seriennummer (SerNr) festgehalten, welchen Typ (BSTyp) und welchen Durchmesser sie haben (Zoll)

2.2 Einzelgerät vs. Typ

Mit diesem Beispiel wird noch ein Nebeneffekt angestrebt. Es soll auf die Unterscheidung von Einzelobjekt und Gruppe gleichartiger Objekte (hier im weiteren nicht ganz korrekt „Typ“ genannt) hingewiesen werden [Anmerkung] . Z.B. auf die Unterscheidung von einzelner Festplatte (identifiziert durch ihre Seriennummer) und Festplattentyp (alle gleichen). Diese Unterscheidung muss bei der Modellierung beachtet werden. Mehr dazu im Folgenden.

2.3 Lösungsweg

Betrachten wir zur Erstellung des Datenmodells nochmals die Spezifikationen, Schritt um Schritt, jeweils kleiner gesetzt.

- Jeder PC erhält eine Inventarnummer (InvPC), die sich allerdings nicht auf den jeweiligen Bildschirm bezieht. Bildschirme erhalten eine eigene Inventarnummer (InvBild). Jedem PC ist genau ein Bildschirm zugeordnet.

Hier werden zwei potentielle Entitätstypen direkt durch identifizierende Attribute angesprochen. Um zu erkennen, ob tatsächlich Entitätstypen entstehen, prüfen wir die übrigen Texte und erkennen, dass schon in der nächsten Spezifikation Attribute von PCs genannt werden. Also entsteht ein Entitätstyp PC. Bei den Bildschirmen müssen wir länger suchen. Erst in der letzten Spezifikation tauchen weitere Attribute für die Bildschirme auf:

Identifikation + Beschreibung -> Existenz

- Für Bildschirme wird neben der Seriennummer (SerNr) festgehalten, welchen Typ (BSTyp) und welchen Durchmesser sie haben (Zoll)

Damit ergibt sich ein Entitätstyps Bildschirme. Ohne diese weiteren Attribute wäre InvBild einfach ein Attribut von PC.


Abbildung 2.3-1:

Entitätstyp Bildschirme

Außerdem ergibt sich damit gleich ein Beziehungstyp, denn PCs und Bildschirme sind ja verknüpft und wir müssen sicherlich festhalten, welcher Bildschirm an welchem PC dient. Dazu unten mehr.

Mit Hilfe des folgenden Ausschnitts aus der Spezifikation ergänzen wir nun die Beschreibung des Entitätstyps PC um die angegebenen Attribute. Unkritisch sind die Attribute Proz und ArbSp. Doch was ist mit den CD-ROM – Laufwerken und mit den „sonstigen Komponenten“?

- Für jeden PC wird folgendes festgehalten: der Prozessortyp (PROZ), die Größe des Arbeitsspeichers (ARBSP), ob ein CD-ROM - Laufwerk vorhanden ist und falls ja, welche Bezeichnung (CDROM_BEZ) und welche Geschwindigkeit (GESCHW) es hat. Außerdem werden jeweils mit Hilfe einer Kurzbezeichnung (KBezSK) die sonstigen Komponenten (Streamer, SoundBlaster, usw.) festgehalten. Jede dieser Komponenten ist genau einem PC zugeordnet. Ein PC hat natürlich typischerweise mehrere.

Die CD-ROM – Laufwerke kommen modellierungstechnisch zu einer eigenen Existenz, da sie identifiziert und beschrieben werden. Also entsteht ein Entitätstyp CD-ROM-Laufwerke. Damit ist auch die Frage beantwortet, wie festgehalten wird, ob ein PC eines hat oder nicht: über die Beziehung zwischen PC und CD-ROM-Laufwerke.


Abbildung 2.3-2:

Entitätstyp CD-Rom - Laufwerke

Für die sonstigen Komponenten ist die Situation einfacher. Da sie nur durch eine Kurzbezeichnung KBezSK identifiziert werden, entsteht hier einfach ein Attribut von PC, allerdings ein mehrwertiges, wie der Text auch ausdrücklich festhält. Insgesamt ergibt sich damit der Entitätstyp PC (erst mal) wie folgt:


Abbildung 2.3-3:

Entitätstyp PC - Version 1

Der nächste Abschnitt der Spezifikation legt fest, wie die Festplatten erfasst werden:

Festplatten

- Für jede Festplatte wird festgehalten: Name und Größe (PlName, Größe), die Zugriffsgeschwindigkeit (Zugriff). Es kommt durchaus vor, dass ein PC mehrere Festplatten hat (aber nicht umgekehrt).

Sie werden zu einem eigenen Entitätstyp Festplatten. Die Entitäten werden durch den Namen der Festplatte identifiziert und durch die Plattenkapazität und die Zugriffsgeschwindigkeit beschrieben.


Abbildung 2.3-4:

Entitätstyp Festplatten

Der folgende Ausschnitt aus der Spezifikation klärt das Umfeld der im Unternehmen eingesetzten PCs.

- Für jeden PC wird weiterhin festgehalten, in welcher Abteilung er steht (Abteilung), wer ihn nutzt (erfasst über die PersNr) und wann er dort eingerichtet wurde (Einrichtung). Es kommt vor, wenn auch nicht oft, dass ein PC von mehreren Mitarbeitern genutzt wird. Allerdings ist er immer einer einzigen Abteilung zugewiesen.

Umfeld der PC

Betrachten wir zuerst die Angabe der Abteilung, in der er steht. Würden irgendwo die Abteilungen noch weiter beschrieben, müsste ein eigener Entitätstyp für sie eingerichtet werden. Da dies hier nicht der Fall ist, wird Abteilung(sname) zu einem Attribut von PC.

Wie erfassen wir den oben ebenfalls angeführten Einrichtungszeitpunkt? Hätten wir einen Entitätstyp Abteilungen, wäre alles einfach. Wir würden dann den Einrichtungszeitpunkt auf den Beziehungstyp zwischen Abteilungen und PC legen, denn da gehört er semantisch hin. Da hier aber die Abteilungen nicht als Entitätstyp gewünscht werden, bleibt nur die Notlösung, Einrichtung zu einem Attribut von PC zu machen.


Abbildung 2.3-5:

Entitätstyp PC - Version 2

Ähnliche Überlegungen wie bei der Klärung des Standortes (Abteilung) sind bei den Nutzern anzustellen. Sie werden in obigem Text nur über die Personalnummer erfasst. Insoweit wäre PersNr ein Attribut von PC. Da aber im nächsten Abschnitt der Spezifikation die Nutzer weiter modelliert werden, werden sie zu einem eigenen Entitätstyp Nutzer mit den angegebenen Attributen.

- Die Nutzer werden durch ihre Personalnummer (PersNr), den Namen (Name, Vorname) und ihre Telefonnummer (Tel) erfasst.


Abbildung 2.3-6:

Entitätstyp Nutzer

Damit sind die Fragmente des Datenmodells zusammengestellt. Bleibt noch der Zusammenhang, die Beziehungen zwischen den Entitätstypen.

2.4 Zusammenhänge

Die Beziehung zwischen PC und Bildschirmen ist direkt im Text angegeben, bedarf aber der Klärung, ob Einzelgeräte oder Gerätetypen modelliert werden. Auf Seiten der PCs natürlich Einzelgeräte, dies zeigt auch der vorgeschlagene Schlüssel.

Bei den Bildschirmen? Der Schlüssel InvBild deutet an, dass unsere Auftraggeber hier Einzelgeräte modellieren möchten. Damit hätten wir aber Redundanz, wenn wir die Modellierung so belassen wie oben vorgeschlagen und wenn wir einfach einen Beziehungstyp zwischen PC und Bildschirme platzieren. Wenn wir hundert technisch identische Bildschirme kaufen würden, würde unsere Datenbank hundertmal festhalten, dass diese (z.B.) 24 Zoll haben und vom Typ TFT sind.

Wo liegt der Fehler? Ganz einfach, die vier Attribute von Bildschirme beschreiben unterschiedliche Informationsträger. InvBild und SerNr beschreiben Einzelgeräte, die beiden anderen (Zoll und BSTyp) aber die Gruppe der technisch gleichen Geräte, hier Gerätetypen genannt. BSTyp kann als Schlüssel genommen werden. Also muss dieser Entitätstyp in zwei aufgespaltet werden, die aber verknüpft sind (vgl. die folgende Abbildung): Ein bestimmter Bildschirm gehört zu genau einem Gerätetyp, ein Gerätetyp hat mindestens ein zugehöriges Gerät (sonst wäre er in unserer Datenbank nicht erfasst), kann aber beliebig viele haben. Der Fehler resultierte also aus einem Verstoß gegen eine zentrale Regel der ER-Modellierung, dass nur die Attribute zu einem Entitätstyp genommen werden, die genau dessen Entitäten beschreiben.


Abbildung 2.4-1:

Einzelgerät und Gruppe gleichartiger Entitäten als Entitätstypen

Die Beziehung PC_B zwischen Bildschirme und PC muss nun auf Seiten der Bildschirme 1,1 als Min-/Max-Angabe erhalten, da jetzt eine Entität genau einen Bildschirm beschreibt und ein Bildschirm genau einem PC zugeordnet ist. Auf Seiten der PCs erhält sie ebenfalls 1,1, da ja ein PC genau einen Bildschirm hat (vgl. die Gesamtgrafik am Schluss).

Die Beziehung PC_F zwischen PC und Festplatten ergibt sich aus unserer Kenntnis der Semantik dieses Weltausschnitts. Ein PC hat Festplatten, Festplatten sind in genau einem PC (Server-Platten, die mehreren „Clients“ dienen, werden hier nicht berücksichtigt). Der Schlüssel von Festplatten zeigt, dass unsere Auftraggeber hier mit der Modellierung des Gerätetyps zufrieden sind (PlName). Auch die übrigen Attribute beschreiben die Gruppe gleichartiger Platten und nicht Einzelgeräte. Soweit also alles i.O. Die Min-/Max-Angaben ergeben sich wie folgt: Bei den Festplatten muss 1,n (!) stehen, da die Festplatten einer Gruppe (!) natürlich in mehreren Rechnern sein können. Bei den PCs muss ebenfalls 1,n stehen, da jeder PC mindestens eine Platte hat (hier genauer: eine Platte aus mindestens einer Gruppe), u.U. aber Platten aus verschiedenen Gruppen. Z.B. zwei IBM xyz – Platten und eine Seagate abc – Platte. Dies macht deutlich, dass die Modellierung auf Typebene nicht sehr genau ist. Wir wissen mit ihr z.B. nicht, wieviele konkrete Festplatten ein PC hat. Diese Information kann auch nicht auf den Beziehungstyp gelegt werden, da dieser ja Plattentyp und PC verknüpft und z.B. festhält, dass ein PC Platten dreier Typen hat. Die folgende Abbildung zeigt die grafische Umsetzung dieser Überlegungen.

Die Beziehung CD_P zwischen CD-ROM – Laufwerken und PCs ist wie folgt: Der Entitätstyp CD-ROM – Laufwerke modelliert wieder auf Typebene. Damit ist die Min-/Max-Angabe bei den Laufwerken 1,n (da CD-ROM-Laufwerke des gleichen Typs in mehreren PCs sein können) und bei den PCs 0,1 (da nicht jeder PC ein CD-ROM – Laufwerk hat).

Die Beziehung zwischen PCs und Nutzern ist wiederum im spezifizierenden Text festgelegt: „Es kommt vor, wenn auch nicht oft, dass ein PC von mehreren Mitarbeitern genutzt wird.“ Damit ergibt sich bei PC die Angabe 1,n. Durch Nachfrage haben wir herausbekommen, dass umgekehrt ein Nutzer ebenfalls mehrere PCs nutzen kann. Damit ergibt sich dort ebenfalls die Min-/Max - Angabe 1,n.

2.5 Das gesamte ER-Modell

Die folgende Abbildung zeigt das Datenmodell im Zusammenhang.


Abbildung 2.5-1:

Datenmodell PC-Beschaffung