Constraints anlegen und löschen, Data Dictionary Tabellen

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

System J – Compiler – Praktikum: Datenbanksystementwicklung Knut Stolze
MySQL.
Systemüberblick Beispiele: Microsoft Access Oracle Ingres Informix
FH-Hof Effizienz - Anweisungen für Indexstrukturen Richard Göbel.
SQL als Abfragesprache
SQL als Abfragesprache
Datensicherheit in DBMS
IS: Datenbanken, © Till Hänisch 2000 CREATE TABLE Syntax: CREATE TABLE name ( coldef [, coldef] [, tableconstraints] ) coldef := name type [länge], [[NOT]NULL],
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Prof. Dr. T. Kudraß1 Integrität in Datenbanken. Prof. Dr. T. Kudraß2 Unterschied Konsistenz - Integrität Konsistenz beschreibt die Korrektheit der DB-internen.
Datenintegrität Referentielle Integrität create table
1 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines Schlüssels 1:N - Beziehung Angabe.
1 Kapitel 8: Datenintegrität. 2 Datenintegrität Statische Bedingung (jeder Zustand) Dynamische Bedingung (bei Zustandsänderung) Bisher: Definition eines.
Kapitel 9: Integritätssicherung
Datenbanken 10: Einfügen, Ändern, Löschen
3.5.2 Fremdschlüssel/ Referentielle Integrität (6/9)
3.5.2 Fremdschlüssel/ Referentielle Integrität (1/9)
2.2 Definition eines Datenbankschemas (SQL-DDL)
Datenbankentwicklung IV-LK
Working With Persistent Objects
Relationale Datenbanken III
O.Univ.-Prof. Dr. Dimitris Karagiannis Datenbanken administrieren mit phpMyAdmin Martin Marinschek
FH-Hof Standard Query Language Richard Göbel. FH-Hof Geschichte der Sprache SQL System/R-Projekts von IBM zu Beginn der 70er Jahre: Entwicklung der Sprache.
WS 2009/10 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
WS 2011/12 Datenbanksysteme Fr 15:15 – 16:45 R Vorlesung #6 SQL (Teil 3)
SS 2004 Datenbanken 4W Mi 13:30 – 15:00 G 2.30 Vorlesung #8 SQL (Teil 3)
WS 2013/14 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #7 SQL (Teil 4)
Relationales Datenmodell und DDL
PL/SQL - Kurze Einführung April 2003Übung Data Warehousing: PL/SQL 2 PL/SQL.. ist eine Oracle-eigene, prozedurale Programmiersprache Sämtliche.
Structured Query Language
8 Erzeugen und Verwalten von Tabellen Ziele Kennenlernen der wichtigsten Datenbankobjekte Anlegen von Tabellen Datentypen zur Definition von Spalten.
Transaktionsverwaltung
Integritätsbedingungen (Constraints)
1 Referenzielle Konsistenz (1) Vorgehensweise: Klausel references mit nachfolgender Spezikation eines Attributs einer anderen Tabelle identifiziert ein.
11 Zugriffskontrolle (Access Control) Ziele Privilegien Rollen GRANT und REVOKE Befehl Privilegien Rollen GRANT und REVOKE Befehl.
SystemJ AbschlußpräsentationDBJCatalogManager Dennis Heimann + Marcus Hetterle Friedrich Schiller Universität Jena 2005.
Datenbank für Skriptenverkauf
WS 2014/15 Datenbanksysteme Do 17:00 – 18:30 R Vorlesung #9 SQL Zusammenfassung.
Datenbanken erstellen mit PostgreSQL
Datenbanken abfragen mit SQL
SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.
By Thorsten Zisler 1 SQL Datenbank Anbindung an den Supervisor.
Klicken Sie auf Rechnung erfassen. Rechnung erfassen – mit Bestellnummer.
Veranstaltung: Datenbanken I Dozent: Ioannis Papakostas Belegarbeit 6 Online-Bestellung von Büchern Stefan Rüschenberg (Matrikel-Nr.: ) Sebastian.
SQL Structured Query Language Enzio Thiem. INHALT CREATE TABLE Anweisung Gängige Datentypen Beispiel CREATE TABLE Beispiel CREATE TABLE - erweitert Beispiel.
Datenbanken. Gliederung ● Einsatz und Verwendung ● Historische Entwicklung ● Datenbankmodelle ● (Codd'sche) Prinzipien ● Datenbankoperatoren ● Beispielcode.
SQL Basics Schulung –
D-SQL Vom Datenbank-Container zur SQL Server-Datenbank
Veranstaltungskalender
Abfragen Wiederholung Manuel Friedrich Schiller-Gymnasium Hof.
Anforderungen an die neue Datenstruktur
Sprachumfang von SQL Vier Kategorien DDL (Data Definition Language)
Präsentationen im alten Design
Vorlesung #4 Relationales Kalkül und SQL (Teil 1)
Logisches Datenmodell
Wirtschaftsinformatik
Vorlesung #7 SQL (Teil 4).
Abfragesprache SQL in ORACLE
Flashback mal sieben DOAG RegioTreff , Wiesbaden
Abfragesprache SQL in ORACLE
Relationale Datenbankmanagement-Systeme
Create Table, Rechte und Rollen
Funktionen, GROUP BY, HAVING Views anlegen und verwenden
Datenbanksystem Von Anna und Robin.
Da·ten·bank /Dátenbank/ Substantiv, feminin [die]
Datenbanken Von Fabian & Eddi.
Von Diana Braun und Daria Bures
Von Franziska und Robine
Schmock Mutter nicht ausreichend versorgt  fast verhungert Mutter bei Geburt verstorben Schmock mit Flasche aufgezogen.
 Präsentation transkript:

Constraints anlegen und löschen, Data Dictionary Tabellen

Constraints Integritätsregeln, die zum Beispiel beim Einfügen, Ändern und Löschen von Datensätzen eingehalten werden müssen Arten von Constraints Primary Key Constraints Foreign Key Constraints Unique Key Constraints Check Constraints

Primary Key Constraint Ein oder mehrere Spalten einer Tabelle werden als Primärschlüssel festgelegt Primärschlüssel Über Wert in Primärschlüssel-Spalte(n) kann jeder Datensatz eindeutig identifiziert werden LIB_BOOK LIB_BELONGS_TO_GENRE BOOK_ID TITLE CAT_ID YEAR 1 Schwarm 2000 2 Limit 2005 3 Erlösung 2006 4 Vergebung 2007 BOOK_ID GEN_ID 1 2 3 Primärschlüssel auf Spalte book_id Primärschlüssel auf Spalten book_id, gen_id

Primary Key Constraint BOOK_ID TITLE CAT_ID YEAR 1 Schwarm 2000 2 Limit 2005 Primärschlüssel bei Tabellenerzeugung anlegen Primärschlüssel nach Tabellenerzeugung hinzufügen CREATE TABLE lib_book ( book_id NUMBER(7), title VARCHAR2(40), cat_id NUMBER(2,0), year NUMBER(4,0), CONSTRAINT pkbook PRIMARY KEY(book_id) ); CREATE TABLE lib_book ( book_id NUMBER(7)CONSTRAINT pkbook PRIMARY KEY, title VARCHAR2(40), cat_id NUMBER(2,0), year NUMBER(4,0) ); ALTER TABLE lib_book ADD CONSTRAINT pkbook PRIMARY KEY (book_id);

Foreign Key Constraint Definiert einen Fremdschlüssel für eine Spalte einer Tabelle Fremdschlüssel-Spalte referenziert Primärschlüssel (bzw. Unique Key-Spalte) einer Tabelle LIB_BOOK LIB_CATEGORY BOOK_ID TITLE CAT_ID YEAR 1 Schwarm 2 2000 Limit 2005 3 Java 5 2006 4 Peter Pan 2007 CAT_ID CAT_NAME 1 Fachbuch 2 Roman 3 Kinderbuch REFERENZ Was passiert, wenn in LIB_BOOK-Tabelle Datensatz mit CAT_ID eingefügt wird, die nicht in LIB_CATEGORY vorhanden ist Datensatz wird nicht eingefügt, da FOREIGN KEY-Constraint verletzt wird Was passiert, wenn aus lib_category ein Eintrag gelöscht wird, dessen cat_id in lib_book referenziert wird? ON DELETE NO ACTION(default): Löschvorgang wird nicht durchgeführt ON DELETE CASCADE: In Buch-Tabelle werden referenzierende Einträge gelöscht ON DELETE SET NULL: In Buch-Tabelle wird referenzierende CAT-ID auf NULL gesetzt

Foreign Key Constraint LIB_BOOK LIB_CATEGORY BOOK_ID TITLE CAT_ID YEAR 1 Schwarm 2 2000 Limit 2005 3 Java 5 2006 4 Peter Pan 2007 CAT_ID CAT_NAME 1 Fachbuch 2 Roman 3 Kinderbuch REFERENZ Fremdschlüssel bei Tabellenerzeugung festlegen CREATE TABLE lib_book( book_id NUMBER(7), title VARCHAR2(40), cat_id NUMBER(2)CONSTRAINT fkcat REFERENCES LIB_CATEGORY(cat_id) ON DELETE SET NULL, year NUMBER(4,0) ); CREATE TABLE lib_book( book_id NUMBER(7), title VARCHAR2(40), cat_id NUMBER(2), year NUMBER(4,0), CONSTRAINT fkcat FOREIGN KEY(cat_id)REFERENCES LIB_CATEGORY(cat_id)ON DELETE SET NULL );

Foreign Key Constraint LIB_BOOK LIB_CATEGORY BOOK_ID TITLE CAT_ID YEAR 1 Schwarm 2 2000 Limit 2005 3 Java 5 2006 4 Peter Pan 2007 CAT_ID CAT_NAME 1 Fachbuch 2 Roman 3 Kinderbuch REFERENZ Fremdschlüssel nach Tabellenerzeugung festlegen ALTER TABLE lib_book ADD CONSTRAINT fkcat FOREIGN KEY(cat_id) REFERENCES lib_category(cat_id)ON DELETE SET NULL;

Foreign Key Constraint Weitere Constraint Clauses INITIALLY DEFFERED: Einhaltung des Constraints wird standardmäßig erst bei Commit geprüft INITIALLY IMMEDIATE: Einhaltung des Constraints wird standardmäßig direkt nach SQL-Befehl geprüft DEFERRABLE: Erlaubt, dass die Prüfung eines Contraints mit Hilfe des Befehls: SET CONSTRAINT constraint_name DEFFERED verzögert und erst am Ende einer Transaktion (COMMIT) durchgeführt wird … CONSTRAINT fkcat FOREIGN KEY(cat_id) REFERENCES lib_category(cat_id) ON DELETE CASCADE | ON DELETE SET NULL INITIALLY DEFERRED | INITIALLY IMMEDIATE DEFERRABLE;

UNIQUE KEY Constraint Wird für eine oder mehrere Spalten angelegt Bei einer Spalte: Jeder Wert in dieser Spalte muss eindeutig sein Bei mehreren Spalten: Jede Wertkombination in diesen Spalten muss eindeutig sein BOOK_ID TITLE CAT_ID YEAR 1 Schwarm 2000 2 Limit 2005 3 Erlösung 2006 UNIQUE KEY auf TITLE: Es dürfen keine zwei Bücher mit gleichem Titel eingetragen werden Unique Constraint bei Tabellenerzeugung anlegen CREATE TABLE lib_book ( book_id NUMBER(7), title VARCHAR2(40), cat_id NUMBER(2,0), year NUMBER(4,0), CONSTRAINT utitle UNIQUE(title) ); CREATE TABLE lib_book ( book_id NUMBER(7), title VARCHAR2(40) CONSTRAINT utitle UNIQUE, cat_id NUMBER(2,0), year NUMBER(4,0) ); Unique Constraint nach Tabellenerzeugung anlegen ALTER TABLE lib_book ADD CONSTRAINT utitlle UNIQUE(title);

Check Constraint Legt Regeln fest, die jeder Datensatz in einer Tabelle erfüllen muss Beispiel: Titel muss länger als 2 Zeichen sein und das Jahr darf nicht vor1900 liegen Check Constraint bei Tabellenerzeugung anlegen Check Constraint nach Tabellenerzeugung anlegen CREATE TABLE lib_book ( book_id NUMBER(7), title VARCHAR2(40), cat_id NUMBER(2,0), year NUMBER(4,0), CONSTRAINT chbook CHECK (length(title)>2 AND YEAR > 1900) ); ALTER TABLE lib_book ADD CONSTRAINT chbook CHECK(length(title)>2 AND YEAR > 1900);

Constraints löschen SYNTAX Beispiel ALTER TABLE tabellenname DROP CONSTRAINT constraintname; Beispiel Mit folgendem Befehl wird der Primary Key Constraint pkbook gelöscht, der für die Tabelle lib_book angelegt wurde. ALTER TABLE lib_book DROP CONSTRAINT pkbook;

CONSTRAINTS im Data Dictionary

Data Dictionary Tabellen USER_CONSTRAINTS beinhaltet alle Constraints des angemeldeten Users Wichtige Spalten CONSTRAINT_NAME: Name des Constraints R_CONSTAINT_NAME: Für Fremdschlüssel - Name des Constraints, der referenziert wird TABLE_NAME: Name der Tabelle, für die der Constraint definiert ist CONSTRAINT_TYPE: p:Primary Key, r: Foreign Key, c: Check Constraint, u: Unique Key SEARCH_CONDITION: Für Check Constraints: zu überprüfende Bedingung USER_CONS_COLUMNS Beinhaltet Spalten, für die Constraints des angemeldeten Users definiert sind CONSTRAINT_NAME: Name des Constraints TABLE_NAME: Name der Tabelle, für die der Constraint definiert ist COLUMN_NAME: Spalte, für die der Constraint definiert ist