SQL

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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)