Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer.

Ähnliche Präsentationen


Präsentation zum Thema: "SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer."—  Präsentation transkript:

1 SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer oder logischer Natur sein. Das folgende Kapitel beschäftigt sich mit der Erstellung und Bearbeitung solcher Objekte.

2 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Die grundlegende Anweisung zum Erstellen von Datenbankobjekten ist CREATE. Datenbankobjekte können sein: Datenbanken Tabellen Informationen über Datenbankobjekte werden in der jeweils übergeordneten Datenbank gespeichert, also Datenbanken in der Masterdatenbank Tabellen in der zugehörigen Datenbank ACCESS kennt keine Masterdatenbank

3 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Das erste Objekt, dass erzeugt werden muss, ist die Datenbank selbst. Der Befehl dazu lautet: CREATE DATABASE db_name Weitere Optionen des Befehls sollen hier nicht behandelt werden. Beispiel: CREATE DATABASE testdb; Besondere Berechtigung zur Erstellung einer Datenbank erforderlich siehe hierzu das Kapitel Sicherheitskonzepte

4 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Da ACCESS keine Masterdatenbank kennt, kann der Befehl CREATE DATABASE dort nicht ausgeführt werden. Die DB kann nur auf der Benutzeroberfläche erstellt werden. Im Folgenden wird in diesem Kapitel davon ausgegangen, dass der Benutzer die betroffene Datenbank als aktuelle ausgewählt hat und über entsprechende Berechtigungen verfügt

5 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Innerhalb der Datenbank werden Informationen in Tabellen gespeichert. Der Befehl zur Erstellung dieser Tabellen lautet: CREATE TABLE tab_name; Es können sofort Attribute angelegt werden. Die vollständige Syntax lautet dann: CREATE TABLE tab_name (sp_name1 datentyp1 [{NOT NULL|NULL}], sp_name2 datentyp2 [{NOT NULL|NULL}]...)

6 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Beispiel: Erstellung der Tabellen der Beispieldatenbank (Seite 1) CREATE TABLE abteilung (abt_nr varchar(4) NOT NULL, abt_name varchar(20) NOT NULL, stadt varchar(15) NULL); CREATE TABLE mitarbeiter (m_nr int NOT NULL, m_name varchar(20) NOT NULL, m_vorname varchar(20) NOT NULL, abt_nr varchar(4) NULL);

7 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Beispiel: Erstellung der Tabellen der Beispieldatenbank (Seite 2) CREATE TABLE projekt (pr_nr varchar(4) NOT NULL, pr_name varchar(25) NOT NULL, mittel float NULL); CREATE TABLE arbeiten (m_nr int NOT NULL, pr_nr varchar(4) NOT NULL, aufgabe varchar(15) NULL, einst_dat date NULL);

