21 - Microsoft SQL Server / SQL-Datenbanken
1. Grundidee: Was ist eine SQL-Datenbank überhaupt?
Eine SQL-Datenbank ist ein System zur strukturierten Speicherung, Verwaltung und Abfrage von Daten. Im Gegensatz zu einfachen Dateien oder Tabellenkalkulationen werden Daten hier nicht einfach nur irgendwo abgelegt, sondern nach klaren Regeln organisiert. Dadurch lassen sich große Datenmengen effizient durchsuchen, ändern, verknüpfen und absichern.
Microsoft SQL Server ist ein relationales Datenbankmanagementsystem von Microsoft. Es wird in Unternehmen überall dort eingesetzt, wo Anwendungen strukturierte Daten speichern und verarbeiten müssen, zum Beispiel in Warenwirtschaftssystemen, CRM-Lösungen, Buchhaltung, Zeiterfassung oder auch in Webanwendungen.
Das Besondere ist, dass nicht nur die Daten selbst verwaltet werden, sondern auch:
- Benutzer und Berechtigungen
- Sicherungen
- Transaktionen
- Performance
- Wiederherstellung nach Fehlern
Datenbanken
Eine Datenbank ist nicht einfach nur ein Speicherort für Daten. Sie ist ein System, das Daten strukturiert organisiert, Beziehungen zwischen Daten herstellen kann und gleichzeitig Sicherheit, Performance und Wiederherstellbarkeit bietet.
2. Wie ist eine MS SQL-Datenbank technisch aufgebaut?
Wenn man sich eine SQL-Server-Datenbank aus technischer Sicht ansieht, stößt man sehr schnell auf zwei besonders wichtige Dateitypen:
- Datendatei
- Transaktionslog-Datei
Diese beiden Dateien haben völlig unterschiedliche Aufgaben und dürfen nicht verwechselt werden.
Datendatei
Die Datendatei enthält die eigentlichen Inhalte der Datenbank. Dazu gehören:
- Tabellen
- Indizes
- gespeicherte Daten
- Sichten
- weitere Datenbankobjekte
Beim SQL Server handelt es sich dabei typischerweise um eine Datei mit der Endung .mdf als primäre Datendatei. Zusätzlich kann es noch weitere Datendateien geben, zum Beispiel .ndf.
Man kann sich die Datendatei als den Bereich vorstellen, in dem die tatsächlichen Informationen dauerhaft liegen.
Transaktionslog-Datei
Die Transaktionslog-Datei hat eine andere Aufgabe. Sie speichert nicht einfach die Daten selbst, sondern protokolliert Änderungen an der Datenbank. Jedes Einfügen, Ändern oder Löschen von Daten wird zunächst im Transaktionsprotokoll festgehalten.
Die Transaktionslog-Datei hat meist die Endung .ldf.
Sie ist wichtig für:
- Wiederherstellung nach Abstürzen
- Transaktionssicherheit
- Rollback bei Fehlern
- Sicherung bis zu einem bestimmten Zeitpunkt
Das bedeutet: Wenn eine Änderung gerade durchgeführt wird und der Server stürzt ab, kann SQL Server mithilfe des Logs nachvollziehen, was passiert ist. Dadurch kann die Datenbank in einen konsistenten Zustand zurückgebracht werden.
Die Datendatei speichert die eigentlichen Daten.
Die Log-Datei protokolliert alle Änderungen und sorgt für Wiederherstellbarkeit und Transaktionssicherheit.
3. Wie ist eine Datenbank inhaltlich aufgebaut?
Neben dem technischen Aufbau muss man auch den fachlichen bzw. logischen Aufbau einer Datenbank verstehen. Hier kommen die typischen Begriffe ins Spiel, die man fast immer erklären muss: Tabellen, Felder und Relationen.
Tabellen
Tabellen sind die zentrale Struktur in relationalen Datenbanken. In ihnen werden Daten thematisch geordnet gespeichert. Eine Tabelle enthält also Datensätze eines bestimmten Typs.
Beispiele:
- Tabelle Customers für Kunden
- Tabelle Orders für Bestellungen
- Tabelle Products für Artikel
Eine Tabelle ist dabei vergleichbar mit einer Liste, allerdings mit klar definierten Spalten und Datentypen.
Felder
Felder sind die einzelnen Spalten einer Tabelle. Sie beschreiben, welche Art von Information in der Tabelle gespeichert wird.
Beispiel für Felder in einer Kundentabelle:
- Kundennummer
- Firmenname
- Ansprechpartner
- Ort
- Telefonnummer
Jedes Feld hat normalerweise einen bestimmten Datentyp, zum Beispiel:
- Text
- Zahl
- Datum
- Ja/Nein-Wert
Datensätze
Die einzelnen Zeilen einer Tabelle nennt man Datensätze. Ein Datensatz enthält die Werte eines konkreten Eintrags.
Relationen
Relationen beschreiben die Beziehungen zwischen Tabellen. Genau das ist einer der wichtigsten Unterschiede zwischen einer echten relationalen Datenbank und einer einfachen Liste.
Beispiel:
- Ein Kunde kann viele Bestellungen haben
- Eine Bestellung gehört genau zu einem Kunden
Diese Verbindung wird über Schlüssel hergestellt, meistens über:
- Primärschlüssel
- Fremdschlüssel
Ein Primärschlüssel identifiziert einen Datensatz eindeutig.
Ein Fremdschlüssel verweist auf einen Datensatz in einer anderen Tabelle.
Tabellen speichern Daten nach Themen geordnet.
Felder beschreiben die Eigenschaften dieser Daten.
Relationen verbinden mehrere Tabellen logisch miteinander.
4. SQL Server vorbereiten: Installation einer Testumgebung
Für Übungen und Demonstrationen reicht SQL Server Express vollkommen aus. Diese Edition ist kostenlos und für Lern- und Testzwecke sehr gut geeignet.
Ein sinnvoller Ablauf ist:
- SQL Server Express installieren
- SQL Server Management Studio (SSMS) installieren
- Testdatenbank importieren
- erste SQL-Befehle ausführen
5. Northwind-Beispieldatenbank herunterladen und einbinden
Für Übungen mit Tabellen, Datensätzen und SQL-Befehlen ist die Northwind-Datenbank von Microsoft sehr geeignet. Sie enthält realistische Beispieldaten aus einem Handelsunternehmen, unter anderem zu:
- Kunden
- Bestellungen
- Produkten
- Lieferanten
- Mitarbeitern
Damit kann man sehr gut SQL-Abfragen und Änderungen üben, ohne erst selbst Tabellen anlegen zu müssen.
6. Wofür können SQL-Wartungspläne genutzt werden?
SQL-Wartungspläne dienen dazu, regelmäßig wiederkehrende Verwaltungsaufgaben zu automatisieren. Das ist wichtig, weil Datenbanken im laufenden Betrieb gepflegt werden müssen. Ohne diese Pflege kann es zu Performanceproblemen, unnötig großem Speicherverbrauch oder fehlenden Sicherungen kommen.
Typische Aufgaben von Wartungsplänen sind:
- Datenbanksicherungen erstellen
- Transaktionslog sichern
- Datenbanken auf Konsistenz prüfen
- Indizes reorganisieren oder neu aufbauen
- Statistiken aktualisieren
- alte Sicherungsdateien löschen
Gerade in produktiven Umgebungen sind Wartungspläne wichtig, weil sie sicherstellen, dass diese Aufgaben regelmäßig und zuverlässig ausgeführt werden.
Wartungspläne automatisieren wichtige Standardaufgaben wie Backups, Integritätsprüfungen und Indexpflege. Sie sind wichtig für Sicherheit, Performance und Stabilität von Datenbanken.
7. In welchen Editionen stehen Wartungspläne zur Verfügung?
Wartungspläne stehen typischerweise nicht in SQL Server Express zur Verfügung, weil dafür der SQL Server Agent benötigt wird, der in Express nicht enthalten ist. In höheren Editionen wie Standard oder Enterprise sind Wartungspläne verfügbar.
Das ist wichtig für die Praxis:
Für eine kleine Testumgebung reicht Express, aber viele administrative Komfortfunktionen fehlen dort.
SQL Server Express ist gut für Lern- und Testzwecke, aber nicht alle Verwaltungsfunktionen stehen zur Verfügung. Besonders Wartungspläne und der SQL Server Agent fehlen in dieser Edition.
8. Die wichtigsten SQL-Befehle: SELECT, INSERT, UPDATE und DELETE
SQL, oder Structured Query Language, ist eine Datenbanksprache, die speziell für die Interaktion mit Datenbanken entwickelt wurde. Sie ermöglicht es Ihnen, die Daten in Datenbanken auf vielfältige Weise zu manipulieren - z. B. zu ändern, zu löschen, hinzuzufügen oder einfach zu extrahieren und in einen Bericht einzufügen.
SELECT
Mit SELECT werden Daten abgefragt.
Beispiel:
SELECT * FROM Customers;
Dieser Befehl gibt alle Spalten und alle Datensätze der Tabelle Customers aus.
Man kann auch gezielter abfragen:
SELECT CompanyName, City FROM Customers;
INSERT
Mit INSERT werden neue Datensätze in eine Tabelle eingefügt.
Beispiel:
INSERT INTO Customers (CustomerID, CompanyName, City)
VALUES ('XY123', 'Musterfirma GmbH', 'Berlin');
UPDATE
Mit UPDATE werden bestehende Datensätze geändert.
Beispiel:
UPDATE Customers
SET City = 'Hamburg'
WHERE CustomerID = 'XY123';
DELETE
Mit DELETE werden Datensätze gelöscht.
Beispiel:
DELETE FROM Customers
WHERE CustomerID = 'XY123';
Bei UPDATE und DELETE ist die WHERE-Bedingung extrem wichtig. Ohne WHERE können versehentlich alle Datensätze geändert oder gelöscht werden.
9. Demonstration an der Northwind-Datenbank
Für die praktische Demonstration kannst du dir in Northwind eine übersichtliche Tabelle aussuchen, zum Beispiel Customers oder Products.
Ein sinnvoller Ablauf wäre:
- Mit SELECT vorhandene Daten anzeigen
- Mit INSERT einen Testdatensatz hinzufügen
- Mit UPDATE diesen Datensatz ändern
- Mit DELETE den Testdatensatz wieder entfernen
Dadurch zeigst du den vollständigen Lebenszyklus eines Datensatzes.
Ein Beispiel mit der Tabelle Customers:
SELECT * FROM Customers;
INSERT INTO Customers (CustomerID, CompanyName, City)
VALUES ('XZ999', 'Testkunde GmbH', 'Köln');
UPDATE Customers
SET City = 'Bonn'
WHERE CustomerID = 'XZ999';
DELETE FROM Customers
WHERE CustomerID = 'XZ999';
Für Übungen mit SQL-Befehlen sollte man möglichst einen selbst eingefügten Testdatensatz verwenden. So verändert man nicht versehentlich echte Beispieldaten dauerhaft.
10. Warum das alles wichtig ist
SQL Server ist in vielen Umgebungen ein zentrales Backend-System. Wer verstanden hat, wie Datenbanken technisch und logisch aufgebaut sind, kann Anwendungen besser verstehen, Fehler gezielter analysieren und Daten sicher verwalten.
Besonders wichtig sind:
- Verständnis für Datendatei und Log-Datei
- sauberer Umgang mit Tabellen und Relationen
- sichere Nutzung von SQL-Befehlen
- Wissen über Wartung und Backups
Gerade der Unterschied zwischen Datendatei und Transaktionslog ist in der Praxis sehr wichtig weil viele Probleme in SQL-Umgebungen genau dort entstehen: volle Log-Dateien, fehlende Backups oder Missverständnisse bei Wiederherstellungen.
Eine SQL-Datenbank besteht nicht nur aus Tabellen, sondern auch aus Verwaltungs- und Sicherheitsmechanismen. Wer SQL Server verstehen will, muss sowohl den logischen Aufbau der Daten als auch die technische Struktur der Datenbankdateien kennen.