Datenbanken Flashcards
Was sind die vier Schritte zur Implementierung einer Datenbank?
Anforderungsanalyse
Konzeptionelle Modellierung
Logische Modellierung
Implementierung
Was ist ein Schlüssel?
ein Spalte mit eindeutigen Werten für jede Zeile in einer Tabelle
Was sind Kardinalitäten?
1:N, n:m, 1:1
Was ist ein Primärschlüssel? Was ist ein Fremdschlüssel?
Primärschlüssel: ausgewählter Schlüssel, der jede Zeile eineindeutig definiert und nicht null sein darf
Fremdschlüssel: Primärschlüssel aus einer Relation mit einer anderen Tabelle
Was ist ein Join?
Ein Join verknüpft Tabellen:
Innerjoin: nur Datensätze, wo Übereinstimmungen in beiden Tabellen sind
Right/Left Join: alle Datensätze aus einer Tabelle verglichen mit der anderen
Full Join: alle Datensätze auch wenn keine Übereinstimmung
Was sind die Normalformen?
Niveaus, die dazu dienen, die Struktur von Datenbanken zu optimieren und Redundanzen zu optimieren
Was ist vertikale und horizontale Skalierung?
Vertikale: mehr Ram und CPU
Horizontale: weitere Server
Was macht der konzeptionelle Modellierungsschritt prinzipiell?
Der konzeptionelle Modellierungsschritt entwickelt abstrakte Modelle, identifiziert Schlüsselkonzepte und ihre Beziehungen, legt Attribute fest und erstellt visuelle Darstellungen, um eine klare Vorstellung von der Struktur und den Funktionen eines Systems zu schaffen.
Was sind die wesentlichen Elemente von E/R Diagrammen?
Entität: Ein Objekt oder eine Klasse, z.B. “Kunde” oder “Produkt”.
Attribut: Eigenschaften oder Merkmale von Entitäten, z.B. “Name” oder “Alter” eines Kunden.
Beziehung: Verbindung zwischen Entitäten, um anzuzeigen, wie sie miteinander verbunden sind, z.B. “hat” oder “bestellt”.
Primärschlüssel (Primary Key): Ein eindeutiges Attribut oder eine Kombination von Attributen, die jede Entität eindeutig identifizieren, z.B. Kundennummer.
Fremdschlüssel (Foreign Key): Ein Attribut in einer Entität, das auf den Primärschlüssel einer anderen Entität verweist, um Beziehungen zwischen ihnen herzustellen.
Kardinalität: Gibt an, wie viele Entitäten in einer Beziehung beteiligt sind und wie oft sie auftreten können, z.B. “eins zu eins” oder “eins zu viele”.
Was ist Rekursion im Kontext von Datenbanken?
Wenn eine Tabelle sich selbst referenziert in einer anderen Spalte - es gibt eine Tabelle mit einer Mitarbeiter ID und eine Vorgesetzten Spalte wo die Mitarbeiter ID des Vorgesetzen drin steht
Was sind schwache Entitätstypen und was ist deren Schlüssel?
eine Schwache Identität kann nur existieren, wenn eine dazugehörige starke Entität existiert z.B. in einer Firma Mitarbeiter und deren dazugehörige Kinder. Es gibt keine Kinder, die keinem Mitarbeiter zugeordnet werden
Schlüssel ist der Primärschlüssel der starken Entität
Was ist der Unterschied zwischen Generalisierung und Aggregation?
Generalisierung ist eine allgemeine Tabelle der andere zugeordnet werden können um etwas zu spezifizieren z.B. Mitarbeiter und externe/ehemalige
Aggregation ist ein ist-teil-von bei dem die Übergeordnete aus den anderen besteht und diese zusammen das Übergeordnete ergeben
Wie unterscheidet sich die Chen Notation von min/max? Wie lese ich die beiden Notationen?
Es sind zwei Möglichkeiten zur Darstellung eines Entity Relationship Diagramms
Die Chen Notation gibt die Kardinalitäten an
Die Min/Max gibt zusätzlich noch einen Min und Max Wert an
Wozu braucht man mehrstellige Beziehungstypen?
Vermeidung von Redundanzen z.B. in einer Schule können Schüler und Lehrer einer Klasse zugeordnet werden - dadurch könnten der Kursname und der Lehrername redundant gespeichert werden
Darstellung von Netzwerken & komplexen Beziehungen
Was ist der Unterschied zwischen einem konzeptionellen und einem logischen Datenbankmodell?
der Konzeptionelle hat nur die Beziehungen zwischen den Tabellen und die einzelnen Attribute
der logische die einzelnen Datentypen, Optimierungen und die konkrete Umsetzung in einem DBS der Wahl
Wie würde eine 1:n binäre Beziehung in das relationale Modell überführt werden? Was unterscheidet
die Umsetzung zu einer binären n:m Beziehung?
in einem relationalen Modell braucht es noch einen Fremdschlüssel auf der N Seite
bei einer n:m Beziehung gibt es eine “Zwischentabelle” mit zwei Fremdschlüsseln
Was ist der Unterschied zwischen Ausprägung und Relationsschema?
Eine Ausprägung ist eine konkrete Instanz von Daten in einer Datenbank, während ein Relationenschema die strukturellen Details der Datenbanktabelle definiert, unabhängig von den spezifischen Daten.
Wie können schwache Entitätstypen umgesetzt werden?
In dem ein Fremdschlüssel aus dem starken Entitätstyp gesetzt wird und dieser in Kombination mit einer “eigenen” ID den Primärschlüssel bildet
Was macht ein Left Join?
fügt zwei Tabellen zusammen
alle Werte der “linken Tabelle” und alle Werte der Rechten Tabelle, die mit der linken übereinstimmen
Was ist eine funktionale Abhängigkeit und was hat das mit dem Schlüsselkonzept zu tun?
funktionale Abhängigkeit ist, wenn die Werte einer Spalte direkt den Werten einer anderen Spalte zugeordnet werden können
alle Werte einer Tabelle sollten funktional vom Primärschlüssel abhängig sein
Was sind die Kriterien der Normalformen 1 bis 3 inklusive Boyce Codd (BCNF)
- Normalform: nur atomare Werte; i
n einer Spalte nur Werte des gleichen Datentyps
2. Normalform: Jedes Nicht-Schlüsselattribut ist voll funktional vom Primärschlüssel abhängig.
Bei zusammengesetzten Primärschlüsseln müssen die Nicht-Schlüsselattribute von der gesamten Zusammensetzung abhängig sein.
- Normalform:
Jedes Nicht-Schlüsselattribut ist voll funktional vom Primärschlüssel abhängig.
Bei zusammengesetzten Primärschlüsseln müssen die Nicht-Schlüsselattribute von der gesamten Zusammensetzung abhängig sein. - Normalform:
Jedes Nicht-Schlüsselattribut sollte direkt vom Primärschlüssel abhängig sein.
BCNF wurde entwickelt, um bestimmte Anomalien zu verhindern, die in der 3. Normalform auftreten können, indem es sicherstellt, dass in einer Tabelle jedes Nicht-Schlüsselattribut nur von einem Superkey (einschließlich des Primärschlüssels) voll funktional abhängig ist.
Was sind die Kriterien der Normalformen 1?
- Normalform: nur atomare Werte;
also nicht Vor- und Nachname in gleicher Spalte
Was sind die Kriterien der Normalformen 2?
- Normalform: Alle Attribute sind voll funktional vom Primärschlüssel abhängig
bei zusammengesetzten Primärschlüsseln müssen die alle Attribute von der Kombination vollständig abhängig sein
Was sind die Kriterien der Normalformen 3?
- Normalform:
Kein Nicht-Schlüsselattribut sollte von einem anderen Nicht-Schlüsselattribut transitiv abhängig sein.
Heißt: z.B. Tabelle MitarbeiterID Ortsname PLZ müsste aufgeteilt werden in
MitarbeiterID PLZ & PLZ Ortsname, weil der Ortsname von der PLZ abhängig ist
Was sind die Kriterien der Boyce Codd Normalform?
Jedes Nicht-Schlüsselattribut sollte direkt vom Primärschlüssel abhängig sein.
Wenn es ein zusammengesetzter Schlüssel ist und ein Attribut nur von einem Wert direkt abhängig ist kann es zu Anomalien kommen
Was bedeutet Verbundtreue (Verlustlosigkeit) und Abhängigkeitsbewahrung im Kontext von Zerlegungen?
Verbundtreue: wenn eine Tabelle getrennt werden kann und ohne Verlust durch einen Verbund (Join zb) wieder zusammengefügt werden kann
Abhängigkeitsbewahrung: wenn alle funktionalen Abhängigkeiten nach “Aufspaltung” immer noch gelten
Was ist ACID im Datenbankkontext?
atomic: Eine Transaktion wird als eine atomare Einheit behandelt, entweder wird sie vollständig ausgeführt oder überhaupt nicht.
consistent: Eine Transaktion bringt die Datenbank von einem konsistenten Zustand in einen anderen.
isolation: Transaktionen werden so behandelt, als ob sie in Isolation ausgeführt werden, unabhängig von anderen Transaktionen.
durability: Nach dem Abschluss einer Transaktion bleibt der Zustand dauerhaft erhalten, auch wenn es zu einem Systemausfall kommt.
Welche vier NoSQL Datenbanktypen kennst du?
Dokumentenorientiert: für komplexe Datenstrukturen und Anwendungen mit vielen Schreib- und Lesevorgängen
Key-Value-Stores: geringe Komplexität, sehr schnell
Graphdatenbanken: optimiert für Analyse - gut geeignet für Social Media, Empfehlungsnetzwerke etc.
Spaltenorientiert: optimiert für Lesevorgänge, Datenanalysen und horizontale Skalierbarkeit