Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
faecher:informatik:oberstufe:datenbanken:darstellungsweise:start [02.02.2022 19:30] – [Relationales Modell] sbel | faecher:informatik:oberstufe:datenbanken:darstellungsweise:start [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Darstellungsweisen ====== | ||
- | ===== ER-Diagramme ===== | ||
- | |||
- | |||
- | Eine Möglichkeit, | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A1) === | ||
- | |||
- | Eine Universität bietet Veranstaltungen an, die an einem bestimmten Wochentag in einem | ||
- | 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. | ||
- | |||
- | Ein Inhaltsmodul umfasst alle Veranstaltungen, | ||
- | eine eindeutige Modulnummer, | ||
- | |||
- | Studierende besuchen Veranstaltungen. Studierende haben einen Namen und Vornamen und eine eindeutige Matrikelnummer. | ||
- | |||
- | * Erstelle ein Entity-Relationship-Diagramm, | ||
- | * Kennzeichne die Kardinalitäten und die Primärschlüssel. | ||
- | * Erkennst du ein Problem? Wie könntest du es lösen? | ||
- | |||
- | ++++ Lösungsvorschlag | | ||
- | {{ : | ||
- | |||
- | Anmerkungen: | ||
- | |||
- | * Attribute, die einen Primärschlüssel darstellen werden im ER Diagramm unterstrichen, | ||
- | * Man hätte '' | ||
- | * Die Veranstaltungen haben keinen offensichtlichen Primärschlüssel. Hier könnte ein Surrogatschlüssel '' | ||
- | ++++ | ||
- | |||
- | Wir betrachten ein weiteres Beispiel: | ||
- | |||
- | {{ : | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A2) === | ||
- | |||
- | * Beschreibe stichwortartig, | ||
- | * Erläutere, welche Bedeutung die Attribute an der Beziehungsraute '' | ||
- | |||
- | ---- | ||
- | Da jeder Fahrzeugbesitz mit einer An- oder Abmeldung des KFZ einhergeht, macht es Sinn, die Informationen Kennzeichen, | ||
- | |||
- | ===== Relationales Modell ===== | ||
- | |||
- | |||
- | Wenn man das ER-Modell in ein relationales Modell überführen möchte, überlegt man sich, welche Tabellen mit welchen Spalten man erstellen würde, um die Datenbank zu modellieren. | ||
- | |||
- | <WRAP center round tip 95%> | ||
- | **Grundregel: | ||
- | Jede Entität und jede Beziehung wird in Form einer eigenen Tabelle (Relationenschema) abgebildet. Eine | ||
- | Beziehungstabelle hat als Attribute die Primärschlüssel der beteiligten Tabellen (als Fremdschlüssel), | ||
- | </ | ||
- | |||
- | === Schreibweise === | ||
- | |||
- | Das **relationale Datenbankschema** einer Datenbank (Darstellung als Tabellen) besteht für jede Tabelle aus einer Zeile: | ||
- | |||
- | **TabellenName**(Attribut1, | ||
- | |||
- | Dabei | ||
- | * stehen in den Klammer //alle// Attribute, die in der Tabelle dargestellt werden. | ||
- | * Primärschlüssel werden __unterstrichen__ | ||
- | * **Fremdschlüssel** sind mit einem **Pfeil nach oben** (↑) markiert((manchmal werden Fremdschlüssel auch gestrichelt unterstrichen)) | ||
- | |||
- | Das **relationale Datenbankschema** einer Datenbank hat also genau so viele solche Zeilen, wie die Datenbank Tabellen hat. Diese Darstellung eignet sich hervorragend, | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A3) === | ||
- | |||
- | Überführe das ER-Modell der {{ : | ||
- | |||
- | ++++ Lösungshinweis 1 | | ||
- | Starte mit der überlegung, | ||
- | |||
- | Fahrzeughalter(...\\ | ||
- | Kraftfahrzeug(...\\ | ||
- | FahrzeugTyp(...\\ | ||
- | besitzt(...\\ | ||
- | istEin(...\\ | ||
- | |||
- | ++++ | ||
- | |||
- | ++++ Lösungsvorschlag | | ||
- | **Fahrzeughalter**(__HalterID__, | ||
- | **Kraftfahrzeug**(__FahrgestellNR__, | ||
- | **FahrzeugTyp**(__TypCode__, | ||
- | **besitzt**(HalterID↑, | ||
- | **istEin**(FahrgestellNR↑, | ||
- | ++++ | ||
- | |||
- | Wenn man die Lösung genauer betrachtet((Bitte aufklappen!)), | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A4) === | ||
- | |||
- | Kannst du eine Regel formulieren, | ||
- | |||
- | ++++ Lösung | | ||
- | Wenn die 1:n Beziehung keine eigenen Attribute hat, kann man sie durch einen direkte Beziehung der beiden Tabellen modellieren und benötigt keine eigene " | ||
- | ++++ | ||
- | |||
- | <WRAP center round important 95%> | ||
- | Man benötigt **keine eigene Beziehungs-Tabelle**: | ||
- | |||
- | * Für 1:1 Beziehungen - diese können sogar in eine Tabelle zusammengefasst werden. | ||
- | * Für 1.n Beziehungen, | ||
- | |||
- | **Für n:m Beziehungen benötigt man immer eine eigene Beziehungstabelle** | ||
- | </ | ||
- | |||
- | -> [[..nm_beziehungen: | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A5) === | ||
- | Erstelle ein relationales Datenbankschema zum {{ : | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A6) === | ||
- | |||
- | {{ : | ||
- | |||
- | Eine Fluggesellschaft speichert alle Buchungen der Passagiere. Für das Vielfliegerprogramm | ||
- | |||
- | * Ein Flugzeug hat einen bestimmten Typ, z.B. " | ||
- | * Flugzeuge legen Flugstrecken zurück. Jede Flugstrecke hat eine Flugnnummer, | ||
- | * Flugstrecken führen von einem Startflughafen zu einem Zielflughafen, | ||
- | * Passagiere haben einen Namen und Vornamen. Sie buchen Flugstrecken. | ||
- | * Vielflieger sind Passagiere, die häufig fliegen und an " | ||
- | |||
- | |||
- | Aufgaben | ||
- | |||
- | * Erstelle zunächst ein ER-Diagramm der Miniwelt | ||
- | * Überführe das ER-Diagramm in ein relationales Datenbankschema | ||
- | * Überlege dir, ob der " |