Notes for the DB1 (databases) course at HdM Stuttgart
Felicitas Pojtinger
2022-02-01
“The true courage is to admit that the light at the end of the tunnel is probably the headlight of another train approaching” - Slavoj Žižek, The Courage of Hopelessness
Mehr Details unter https://github.com/pojntfx/uni-db1-notes.
Applikation → DBMS → Datenbank
Entwickler:
Admins:
SMARASTD:
Notwendig für …
Log-Dateien sind …
→ Round-Robin-Prozess mit Archiv-Prozess
→ Am besten immer nur via Views auf Daten zugreifen
Ein Key is eine Menge von Spalten.
Ein gewählter Candidate Key (oft der mit der kleinsten Anzahl von Spalten).
Es werden zwei Tabellen A und B betrachtet.
Der Foreign Key, welcher B aus A referenziert, ist ein Candidate Key von B (meist der Primary Key).
Bei einer Erweiterung des Modells dürfen bestehende Daten nicht ungültig werden.
alter table
: Neue Spalte einfügenupdate
: Default-Werte für alte Zeilen einfügen (falls
not null
)insert
: Fehlende Zeilen anlegen (falls
not null
)alter table
: Foreign Key-Constraint hinzufügenalter table
: not null
-Constraint
hinzufügenin
etc.)join
etc.)Wenn Abfragen über mehrere Tabellen gemacht werden, so müssen alle
Abfragen fertig sein, damit verglichen werden kann. Deshalb
union all
verwenden (Vorsicht: Duplikate werden nicht
entfert!)
(+)
: Zeilen in Tabelle A,
für welche in Tabelle B keine entsprechende Zielen existieren, werden
mit null
gefüllt.
null
-Werte habennull
-Werte habennull
-Werte habenselect
-Statement)join
aus drei Tabellen)join
en; z.B.
Stückliste)Dabei wird nebenläufig kontinuierlich getestet.
SSRWKV:
Ein gutes Anforderungsdokument sollte die Eigenschaften haben …
Ein gutes Anforderungselement sollte bestehen aus …
n:m
-Beziehungen via schwacher Entität)+-------------+ +----------------------+
| | | | | |
| Entität +----+ < Beziehung > +---+ | Schwache Entität | |
| | | | | |
+-------------+ +----------------------+
Folgende Anomalien treten durch Redundanzen auf:
where
-Clause eintritt, evaluiert. Letztere Strategie
besitzt damit auch einen Overhead, welcher teuerer als die Ersparnis
durch das frühere Abbrechen nach dem Eintreten der
where
-Clause sein kann.Bei der Erstellung eines Indexes sollte immer die Spalte mit der höchsten Selektivität (> 0,8) zuerst angeben werden, welche sich mit folgender Formel berechnen lässt:
Selektivität = 1 - \frac{n - distinct(n)}{n}
n: Anzahl von Elementen
distinct(n): Anzahl von eindeutigen Elementen
Nutzt eine Allowlist.
products
zugreifen”):
Objektprivilegienupdaten
en”): SystemprivilegienDaten dürfen weder physisch noch semantisch fehlerhaft sein, weshalb folgende Dinge existieren müssen:
Aktionen werden entweder vollständig oder gar nicht ausgeführt.
begin
: Start einer Transaktion (SQL: Nicht
definiert)end
: Ende einer Transaktionen (SQL:
commit
)undo
: Verwerfen offener Transaktionen (SQL:
rollback
)redo
: Wiederherstellung abgeschlossener Transaktionen
(SQL: Nicht definiert)savepoint
: Sub-Transaktionen (SQL only)Verhindern von …
Umsetzung durch …
→ Z.B. durch select ... for update of ...
too_many_rows
: Mehr als ein Datensatzno_data_found
: Null Datensätze (nicht streng genommen
ein Impendance Mismatch)Ergebnis einer Abfrage wird in einer Tabelle abgelegt, von welcher dann n-mal gefetched werden kann.