Zum Hauptinhalt springen

Logische Entwurfsebene

Entitäten

  • Jede Entität wird in einem eigenen Relationenschema (Tabelle) abgebildet
  • Attribute werden zu Spalten

Relationen

  • n:m-Beziehungen in einem Relationenschema: Primärschlüssel aus Primärschlüsseln der betiligten Entitäten.
  • 1:1-, 1:n-, n:1-Beziehungen: ohne eigene Tabelle → werden an Tabellen einer der Entitäten angefügt

n:m als Tabelle

n-m

1:n als Tabelle

1-n

1:1 als Tabelle

1-1

relationales Modell

Kurzschreibweise: pokemon(pokedex-Nr., Name, Kategorie, ↑Trainer-ID)
→ Primary-Key = Attribut
→ Foreign-Key = ↑Fremdattribut

relationales_modell

Datentypen

  • Integer (4, 20, 420)
  • Float (4.3, 10.9) ← Wichtig: nur Punkt und kein Komma → sonst ein Char/ String
  • Boolean (True/ False)
  • Char/ Zeichenkette (Hallo, 10,4)
  • Date (YYYY-MM-DD)

Datentypen in SQL-Lite

  • NULL: Der Wert ist NULL
  • Integer: Der Wert ist eine Ganzzahl (1, 4, 3)
  • Real: Gleitkommazahl/ Floating Point (0.3, 10.6, 100.69)
  • Numeric: definiert eine numerische Spalte, in der der Wert ein festes Dezimalkomma hat (Irgendwie gleich wie Datentyp Real)
  • Text: Text String. ("Hallo")
  • Blob: Daten werden genauso gespeichert, wie sie eingegeben wurden

Ein Problem, über das ich gestolpert bin:

Bei der Sortierung von Datensätzen in einer Datenbank, wo die Daten Gleitkommazahlen sind (10,4 , 20,9), jedoch als String und mit KOMMA gespeichert wurden, werden diese nicht richtig sortiert bei einer SQL-Anfrage. Es wird nur nach der erste Zahl sortiert, wobei als Ergebnis 9,7 > 10,4, da 9 größer als 1 ist. Bei Datentyp Float besteht dieses Problem nicht und es kann auch eindeutig zwischen Zahlen mit der gleichen ersten Stelle differenziert werden.