SQL: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
Zeile 1: Zeile 1:
 
=Grundkonzepte relationaler Datenbanken=
 
=Grundkonzepte relationaler Datenbanken=
 
+
{{#drawio:datenbank}}
 
==Was ist eine Datenbank?==
 
==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.
 
*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.

Aktuelle Version vom 4. Februar 2026, 10:18 Uhr

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)