Datenbanken

DDL, Constraints, Views und Indexe

CREATE TABLE, ALTER TABLE, Constraints, referentielle Integrität, Views, WITH CHECK OPTION und Indexe.

DDL, Constraints, Views und Indexe

Datenbanken brauchen Regeln. Sie sollen nicht nur Daten speichern, sondern auch verhindern, dass ungültige Daten entstehen.

DDL

Data Definition Language definiert Datenbankobjekte.

Wichtige Befehle:

  • CREATE
  • ALTER
  • DROP

Beispiel:

CREATE TABLE kunde (
  kundennummer NUMBER PRIMARY KEY,
  name         VARCHAR2(100) NOT NULL,
  email        VARCHAR2(200)
);

ALTER TABLE

Mit ALTER TABLE wird eine Tabelle nachträglich verändert.

Beispiele:

ALTER TABLE kunde
ADD geburtsdatum DATE;
ALTER TABLE kunde
MODIFY name VARCHAR2(150);
ALTER TABLE kunde
DROP COLUMN geburtsdatum;

Constraints

Constraints sind Regeln für Daten.

ConstraintBedeutung
PRIMARY KEYeindeutige Kennung einer Zeile
FOREIGN KEYVerweis auf eine andere Tabelle
NOT NULLWert darf nicht leer sein
UNIQUEWert muss eindeutig sein
CHECKWert muss eine Bedingung erfüllen

Primärschlüssel-Constraint

CREATE TABLE film (
  film_id NUMBER PRIMARY KEY,
  titel   VARCHAR2(200) NOT NULL
);

Fremdschlüssel-Constraint

CREATE TABLE vorstellung (
  vorstellung_id NUMBER PRIMARY KEY,
  film_id        NUMBER NOT NULL,
  startzeit      DATE,
  CONSTRAINT fk_vorstellung_film
    FOREIGN KEY (film_id)
    REFERENCES film (film_id)
);

Damit kann keine Vorstellung auf einen nicht existierenden Film verweisen.

CHECK-Constraint

CREATE TABLE ticket (
  ticket_id NUMBER PRIMARY KEY,
  preis     NUMBER CHECK (preis >= 0)
);

So werden fachlich ungültige Werte direkt in der Datenbank abgefangen.

Views

Eine View ist eine gespeicherte Abfrage, die sich wie eine virtuelle Tabelle verwenden lässt.

CREATE VIEW veteran AS
SELECT *
FROM players
WHERE year_of_birth < 1950;

Abfrage:

SELECT *
FROM veteran;

Views können helfen bei:

  • Vereinfachung komplexer Abfragen
  • Zugriffsbeschränkung auf bestimmte Spalten
  • fachlicher Sicht auf Daten
  • Wiederverwendung

WITH CHECK OPTION

Bei änderbaren Views kann ein Problem entstehen: Eine Änderung kann dazu führen, dass der Datensatz nicht mehr zur View passt.

CREATE VIEW veteran AS
SELECT *
FROM players
WHERE year_of_birth < 1950
WITH CHECK OPTION;

WITH CHECK OPTION verhindert Änderungen, die die View-Bedingung verletzen.

Indexe

Ein Index beschleunigt Suchzugriffe.

Vergleich: Ein Buchindex hilft, ein Thema schnell zu finden, ohne das ganze Buch zu lesen.

CREATE INDEX idx_kunde_email
ON kunde (email);

Vorteile:

  • schnellere Suche
  • schnellere Joins
  • schnellere Sortierungen in bestimmten Fällen

Nachteile:

  • braucht Speicherplatz
  • verlangsamt INSERT, UPDATE und DELETE
  • muss gepflegt werden

Integrität

Datenintegrität bedeutet, dass Daten korrekt, vollständig und widerspruchsfrei bleiben.

Wichtige Formen:

  • Entitätsintegrität durch Primärschlüssel
  • referentielle Integrität durch Fremdschlüssel
  • Wertebereichsintegrität durch Datentypen und Checks
  • Geschäftsregeln durch Constraints oder Anwendungscode

Merksatz

Constraints schützen Datenqualität. Views strukturieren Zugriffe. Indexe beschleunigen Abfragen, kosten aber Pflegeaufwand.

Zuletzt aktualisiert: 6. Juni 2026