0 Daumen
750 Aufrufe

SQL - DataDefinitionLanguage (DDL)

Eine Lösung schaut so aus:

blob.png

Aufgabe:

a. Können die zur Umsetzung nötigen CREATE TABLE – Statements in beliebiger Reihenfolge ausgeführt werden oder gibt es dazu (z.B. logisch bedingte) Regeln? Bitte begründen Sie Ihre Antwort kurz.

b. Erstellen Sie alle CREATE TABLE – Statements zur Umsetzung dieses Datenmodells in einer
Microsoft Access Datenbank.

Achten Sie auf geeignete Felddatentypen und –größen, auf die korrekte Umsetzung von Primär- und Fremdschlüsselattributen (Eingabepflicht NOT NULL für Fremdschlüssel nötig oder nicht?!). Verwenden Sie das Namens-Präfix „FS_“ für Fremdschlüsselattribute.

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

a. Können die zur Umsetzung nötigen CREATE TABLE – Statements in beliebiger Reihenfolge ausgeführt werden oder gibt es dazu (z.B. logisch bedingte) Regeln? Bitte begründen Sie Ihre Antwort kurz.

Nein, die CREATE TABLE Statements können in der Regel nicht in beliebiger Reihenfolge ausgeführt werden, wenn es Fremdschlüsselbeziehungen zwischen den Tabellen gibt. Der Grund hierfür liegt in den Referenzen, die Fremdschlüssel auf Primärschlüssel anderer Tabellen setzen. Die Tabelle, auf die mittels eines Fremdschlüssels verwiesen wird, muss zum Zeitpunkt des Erstellens der Verweisbeziehung bereits existieren. Somit müssen zuerst die Tabellen erstellt werden, die Primärschlüssel besitzen, auf die dann in anderen Tabellen als Fremdschlüssel verwiesen wird.

b. Erstellen Sie alle CREATE TABLE – Statements zur Umsetzung dieses Datenmodells in einer Microsoft Access Datenbank.

Um die CREATE TABLE Statements passend zu formulieren, beachten wir die Notwendigkeiten von Microsoft Access hinsichtlich der Datentypen sowie die Notwendigkeit von Primär- und Fremdschlüsseln. Access verwendet etwas andere Datentypen als manche anderen SQL-Datenbanken.

Da das Bild des Datenmodells nicht direkt betrachtet werden kann, nutzen wir eine fiktive, aber gängige Struktur bestehend aus drei Tabellen: Kunden, Bestellungen, Produkte. Fremdschlüssel werden mit dem Präfix "FS_" versehen.

sql
CREATE TABLE Kunden (
    KundenID AUTOINCREMENT PRIMARY KEY,
    Name TEXT(255) NOT NULL,
    Adresse TEXT(255),
    Telefon TEXT(50)
);

CREATE TABLE Produkte (
    ProduktID AUTOINCREMENT PRIMARY KEY,
    Bezeichnung TEXT(255) NOT NULL,
    Preis CURRENCY NOT NULL
);

CREATE TABLE Bestellungen (
    BestellID AUTOINCREMENT PRIMARY KEY,
    Bestelldatum DATE NOT NULL,
    FS_KundenID INTEGER,
    FS_ProduktID INTEGER,
    Menge INTEGER,
    FOREIGN KEY (FS_KundenID) REFERENCES Kunden(KundenID),
    FOREIGN KEY (FS_ProduktID) REFERENCES Produkte(ProduktID)
);


Anmerkungen:
- Der AUTOINCREMENT Schlüsselwort wird in Access verwendet, um eine automatische Nummerierung zu erreichen, die oft für Primärschlüssel sinnvoll ist.
- TEXT wird für allgemeine textbasierte Felder verwendet, wobei eine Größenangabe möglich ist.
- CURRENCY ist für Geldwerte gedacht.
- DATE ist der Datentyp für Datumsangaben.
- Die FOREIGN KEY Anweisungen am Ende der Bestellungen Tabelle definieren Fremdschlüsselbeziehungen. Diese verweisen auf die Primärschlüssel der entsprechenden Tabellen (Kunden und Produkte).

Bitte beachten Sie, dass dieses Beispiel auf einem fiktiven Datenmodell basiert. Sie müssten es auf das tatsächliche Datenmodell aus der Aufgabe anpassen, sobald Sie dieses haben.
Avatar von 4,6 k

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community