Welche Ziele verfolgt der „logische Datenbankentwurf“?
Im logischen Entwurf werden die zuvor erstellten fachlichen (konzeptionellen) Entitäten, Beziehungen und Attribute auf konkrete Tabellenstrukturen, Primär- und Fremdschlüssel in einem relationalen Datenbanksystem abgebildet. Gleichzeitig legt man hierbei Festlegungen zu Datentypen, Schlüsseln und Integritätsbedingungen fest.
Wie unterscheidet sich das konzeptionelle vom physikalischen Datenmodell?
Das konzeptionelle Datenmodell (z. B. ein ER-Diagramm oder UML-Klassenmodell) bildet die fachlichen Strukturen ab, ohne sich auf eine konkrete Datenbanktechnologie festzulegen. Das physikalische Datenmodell berücksichtigt alle technischen Aspekte der konkreten Datenbank (z. B. Tabellen, Fremdschlüssel, Datentypen) und dient als Grundlage für die Implementierung im DBMS.
Wie werden 1:1- und 1:N-Beziehungen üblicherweise im relationalen Modell umgesetzt?
1:1-Beziehung: Häufig wird in einer der beiden Tabellen ein Fremdschlüssel angelegt, der auf die andere Tabelle verweist. Alternativ kann man beide Entitäten in einer einzelnen Tabelle zusammenführen, falls keine weiteren Beziehungen vorhanden sind.
1:N-Beziehung: Bei 1:N fügt man in der N-seitigen Tabelle einen Fremdschlüssel ein, der auf den Primärschlüssel der 1-seitigen Tabelle zeigt.
Wie werden N:M-Beziehungen in ein relationales Modell abgebildet?
N:M-Beziehungen benötigen eine Zwischentabelle (Beziehungstabelle), die mindestens die beiden Fremdschlüssel auf die beteiligten Tabellen enthält. Diese Tabelle kann ggf. einen eigenen (künstlichen) Primärschlüssel besitzen oder aus der Kombination beider Fremdschlüssel bestehen.
Welche Strategien gibt es, um Vererbung (z. B. in UML-Modellen) auf relationale Tabellen zu übertragen?
Single-Table-Strategie: Alle Unterklassenattribute in einer einzigen Tabelle; bei vielen Subklassen entstehen viele leere Felder.
Joined-Subclass-Strategie: Für jede Klasse (auch Oberklassen) eine eigene Tabelle; eine Unterklasse verweist per Fremdschlüssel auf den Oberklassen-Datensatz.
Table-per-Class-Strategie: Nur konkrete Unterklassen erhalten eine eigene Tabelle mit allen Attributen (inkl. Oberklassenattribute).
Wofür steht der Befehl CREATE TABLE in SQL?
CREATE TABLE
Mit CREATE TABLE definiert man eine neue Tabelle in einer relationalen Datenbank. Dabei werden Tabellennamen, Spaltenname, Datentypen, Primär- und Fremdschlüssel sowie etwaige Constraints wie NOT NULL oder UNIQUE festgelegt.
NOT NULL
UNIQUE
Welche typischen Angaben macht man bei der Spaltendefinition in CREATE TABLE?
Spaltenname (eindeutig in der Tabelle)
Datentyp (z. B. INT, VARCHAR(n), DATE)
INT
VARCHAR(n)
DATE
OPTIONAL: NOT NULL, DEFAULT, UNIQUE, CHECK(...) (sofern das DBMS dies unterstützt)
DEFAULT
CHECK(...)
Wie definiert man den Primärschlüssel in einer Tabelle via SQL?
CREATE TABLE beispiel (
id INT NOT NULL,
...,
PRIMARY KEY (id)
);
Wie kann man Fremdschlüssel in SQL anlegen und was bewirken ON DELETE bzw. ON UPDATE?
ON DELETE
ON UPDATE
Fremdschlüssel per FOREIGN KEY (spalte) REFERENCES tabelle(spalte).
FOREIGN KEY (spalte) REFERENCES tabelle(spalte)
ON DELETE bzw. ON UPDATE legen das Verhalten fest, wenn in der referenzierten Tabelle Datensätze geändert oder gelöscht werden (z. B. CASCADE, SET NULL, RESTRICT).
CASCADE
SET NULL
RESTRICT
Was ist bei der Auswahl von Datentypen für Spalten wichtig?
Die Speichergröße und damit auch Performance.
Die Semantik des Attributs (etwa DECIMAL für Geldbeträge).
DECIMAL
Die Unterstützung des jeweiligen DBMS (nicht alle unterstützen dieselben Datentypen oder Formate).
Ggf. Zeichensatz/Kollation bei Texten.
Zuletzt geändertvor 2 Monaten