4.1 Aktivitäten zum logischen Datenbankentwurf
Was sind die typischen Aktivitäten im logischen Datenbankentwurf?
Wie beginnt der Entwurf einer Datenbank?
Der Entwurf beginnt häufig nicht mit einem weißen Blatt, sondern mit einem bereits abgestimmten fachlich-technischen Datenmodell, das durch Aktivitäten des Requirements Engineerings und der Spezifikation erarbeitet wurde.
Was geschieht nach der Identifikation der relevanten Entitäten im Datenbankentwurf?
Nachdem die relevanten Entitäten identifiziert wurden, müssen deren Beziehungen ermittelt werden, einschließlich der Festlegung von Kardinalitäten, die Mengenangaben zu den Beziehungen enthalten.
Was wird beim Schritt der Primärschlüsseldefinition berücksichtigt?
Es werden die Attribute identifiziert, die als einfache oder zusammengesetzte Primärschlüssel dienen, oder es werden künstliche Schlüssel verwendet, wobei das Modell um die entsprechenden Attribute ergänzt wird.
Was ist der Zweck der Umwandlung in ein physikalisches Datenmodell?
Die Umwandlung in ein physikalisches Datenmodell transformiert ein netzwerkartiges Modell (z.B. UML-Klassendiagramm) in ein hierarchisches Modell, das von relationalen DBMS unterstützt wird.
Welche Aufgaben werden bei der Attributfestlegung und Normalisierung durchgeführt?
Alle benötigten Attribute zur Beschreibung der Entitäten werden identifiziert, der konkrete Datentyp in der Datenbank bestimmt und anschließend wird die Datenbank normalisiert, um in die für das Projekt angemessene Normalform überführt zu werden.
Was sind typische Konsistenzbedingungen, die bei der Festlegung berücksichtigt werden müssen?
Typische Konsistenzbedingungen umfassen die Sicherstellung, dass alle Werte in einem ID-Attribut einzigartig sind, die Einhaltung des vorgegebenen Formats und Wertebereichs von Attributen sowie die Erhaltung der referentiellen Integrität.
Warum ist die Normalisierung der Datenbank wichtig?
Die Normalisierung ist wichtig, um die Struktur und Abhängigkeiten der Attribute von Relationen zu untersuchen und sicherzustellen, dass Redundanzen minimiert werden, was die Datenintegrität erhöht.
Was ist unter dem Begriff Transaktion im Kontext einer Datenbank zu verstehen?
Eine Transaktion bezeichnet eine Gruppe von Operationen auf dem Datenbestand einer Datenbank, die zusammen ausgeführt werden müssen, um Konsistenzbedingungen zu gewährleisten. Dies umfasst das Auslesen, Erstellen, Ändern und Löschen von Daten.
Was wird sichergestellt, wenn Transaktionen im Datenbankentwurf festgelegt werden?
Bei der Festlegung von Transaktionen wird sichergestellt, dass im Falle eines Fehlers bei der Ausführung von Änderungen der Datenbestand konsistent bleibt, indem bereits durchgeführte Änderungen einer nicht vollständig erfolgreich abgeschlossenen Transaktion rückgängig gemacht werden können.
4.2 Abbildung vom konzeptionellen Datenmodell in das physikalische Datenmodell
Was versteht man unter einem konzeptionellen Datenmodell und welche Informationen enthält es?
Ein konzeptionelles Datenmodell dokumentiert relevante Entitäten, deren Beziehungen und Attribute, ohne datenbankspezifische Informationen. Es entsteht oft im Rahmen des Requirements Engineerings und bildet die Grundlage für den Datenbankentwurf.
Was ist der Unterschied zwischen einem konzeptionellen und einem physikalischen Datenmodell?
Während das konzeptionelle Datenmodell alle relevanten Entitäten und deren Beziehungen ohne datenbankspezifische Details enthält, berücksichtigt das physikalische Datenmodell die Eigenschaften und Einschränkungen relationaler Datenbanken, einschließlich Tabellen, Attribute und Primärschlüssel.
Welche Beziehungen können in einem physikalischen Datenmodell abgebildet werden und wie werden komplexe Beziehungen behandelt?
In einem physikalischen Datenmodell können nur 1:C- und 1:CN Beziehungen direkt abgebildet werden. Komplexe Beziehungen wie N:M Beziehungen und Vererbungsbeziehungen müssen zuerst in 1:N umgewandelt werden, bevor das Datenbankschema erstellt wird.
Wie wird eine 1:1-Beziehung im physikalischen Datenmodell abgebildet?
Eine 1:1-Beziehung kann abgebildet werden, indem jede Entität in einer eigenen Tabelle gespeichert wird, wobei der Primärschlüssel der einen Tabelle als Attribut in der anderen gespeichert wird. Alternativ können beide Entitäten auch in einer einzigen Tabelle zusammengefasst werden, wenn keine weiteren Beziehungen bestehen.
Was ist der Zweck von Fremdschlüsseln in 1:N im physikalischen Datenmodell?
Fremdschlüssel in 1:N verknüpfen die Tabellen, sodass jede Bewertung (Kind) den Primärschlüssel des Kunden (Eltern) referenziert. Dadurch wird sichergestellt, dass jede Bewertung einem existierenden Kunden zugeordnet werden kann.
Wie werden N:M Beziehungen im physikalischen Datenmodell realisiert?
N:M Beziehungen werden durch die Einführung einer zusätzlichen Tabelle (z.B. Gutscheineinloesung) realisiert, die zwei Fremdschlüssel (KundeID und AktionID) enthält. Diese Tabelle ermöglicht die Verknüpfung der beteiligten Entitäten.
Was sind die Merkmale der Single Table-Strategie zur Abbildung von Vererbungsbeziehungen?
Bei der Single Table-Strategie wird die gesamte Klassenhierarchie in einer einzigen Tabelle gespeichert. Diese enthält alle Attribute aller Klassen, und ein optionales Attribut "Diskriminator" identifiziert den Typ jedes Datensatzes.
Was sind die Vor- und Nachteile der Joined Subclass Table-Strategie?
Vorteile: Geringste Redundanz in den gespeicherten Daten und einfaches Hinzufügen neuer Unterklassen.
Nachteile: Langsamste Abbildung von Vererbung und Notwendigkeit, mehrere Tabellen für Lese- und Schreiboperationen abzufragen.
Wie funktioniert die Table per Class-Strategie und welche Vorteile bietet sie?
Bei der Table per Class-Strategie hat jede konkrete Klasse ihre eigene Tabelle, die alle Attribute dieser Klasse speichert. Vorteilhaft ist der effiziente Zugriff auf Daten, wenn der Klassenname bekannt ist, da alle benötigten Informationen in einer Tabelle vorhanden sind.
Welche Schwierigkeiten können bei der Umsetzung von Beziehungen in einer Table per Class-Strategie auftreten?
Schwierigkeiten können auftreten, wenn die konkrete Unterklasse eines Objekts nicht bekannt ist, da in diesem Fall die entsprechende Tabelle nicht gefunden werden kann. Außerdem erfordert die Auswertung über die gesamte Oberklasse viele SQL-Befehle, da die Daten auf verschiedene Tabellen verteilt sind.
4.3 Erzeugen von Tabellen in SQLDatenbanken aus ER-Diagrammen
Was muss vor dem Speichern von Daten in relationalen Datenbanken angelegt werden?
Die Tabellenstruktur, die mit Ausdrücken einer Data Definition Language (DDL) erstellt wird.
Was ist der Zweck der Datentypdefinition in einer SQL-Tabelle?
Der Datentyp legt den benötigten Speicherplatz fest und bestimmt, wie die Daten intern vom DBMS organisiert werden.
Was ist bei der Definition eines Datenschemas einer Datenbank zu beachten?
Der Name, die Versionsnummer und der Hersteller des DBMS sowie die Verfügbarkeit der technischen Dokumentation müssen bekannt sein.
Welche Texttypen gibt es in SQL und wie unterscheiden sie sich?
CHAR(n): Festgelegte Länge.
VARCHAR(n): Maximale, variable Länge.
TEXT: Sehr lange Zeichenketten, durch DBMS-technische Parameter begrenzt.
Warum wird der Datentyp DECIMAL empfohlen?
Er ermöglicht die genaue Vorgabe der Anzahl der Nachkommastellen, was besonders bei Geldbeträgen wichtig ist.
(REAL Gleitkommazahlen) nicht so genau
(INT / BIGINT) Ganze Zahl
Nenne ein Beispiel für einen Datumstyp in SQL und sein Format.
DATE: Speichert taggenaue Kalenderdaten im Format YYYY-MM-DD, z.B. 2014-06-14.
TIME: Uhrzeit, sekundengenau: 13:43:56
TIMESTAMP: Ausgewählte Zeitpunkte: 2014–06–14 14:00:02; Automatisches Speichern von Erstellungsoder Änderungszeitpunkten
Wie wird der Primärschlüssel in einer SQL-Tabelle definiert?
Mit dem Schlüsselwort PRIMARY KEY, das die Spalte(n) angibt, die als Primärschlüssel fungieren, wobei NULL-Werte nicht erlaubt sind.
Was ermöglicht das Schlüsselwort AUTO_INCREMENT in SQL?
Es ermöglicht die automatische Generierung von eindeutigen Werten für eine Spalte, üblicherweise für Primärschlüssel, durch Hochzählen.
Was definiert der FOREIGN KEY in einer SQL-Tabelle?
Der FOREIGN KEY verweist auf eine Spalte einer anderen Tabelle und stellt sicher, dass die referenzierten Werte gültig sind, um referentielle Integrität zu gewährleisten.
Code CREATE TABLE Adresse (
AdresseID INTEGER AUTO_INCREMENT,
Strasse VARCHAR(500),
Hausnummer VARCHAR(50),
Ort VARCHAR(500),
PLZ CHAR(5),
PRIMARY KEY (AdresseID),
KundeID INTEGER NOT NULL,
FOREIGN KEY (KundeID) REFERENCES Kunde(KundeID)
)
Was ist der Unterschied zwischen ON DELETE CASCADE und ON UPDATE CASCADE?
ON DELETE CASCADE löscht automatisch referenzierende Datensätze, wenn der referenzierte Datensatz gelöscht wird; ON UPDATE CASCADE aktualisiert referenzierende Datensätze, wenn der referenzierte Datensatz aktualisiert wird.
CREATE TABLE Adresse (
[… ],
FOREIGN KEY (KundeID) REFERENCES Kunde(KundeID) ON DELETE CASCADE ON UPDATE CASCADE
Welche Möglichkeiten gibt es zur Erhaltung der referentiellen Integrität bei Änderungen an einer referenzierten Tabelle?
Aktionen wie CASCADE, SET NULL, RESTRICT, NO ACTION und SET DEFAULT, die bestimmen, wie sich referenzierende Datensätze bei Änderungen verhalten.
Wie können fachliche Integritätsbedingungen in SQL-Tabellen überprüft werden?
Mit dem SQL-Schlüsselwort CHECK, das Bedingungen formuliert, die beim Eintragen oder Ändern von Daten erfüllt sein müssen.
CREATE TABLE Gutscheinaktion (
AktionID INTEGER AUTO_INCREMENT,
Beginnaktion DATE,
Endeaktion DATE,
Gutscheincode CHAR(8),
95 PRIMARY KEY (AktionID),
CHECK (Beginnaktion < Endeaktion)
HINWEIS Das DBMS MariaDB unterstützt mit CHECK formulierte Bedingungen nicht
Last changed3 months ago