SQL
Version vom 22. März 2025, 07:47 Uhr von Thomas.will (Diskussion | Beiträge)
Grundkonzepte relationaler Datenbanken
Was ist eine Datenbank?
- Eine Datenbank ist ein strukturiertes System zur Speicherung, Organisation und Verwaltung von Daten, das speziell für den zuverlässigen Zugriff auf große Datenmengen konzipiert wurde.
- Im Gegensatz zu einfachen Dateien oder Tabellenkalkulationen gewährleisten Datenbanken Konsistenz, Integrität und gleichzeitigen Zugriff durch mehrere Benutzer.
- Daten werden zentral verwaltet und lassen sich effizient durchsuchen, filtern und bearbeiten, auch bei komplexen Datenbeziehungen.
- Relationale Datenbanken speichern Informationen in Tabellenform und ermöglichen durch strukturierte Abfragen (z. B. in SQL) gezielte Analysen und Auswertungen.
- Ein Datenbanksystem (DBMS) wie MariaDB oder PostgreSQL verwaltet die Datenbank, regelt Zugriffsrechte, sorgt für Datensicherheit und stellt Mechanismen für Sicherung, Wiederherstellung und Transaktionen bereit.
Was ist eine Tabelle?
- Eine Tabelle ist die grundlegende Struktur innerhalb einer relationalen Datenbank, in der Daten zeilenweise gespeichert werden.
- Sie besteht aus Spalten (auch Felder oder Attribute genannt) und Zeilen (auch Datensätze oder Tupel).
- Jede Spalte definiert eine bestimmte Eigenschaft (z. B. Name, Alter, ID) mit einem festen Datentyp.
- Jede Zeile repräsentiert einen vollständigen Datensatz, also eine konkrete Ausprägung aller Spaltenwerte.
- Tabellen haben einen eindeutigen Namen innerhalb der Datenbank und können durch Schlüssel miteinander in Beziehung gesetzt werden.
Was ist eine Zeile?
- Eine Zeile – auch Datensatz oder Tupel genannt – ist ein vollständiger Eintrag in einer Tabelle.
- Sie enthält genau einen Wert pro Spalte und beschreibt damit eine konkrete Entität, z. B. eine Person, ein Produkt oder einen Vorgang.
- Alle Zeilen in einer Tabelle folgen dem gleichen Schema, d. h. sie besitzen dieselben Spalten.
- Jede Zeile ist in der Regel durch einen Primärschlüssel eindeutig identifizierbar.
Was ist eine Spalte?
- Eine Spalte beschreibt eine einzelne Eigenschaft der gespeicherten Daten, z. B. Vorname, Nachname oder Geburtsdatum.
- Sie hat einen Namen, einen Datentyp (z. B. INTEGER, VARCHAR, DATE) und gegebenenfalls weitere Einschränkungen (z. B. NOT NULL, UNIQUE).
- Alle Werte einer Spalte müssen dem vorgegebenen Datentyp entsprechen.
- Die Struktur und Bedeutung der Spalten wird durch das Tabellenschema vorgegeben.
Was ist ein Primärschlüssel?
- Ein Primärschlüssel (Primary Key) ist eine Spalte oder Kombination mehrerer Spalten, die jeden Datensatz einer Tabelle eindeutig identifiziert.
- Es darf keine zwei Zeilen mit dem gleichen Wert im Primärschlüssel geben.
- Primärschlüssel sind notwendig, um Daten eindeutig zu referenzieren, etwa bei Verknüpfungen mit anderen Tabellen.
- Ein Primärschlüssel ist automatisch mit einem Index versehen, der die Suche nach bestimmten Datensätzen beschleunigt.
Was ist ein Fremdschlüssel?
- Ein Fremdschlüssel (Foreign Key) ist eine Spalte, die auf den Primärschlüssel einer anderen Tabelle verweist.
- Er dient dazu, logische Beziehungen zwischen Tabellen abzubilden, z. B. „ein Kunde hat mehrere Bestellungen“.
- Fremdschlüssel erzwingen die referenzielle Integrität – das bedeutet: ein Wert darf nur dann eingetragen werden, wenn er auch in der referenzierten Tabelle existiert.
- Dadurch wird sichergestellt, dass keine „verwaisten“ Verweise in der Datenbank existieren.
Was ist ein Index?
- Ein Index ist eine spezielle Datenstruktur, die dazu dient, den Zugriff auf Daten zu beschleunigen.
- Er funktioniert ähnlich wie ein Inhaltsverzeichnis: Statt alle Zeilen der Tabelle zu durchsuchen, springt das DBMS gezielt zur gesuchten Stelle.
- Indexe werden oft auf Spalten gesetzt, die häufig in WHERE-Bedingungen, JOINs oder Sortierungen verwendet werden.
- Ein Primärschlüssel erzeugt automatisch einen eindeutigen Index.
- Neben eindeutigen (UNIQUE) Indexen gibt es auch einfache (nicht eindeutige) Indexe für Performance-Zwecke.
ASCII-Darstellung einer Tabelle
+------------+------------+------------+ | ID | Name | Alter | +------------+------------+------------+ | 1 | Anna | 30 | | 2 | Ben | 45 | | 3 | Carla | 22 | +------------+------------+------------+
- Legende
- Die Tabelle enthält drei Spalten: ID, Name, Alter
- Jede Zeile ist ein Datensatz mit konkreten Werten
- Die Spalte ID könnte als Primärschlüssel verwendet werden
- Alle Werte der Spalte „Alter“ sind vom gleichen Datentyp (z. B. INTEGER)