Zum Inhalt springen
SemaTrain

SQL-WISSEN · Struktur und Zugriff

Views, Indizes und Constraints

Wie Views, Indizes und Constraints drei unterschiedliche Ebenen einer Datenbank adressieren: logische Sicht, Zugriffspfad und Datenintegrität.

Drei unterschiedliche Aufgaben

Eine View kapselt eine Abfrage unter einem Namen und stellt damit eine logische Sicht auf Daten bereit. Ein Index ist primär eine zusätzliche Zugriffsstruktur, die der Optimizer für bestimmte Abfragen nutzen kann; eindeutige Indizes können je Produkt zusätzlich Eindeutigkeit erzwingen oder Constraints technisch unterstützen. Ein Constraint formuliert eine Integritätsregel für zulässige Daten.

Diese drei Konzepte können gemeinsam in einem Schema vorkommen, lösen aber nicht dasselbe Problem.

Konzept Primäre Aufgabe Nicht automatisch
View Abfrage logisch kapseln und wiederverwenden Performancebeschleunigung
Index Zugriffspfade für bestimmte Abfragen bereitstellen Datenqualität sicherstellen
Constraint Zulässige Daten und Beziehungen absichern Abfragen beschleunigen

View und Index im Beispiel

Eine View kann eine wiederkehrende Auswahl zentral benennen. Ein Index kann unabhängig davon auf einer häufig verwendeten Such- oder Joinspalte angelegt werden.

Ob ein Index tatsächlich genutzt wird und welchen Effekt er hat, entscheidet der jeweilige Optimizer im konkreten Daten- und Abfragekontext.

Logische Sicht und Zugriffspfad
CREATE VIEW v_offene_bestellungen AS
SELECT id, kunde_id, betrag
FROM bestellung
WHERE status = 'offen';

CREATE INDEX idx_bestellung_kunde
ON bestellung(kunde_id);

Constraints gehören zur Datenqualität

NOT NULL, UNIQUE, CHECK, PRIMARY KEY und FOREIGN KEY beschreiben Integritätsregeln. Sie sollen fachlich ungültige Zustände begrenzen und sind nicht bloß Hinweise für die Anwendung.

Produktspezifische Details wie View-Ersetzbarkeit, Updatability, Indexarten, Plannerverhalten und einzelne Constraint-Regeln müssen in der jeweiligen Produktdokumentation geprüft werden.

Kritisch unterscheiden

  • Eine View ist eine logische Abstraktion; sie ist nicht automatisch materialisiert.
  • Ein Index kann die Ausführung beeinflussen, ändert aber nicht die fachliche Bedeutung einer korrekten Abfrage.
  • Ein Constraint formuliert eine Integritätsregel. Ein UNIQUE-Index kann Eindeutigkeit direkt erzwingen oder einen UNIQUE-/PRIMARY-KEY-Constraint technisch unterstützen; fachliche Regel und technischer Mechanismus bleiben dennoch zu unterscheiden.

Typische Fehler und Missverständnisse

  • Für jede häufig verwendete Abfrage automatisch einen Index anzulegen, ohne Schreibkosten und Selektivität zu prüfen.
  • Eine View als garantierten Performancecache zu behandeln.
  • Integritätsregeln ausschließlich in der Anwendung zu prüfen, obwohl sie auf Datenbankebene fachlich abgesichert werden sollen.

Praxisfall

Reporting mit Datenqualität

Ein Report benötigt regelmäßig offene Bestellungen. Gleichzeitig darf eine Bestellung nur auf einen vorhandenen Kunden verweisen, und Kundensuchen erfolgen häufig über die Kunden-ID.

  • Welche Aufgabe eignet sich für eine View?
  • Wo könnte ein Index als Zugriffspfad geprüft werden?
  • Welche Regel gehört als Constraint in das Datenmodell?

Selbsttest

Verständnis prüfen

1. Welches Konzept formuliert primär eine Integritätsregel?

Antwortmöglichkeiten zu Frage 1
Antwort und Begründung anzeigen

Constraints formulieren Regeln für zulässige Datenzustände und Beziehungen.

2. Welche Aussage trennt Index und Constraint am präzisesten?

Antwortmöglichkeiten zu Frage 2
Antwort und Begründung anzeigen

Indizes gehören primär zur Zugriffs- und Optimierungsebene. UNIQUE-Indizes können zugleich Eindeutigkeit technisch erzwingen; die zugrunde liegende Integritätsregel sollte dennoch begrifflich vom Implementierungsmechanismus getrennt werden.

Transfer

Auf die eigene Praxis übertragen

Ordnen Sie in einem bestehenden Schema jede technische Maßnahme einer Kategorie zu: logische Sicht, Zugriffspfad oder Integritätsregel. Prüfen Sie anschließend, ob eine Maßnahme derzeit eine Aufgabe erfüllen soll, für die ein anderes Konzept geeigneter wäre.

Weiterlernen

Verknüpfungen

Quellen, Prüfstand und Grenzen

Fachliche Nachvollziehbarkeit

Quellen geprüft
2026-09-18
Versionsrahmen
Gemeinsamer SQL-Kern mit explizit gekennzeichneten Varianten für SQLite 3.53.4, PostgreSQL 18 und MySQL 8.4 LTS.
Aussagebereich
Subqueries, Views und Indexe besitzen einen gemeinsamen SQL-Kern, während View-Ersetzung, Planner und Indexdetails produktabhängig sind. Die Modellierungsgrundlagen werden systemübergreifend vermittelt. Datentypen, Schlüsselgenerierung und einzelne DDL-Details können je Produkt abweichen.
Originalität
Faktenbasis aus Primärquellen; Einordnung, Struktur, Beispiele, Selbsttests und Transfer sind eigenständige SemaTrain-Inhalte.

Grenzen

  • Indexnutzung, View-Updatability und einzelne Constraint-Details sind produkt- und versionsabhängig.
  • Produktspezifische Syntax und Verhalten können sich zwischen SQLite, PostgreSQL und MySQL unterscheiden.
  • Versionsabhängige Aussagen gelten für den im Quellenbereich ausgewiesenen Prüfstand.

Primärquellen

Projekt-Primärdokumentation

SQL As Understood By SQLite

SQLite

Version: SQLite 3.53.4

Bezug: SQLite-Sprachübersicht zu SELECT/Subqueries, CREATE VIEW und CREATE INDEX.

Projekt-Primärdokumentation

PostgreSQL 18 CREATE VIEW

PostgreSQL

Version: PostgreSQL 18

Bezug: CREATE VIEW und CREATE OR REPLACE VIEW.

Hersteller-Primärdokumentation

MySQL 8.4 Subqueries

MySQL

Version: MySQL 8.4 LTS

Bezug: MySQL-Subquery-Syntax und -Semantik.

Projekt-Primärdokumentation

SQLite CREATE TABLE

SQLite

Version: SQLite 3.53.4

Bezug: CREATE TABLE, PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK und DEFAULT.

Projekt-Primärdokumentation

PostgreSQL 18 CREATE TABLE

PostgreSQL

Version: PostgreSQL 18

Bezug: CREATE TABLE, Spalten, Constraints und Schlüssel.

Hersteller-Primärdokumentation

MySQL 8.4 CREATE TABLE Statement

MySQL

Version: MySQL 8.4 LTS

Bezug: CREATE TABLE, Schlüssel, Constraints und MySQL-spezifische Optionen.