In der Welt der Datenbanken ist es wichtig, die Unterschiede zwischen logischen und physikalischen Datenmodellen zu verstehen. Diese beiden Modelle dienen unterschiedlichen Zwecken und stehen in engem Zusammenhang miteinander. Während das logische Datenmodell sich auf die Strukturierung der Anforderungen und den Entwurf der Datenbeziehungen konzentriert, definiert das physikalische Datenmodell, wie diese Struktur tatsächlich in einer Datenbankimplementierung realisiert wird.
Inhaltsverzeichnis
- Einführung
- Was ist ein logisches Datenmodell?
- 2.1 Merkmale eines logischen Modells
- 2.2 Beispiel: Entwurf eines logischen Modells
- Was ist ein physikalisches Datenmodell?
- 3.1 Merkmale eines physikalischen Modells
- 3.2 Beispiel: Umsetzung eines physikalischen Modells in MS SQL Server
- Der Übergang vom logischen zum physikalischen Modell
- Beispielprojekt: Online-Buchhandlung
- 5.1 Logisches Modell
- 5.2 Physikalisches Modell
- 5.3 SQL-Skripte für MS SQL Server
- Fazit
1. Einführung
Bevor wir uns vertiefen, ist es wichtig zu verstehen, dass jedes Datenbankprojekt zwei Phasen durchläuft:
- Anforderungsanalyse und Konzeption: Hierbei wird das logische Datenmodell entwickelt.
- Implementierung: In dieser Phase wird das logische Modell in ein physikalisches Modell übersetzt, das direkt in der Datenbank implementiert wird.
Ein gutes Verständnis beider Modelle ist entscheidend, um eine effiziente und skalierbare Datenbank zu erstellen.
2. Was ist ein logisches Datenmodell?
2.1 Merkmale eines logischen Modells
Ein logisches Datenmodell beschreibt die Struktur der Daten unabhängig von ihrer Implementierung. Es konzentriert sich darauf, wie die Daten organisiert sind und welche Beziehungen zwischen ihnen bestehen. Die Hauptmerkmale sind:
- Entitäten: Repräsentieren Objekte oder Konzepte (z.B. "Kunde", "Produkt").
- Attribute: Beschreiben die Eigenschaften der Entitäten (z.B. "Name", "Preis").
- Beziehungen: Definieren die Verbindungen zwischen den Entitäten (z.B. "ein Kunde kann mehrere Bestellungen tätigen").
Das logische Modell ist technologieunabhängig und dient als Grundlage für die spätere Implementierung.
2.2 Beispiel: Entwurf eines logischen Modells
Angenommen, wir entwickeln ein System für eine Online-Buchhandlung. Das logische Modell könnte wie folgt aussehen:
Entitäten: - Kunde: ID, Name, Adresse, E-Mail - Buch: ISBN, Titel, Autor, Preis - Bestellung: Bestellnummer, Datum, Gesamtbetrag - Bestellposition: Positionsnr, Menge, Preis
Beziehungen: - Ein Kunde kann mehrere Bestellungen tätigen. - Eine Bestellung enthält mehrere Bücher. - Jedes Buch kann in mehreren Bestellungen enthalten sein.
Dieses Modell zeigt die grundlegenden Strukturen und Beziehungen, ohne auf spezifische technische Details einzugehen.
3. Was ist ein physikalisches Datenmodell?
3.1 Merkmale eines physikalischen Modells
Ein physikalisches Datenmodell ist die technische Realisierung des logischen Modells. Es berücksichtigt die Besonderheiten der verwendeten Datenbanktechnologie (hier MS SQL Server). Wichtige Aspekte sind:
- Tabellen: Jede Entität wird in einer Tabelle repräsentiert.
- Spalten: Attribute werden als Spalten definiert.
- Primärschlüssel und Fremdschlüssel: Wird verwendet, um Beziehungen zwischen Tabellen zu definieren.
- Indizes: Optimieren die Abfrageleistung.
- Datentypen: Jeder Spaltenwert hat einen bestimmten Datentyp (z.B.
INT
,VARCHAR
,DATETIME
).
3.2 Beispiel: Umsetzung eines physikalischen Modells in MS SQL Server
Das logische Modell aus dem vorherigen Abschnitt wird jetzt in ein physikalisches Modell übersetzt. Die Tabellen könnten wie folgt aussehen:
-- Tabelle: Kunde
CREATE TABLE Kunde (
KundeID INT PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(100) NOT NULL,
Adresse NVARCHAR(200) NOT NULL,
EMail NVARCHAR(100) NOT NULL
);
-- Tabelle: Buch
CREATE TABLE Buch (
ISBN NVARCHAR(20) PRIMARY KEY,
Titel NVARCHAR(200) NOT NULL,
Autor NVARCHAR(100) NOT NULL,
Preis DECIMAL(10, 2) NOT NULL
);
-- Tabelle: Bestellung
CREATE TABLE Bestellung (
Bestellnummer INT PRIMARY KEY IDENTITY(1,1),
KundeID INT NOT NULL,
Bestelldatum DATETIME NOT NULL,
Gesamtbetrag DECIMAL(10, 2) NOT NULL,
FOREIGN KEY (KundeID) REFERENCES Kunde(KundeID)
);
-- Tabelle: Bestellposition
CREATE TABLE Bestellposition (
Positionsnr INT NOT NULL,
Bestellnummer INT NOT NULL,
ISBN NVARCHAR(20) NOT NULL,
Menge INT NOT NULL,
Preis DECIMAL(10, 2) NOT NULL,
PRIMARY KEY (Positionsnr, Bestellnummer),
FOREIGN KEY (Bestellnummer) REFERENCES Bestellung(Bestellnummer),
FOREIGN KEY (ISBN) REFERENCES Buch(ISBN)
);
4. Der Übergang vom logischen zum physikalischen Modell
Der Übergang vom logischen zum physikalischen Modell erfordert einige Entscheidungen:
- Datentypen: Welche Datentypen passen am besten zu den Attributen?
- Schlüssel: Wie werden Primärschlüssel und Fremdschlüssel definiert?
- Indizes: Welche Indizes verbessern die Abfrageleistung?
- Normalisierung: Ist das Modell normalisiert, um Redundanzen zu vermeiden?
Beispiel: Im logischen Modell haben wir nur "Adresse" als Attribut des Kunden. Im physikalischen Modell könnten wir dies in separate Felder ("Straße", "PLZ", "Stadt") aufteilen, um bessere Suchmöglichkeiten zu ermöglichen.
5. Beispielprojekt: Online-Buchhandlung
5.1 Logisches Modell
Entität | Attribute |
---|---|
Kunde | ID, Name, Adresse, E-Mail |
Buch | ISBN, Titel, Autor, Preis |
Bestellung | Bestellnummer, Datum, Gesamtbetrag |
Bestellpos. | Positionsnr, Menge, Preis |
Beziehungen: - 1:n zwischen Kunde und Bestellung - n:m zwischen Buch und Bestellung über Bestellposition
5.2 Physikalisches Modell
Die SQL-Skripte wurden bereits im Abschnitt 3.2 gezeigt. Hier ist eine kurze Erklärung:
- Kunde: Jeder Kunde erhält eine eindeutige ID (
KundeID
). - Buch: Der ISBN ist der Primärschlüssel.
- Bestellung: Jede Bestellung ist an einen Kunden gekoppelt (
KundeID
als Fremdschlüssel). - Bestellposition: Verknüpft Bestellungen mit Büchern.
5.3 SQL-Skripte für MS SQL Server
Daten einfügen:
-- Neuen Kunden einfügen
INSERT INTO Kunde (Name, Adresse, EMail)
VALUES ('Max Mustermann', 'Musterstraße 1, 12345 Musterstadt', 'max.mustermann@example.com');
-- Neues Buch einfügen
INSERT INTO Buch (ISBN, Titel, Autor, Preis)
VALUES ('978-3-16-148410-0', 'SQL für Einsteiger', 'John Doe', 29.99);
-- Neue Bestellung erstellen
INSERT INTO Bestellung (KundeID, Bestelldatum, Gesamtbetrag)
VALUES (1, GETDATE(), 29.99);
-- Neue Bestellposition hinzufügen
INSERT INTO Bestellposition (Positionsnr, Bestellnummer, ISBN, Menge, Preis)
VALUES (1, 1, '978-3-16-148410-0', 1, 29.99);
Abfragen:
-- Alle Bestellungen eines Kunden anzeigen
SELECT b.Bestellnummer, b.Bestelldatum, bp.ISBN, bu.Titel, bp.Menge, bp.Preis
FROM Bestellung b
JOIN Bestellposition bp ON b.Bestellnummer = bp.Bestellnummer
JOIN Buch bu ON bp.ISBN = bu.ISBN
WHERE b.KundeID = 1;
6. Fazit
Logische und physikalische Datenmodelle sind essenzielle Werkzeuge bei der Entwicklung von Datenbanken. Während das logische Modell die Strukturierung der Daten abstrahiert, sorgt das physikalische Modell für ihre tatsächliche Implementierung. Mit MS SQL Server können Sie komplexe Modelle leicht umsetzen und optimieren. Verstehen Sie die Unterschiede zwischen diesen Modellen, und Ihre Datenbanken werden nicht nur funktional, sondern auch leistungsfähig sein!