DB Flashcards
Integritätsbedingungen
Integritätsbedingungen sorgen dafür, dass keine unkorrekten Daten in die DB gelangen.
- Wertebereichsintegrität
- Entitätsintegrität
- referentielle Integrität
Wertebereichsintegrität
Wertebereichsintegrität: Für jedes Attribut ist der Wertebereich festzulegen. Dazu gehört Datentyp, Ober-/Untergrenzen, ob ein Attribut NULL sein darf und das Schlüsselattribute nicht NULL sein dürfen
zB lastName varchar(30) NOT NULL
Entitätsintegrität
Ein Schlüssel muss eindeutig sein, zB durch Auto_Increment
ID INTEGER NOT NULL AUTO_INCREMENT
referentielle Integrität
Die Beziehungen zwischen Relationen müssen korrekt sein und erhalten bleiben. Ein Fremdschlüssel muss immer auf einen existierenden Datensatz verweisen.
zB FOREIGN KEY (prod_ID) REFERENCES product (prod_ID) ON DELETE CASCADE
on delete cascade
Ein Fremdschlüssel muss immer auf einen existierenden Datensatz verweisen (referentielle Integrität). Das DBMS hilft durch constraints, diese Voraussetzung und damit die Integrität zu erfüllen. Durch ‘on delete cascade’ werden abhängige Datensätze automatisch mitgelöscht, wenn Datensätze gelöscht werden die in Beziehung zueinander stehen.
zB: wird ein Lieferant gelöscht, werden auch die Artikel gelöscht, die von ihm geliefert werden
ACID
atomicity (es wird die gesamte Transaktion ausgeführt, oder nichts)
consistency (die Datenbank ist immer konsistent)
isolation (Transaktionen beeinflussen sich nicht gegenseitig)
durability (jede erfolgreich durchgeführte Transaktion bleibt dauerhaft erhalten)
commit/rollback
BASE
basically available
soft state
eventually consistent
nosql
für verteilte Systeme mit großer Skalierbarkeit, die geringe Konsistenzanforderungen (eventually consistent) bei schnellen Zugriffszeiten und hoher Ausfalltoleranz haben -> BASE
oodbms
\+ Vererbung \+ Merfachvererbung \+ beliebig komplexe Datenstrukturen \+ hohe Flexibilität \+ Integration in OOP \+ keine Joins -> effizienter als relational
- wenig kompatible Schnittstellen
- kein ausgereifter Standard
- wenig verbreitet
ordbms
+ 100% kompatibel zu sql2
+ profitiert von OO und sicher gleichzeitig Investitionen in alte relationale Systeme
+ standadisiert
+ vereint Vorteile von rel+obj
relational
+ weit verbreitet
+ standadisiert
+ einfaches modell
+ geringer speicherbedarf
- alles muss in Relationen modelliert werden -> mühsam und ineffizient
- keine Multimediainhalte, nur ASCII
- unflexibel
- hierarchische Daten lassen sich nur schlecht darstellen (is-a und part-of)
Indizes
Schneller Zugriff, schnelle Suche mit möglichst wenigen Plattenzugriffen in einer Baumstruktur (nicht sequentiell)
Erst wenn ein Wert gefunden wurde, wird der eigentliche Inhalt geladen -> schnell
2NF
jedes Nicht-SA muss vom GESAMTEN SK abhängen
2NF gilt, wenn jedes Nichtschlüsselattribut von jedem Schlüsselkandidaten voll funktional abhängig ist
3NF
kein NichtSA dar von anderen NichtSAs abhängen
3NF gilt, wenn kein Nichtschlüsselattribut transitiv von einem Schlüsselkandidaten abhängt
BCNF
jede linke Seite muss einen SK enthalten