Datendefinition und Datenmanipulation in SQL



Ähnliche Dokumente
Referenzielle Integrität SQL

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

SQL: statische Integrität

Ein Ausflug zu ACCESS

Bedingungen über Werte Statische Integrität. CHECK-Klausel

SQL für Trolle. mag.e. Dienstag, Qt-Seminar

IV. Datenbankmanagement

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

6. Datenintegrität. Integritätsbedingungen

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

SQL SQL. SQL = Structured Query Language (SEQUEL) IBM San Jose Research Laboratory SYSTEM R. Grundlagen der Datenbanksysteme I

SQL. Fortgeschrittene Konzepte Auszug

Relationales Modell: SQL-DDL. SQL als Definitionssprache. 7. Datenbankdefinitionssprachen. Anforderungen an eine relationale DDL

Semantische Integrität (auch: Konsistenz) der in einer Datenbank gespeicherten Daten als wichtige Anforderung

Integritätsbedingungen / Normalformen- Beispiel: Kontoführung

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Übung Datenbanken in der Praxis. Datenmodifikation mit SQL

Datenbanken: Datenintegrität.

SQL (Structured Query Language) Schemata Datentypen

Informatik 12 Datenbanken SQL-Einführung

Sructred Query Language

Referentielle Integrität

Das SQL-Schlüsselwort ALL entspricht dem Allquantor der Prädikatenlogik

Uni Duisburg-Essen Fachgebiet Informationssysteme Prof. Dr. N. Fuhr

Datenintegrität. Arten von Integritätsbedingungen. Statische Integritätsbedingungen. Referentielle Integrität. Integritätsbedingungen in SQL.

Vorlesung Dokumentation und Datenbanken Klausur

Referentielle Integrität

5.3 Datenänderung/-zugriff mit SQL (DML)

Arbeiten mit einem lokalen PostgreSQL-Server

Datenintegrität. Einschränkung der möglichen Datenbankzustände und -übergänge auf die in der Realität möglichen

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Universität Duisburg-Essen Informationssysteme Prof. Dr.-Ing. N. Fuhr. Praktikum Datenbanken / DB2 Woche 8: Trigger, SQL-PL

Datenintegrität. Bisherige Integritätsbedingungen

Kapitel DB:VI (Fortsetzung)

Labor 3 - Datenbank mit MySQL

SQL structured query language

Schlüssel bei temporalen Daten im relationalen Modell

Nachtrag: Farben. Farbblindheit. (Light und Bartlein 2004)

3. Das Relationale Datenmodell

Datenbanktechnologie mit praktischen Übungen in MySQL und PHP

mit Musterlösungen Prof. Dr. Gerd Stumme, Dipl.-Inform. Christoph Schmitz 11. Juni 2007

Hilfe zur Urlaubsplanung und Zeiterfassung

Datumsangaben, enthält mindestens Jahr, Monat, Tag

Praktische SQL-Befehle

Datenbankentwurf. 4.2 Logischer Entwurf. Kapitel 4. ER-Modell. Umsetzung. Entwurfsdokumentation. relationales Modell. Verbesserung

Views in SQL. 2 Anlegen und Verwenden von Views 2

Relationales Datenbanksystem Oracle

Konstante Relationen

Bibliografische Informationen digitalisiert durch

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Oracle SQL Tutorium - Wiederholung DB I -

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

XAMPP-Systeme. Teil 3: My SQL. PGP II/05 MySQL

Datenbanken für Online Untersuchungen

SQL Tutorial. SQL - Tutorial SS 06. Hubert Baumgartner. INSO - Industrial Software

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

SQL. strukturierte Datenbankabfragesprache eine Datenbanksprache zur. Structured Query Language:

Seminar 2. SQL - DML(Data Manipulation Language) und. DDL(Data Definition Language) Befehle.

-Inhalte an cobra übergeben

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

1. Erreichen Sie, dass im Feld KdNr (Kunden-Nummer) nur 4-stellige Zahlen eingetragen

DBS ::: SERIE 5. Join Right Semi- Join Left Semi-Join Projektion Selektion Fremdschlüssel. Kreuzprodukt

Informatik für Ökonomen II: Datenintegrität. Prof. Dr. Carl-Christian Kanne

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

