Entity Relationship Model (ERM) Eine Einführung am Beispiel und ein Blick in die Praxis. Vortragsgruppe: Michael Grau, Gunther Gruber, Lars Hechmann, Wolfgang Pauli, Oliver Ruloff
Praxis: ein Beispiel von A-Z Anfang: Idee/Ziel, Anforderungen Idee/Ziel des Beispiels: die Dokumente unseres „ExDigSim“ in einer Datenbank abspeichern Schritt 1: Modellierung der Idee als ERM Schritt 2: Implementierung der Datenbank Schritt 3: Datenverwendung (Clients)
Anforderungen bzw. zu speichernde Informationen die Bausteine selbst Verbindungen unter den Bausteinen Bausteine, die aus mehreren anderen zusammengesetzt sind Bausteine, die (nur) durch eine Wertetabelle definiert sind Logische Zustände in der Schaltung „zukünftige“ Zustände wegen Latenzzeit (Schaltungshazards simulieren)
Bausteine, Verbindungen, Zustände eindeutige IDs, hier A, B und C Typische Attribute: Anzahl der Eingänge und Ausgänge Verbindungen: Ausgang zeigt auf verbundenen Eingang Zustände: z.B. A.A2 - C.E2 ist EIN Zustand; Modell: speichere Zustände in Eingängen; jeder Eingang ist ein „Zustandspunkt“
Baustein implementiert durch andere Bausteine Drei 2-fach-UND-Gatter ergeben ein 4-faches. „Implementierungs-schaltung“
Mögliche Realisierung unserer Anforderungen durch: Bausteine: eigene ID, Spalten für Eigenschaften, u.a. „VaterBausteinID“ Zustandspunkte := alle Punkte in der Schaltung, die einen logischen Zustand haben können (Eingänge der Bausteine) (Knoten des gerichteten Baustein-Graphen) Baustein-Verbindungen: Welcher Ausgang ist mit welchem Zustandspunkt (=Eingang des nächsten Bausteins) verbunden? Zustandsumschalter := recht einfache Dinger, die sich merken, nach welcher Latenzzeit ein neuer Zustand im Punkt zu realisieren ist
ER-Diagramm / Notation Graphische Repräsentation von Entitätstypen, Beziehungstypen und ihre Attribute durch einen Graphen Ein Rechteck repräsentiert einen Entitätstyp Ellipsen repräsentieren Attribute Sind über ungerichtete Graphen mit dem Entitätstyp verbunden – Schlüsselattribute werden unterstrichen (PK) Ein Beziehungstyp wird über eine Raute repräsentiert- Beziehungstypen werden mit ihrem Entitätstyp durch Kanten verbunden Die Kanten werden mit der Funktionalität des in der Beziehung auftretenden Entitytyps gekennzeichnet Bei 1:1 Beziehungen besitzen beide Kanten das Symbol 1 Bei 1:n Beziehungen wird die Kante „von“ mit 1 und „nach“ mit n gekennzeichnet Bei n:m Beziehungen wird n der einen und m der anderen Kante zugeordnet
Eine Entität: Bausteine PK BausteinID Int AnzahlEingänge AnzahlAusgänge VaterBausteinID Beschreibung text Stellt Tabelle dar PK=Primary Key (unterstrichen) Fettruck darf nicht NULL sein Attribute sind Spalten der späteren Tabelle
Entität: Zustandspunkte und Bausteinverbindungen PK ZustandpunktID Int FK BausteinID NummerDesEingangs Baustein-Verbindungen PK, FK BausteinID Int PK NummerDesAusgangs ZustandspunktID
Zwei verbundene Entitäten Bausteine PK BausteinID Int AnzahlEingänge AnzahlAusgänge VaterBausteinID Beschreibung text 1 Baustein hat Eingänge n Zustandspunkte PK ZustandpunktID Int FK BausteinID NummerDesEingangs
ER-Modell 1 hat 1 n 1 hat hat n 1 hat 1 hat 1 n n Bausteine PK BausteinID Int AnzahlEingänge AnzahlAusgänge VaterBausteinID Beschreibung text hat 1 n 1 Wertetabelleneinträge PK EintragID Int FK BausteinID Eingabewerte Text Ausgabewerte Ausgabelatenzen hat hat n Zustandspunkte PK ZustandpunktID Int FK BausteinID NummerDesEingangs 1 hat 1 hat Baustein-Verbindungen PKFK BausteinID Int PK NummerDesAusgangs ZustandspunktID 1 n Zustandsumschalter PK ZustandsumschalterID Int FK ZustandspunktID Zielzustand Bit VerbleibendeLatenzzeit n
Beispiel: Ein Dreifach UND-Gatter in einer Microsoft Access Datenbank Guni
Drei Entitäten Entitäten sind die Tabellen
Attribute der Baustein-Entität 1 3 -1 2 0 = Vaterbaustein
Die Eingänge der Bausteine 210 214 211 1 212 215 3 213 2 200 201 202 203 Vaterbaustein = 0 Jedem UND-Gatter sind zwei Eingänge zugeordnet Dem zusammengesetzten Baustein sind 4 Eingänge zugeordnet
Die Baustein-Verbindung 1 214 2 3
Primary Keys Primary Keys sind die eineindeutigen Namen der 1 3 2 0 (Vaterbaustein) Primary Keys sind die eineindeutigen Namen der Einträge in der Tabelle
Eine 1zuN-Beziehung foreign keys… Jeder Baustein hat N Zustandspunkte
Eine 1zu1 Verbindungstabelle
Eine View: Datenrekombination Einfaches Beispiel: Eingänge des Vaters SELECT Zustandspunkte.BausteinID, Zustandspunkte.ZustandsID FROM Zustandspunkte WHERE (((Zustandspunkte.BausteinID)=0));
Eine View: Datenrekombination
Praxisblick – Modellierung
Praxisblick – Datenbankserver
Praxisblick – Access FrontEnd Unser ExDigSim als Client. Oder natürlich: Unser ExDigSim als Client.
3 Gute Gründe die MySql Datenbank unter Linux zu benutzen Sie ist kostenlos Jeder kann den Programmcode lesen www.mysql.com Guni