[S12L4] DB Modeling Flashcards

1
Q

Was ist normalization?

A

-Sorgt dafür das Daten in der DB performant, nicht redundant und organisiert strukturiert sind

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Welche Eigenschaften erfüllt eine DB die normalisiert ist?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist die Konsequenz von Normalization?

A

-Es werden die Daten in viele verschiedene Tables aufgesplittet werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Was für Beziehungen zwischen Tables gibt es?

A
  • One-To-Many
  • Many-to-Many
  • One-To-One
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Was ist eine One-To-Many Beziehung?

A
  • Users to Posts, ein User kann viele Posts haben aber ein Post hat nur einen User
  • Foot to Toes
  • Forrest to Trees
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Was ist eine Many-to-Many Beziehung?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was ist eine One-To-One Beziehung?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Wie kann eine One-To-Many Beziehung in Tables gesplitted werden?

A

FARMS

  • farm_id
  • farm_name

RANCHERS

  • rancher_id
  • rancher_name
  • farm_id
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wie kann eine Many-to-Many Beziehung in Tables gesplitted werden?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wie kann eine One-To-One Beziehung in Tables gesplitted werden?

A

-ForeignKey muss unique sein um 1:1 Beziehung einzuhalten

FARMS

  • farm_id
  • farm_name

BUDGETS

  • budget_id
  • ann_revenue
  • farm_id(unique)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wie erstellt man einen Foreign Key in knex?

A
.tbl.integer('farm_id')
.unsigned()
.notNullable()
.references('id')
.inTable('farms')
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was hat man in einer Datenbank wenn diese nicht normalisiert ist?

A

-Annomalien (Redundanzen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Sind Datenmodelle für eine App immer gleich?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was ist ein CompositKey?

A
  • Ein Primarykey, welcher aus Daten von 2-3 anderen Tables zusammengesetzt besteht
  • Es ist trotzdem ein Unique PrimaryKey!
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was ist Abstraktion in Software?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wie geht man bei einer Gespräch mit Stake Holdern für Requirementes vor?

A
  • Nouns heraushören
  • Hören was ihnen wichtig ist und woraus sie wert legen
  • Aufschreiben worüber man cared, was nicht wegabstrahiert werden soll
  • Welche Worte ab jetzt eine Bedeutung haben
  • Welche Worte haben eine Beziehung?
  • Mappen von Requirements zu REST Concepts
  • Oftmals sind die Resources auch die Entities und dann auch die Tables
  • Resource > Entity > Table

Workflow

  • Identify entities (draw a square)
  • Identify Attributes ()
  • Identify Relationships

Relationships

  • One to One: not so common
  • One to Many: this is it!
  • Many to Many: fake

Mantras

  • Many to Many -> third table
  • One to Many -> Foreign Key (* —– 1)
  • Foreign Key -> Many Side

-Der Dritte Table einer Many To Many kann auch Columns enthalten, meist enthält er Transaktionen