Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:datenbanken:darstellungsweise:start [11.11.2022 10:39] – [Relationales Modell] Frank Schiebel | faecher:informatik:oberstufe:datenbanken:darstellungsweise:start [03.04.2025 13:25] (aktuell) – Frank Schiebel | ||
---|---|---|---|
Zeile 2: | Zeile 2: | ||
===== ER-Diagramme ===== | ===== ER-Diagramme ===== | ||
- | |||
Eine Möglichkeit, | Eine Möglichkeit, | ||
Zeile 12: | Zeile 11: | ||
Eine Universität bietet Veranstaltungen an, die an einem bestimmten Wochentag in einem | Eine Universität bietet Veranstaltungen an, die an einem bestimmten Wochentag in einem | ||
bestimmten Zeitblock in einem bestimmten Raum stattfinden. Jede Veranstaltung wird | bestimmten Zeitblock in einem bestimmten Raum stattfinden. Jede Veranstaltung wird | ||
- | von genau einer Dozentin angeboten, von dem Nachname, Vorname und eine eindeutige AngestelltenId bekannt sind. | + | von genau einer Dozentin angeboten, von der Nachname, Vorname und eine eindeutige AngestelltenId bekannt sind. |
Ein Inhaltsmodul umfasst alle Veranstaltungen, | Ein Inhaltsmodul umfasst alle Veranstaltungen, | ||
- | eine eindeutige Modulnummer, | + | eine eindeutige Modulnummer, |
Studierende besuchen Veranstaltungen. Studierende haben einen Namen und Vornamen und eine eindeutige Matrikelnummer. | Studierende besuchen Veranstaltungen. Studierende haben einen Namen und Vornamen und eine eindeutige Matrikelnummer. | ||
Zeile 28: | Zeile 27: | ||
Anmerkungen: | Anmerkungen: | ||
- | * Attribute, die einen Primärschlüssel darstellen werden im ER Diagramm unterstrichen, | + | * Attribute, die einen Primärschlüssel darstellen, werden im ER Diagramm unterstrichen, |
* Man hätte '' | * Man hätte '' | ||
* Die Veranstaltungen haben keinen offensichtlichen Primärschlüssel. Hier könnte ein Surrogatschlüssel '' | * Die Veranstaltungen haben keinen offensichtlichen Primärschlüssel. Hier könnte ein Surrogatschlüssel '' | ||
++++ | ++++ | ||
- | Wir betrachten ein weiteres Beispiel: | + | Wir betrachten ein **weiteres Beispiel**: |
{{ : | {{ : | ||
Zeile 45: | Zeile 44: | ||
---- | ---- | ||
- | Da jeder Fahrzeugbesitz mit einer An- oder Abmeldung des KFZ einhergeht, macht es Sinn, die Informationen Kennzeichen, | + | Da jeder Fahrzeugbesitz mit einer An- oder Abmeldung des KFZ einhergeht, macht es Sinn, die Informationen Kennzeichen, |
===== Relationales Modell ===== | ===== Relationales Modell ===== | ||
Zeile 92: | Zeile 92: | ||
**Kraftfahrzeug**(__FahrgestellNR__, | **Kraftfahrzeug**(__FahrgestellNR__, | ||
**FahrzeugTyp**(__TypCode__, | **FahrzeugTyp**(__TypCode__, | ||
- | **besitzt**(HalterID↑, FahrgestellNR↑, Anmeldedatum, | + | **besitzt**(__HalterID↑__, __FahrgestellNR↑__, Anmeldedatum, |
- | **istEin**(FahrgestellNR↑,HalterID↑) \\ | + | **istEin**(__FahrgestellNR↑__,__TypCode↑__) \\ |
++++ | ++++ | ||
Zeile 109: | Zeile 109: | ||
<WRAP center round important 95%> | <WRAP center round important 95%> | ||
- | Man benötigt **keine eigene Beziehungs-Tabelle**: | + | Für folgende Beziehungen |
* Für 1:1 Beziehungen - diese können sogar in eine Tabelle zusammengefasst werden. | * Für 1:1 Beziehungen - diese können sogar in eine Tabelle zusammengefasst werden. | ||
- | * Für 1:n Beziehungen, | + | * Für 1:n Beziehungen, |
**Für n:m Beziehungen benötigt man immer eine eigene Beziehungstabelle** | **Für n:m Beziehungen benötigt man immer eine eigene Beziehungstabelle** | ||
Zeile 133: | Zeile 133: | ||
* Ein Flugzeug hat einen bestimmten Typ, z.B. " | * Ein Flugzeug hat einen bestimmten Typ, z.B. " | ||
- | * Flugzeuge legen Flugstrecken zurück. Jede Flugstrecke hat eine Flugnnummer, | + | * Flugzeuge legen Flugstrecken zurück. Jede Flugstrecke hat eine Flugnnummer, |
* Flugstrecken führen von einem Startflughafen zu einem Zielflughafen, | * Flugstrecken führen von einem Startflughafen zu einem Zielflughafen, | ||
* Passagiere haben einen Namen und Vornamen. Sie buchen Flugstrecken. | * Passagiere haben einen Namen und Vornamen. Sie buchen Flugstrecken. | ||
Zeile 141: | Zeile 141: | ||
Aufgaben | Aufgaben | ||
- | * Erstelle zunächst ein ER-Diagramm der Miniwelt | + | * Erstelle zunächst ein ER-Diagramm der Miniwelt. Erstelle nicht unnötig viele separate Entitäten, sondern beschränke dich auf die nötigen, um die gegebene Miniwelt sinnvoll modellieren zu können. |
* Überführe das ER-Diagramm in ein relationales Datenbankschema | * Überführe das ER-Diagramm in ein relationales Datenbankschema | ||
* Überlege dir, ob der " | * Überlege dir, ob der " | ||
+ | |||
+ | ===== Alternative grafische Darstellung: | ||
+ | |||
+ | Eine weiter Möglichkeit, | ||
+ | |||
+ | {{ .: | ||
+ | |||
+ | |||
+ | * Jede Entität wird als Objekt dargestellt | ||
+ | * Die Attribute werden den Objekten in gewohnter Weise wie bei der Darstellung von Objekten bei der objektorientierten Programmierunm zugeordnet. | ||
+ | * Primärschlüssel werden unterstrichen | ||
+ | * Fremdschlüssel werden **nicht** als Attribute angegeben | ||
+ | * Wenn eine Verknüpfungstabelle nötig ist (n-m-Beziehung oder - wie bei den Autos - zusätzliche Attribute) wird diese als weiteres Objekt mit den nötigen Attributen angegeben und mit einer gestrichelten Linie der Beziehung zwischen den anderen Entitäten zugeordnet. | ||
+ | |||
+ | Ein Vorteil der UML Darstellung ist, dass man sofort erkennen kann, wieviele Tabellen zur Implementierung nötig sind, bei den ER-Diagrammen muss man sehr genau darauf achten, ob eine Beziehungsraute eine weitere Tabelle erforderlich macht - entweder wenn weitere Attribute nötig sind, oder wenn man eine n-m-Beziehung modellieren möchte. | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A7) === | ||
+ | |||
+ | Überführe die Datenbankmodelle aus Aufgabe 5 und Aufgabe 6 in ein UML-Diagramm. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Material ==== | ||
+ | |||
+ | {{simplefilelist> |