DB2 Kurzeinführung (Windows)

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

3.17 Zugriffskontrolle

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

VERWALTUNG. Postfächer, Autoresponder, Weiterleitungen, Aliases. Bachstraße 47, 3580 Mödring

2.5.2 Primärschlüssel

teischl.com Software Design & Services e.u. office@teischl.com

Noten ausrechnen mit Excel/Tabellenkalkulation. 1) Individuellen Notenschlüssel/Punkteschlüssel erstellen

Hinweise zur Installation von MySQL

Bedienungsanleitung für den Online-Shop

Berechnungen in Access Teil I

Kalkülteil. Structured Query Language, SQL. 1. Semantik: erzeuge alle Kombinationen von Tupeln

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Kapitel 4 Die Datenbank Kuchenbestellung Seite 1

3. GLIEDERUNG. Aufgabe:

AUF LETZTER SEITE DIESER ANLEITUNG!!!

Ihr CMS für die eigene Facebook Page - 1

Einführung in SQL. 1. Grundlagen SQL. Structured Query Language. Viele Dialekte. Unterteilung: i. DDL (Data Definition Language)

Oracle: Abstrakte Datentypen:

Um dies zu tun, öffnen Sie in den Systemeinstellungen das Kontrollfeld "Sharing". Auf dem Bildschirm sollte folgendes Fenster erscheinen:

Abfragen: Grundbausteine

Ihren Kundendienst effektiver machen

Software-Engineering Einführung

