[S12L4] DB Modeling Flashcards
Was ist normalization?
-Sorgt dafür das Daten in der DB performant, nicht redundant und organisiert strukturiert sind
Welche Eigenschaften erfüllt eine DB die normalisiert ist?
- Jeder Datensatz hat einen PrimaryKey
- Keine Felder werden wiederholt
- Alle Felder refernzieren direkt zu den Key Daten
- Jeder Feld eines Datensatzes enhält ein einzigen Dateninhalt
- Es gibt keine redundanten Datensätze
Was ist die Konsequenz von Normalization?
-Es werden die Daten in viele verschiedene Tables aufgesplittet werden
Was für Beziehungen zwischen Tables gibt es?
- One-To-Many
- Many-to-Many
- One-To-One
Was ist eine One-To-Many Beziehung?
- Users to Posts, ein User kann viele Posts haben aber ein Post hat nur einen User
- Foot to Toes
- Forrest to Trees
Was ist eine Many-to-Many Beziehung?
- Rockband-Festival, Eine Bank spielt auf vielen Festivals und ein Festivals kann viele Rockbands haben
- Writers und Magazines, ein Writer kann für viele Magazine schreiben und ein Magazin kann viele Writer haben
Was ist eine One-To-One Beziehung?
- Bürger und Sozialversicherungsnumer, Ein Bürger hat eine Sozialversicherung und eine Sozialversicherungsnummer identifiziert einen Bürger
- Haus und Stromrechnung, ein Haus hat eine Stromrechnung und eine Stromrechnung gehört zu einem Haus
Wie kann eine One-To-Many Beziehung in Tables gesplitted werden?
FARMS
- farm_id
- farm_name
RANCHERS
- rancher_id
- rancher_name
- farm_id
Wie kann eine Many-to-Many Beziehung in Tables gesplitted werden?
- Zwischentabelle wird benötigt
- Das Mapping der zwei Tabellen in der Zwischentabelle ist durch jeden Datensatz unique
FARMS
- farm_id
- farm_name
ANIMALS
- animal_id
- type
FARM_ANIMALS
- farm_id
- animal_id
Wie kann eine One-To-One Beziehung in Tables gesplitted werden?
-ForeignKey muss unique sein um 1:1 Beziehung einzuhalten
FARMS
- farm_id
- farm_name
BUDGETS
- budget_id
- ann_revenue
- farm_id(unique)
Wie erstellt man einen Foreign Key in knex?
.tbl.integer('farm_id') .unsigned() .notNullable() .references('id') .inTable('farms')
Was hat man in einer Datenbank wenn diese nicht normalisiert ist?
-Annomalien (Redundanzen
Sind Datenmodelle für eine App immer gleich?
- Nein, Datenmodelle können davon abhängen wie das System genutzt wird
- Ein Reportingsystem z:B. macht Sinn mit redundanten Daten, damit es schneller funktioniert
Was ist ein CompositKey?
- Ein Primarykey, welcher aus Daten von 2-3 anderen Tables zusammengesetzt besteht
- Es ist trotzdem ein Unique PrimaryKey!
Was ist Abstraktion in Software?
- Abstraction is like sculpting. You are removing everything that is in the way of the stuff that you need to know.
- You think of a concept