# 3.2 Datenmodellierung ## ER-Modell (Entity-Relationship) Das ER-Modell ist ein **konzeptionelles Datenmodell** zur Beschreibung von Datenstrukturen. ### Grundbegriffe ``` ER-Modell - Komponenten ├── Entitäten (Entities) ├── Beziehungen (Relationships) └── Attribute (Eigenschaften) ``` ### Entitäten Eine Entität ist ein **Objekt der realen Welt**, das eindeutig identifizierbar ist. | Entität | Beispiel | |---------|----------| | Person | Kunde, Mitarbeiter | | Ding | Produkt, Auto | | Konzept | Bestellung, Rechnung | ### Attribute Attribute beschreiben **Eigenschaften** von Entitäten. ``` Attribute - Typen ├── Einfachwertig ├── Mehrwertig (z.B. Telefonnummern) ├── Zusammengesetzt (z.B. Adresse) └── Abgeleitet (z.B. Alter aus Geburtsdatum) ``` ### Beziehungen (Relationships) Beziehungen verknüpfen Entitäten miteinander. ``` Beziehungsgrade ├── 1:1 (One-to-One) ├── 1:n (One-to-Many) └── n:m (Many-to-Many) ``` --- ## ER-Diagramm ### Symbole ``` Notation (Chen-Notation) Rechteck → Entität Raute → Beziehung Ellipse → Attribut Unterstrich → Primärschlüssel Doppel ellipse → Mehrwertiges Attribut ``` ### Kardinalitäten | Symbol | Bedeutung | |--------|-----------| | 1 | Genau eins | | N | Eins bis viele | | 0..1 | Null bis eins | | 0..N | Null bis viele | ### Beispiel: Webshop ``` ER-Diagramm - Webshop Kunde ──────── Bestellung ──────── Produkt (1) (1..n) (1) (1..n) (1) (1..n) Kunde: {Kunden_ID (PK), Name, E-Mail, Adresse} Bestellung: {Bestell_ID (PK), Kunden_ID (FK), Datum, Status} Produkt: {Produkt_ID (PK), Name, Preis, Kategorie} BestellPosition: {Bestell_ID (FK), Produkt_ID (FK), Menge} ``` --- ## Normalisierung Normalisierung reduziert **Redundanz** und vermeidet **Anomalien**. ### Normalformen ``` Normalisierungsstufen ├── 1. Normalform (1NF) ├── 2. Normalform (2NF) ├── 3. Normalform (3NF) └── Boyce-Codd-Normalform (BCNF) ``` ### 1. Normalform (1NF) **Bedingung**: Jedes Attribut enthält nur atomare (unteilbare) Werte. ``` Nicht 1NF: Bestellung | Produkte -----------|------------------ 1 | A, B, C 1NF: Bestellung | Produkt -----------|---------- 1 | A 1 | B 1 | C ``` ### 2. Normalform (2NF) **Bedingung**: 1NF erfüllt + jedes Nicht-Schlüssel-Attribut ist vom gesamten Primärschlüssel abhängig. ### 3. Normalform (3NF) **Bedingung**: 2NF erfüllt + keine transitiven Abhängigkeiten. ``` Nicht 3NF: {Student_ID, Kurs_ID} → {Note} → {Bewertungstext} 3NF: {Student_ID, Kurs_ID} → {Note} {Note} → {Bewertungstext} ``` --- ## Übung: Datenmodell erstellen ### Aufgabenstellung Erstelle ein ER-Diagramm für eine Bibliothek: - Bücher können ausgeliehen werden - Kunden leihen Bücher aus - Ein Buch hat mehrere Exemplare ### Lösung ``` Entitäten: - Kunde (Kunden_ID, Name, Adresse) - Buch (ISBN, Titel, Autor, Verlag) - Exemplar (Exemplar_ID, ISBN, Status) - Ausleihe (Ausleihe_ID, Kunden_ID, Exemplar_ID, Datum) Beziehungen: - Kunde (1) ─── (0..n) Ausleihe - Exemplar (1) ─── (0..1) Ausleihe - Buch (1) ─── (1..n) Exemplar ``` --- ## Querverweise - [[LF3-01-Datenbankgrundlagen|Zurück: Datenbankgrundlagen]] - [[LF3-03-SQL-Grundlagen|Nächstes Thema: SQL-Grundlagen]] --- *Stand: 2024*