Create-Table-Befehl. CREATE TABLE Tabellenname ( { Spalte { Datentyp Gebietsname } [ Spaltenbedingung [ ] ] Tabellenbedingung }

Erzeugen von Constraints

7. Übung - Datenbanken

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

Excel Pivot-Tabellen 2010 effektiv

Neuanlage des Bankzugangs ohne das bestehende Konto zu löschen

Datenbanksysteme Kapitel: SQL Data Definition Language

Transkript:

SQL Datendefinition und Datenmanipulation in SQL 2002 Prof. Dr. Rainer Manthey Informationssysteme 1 SQL: Geschichte SQL (Structured Query Language) ist heute die bei weitestem populärste und verbreitetste relationale Datenbanksprache. Jedes relationale DBMS "versteht" SQL! SQL wurde Anfang der 1970er Jahre bei IBM entwickelt (als Sprache für das relationale Prototyp-DBMS "System R"). ursprüngliche Bezeichnung: SEQUEL (Strutured English Query Language) erste SQL-Normung (SQL 1) 1986 durch ANSI in den USA, revidiert 1989 wesentliche Erweiterung 1992: SQL2 bzw. SQL92 (standardisiert, heute üblich) seit 1999 neuer Standard: SQL3 bzw. SQL:1999 (Neuerungen erst ansatzweise in kommerziellen Systemen zu finden) Vorsicht! Nahezu jedes kommerzielle DB-Produkt hat seinen eigenen "Dialekt" von SQL, der mehr oder weniger gut mit dem Standard kompatibel ist! 2002 Prof. Dr. Rainer Manthey Informationssysteme 2

SQL: Literatur "klassische" (und vermutlich immer noch beste) Quelle zu SQL: Chris Date, Hugh Darwen: "SQL - Der Standard" ISBN 3-8273-1345-7 Addison Wesley, 1998 44,95 im Kemper-Buch: relativ kurze Abhandlung von SQL in Kapitel 4 gutes neues Buch zum neuen SQL-Standard: Melton/Simon: "SQL:1999 Understanding Relational Language Components", Academic Press, 2002 2002 Prof. Dr. Rainer Manthey Informationssysteme 3 Grundbegriffe für relationale DB im "SQL-Dialekt" SQL hat seine eigene Terminologie für die relationalen Grundbegriffe, die von der Access-Terminologie deutlich abweicht: Spalte Tabelle Spiele2002 Heim ToreH Auswärts ToreA Datum Hertha 2 Nürnberg 1 5.10.02... Zeile Wertebereich Text Zahl Text Zahl Datum Wichtig sind die englischen Formen dieser Grundbegriffe, weil SQL mit englischen Schlüsselworten arbeitet: Tabelle table Spalte column wie in Access: Zeile row Duplikate erlaubt (d.h. keine "echte" Relation) Wertebereich domain 2002 Prof. Dr. Rainer Manthey Informationssysteme 4

SQL = DDL + DML SQL setzt sich aus zwei Teilsprachen zusammen (wie fast jede DB-Sprache): einer Datendefinitionssprache (engl. "data definition language" DDL ) einer Datenmanipulationssprache (engl. "data manipulation language" DML ) Die DDL enthält Befehlsformate, mit denen man Datenbankschemata definieren und manipulieren kann (Schemaevolution). Die DML dagegen bietet Befehle zum Formulieren von Anfragen an und Änderungen von Datenbankzuständen. Alle Befehle in SQL werden textuell ausgedrückt; es gibt keine graphische Unterstützung à la QBE. Das "Gerüst" jedes SQL-Befehls besteht aus englischen Schlüsselworten, z.b.: SELECT... FROM... WHERE... für einfache Anfragen. Schlüsselworte sind "reserviert" und dürfen nicht an anderer Stelle verwendet werden (etwa als Tabellen- oder Spaltennamen). 2002 Prof. Dr. Rainer Manthey Informationssysteme 5 3.1 SQL-DDL Datendefinition und Datenmanipulation in SQL 3.1 Datendefinition in SQL 2002 Prof. Dr. Rainer Manthey Informationssysteme 6

SQL-DDL zunächst: intensivere Beschäftigung mit Datendefinitionsmöglichkeiten in SQL hier, wie im ganzen Kapitel: weitgehend angelehnt an SQL92 (mit gelegentlicher Beeinflussung durch den "Access-Dialekt") leider: Access bietet keine mit dem QBE-Entwurf synchronisierte, automatisch generierte SQL-Darstellung des DB-Schemas aber: Access akzeptiert textuelle Schemadefinitionsbefehle in SQL zu erreichen im Anfrage-Entwurfsmodus Menü 'Abfrage' - Menüpunkt 'SQL-spezifisch' - Unterpunkt 'Datendefinition' erscheint Textfenster zur Eingabe von SQL-DDL-Befehlen Ausführung des CREATE TABLE-Befehls führt zum Anlegen der Tabelle resultierende Tabelle steht dann im QBE-Entwurfsmodus zur Verfügung spezielle Form der Abfrage in Access: Datendefinitionsabfrage im gesamten : Kein Anspruch auf Vollständigkeit der Darstellung! (SQL ist viel zu komplex; Details siehe Literatur) 2002 Prof. Dr. Rainer Manthey Informationssysteme 7 CREATE SCHEMA Format des allgemeinen Schemadefinitionsbefehls (bleibt oft implizit): SQL-Schlüsselworte optional CREATE SCHEMA [ schema-name ] [ AUTHORIZATION user-name ] [ DEFAULT CHARACTER SET character-set ] [ list-of-schema-elements ] Nichtterminal- Symbole Mindestens Schemaname oder Benutzerautorisierung sind erforderlich. wesentlicher Bestandteil: sogenannte Schemaelemente domain-definitionen (base) table-definitionen view-definitionen privilege-definitionen constraint-definitionen (zusätzlich: character set-, collation-, translation-definitionen) 2002 Prof. Dr. Rainer Manthey Informationssysteme 8

CREATE TABLE: Prinzip wichtigster Datendefinitionsbefehl: Einrichten/Erzeugen einer neuen Tabelle CREATE TABLE table-name ( lists-of-table-elements) ; eindeutig innerhalb desselben Schemas "table elements" (Tabellenelemente) sind Festlegungen von Spaltennamen und deren Datentypen Integritätsbedingungen, die sich auf die neue Tabelle beziehen daraus resultierende "Grobstruktur" einer Tabellendefinition: CREATE TABLE table-name column 1 [ column-constraints 1 ], column 2 [ column-constraints 2 ],... column n [ column-constraints n ], [table-constraints] Integritätsbedingungen für einzelne Spalten die ganze Tabelle 2002 Prof. Dr. Rainer Manthey Informationssysteme 9 CREATE TABLE: Bundesliga-Beispiel Beispiel: SQL-Befehl zur Definition der Tabelle 'Spiele2002' der Bundesliga-DB: Tabellenname Tabellenelemente CREATE TABLE Spiele2002 ( Datum date, Heim text, ToreH number(15) DEFAULT NULL Auswärts text, ToreA number(15) DEFAULT NULL Spieltag number(15) NOT NULL CHECK ( > 0 AND < 35), PRIMARY KEY (Datum, Heim), FOREIGN KEY ( Heim ) REFERENCES Vereine2002, FOREIGN KEY ( Auswärts ) REFERENCES Vereine2002 ) ; 2002 Prof. Dr. Rainer Manthey Informationssysteme 10

CREATE TABLE: genereller Aufbau Jede Tabellendefinition besteht aus zwei Teilen: den Definitionen der einzelnen Spalten und (eventuell noch) Beschränkungen, die für die ganze Tabelle gelten: Spaltendefinitionen Tabellenbeschränkungen CREATE TABLE Spiele2002 ( Datum date, Heim text, ToreH number(15) DEFAULT NULL Auswärts text, ToreA number(15) DEFAULT NULL Spieltag number(15) NOT NULL CHECK ( > 0 AND < 35), PRIMARY KEY (Datum, Heim), FOREIGN KEY ( Heim ) REFERENCES Vereine2002, FOREIGN KEY ( Auswärts ) REFERENCES Vereine2002 ) ; 2002 Prof. Dr. Rainer Manthey Informationssysteme 11 CREATE TABLE: Spaltendefinitionen Jede Spaltendefinition besteht ihrerseits aus zwei Teilen: der Festlegung von Spaltenname und Typ der Werte (eventuell) speziellen Beschränkungen für Werte der Spalte CREATE TABLE Spiele2002 ( Datum date, Heim text, ToreH number(15) DEFAULT NULL Auswärts text, ToreA number(15) DEFAULT NULL Spieltag number(15) NOT NULL CHECK ( > 0 AND < 35),... ) Syntax von Spaltendefinitionen: eindeutig innerhalb derselben Tabelle column-name { data-type domain } [ column-constraints ] Alternative 2002 Prof. Dr. Rainer Manthey Informationssysteme 12

Datentypen und "Domains" wie in jeder Programmiersprache: zahlreiche vordefinierte Datentypen für Spalteneinträge (in Felder der Tabelle) Vorsicht! Datentypbezeichnungen in Access-SQL weichen von denen des SQL- Standards ab (Details siehe weiterführende Literatur) daneben: Möglichkeit zur Definition eigener, anwendungsspezifischer Wertebereiche ("domains") mittels separater Domain-Definitionen, z.b. CREATE DOMAIN big_eu_capitals AS text(15) Standardwert DEFAULT??? CHECK ( VALUE IN ( Paris, London, Berlin, domain Rome, Madrid, Brussels, constraint Vienna,??? ) ) Selbstdefinierte Domains können ansonsten analog zu ihren Basistypen verwendet werden. in dieser Einführung: keine weitere Vertiefung des Domain-Konzepts 2002 Prof. Dr. Rainer Manthey Informationssysteme 13 CREATE TABLE: Spaltenbeschränkungen Jede Spaltendefinition besteht ihrerseits aus zwei Teilen: der Festlegung von Spaltenname und Typ der Werte (eventuell) speziellen Beschränkungen für Werte der Spalte CREATE TABLE Spiele2002 ( Datum date, Heim text, ToreH number(15) DEFAULT NULL Auswärts text, ToreA number(15) DEFAULT NULL Spieltag number(15) NOT NULL CHECK ( > 0 AND < 35),... ) Syntax von Spaltenbeschränkungen (column-constraints): [ NOT NULL UNIQUE ] [ PRIMARY KEY ] [ DEFAULT { literal NULL } ] [ REFERENCES table-name ] [ CHECK condition ] 2002 Prof. Dr. Rainer Manthey Informationssysteme 14

CREATE TABLE: Tabellenbeschränkungen Der zweite Teil einer Tabellendefinition ist optional; er besteht aus einer oder mehreren Tabellenbeschränkungen, die i.a. für mehrere Spalten gelten: CREATE TABLE Spiele2002 (... PRIMARY KEY (Datum, Heim), FOREIGN KEY ( Heim ) REFERENCES Vereine2002, FOREIGN KEY ( Auswärts ) REFERENCES Vereine2002 ) Syntax von Tabellenbeschränkungen (table-constraints): [ UNIQUE ( list-of-column-names ) ] [ PRIMARY KEY ( list-of-column-names ) ] [ FOREIGN KEY ( list-of-column-names ) REFERENCES table-name ] [ CHECK ( condition ) ] 2002 Prof. Dr. Rainer Manthey Informationssysteme 15 Integritätsbedingungen in Tabellendefinitionen Tabellendefinitionen (CREATE TABLE) enthalten zwei sehr ähnliche Arten von Integritätsbedingungen (constraints): Spaltenbeschränkungen (column constraints) Tabellenbeschränkungen (table constraints, auch: row constraints) Spaltenbeschränkungen sind Abkürzungen von Tabellenbeschränkungen, bei denen stets die gerade betrachtete Spalte implizit bleibt, z.b.: Spaltenbeschränkung: Spieltag number(15) CHECK ( > 0 AND < 35 ), Tabellenbeschränkung: CHECK ( Spieltag > 0 AND Spieltag < 35 ), Der Bedingungsteil einer solchen - allgemein 'CHECK constraint' genannten - Beschränkung muss in jedem zulässigen Zustand der DB erfüllt sein. 2002 Prof. Dr. Rainer Manthey Informationssysteme 16

CREATE TABLE: Constraints (1) UNIQUE-Option: Vereinbarung von Schlüsseln (auch: Schlüsselkandidaten) einspaltiger Schlüsselkandidat: in Spaltendefinition: column-name... UNIQUE mehrspaltiger Schlüsselkandidat: eigene UNIQUE-Klausel: UNIQUE ( list-of-column-names) Bedeutung: Keine zwei Zeilen haben dieselben Werte in Spalten, die zu einem Schlüsselkandidaten gehören. Ausnahme: Nullwerte - NULL darf in einer UNIQUE-Spalte mehrfach auftreten Herkunft des Bezeichners: engl. unique dt. "eindeutig" pro Tabelle: beliebig viele UNIQUE-Deklarationen möglich In einer Tabelle mit UNIQUE-Deklarationen können keine Duplikate (identische Zeilen) auftreten! Verbot von Nullwerten für einzelne Spalten: column-name... NOT NULL 2002 Prof. Dr. Rainer Manthey Informationssysteme 17 CREATE TABLE: Constraints (2) pro Tabelle: Höchstens ein Schlüsselkandidat darf als Primärschlüssel deklariert werden. einspaltige Primärschlüssel: in Spaltendefinition: column name... PRIMARY KEY mehrspaltige Primärschlüssel: eigene Klausel: PRIMARY KEY ( list-of-column-names ) zusätzlich: Keine Spalte innerhalb eines Primärschlüssels darf einen Nullwert NULL enthalten! PRIMARY KEY ist nicht dasselbe wie UNIQUE NOT NULL! (zusätzlich: Eindeutigkeit des P. innerhalb der Tabelle) keine echte "Beschränkung", aber trotzdem hier behandelt: Vereinbarung von Standardwerten für Spalten von Tabellen: Werte, die automatisch eingesetzt werden, wenn keine explizite Angabe beim Eingeben der jeweiligen Zeile erfolgt (engl.: "DEFAULTS") 2002 Prof. Dr. Rainer Manthey Informationssysteme 18

CREATE TABLE: Constraints (3) zweite spezielle Form von Integritätsbedingung innerhalb einer Tabellendeklaration: Fremdschlüssel (engl.: "foreign key") Situation: Spalte(n) der gerade deklarierten Tabelle A referenziert (d.h.: enthält Werte von einem) Schlüsselkandidaten oder Primärschlüssel einer zweiten ( fremden ) Tabelle B A B Spalten, die Fremdschlüssel bilden Bedingung: A-Spalten enthalten nur Werte, die aktuell in den referenzierten B-Spalten vorkommen! 2002 Prof. Dr. Rainer Manthey Informationssysteme 19 CREATE TABLE: Constraints (4) Syntax der zugehörigen Beschränkung (als Tabellenbeschränkung): FOREIGN KEY ( list-of-column-names ) REFERENCES table-name [ ( list-of-column-names ) ] z.b.: CREATE TABLE t 1 ( a 1 INT PRIMARY KEY,..... ) b 1 referenziert a 1 wenn Zielspalten fehlen: Primärschlüssel angenommen abgekürzte Form als Spaltenbeschränkung CREATE TABLE t 2 ( b 1 INT REFERENCES t 1,..... ) 2002 Prof. Dr. Rainer Manthey Informationssysteme 20

CREATE TABLE: Constraints (5) Vollständige Syntax dieser referential constraints sieht diverse optionale Ergänzungen vor: FOREIGN KEY ( list-of-column-names ) REFERENCES base-table-name [ ( list-of-column-names ) ] [ MATCH { FULL PARTIAL } ] [ ON DELETE { NO ACTION CASCADE SET DEFAULT SET NULL} ] [ ON UPDATE { NO ACTION CASCADE SET DEFAULT SET NULL} ] referential actions spezifizieren, was bei Integritätsverletzungen passiert Detailliertere Diskussion dieses Konzepts folgt noch. ganz analog zu Access-Optionen bei referentieller Integrität: mit Änderungsweitergabe: ON UPDATE CASCADE mit Löschweitergabe: ON DELETE CASCADE 2002 Prof. Dr. Rainer Manthey Informationssysteme 21 andere DDL-Befehle Vordefinierte Anfragen zur Berechnung von abgeleiteten Tabellen ("derived tables") wie in Access können auch in SQL-Schemata definiert werden. SQL-Bezeichnung dafür: Sicht (engl. "view") zugehöriger DDL-Befehl: CREATE VIEW (wird in Kap. 3.2 näher behandelt) Sichtdefinitionen sind nichts weiter als SQL-Anfragen, denen ein Name gegeben wird: Name CREATE VIEW millionenstädte AS ( SELECT Kfz, Name, Einwohner, Land FROM stadt, stadt_in_land WHERE Einwohner >= 1000 ) ; Anfrage Nähere Diskussion erst dann sinnvoll, wenn Anfragesprache von SQL bekannt ist. Befehle zur Gewährung von Zugriffsrechten ("privilege") ebenfalls in 3.2. 2002 Prof. Dr. Rainer Manthey Informationssysteme 22

Schemaevolution (1) bis hierher: nur initialer Schemaaufbau diskutiert (Komponenten eines Schemas) jetzt: SQL-Features zum inkrementellen Schemaaufbau und zur Schemaevolution zunächst: Veränderung von Bereichsdefinitionen (prototypisch) Löschen von "Domains": DROP DOMAIN domain-name { RESTRICT CASCADE} zwei Optionen (Auswahl obligatorisch): RESTRICT: DROP-Befehl schlägt fehl, wenn Schema noch Referenzen auf jeweiligen Domain enthält CASCADE: DROP-Befehl ist erfolgreich, und den Domain referenzierende Views und Constraints werden gelöscht referenzierende Spalten bleiben erhalten und erben Datentyp, Defaults und Constraints (als lokale Vereinbarungen) ("Löschung wird kaskadierend weitergereicht!") 2002 Prof. Dr. Rainer Manthey Informationssysteme 23 Schemaevolution (2) Änderungen bestehender DOMAIN-Deklarationen: ALTER DOMAIN domain-name domain-alteration-action DROP DEFAULT SET DEFAULT default-definition ADD CONSTRAINT domain-constraint Defaults werden vor der Löschung auf referenzierende Spalten übertragen Constraints werden nicht übertragen (nur bei DROP DOMAIN!) DROP CONSTRAINT constraint-name kann für jede Constraint vereinbart werden 2002 Prof. Dr. Rainer Manthey Informationssysteme 24

Schemaevolution (3) nach analogem Prinzip: Änderungen von TABLE-Deklarationen DROP TABLE table-name { RESTRICT CASCADE } ALTER TABLE base-table-name base-table-alteration-action Änderungen von Spaltendefinitionen: ADD COLUMN column-definition ALTER COLUMN column-name { SET default-definition DROP DEFAULT } DROP COLUMN column-name { RESTRICT CASCADE } Änderungen von Constraints: wie bei Domains mit ADD und DROP Löschen von Sichtdefinitionen ebenfalls analog: DROP VIEW (aber: kein ALTER VIEW!) 2002 Prof. Dr. Rainer Manthey Informationssysteme 25