Entities erkennen
Bevor du eine Datenbank erstellst, musst du verstehen, was du speichern willst. Der erste Schritt beim Datenbank-Design ist das Erkennen von Entities (EntitÀten). In diesem Artikel lernst du, wie du aus einer Problemstellung die richtigen Entities herausarbeitest.
Was ist eine Entity?
Eine Entity (deutsch: EntitĂ€t) ist ein Ding oder Objekt aus der realen Welt, ĂŒber das du Informationen speichern möchtest.
Entities sind die Hauptobjekte deiner Anwendung. SpÀter wird aus jeder Entity eine Tabelle in der Datenbank.
Beispiele fĂŒr Entities
In einem Online-Buchladen:
- Kunde - Menschen, die bestellen
- Buch - Produkte, die verkauft werden
- Bestellung - KaufvorgÀnge
- Autor - Menschen, die BĂŒcher schreiben
In einer Schul-Verwaltung:
- SchĂŒler - Lernende
- Lehrer - Lehrende
- Kurs - UnterrichtsfÀcher
- Raum - Klassenzimmer
Wie erkenne ich Entities?
Es gibt eine einfache Faustregel: Entities sind meistens Dinge, Personen oder Objekte â also Wörter, vor die du "der", "die" oder "das" setzen kannst.
Schau dir deine Problemstellung an und markiere alle Dinge, Personen und Objekte. Viele davon sind potenzielle Entities.
Beispiel: Blog-System
Problemstellung:
Markierte Substantive:
- Autor
- Artikel
- Kategorie
- Leser
- Kommentar
Das sind unsere 5 Entities fĂŒr das Blog-System!
Die 3 Fragen zum Erkennen von Entities
Nicht jedes Substantiv ist eine Entity. Stelle dir diese drei Fragen:
1. Muss ich mehrere davon speichern?
Eine Entity kommt normalerweise mehrfach vor.
- â Kunde - Es gibt viele Kunden
- â Buch - Es gibt viele BĂŒcher
- â Shop-Name - Es gibt nur einen Shop (das ist eine Einstellung, keine Entity)
2. Hat es eigene Eigenschaften?
Eine Entity hat mehrere Informationen, die gespeichert werden sollen.
- â Kunde - Hat Name, E-Mail, Adresse, Telefon
- â E-Mail - Ist nur eine Eigenschaft vom Kunden, keine eigene Entity
3. Ist es ein eigenstÀndiges Objekt?
Eine Entity existiert unabhÀngig und hat eine eigene IdentitÀt.
- â Bestellung - Existiert als eigenstĂ€ndiger Vorgang
- â Bestelldatum - Ist nur eine Eigenschaft der Bestellung
Praktisches Beispiel: Bibliothek
Lass uns ein vollstĂ€ndiges Beispiel durchgehen. Wir wollen eine Datenbank fĂŒr eine Bibliothek erstellen.
Schritt 1: Problemstellung analysieren
Anforderungen:
Schritt 2: Dinge und Objekte markieren
Welche Dinge werden erwÀhnt?
- Buch (das Buch)
- Mitglied (das Mitglied)
- Autor (der Autor)
- Genre (das Genre)
- Ausleihe (die Ausleihe)
Schritt 3: PrĂŒfen mit den 3 Fragen
Schritt 4: Finale Entity-Liste
Unsere 5 Entities fĂŒr die Bibliothek:
- Buch
- Mitglied
- Autor
- Genre
- Ausleihe
Jede dieser Entities wird spÀter eine Tabelle in der Datenbank.
HĂ€ufige Fehler beim Erkennen von Entities
Fehler 1: Eigenschaften als Entities
â Falsch: "E-Mail" als Entity
â Richtig: E-Mail ist eine Eigenschaft von "Kunde"
Eine E-Mail-Adresse allein hat keine weiteren Eigenschaften und existiert nicht eigenstÀndig.
Fehler 2: Zu viele Entities
â Falsch: "Vorname", "Nachname", "StraĂe", "Stadt" als separate Entities
â Richtig: Das sind alles Eigenschaften von "Kunde"
Nicht jedes Detail braucht eine eigene Tabelle.
Fehler 3: Verben als Entities
â Falsch: "Kaufen", "Speichern", "Anmelden" als Entities
â Richtig: Das sind Aktionen, keine Objekte
Ausnahme: Manchmal wird aus einem Verb ein Substantiv. "Bestellen" â "Bestellung" ist eine Entity.
Fehler 4: Zu wenige Entities
â Falsch: Alles in eine "Daten"-Entity packen
â Richtig: Trenne logisch zusammenhĂ€ngende Objekte
Eine Tabelle "Daten" mit Kunden, Produkten und Bestellungen gemischt ist keine gute Idee.
Ăbung: Fitness-Studio
Teste dein VerstÀndnis! Lies die Problemstellung und identifiziere die Entities.
Welche Entities erkennst du? Ăberlege selbst, bevor du weiterliest.
Lösung
Mögliche Entities:
- Mitglied - Die Kunden des Studios
- Kurs - Angebotene Trainings (Yoga, Spinning, etc.)
- Trainer - Die Kursleiter
- Raum - Die verschiedenen Studios/RĂ€ume
- Mitgliedschaft - Die Tarif-Typen
- Anmeldung/Buchung - Verbindet Mitglieder mit Kursen
Entity vs. Attribut: Die Grenze
Manchmal ist es nicht eindeutig, ob etwas eine Entity oder nur eine Eigenschaft (Attribut) sein sollte.
Beispiel: Adresse
Option 1: Adresse als Textfeld bei Kunde
- Einfacher
- Reicht, wenn nur eine Adresse pro Kunde
Option 2: Adresse als eigene Entity
- Flexibler
- Besser, wenn Kunden mehrere Adressen haben (Rechnungsadresse, Lieferadresse)
- Adresse kann strukturiert werden (StraĂe, PLZ, Stadt als separate Felder)
Von Entities zu Tabellen
Jede Entity wird spÀter zu einer Tabelle in deiner Datenbank:
Entity-Typ vs. Entity-Instanz
Der Begriff "Entity" kann zwei Dinge bedeuten. Das fĂŒhrt manchmal zu Verwirrung:
1. Entity-Typ (die Kategorie)
Das ist das, was wir in diesem Artikel meinen:
- Eine Kategorie von Dingen: "Kunde", "Buch", "Bestellung"
- Das Konzept, ĂŒber das du Daten speichern willst
- Wird zu einer Tabelle in der Datenbank
Wenn wir sagen "identifiziere die Entities", meinen wir Entity-Typen.
2. Entity-Instanz (das konkrete Beispiel)
Eine Entity-Instanz ist ein konkretes Beispiel eines Entity-Typs:
- Ein bestimmter Kunde: "Anna MĂŒller"
- Ein bestimmtes Buch: "Der Prozess"
- Eine bestimmte Bestellung: "Bestellung Nr. 1001"
Wird zu einer Zeile/Datensatz in der Tabelle.
Manche Lehrer sagen deshalb: "Eine Entity ist ein Tabelleneintrag." Das ist korrekt â sie meinen dann eine Entity-Instanz.
Visualisierung
Entity-Typ "Kunde" â Tabelle kunden
- Entity-Instanz: Anna MĂŒller â Zeile 1 (Datensatz 1)
- Entity-Instanz: Tom Schmidt â Zeile 2 (Datensatz 2)
- Entity-Instanz: Lisa Weber â Zeile 3 (Datensatz 3)
Zusammenfassung
Entities sind die Grundbausteine deiner Datenbank:
- Eine Entity ist ein Objekt, ĂŒber das du Informationen speichern möchtest
- Entities sind meistens Substantive in deiner Problemstellung
- PrĂŒfe mit 3 Fragen: Mehrere? Eigenschaften? EigenstĂ€ndig?
- Vermeide Fehler: Keine Eigenschaften als Entities, keine Verben, richtige GranularitÀt
- Jede Entity wird spÀter eine Tabelle in der Datenbank
Im nĂ€chsten Artikel lernst du, wie du fĂŒr jede Entity die passenden Attribute (Eigenschaften) definierst.