8 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Seit SQL Server 6.0 (auch SQL95 genannt) lassen sich weitere Parameter übergeben. In den folgenden Übungen werden diese hier nicht mehr berücksichtigt. Die erweiterte Syntax lautet: CREATE TABLE tab_name (sp_name1 datentyp1 [DEFAULT wert] DEFAULT – Voreinstellung der Spalte wert- ein konstanter Ausdruck - eine (parameterlose) Systemfunktion z.B.CURRENT_USER, CURRENT_TIMESTAMP - NULL

9 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Seit SQL Server 6.0 (auch SQL95 genannt) lassen sich weitere Parameter übergeben. In den folgenden Übungen werden diese hier nicht mehr berücksichtigt. Die erweiterte Syntax lautet: CREATE TABLE tab_name (sp_name1 datentyp1 [DEFAULT wert] [{IDENTITY | NULL | NOT NULL}] [Spaltenregeln] [, {weitere Spalten}] [Tabellenregeln]; IDENTITY- entspricht autowert Regeln- Integritätsregeln

10 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Integritätsregeln (integrity constraints) dienen dazu, unsinnige oder widersprüch- liche Datenwerte zu erkennen und abzuweisen. In der CREATE TABLE-Anweisung hinterlegte Regeln werden zentral vom Server überprüft. Eine lokale Prüfung (dieser Regel) im Anwenderprogramm ist somit nicht mehr notwendig. Spaltenregeln beziehen sich immer auf ein Attribut. Tabellenregeln können sich auf mehrere Attribute (Attributgruppen) beziehen. Jede Regel erhält einen Namen.

11 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Die UNIQUE-Klausel definiert Schlüsselkandidaten. Schlüsselkandidaten sind alle Attribute (Attributgruppen), die in der Tabelle eindeutig einen Datensatz kennzeichnen. UNIQUE stellt also die Einmaligkeit jedes Wertes in dem betroffenen Attribut (der Attributgruppe) sicher.

12 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Die Syntax der UNIQUE-Klausel: [CONSTRAINT regel_name] UNIQUE [CLUSTERED | NONCLUSTERED] (sp_name1 [{,sp_name}]) CONSTRAINT-definiert den expliziten Namen der Regel CLUSTERED-erstellt den Index sortiert NONCLUSTEREDbzw. unsortiert sp_name-max. 6 Spaltennamen sind erlaubt

13 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Beispiel für die UNIQUE-Klausel (Spaltenregel): CREATE TABLE verkauf (bestell_nr integer unique null, name char(20) null); Jede Bestellnummer darf nur einmal vorkommen, dies gilt auch für den NULL- Wert! Die zweite Eingabe des selben Wertes wird vom System abgewiesen. Die Regel erhält vom Server automatisch einen impliziten Namen.

14 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Die PRIMARY KEY-Klausel definiert den Primärschlüssel einer Tabelle. Die Syntax lautet: [CONSTRAINT regel_name] PRIMARY KEY [CLUSTERED | NONCLUSTERED] (sp_name1 [{,sp_name}])

15 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Beispiel für die PRIMARY KEY-Klausel (Tabellenregel): CREATE TABLE mitarbeiter (m_nr int NOT NULL, m_name char(20) NOT NULL, m_vorname char(20) NOT NULL, abt_nr char(4) NULL, CONSTRAINT prim_s_mit PRIMARY KEY (m_nr));

16 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Beispiel für die PRIMARY KEY-Klausel (Spaltenregel – weniger gebräuchlich): CREATE TABLE mitarbeiter (m_nr int NOT NULL CONSTRAINT prim_s_mit PRIMARY KEY, m_name char(20) NOT NULL, m_vorname char(20) NOT NULL abt_nr char(4) NULL);

17 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Die FOREIGN KEY-Klausel definiert einen Fremdschlüsselbezug. Die Syntax lautet: [CONSTRAINT regel_name] [FOREIGN KEY (sp_name1 [{,sp_name}])] REFERENCES tab_name (sp_1 [{,sp_x}]) REFERENCES- benennt die Bezugstabelle Die angegebenen Spalten müssen in Anzahl und Datentyp in der vorliegenden Reihenfolge übereinstimmen.

18 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Beispiel für die FOREIGN KEY-Klausel (Tabellenregel): CREATE TABLE arbeiten (m_nr int NOT NULL, pr_nr char(4) NOT NULL, aufgabe char(15) NULL, einst_dat datetime NULL, CONSTRAINT prim_s_arb PRIMARY KEY (m_nr, pr_nr), CONSTRAINT fremd_s_arb FOREIGN KEY (m_nr) REFERENCES mitarbeiter (m_nr));

19 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Beispiel für die FOREIGN KEY-Klausel (Spaltenregel – weniger gebräuchlich): CREATE TABLE arbeiten (m_nr int NOT NULL CONSTRAINT fremd_s_arb REFERENCES mitarbeiter (m_nr), pr_nr char(4) NOT NULL, aufgabe char(15) NULL, einst_dat datetime NULL, CONSTRAINT prim_s_arb PRIMARY KEY (m_nr, pr_nr));

20 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Referentielle Integrität wird durch die PRIMARY KEY- und FOREIGN KEY- Klauseln erzeugt. Die Tabelle mit dem Primärschlüssel ist die Master- oder Zieltabelle. Die Tabelle mit dem Fremdschlüssel ist die Detail- oder Referenztabelle. sorgt dafür, dass in die Detailtabelle nur Werte eingetragen werden können, die auch in der Mastertabelle existieren. Somit wird sichergestellt, dass ein Tabellenbezug nicht „ins Leere läuft“. verhindert das Löschen eines Wertes in der Mastertabelle, solange noch referierte Datensätze in der Detailtabelle existieren.

21 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Es gibt weitere Anweisungen zur Erstellung von Datenbankobjekten, von denen hier aber nur eine Auswahl kurz erwähnt werden soll: CHECK erlaubt die Einschränkung des Wertebereiches INDEX kann die Antwortzeit bei Abfragen beschleunigen

22 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Übungsphase 1: Gehen Sie mit Hilfe des Skriptes die Möglichkeiten der CREATE TABLE-Anweisung (Kapitel – 3.2.4) durch und erstellen Sie dabei die Übungsdatenbank.

23 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Ändern von Objekten Strukturell änderbare Objekte sind: Die Datenbank (ALTER DATABASE) Die Tabellenstruktur (ALTER TABLE) Die Änderungen der Datenbank beziehen sich nur auf die Größe des Speicherplatzes, weshalb hier im Folgenden nur auf die Strukturänderungen von Tabellen eingegangen wird.

24 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Grundform: ALTER TABLE tab_name ADD spalten_name datentyp [{,spalten_name2 datentyp2}…]; Diese Anweisung fügt der Tabelle eine neue Spalte hinzu. Die optionale Angabe NULL kann entfallen, da NOT NULL nicht erlaubt ist (schon existierende Spalten können nur NULL enthalten). ALTER TABLE tab_name DROPspalten_name [{,spalten_name2}…]; Diese SQL92-Standarderweiterung wird nicht allgemein unterstützt.

25 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Erweiterte Form: Auch Integritätsregeln lassen sich nachträglich einfügen (und löschen): ALTER TABLE tab_name [WITH {CHECK | NOCHECK} ADD spalten_name datentyp [{,spalten_name2 datentyp2}…]; | ADDtabellenbezogene_Regel | DROPtabellenbezogene_Regel Mit der Angabe CHECK wird dabei geprüft, ob die Integrität gewährleistet ist.

26 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Erweiterte Form (Beispiele): ALTER TABLE abteilung ADD constraint prim_s_abt primary key (abt_nr); ALTER TABLE mitarbeiter ADDconstraint fremd_s_mita foreign key (abt_nr) references abteilung (abt_nr); ALTER TABLE abteilung DROP constraint prim_s_abt;

27 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Löschen von Objekten: DROP objekt obj_name [{,….}] Beispiele: DROP DATABASE db_name [{, db_name2} …] Die Datenbank(en) wird/werden mit allen Objekten gelöscht. Hierzu muss die aktuelle Datenbank die Master-Datenbank sein!!! DROP TABLE tab_name [{, tab_name2} …] Die Tabelle(n) wird/werden mit allen Elementen und Regeln gelöscht. DROP TABLE arbeiten;

28 JOBELMANN-SCHULELutz Kleinostendarp SQL - Datendefinition CREATE DATABASE TABLE Integritätsregeln unique primary key foreign key ALTER TABLE DROP Übungsphase 2: Gehen Sie mit Hilfe des Skriptes die Anweisungen ALTER TABLE und DROP (Kapitel 3.3 und 3.4) durch.


Herunterladen ppt "SQL Lutz KleinostendarpJOBELMANN-SCHULE Datendefinition Die Organisation einer Datenbank basiert auf einer Anzahl verschiedener Objekte. Diese können physikalischer."

Ähnliche Präsentationen


Google-Anzeigen