DBMS - Relational Data Model

Hallo, angehende Datenbankenthusiasten! Heute machen wir uns auf eine aufregende Reise in die Welt der relationalen Datenmodelle. Als dein freundlicher Nachbarschafts-Computerlehrer werde ich dich durch dieses grundlegende Konzept in Datenbankmanagementsystemen (DBMS) führen. Keine Sorge, wenn du neu im Programmieren bist – wir beginnen mit den Grundlagen und arbeiten uns hoch. Also hole dir einen Kaffee und tauchen wir ein!

DBMS - Relational Data Model

Konzepte

Was ist ein relationales Datenmodell?

Stelle dir vor, du organisiert eine riesige Bibliothek. Du hast Bücher, Autoren, Genres und Verleger. Wie würdest du diese Informationen effizient verfolgen? Genau hier kommt das relationale Datenmodell ins Spiel!

Ein relationales Datenmodell ist eine Methode zur Strukturierung von Daten in einer Datenbank, die Informationen in Tabellen (auch als Relationen bezeichnet) mit Zeilen und Spalten organisiert. Es ist, als ob man eine Reihe von miteinander verbundene Arbeitsblätter erstellt.

Lassen wir es mit einem Beispiel erklären:

CREATE TABLE Books (
BookID INT PRIMARY KEY,
Title VARCHAR(100),
AuthorID INT,
GenreID INT,
PublisherID INT
);

CREATE TABLE Authors (
AuthorID INT PRIMARY KEY,
Name VARCHAR(50),
BirthDate DATE
);

In diesem Beispiel haben wir zwei Tabellen erstellt: Books und Authors. Jede Tabelle hat Spalten (Felder), die verschiedene Attribute beschreiben. Die BookID und AuthorID sind eindeutige Identifikatoren für jeden Eintrag in ihren jeweiligen Tabellen.

Hauptkomponenten des relationalen Modells

  1. Tabellen (Relationen): Diese sind die Hauptstrukturen, die Daten enthalten. In unserem Bibliotheksbeispiel sind Books und Authors Tabellen.

  2. Attribute (Spalten): Diese repräsentieren die Eigenschaften der Entitäten in unseren Tabellen. Zum Beispiel sind Title und Name Attribute.

  3. Tupel (Zeilen): Jede Zeile in einer Tabelle repräsentiert einen einzelnen Datensatz oder eine Instanz der Entität.

  4. Domäne: Dies ist die Menge der zulässigen Werte für ein Attribut. Zum Beispiel könnte die Domäne für BookID positive ganze Zahlen sein.

  5. Schlüssel: Diese sind spezielle Attribute, die verwendet werden, um Datensätze eindeutig zu identifizieren und Beziehungen zwischen Tabellen herzustellen.

Arten von Schlüsseln

Lassen wir uns tiefer in die Schlüssel einfinden:

Schlüsselart Beschreibung Beispiel
Primärschlüssel Eindeutige Identifizierung jedes Datensatzes in einer Tabelle BookID in der Tabelle Books
Fremdschlüssel Verweist auf den Primärschlüssel einer anderen Tabelle AuthorID in der Tabelle Books
Kandidatenschlüssel Könnte potenziell als Primärschlüssel verwendet werden ISBN für Bücher
zusammengesetzter Schlüssel Ein Schlüssel, der aus mehreren Spalten besteht (CourseID, StudentID) für eine Kursanmeldestabelle

Beziehungen

Eines der kraftvollsten Aspekte des relationalen Modells ist seine Fähigkeit, Beziehungen zwischen Tabellen herzustellen. Es gibt drei Hauptarten:

  1. Eins-zu-Eins (1:1): Jeder Eintrag in Tabelle A ist mit einem Eintrag in Tabelle B verbunden.

Beispiel:

