SQL: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 1: Zeile 1:
 
=Grundkonzepte relationaler Datenbanken=
 
=Grundkonzepte relationaler Datenbanken=
−
 
+
{{#drawio:datenbank}}
 
==Was ist eine Datenbank?==
 
==Was ist eine Datenbank?==
−
Eine Datenbank ist eine strukturierte Sammlung von Daten. Sie dient der langfristigen, konsistenten und kontrollierten Speicherung und Organisation von Informationen.
+
*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.
−
In relationalen Datenbanken besteht sie aus mehreren logisch verknüpften Tabellen.
+
*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?==
 
==Was ist eine Tabelle?==
−
Eine Tabelle ist eine strukturierte Anordnung von Daten in Zeilen und Spalten. Sie stellt eine Sammlung gleichartiger Objekte oder Entitäten dar.
+
*Eine Tabelle ist die grundlegende Struktur innerhalb einer relationalen Datenbank, in der Daten zeilenweise gespeichert werden.
−
Jede Tabelle besitzt einen eindeutigen Namen und ist Teil der Datenbank.
+
*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?==
 
==Was ist eine Zeile?==
−
Eine Zeile (auch: Tupel, Datensatz) repräsentiert ein einzelnes Objekt oder einen Eintrag in der Tabelle.
+
*Eine Zeile – auch Datensatz oder Tupel genannt – ist ein vollständiger Eintrag in einer Tabelle.
−
Jede Zeile enthält Werte für jede Spalte der 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?==
 
==Was ist eine Spalte?==
−
Eine Spalte (auch: Attribut) definiert eine bestimmte Eigenschaft oder ein Datenfeld.
+
*Eine Spalte beschreibt eine einzelne Eigenschaft der gespeicherten Daten, z. B. Vorname, Nachname oder Geburtsdatum.
−
Jede Spalte hat einen Namen und einen Datentyp (z. B. Ganzzahl, Text, Datum).
+
*Sie hat einen Namen, einen Datentyp (z. B. INTEGER, VARCHAR, DATE) und gegebenenfalls weitere Einschränkungen (z. B. NOT NULL, UNIQUE).
−
Spaltenstruktur ist für alle Zeilen gleich.
+
*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?==
 
==Was ist ein Primärschlüssel?==
−
Ein Primärschlüssel ist eine oder mehrere Spalten, deren Kombination jeden Datensatz eindeutig identifiziert.
+
*Ein Primärschlüssel (Primary Key) ist eine Spalte oder Kombination mehrerer Spalten, die jeden Datensatz einer Tabelle eindeutig identifiziert.
−
Er verhindert doppelte Einträge und ist essenziell für Beziehungen zwischen Tabellen.
+
*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?==
 
==Was ist ein Fremdschlüssel?==
−
Ein Fremdschlüssel ist eine Spalte, die auf einen Primärschlüssel in einer anderen Tabelle verweist.
+
*Ein Fremdschlüssel (Foreign Key) ist eine Spalte, die auf den Primärschlüssel einer anderen Tabelle verweist.
−
Er definiert eine Beziehung zwischen zwei Tabellen und stellt referenzielle Integrität sicher.
+
*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?==
 
==Was ist ein Index?==
−
Ein Index ist eine spezielle Datenstruktur, die das schnelle Suchen und Zugreifen auf Daten ermöglicht.
+
*Ein Index ist eine spezielle Datenstruktur, die dazu dient, den Zugriff auf Daten zu beschleunigen.
−
Er funktioniert ähnlich wie ein Inhaltsverzeichnis in einem Buch.
+
*Er funktioniert ähnlich wie ein Inhaltsverzeichnis: Statt alle Zeilen der Tabelle zu durchsuchen, springt das DBMS gezielt zur gesuchten Stelle.
−
Indexe können auf einzelne oder mehrere Spalten gelegt werden.
+
*Indexe werden oft auf Spalten gesetzt, die häufig in WHERE-Bedingungen, JOINs oder Sortierungen verwendet werden.
−
Ein Primärschlüssel ist immer automatisch indiziert.
+
*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==
 
==ASCII-Darstellung einer Tabelle==
−
 
−
Hier eine schematische Darstellung:
 
  
 
  +------------+------------+------------+
 
  +------------+------------+------------+
Zeile 44: Zeile 56:
 
  +------------+------------+------------+
 
  +------------+------------+------------+
  
−
Legende:
+
;Legende
−
* Tabelle: rechteckige Anordnung
+
*Die Tabelle enthält drei Spalten: ID, Name, Alter
−
* Spalten: ID, Name, Alter
+
*Jede Zeile ist ein Datensatz mit konkreten Werten
−
* Zeilen: einzelne Einträge (Datensätze)
+
*Die Spalte ID könnte als Primärschlüssel verwendet werden
−
* ID: könnte Primärschlüssel sein
+
*Alle Werte der Spalte „Alter“ sind vom gleichen Datentyp (z. B. INTEGER)

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)