Kapitel 1: Was ist eine Datenbank?
Einführung in die Welt der Datenbanken
Stellen Sie sich vor, Sie betreten eine riesige Bibliothek mit Millionen von Büchern. Ohne ein durchdachtes Ordnungssystem wäre es unmöglich, ein bestimmtes Buch zu finden. Genau wie eine Bibliothek ihre Bücher nach einem logischen System organisiert, ordnen Datenbanken Informationen so, dass sie schnell und effizient abgerufen werden können. In der digitalen Welt von heute sind Datenbanken das Rückgrat praktisch jeder Anwendung - von der einfachen Kontaktliste auf Ihrem Smartphone bis hin zu komplexen Geschäftssystemen großer Unternehmen.
Eine Datenbank ist im Wesentlichen eine strukturierte Sammlung von Daten, die elektronisch gespeichert und verwaltet wird. Diese Definition mag zunächst einfach klingen, aber die Komplexität und Eleganz von Datenbanksystemen offenbart sich erst, wenn wir tiefer in ihre Funktionsweise eintauchen. SQL (Structured Query Language) ist dabei die universelle Sprache, mit der wir mit diesen Datensammlungen kommunizieren können.
Grundlegende Konzepte einer Datenbank
Was macht eine Datenbank aus?
Eine Datenbank unterscheidet sich fundamental von einer einfachen Datei oder einer Sammlung von Dokumenten. Während Sie beispielsweise Ihre Kontakte in einer einfachen Textdatei speichern könnten, bietet eine Datenbank strukturierte Speicherung, Integrität, Sicherheit und die Möglichkeit komplexer Abfragen.
Die Grundprinzipien einer Datenbank umfassen:
Strukturierte Datenspeicherung: Daten werden in definierten Formaten und Beziehungen gespeichert. In SQL-Datenbanken erfolgt dies hauptsächlich über Tabellen, die aus Zeilen und Spalten bestehen. Jede Spalte hat einen definierten Datentyp, der bestimmt, welche Art von Information dort gespeichert werden kann.
Datenintegrität: Datenbanken stellen sicher, dass die gespeicherten Daten konsistent und korrekt sind. Dies wird durch verschiedene Regeln und Einschränkungen erreicht, die in SQL als Constraints bezeichnet werden.
Gleichzeitiger Zugriff: Mehrere Benutzer können gleichzeitig auf dieselbe Datenbank zugreifen, ohne dass es zu Konflikten kommt. SQL-Datenbankmanagementsysteme verwalten diese Zugriffe durch ausgeklügelte Sperrmechanismen.
Transaktionsunterstützung: Datenbanken können komplexe Operationen als atomare Einheiten behandeln - entweder werden alle Änderungen durchgeführt oder keine.
Die Rolle von SQL in Datenbanksystemen
SQL ist nicht nur eine Abfragesprache, sondern ein vollständiges System zur Definition, Manipulation und Kontrolle von Daten. Wenn wir SQL als die "Sprache der Datenbanken" bezeichnen, dann ist dies durchaus wörtlich zu verstehen. Genau wie Sie Deutsch oder Englisch verwenden, um mit anderen Menschen zu kommunizieren, verwenden Sie SQL, um mit Datenbanken zu kommunizieren.
Die Stärke von SQL liegt in seiner deklarativen Natur. Anstatt dem Computer Schritt für Schritt zu erklären, wie er etwas tun soll (wie in prozeduralen Programmiersprachen), beschreiben Sie in SQL einfach, was Sie wollen. Das Datenbankmanagementsystem kümmert sich dann um die optimale Ausführung Ihrer Anfrage.
Arten von Datenbanken und SQL-Systeme
Relationale Datenbanken - Das Fundament von SQL
Relationale Datenbanken bilden das Herzstück der meisten modernen Datenbankanwendungen. Das Konzept wurde in den 1970er Jahren von Edgar F. Codd entwickelt und revolutionierte die Art, wie wir über Datenspeicherung denken. In relationalen Datenbanken werden Daten in Tabellen organisiert, die durch Beziehungen miteinander verbunden sind.
Die Grundstruktur einer relationalen Datenbank lässt sich am besten durch ein praktisches Beispiel verstehen. Stellen Sie sich eine Datenbank für eine kleine Buchhandlung vor:
-- Tabelle für Autoren
CREATE TABLE Autoren (
AutorID INT PRIMARY KEY,
Vorname VARCHAR(50),
Nachname VARCHAR(50),
Geburtsdatum DATE
);
-- Tabelle für Bücher
CREATE TABLE Buecher (
BuchID INT PRIMARY KEY,
Titel VARCHAR(200),
AutorID INT,
Erscheinungsjahr INT,
Preis DECIMAL(8,2),
FOREIGN KEY (AutorID) REFERENCES Autoren(AutorID)
);
Hinweis: Der CREATE TABLE Befehl ist einer der grundlegenden DDL (Data Definition Language) Befehle in SQL. Er definiert die Struktur einer neuen Tabelle einschließlich der Spalten, Datentypen und Einschränkungen.
Diese einfache Struktur demonstriert bereits mehrere wichtige Konzepte:
-
Primärschlüssel (PRIMARY KEY): Eindeutige Identifikatoren für jede Zeile -
Fremdschlüssel (FOREIGN KEY): Verweise, die Beziehungen zwischen Tabellen herstellen -
Datentypen: INT für Ganzzahlen, VARCHAR für Texte, DATE für Datumsangaben, DECIMAL für Dezimalzahlen
Populäre SQL-Datenbankmanagementsysteme
Die SQL-Sprache ist standardisiert, aber verschiedene Datenbankmanagementsysteme (DBMS) implementieren sie mit leichten Variationen und Erweiterungen. Die wichtigsten Systeme, die Sie als SQL-Einsteiger kennen sollten:
MySQL: Eines der weltweit am häufigsten verwendeten Open-Source-Datenbanksysteme. MySQL ist besonders beliebt für Webanwendungen und bietet eine gute Balance zwischen Leistung und Benutzerfreundlichkeit.
-- MySQL-spezifische Syntax für Auto-Increment
CREATE TABLE Kunden (
KundenID INT AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(100),
Email VARCHAR(150)
);
PostgreSQL: Ein leistungsstarkes, objektrelationales Datenbanksystem mit erweiterten Features. PostgreSQL ist bekannt für seine Standardkonformität und erweiterten Datentypen.
Microsoft SQL Server: Ein kommerzielles Datenbanksystem von Microsoft, das eng mit Windows-Umgebungen integriert ist.
SQLite: Eine leichtgewichtige, dateibasierte Datenbank, die sich perfekt für kleinere Anwendungen und Prototyping eignet.
-- SQLite unterstützt einfache Tabellenstruktur
CREATE TABLE Notizen (
id INTEGER PRIMARY KEY AUTOINCREMENT,
titel TEXT,
inhalt TEXT,
erstellt DATETIME DEFAULT CURRENT_TIMESTAMP
);
Kommando-Erklärung: AUTOINCREMENT in SQLite entspricht dem AUTO_INCREMENT in MySQL und sorgt dafür, dass bei jeder neuen Zeile automatisch eine eindeutige ID vergeben wird.
Datenbankstrukturen verstehen
Tabellen, Zeilen und Spalten
Das Verständnis der grundlegenden Struktur von SQL-Datenbanken ist entscheidend für jeden Einsteiger. Stellen Sie sich eine Tabelle wie eine Excel-Tabelle vor, aber mit viel strengeren Regeln und mächtigeren Funktionen.
Eine Tabelle ist eine Sammlung verwandter Daten, die in einem strukturierten Format organisiert sind. Jede Tabelle besteht aus:
Spalten (Columns/Fields): Definieren die Art der Daten, die gespeichert werden können. Jede Spalte hat einen Namen und einen Datentyp.
Zeilen (Rows/Records): Enthalten die tatsächlichen Dateneinträge. Jede Zeile repräsentiert eine einzelne Instanz der in der Tabelle gespeicherten Entität.
Betrachten wir eine praktische Tabelle für Mitarbeiter:
CREATE TABLE Mitarbeiter (
MitarbeiterID INT PRIMARY KEY,
Vorname VARCHAR(50) NOT NULL,
Nachname VARCHAR(50) NOT NULL,
Position VARCHAR(100),
Gehalt DECIMAL(10,2),
Einstellungsdatum DATE,
AbteilungsID INT
);
Detaillierte Erklärung der Datentypen:
Datentyp
Beschreibung
Beispiel
INT
Ganzzahl, typischerweise -2,147,483,648 bis...