Programming lesson
Datenbankdesign mit E-R-Diagrammen: Schritt-für-Schritt-Tutorial für CSCI 330 Hausaufgabe 4
Lerne, wie du E-R-Diagramme für Automobil- und Paketlieferdatenbanken erstellst – basierend auf typischen Aufgaben aus CSCI 330. Mit praxisnahen Beispielen und aktuellen Bezügen zu KI und Logistik.
Einführung in das Datenbankdesign mit E-R-Diagrammen
Das Entity-Relationship-Modell (E-R-Modell) ist ein zentrales Werkzeug im Datenbankdesign. Es hilft dir, die Struktur einer Datenbank visuell zu planen, bevor du SQL-Tabellen erstellst. In dieser Anleitung zeigen wir dir, wie du E-R-Diagramme für zwei klassische Szenarien entwirfst: eine Automobildatenbank (wie für Toyota) und eine Paketlieferdatenbank (wie für FedEx). Diese Aufgaben ähneln denen in CSCI 330 Datenbanksysteme – Hausaufgabe 4.
Stell dir vor, du arbeitest für einen Autohersteller, der seine Händlerverwaltung und sein Bestellwesen digitalisieren möchte. Oder für einen weltweiten Paketdienst, der Sendungen und Kundenbeziehungen nachverfolgt. Genau solche Projekte sind heute hochaktuell – Logistik-Apps und KI-gestützte Lieferketten sind in aller Munde. Mit den richtigen Datenbankkenntnissen legst du die Grundlage für solche Systeme.
Grundlagen des E-R-Diagramms
Ein E-R-Diagramm besteht aus Entitäten (Objekten), Attributen (Eigenschaften) und Beziehungen (Verknüpfungen). Entitäten werden als Rechtecke dargestellt, Attribute als Ellipsen und Beziehungen als Rauten. Die Kardinalität gibt an, wie viele Instanzen einer Entität mit einer anderen verknüpft sein können (1:1, 1:N, M:N).
In dieser Aufgabe gibt es nur starke Entitätsmengen – jede Entität hat einen eigenen Primärschlüssel. Es gibt keine schwachen Entitäten. Alle Attribute sind einfach und einwertig. Beziehungen haben keine beschreibenden Attribute (außer in Q2). Achte auf die totalen Partizipationen: Manche Entitäten müssen an einer Beziehung teilnehmen – zum Beispiel muss jedes Fahrzeug einem Modell zugeordnet sein.
Szenario 1: Automobildatenbank (Fragen 1)
Entitäten und Attribute
Folgende sechs starke Entitätsmengen sind gegeben:
- Brand: brand_name (Primärschlüssel)
- Model: model_id (Primärschlüssel), name
- Option: option_id (Primärschlüssel), specification
- Dealer: dealer_id (Primärschlüssel), name, address
- Customer: customer_id (Primärschlüssel), name, address
- Vehicle: VIN (Primärschlüssel)
Insgesamt 12 Attribute – genau wie in der Aufgabenstellung gefordert.
Beziehungen und Kardinalitäten
Es gibt fünf binäre Beziehungen:
- Brand hat Model: 1:N (eine Marke hat viele Modelle, jedes Modell gehört zu genau einer Marke). Totale Partizipation auf Seiten von Model: Jedes Modell muss einer Marke zugeordnet sein.
- Model hat Option: 1:N (ein Modell hat mehrere Optionen, jede Option gehört zu genau einem Modell).
- Model ist Basis von Vehicle: 1:N (ein Modell kann die Basis für viele Fahrzeuge sein, jedes Fahrzeug basiert auf genau einem Modell). Totale Partizipation auf Seiten von Vehicle.
- Dealer besitzt Vehicle: 1:N (ein Händler besitzt viele Fahrzeuge, ein Fahrzeug kann höchstens einem Händler gehören – optionale Teilnahme auf Fahrzeugseite).
- Customer besitzt Vehicle: 1:N (ein Kunde kann mehrere Fahrzeuge besitzen, ein Fahrzeug kann höchstens einem Kunden gehören – optional).
Die Kardinalitäten sind alle 1:N. Es gibt keine M:N-Beziehungen. Die beiden totalen Partizipationen liegen bei Model (muss zu Brand gehören) und Vehicle (muss zu Model gehören).
E-R-Diagramm skizzieren
Zeichne die sechs Entitätsrechtecke. Verbinde sie mit den Beziehungsrauten. Notiere die Kardinalitäten (1 oder N) an den Kanten. Unterstreiche die Primärschlüssel in den Attributellipsen. Achte darauf, dass die totalen Partizipationen durch einen doppelten Strich gekennzeichnet werden (z. B. zwischen Model und „hat“-Beziehung zu Brand).
Relationenschemata ableiten
Aus dem E-R-Diagramm ergeben sich folgende Relationenschemata (ohne Optimierung):
- Brand(brand_name)
- Model(model_id, name, brand_name) – brand_name ist Fremdschlüssel auf Brand
- Option(option_id, specification, model_id) – model_id ist Fremdschlüssel auf Model
- Dealer(dealer_id, name, address)
- Customer(customer_id, name, address)
- Vehicle(VIN, model_id, dealer_id, customer_id) – model_id, dealer_id, customer_id sind Fremdschlüssel (dealer_id und customer_id können NULL sein)
Szenario 2: Paketlieferdatenbank (Fragen 2)
Entitäten und Attribute
Hier gibt es drei starke Entitätsmengen:
- Customer: customer_id (Primärschlüssel), name, address
- Packet: packet_id (Primärschlüssel), weight
- Place: place_id (Primärschlüssel), city, country, address
Insgesamt 9 Attribute – exakt wie vorgegeben.
Beziehungen und Kardinalitäten
Es gibt drei binäre Beziehungen. Zwei davon haben beschreibende Attribute:
- Customer sendet Packet: 1:N (ein Kunde kann viele Pakete senden, jedes Paket hat genau einen Sender). Totale Partizipation auf Seiten von Packet. Beschreibendes Attribut: time_sent.
- Customer empfängt Packet: 1:N (ein Kunde kann viele Pakete empfangen, jedes Paket hat genau einen Empfänger). Totale Partizipation auf Seiten von Packet. Beschreibendes Attribut: time_received.
- Packet ist an Place: N:1 (viele Pakete können am selben Ort sein, jedes Paket ist genau einem Ort zugeordnet). Totale Partizipation auf Seiten von Packet.
Beachte: Customer und Packet sind durch zwei separate Beziehungen verbunden (senden und empfangen). Beide haben beschreibende Attribute. Die totalen Partizipationen sind drei: Packet muss einen Sender, einen Empfänger und einen Ort haben.
E-R-Diagramm skizzieren
Zeichne die drei Entitätsrechtecke. Zeichne die Beziehung „sendet“ mit Attribut time_sent, die Beziehung „empfängt“ mit Attribut time_received, und die Beziehung „ist an“ ohne Attribut. Kennzeichne die totalen Partizipationen (doppelter Strich) an den Packet-Seiten aller drei Beziehungen.
Relationenschemata ableiten
Die Relationenschemata lauten:
- Customer(customer_id, name, address)
- Place(place_id, city, country, address)
- Packet(packet_id, weight, sender_id, receiver_id, place_id, time_sent, time_received) – sender_id und receiver_id verweisen auf Customer, place_id auf Place. time_sent und time_received sind die beschreibenden Attribute.
Allgemeine Tipps für die Hausaufgabe
- Überprüfe die Anzahl der Entitäten, Attribute und Beziehungen. Zähle sie genau – in Q1 sind es 6 Entitäten, 12 Attribute, 5 Beziehungen, 2 totale Partizipationen.
- Vergiss nicht, die Primärschlüssel zu unterstreichen. In der Aufgabenstellung wird explizit verlangt: „Please underline the primary key.“
- Gib die Kardinalitäten an den Kanten an. Verwende die Notation (1, N) oder (1,1) und (0,N) je nachdem, ob die Teilnahme optional ist.
- Nutze ein Tool wie draw.io oder Lucidchart für saubere Diagramme. Du kannst sie dann als Bild exportieren und in dein Dokument einfügen.
- Denke an die Dateibenennung: YourLastName-330-HW4.pdf – und lade es rechtzeitig hoch. Keine verspäteten Abgaben werden akzeptiert.
Fazit
Mit diesem Tutorial hast du die Grundlagen, um die E-R-Diagramme und Relationenschemata für CSCI 330 Hausaufgabe 4 zu erstellen. Die Beispiele aus der Automobil- und Logistikbranche zeigen, wie wichtig Datenbankdesign in der Praxis ist – ob für Händlermanagement oder für die Sendungsverfolgung bei DHL, UPS oder Amazon. Wenn du diese Konzepte verstehst, bist du bestens gerüstet für komplexere Datenbankprojekte. Viel Erfolg bei deiner Abgabe!
„Ein gut durchdachtes E-R-Diagramm ist die halbe Miete für eine effiziente Datenbank.“ – Unbekannt