SQL: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
Zeile 2: Zeile 2:
  
 
==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 22. März 2025, 07:47 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)