CREATE TABLE Passport (
PassportID INT PRIMARY KEY,
PassportNumber VARCHAR(20),
ExpiryDate DATE,
CitizenID INT UNIQUE,
FOREIGN KEY (CitizenID) REFERENCES Citizens(CitizenID)
);
  1. Eins-zu-Viel (1:N): Ein Eintrag in Tabelle A kann mit vielen Einträgen in Tabelle B verbunden sein.

Beispiel:

CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
OrderDate DATE,
CustomerID INT,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
  1. Viele-zu-Viele (M:N): Viele Einträge in Tabelle A können mit vielen Einträgen in Tabelle B verbunden sein.

Beispiel:

CREATE TABLE StudentCourses (
StudentID INT,
CourseID INT,
PRIMARY KEY (StudentID, CourseID),
FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);

Constraints

Nun sprechen wir über Constraints – die Regeln, die dabei helfen, die Integrität und Konsistenz unserer Daten zu erhalten. Denke daran als die Bibliothekare, die sicherstellen, dass Bücher ordnungsgemäß kategorisiert und einsortiert werden.

Arten von Constraints

Constraint-Typ Beschreibung Beispiel
NOT NULL Stellt sicher, dass eine Spalte keinen NULL-Wert haben kann Name VARCHAR(50) NOT NULL
UNIQUE Stellt sicher, dass alle Werte in einer Spalte unterschiedlich sind Email VARCHAR(100) UNIQUE
Primärschlüssel Eindeutige Identifizierung jedes Datensatzes in einer Tabelle StudentID INT PRIMARY KEY
Fremdschlüssel Stellt Referenzintegrität zwischen Tabellen sicher FOREIGN KEY (AuthorID) REFERENCES Authors(AuthorID)
CHECK Stellt sicher, dass alle Werte in einer Spalte eine spezifische Bedingung erfüllen CHECK (Age >= 18)
DEFAULT Setzt einen Standardwert für eine Spalte, wenn kein Wert angegeben wird Balance DECIMAL(10,2) DEFAULT 0.00

Sehen wir uns diese Constraints in Aktion an:

CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(50) NOT NULL,
Email VARCHAR(100) UNIQUE,
Age INT CHECK (Age >= 18),
EnrollmentDate DATE DEFAULT CURRENT_DATE,
DepartmentID INT,
FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
);

In diesem Beispiel:

  • StudentID ist der Primärschlüssel.
  • Name darf nicht null sein.
  • Email muss für jeden Studenten eindeutig sein.
  • Age muss 18 oder älter sein.
  • EnrollmentDate wird auf das aktuelle Datum gesetzt, wenn nicht angegeben.
  • DepartmentID ist ein Fremdschlüssel, der auf die Departments-Tabelle verweist.

Diese Constraints helfen, die Datenintegrität und Konsistenz in unserer Datenbank zu erhalten. Sie sind wie die Regeln in unserer Bibliothek, die sicherstellen, dass Bücher ordnungsgemäß kategorisiert, eindeutig identifiziert und mit den richtigen Autoren und Verlegern verknüpft werden.

Als wir diese Einführung in das relationale Datenmodell abschließen, hoffe ich, dass du beginnst zu sehen, wie kraftvoll und organisiert diese Herangehensweise an das Datenmanagement sein kann. Es ist wie eine perfekt organisierte Bibliothek, in der jedes Buch an seinem richtigen Platz ist, leicht zu finden und mit allen relevanten Informationen verbunden ist.

Denke daran, das Lernen von Datenbanken ist eine Reise. Keine Sorge, wenn nicht alles sofort verstanden wird. Übe das Erstellen von Tabellen, das Herstellen von Beziehungen und das Setzen von Constraints. Bald wirst du effiziente und robuste Datenbankstrukturen wie ein Profi entwerfen können!

In unserer nächsten Lektion tauchen wir tiefer in das Abfragen dieser relationalen Strukturen mit SQL ein. Bis dahin, viel Spaß beim Datenmodellieren!

Credits: Image by storyset