06 sql jod

background image

SQL – JDD (DDL)

Język definicji danych
(Data Definition Language)

background image

18 marzec 2004

SQL - język definicji danych

2

Elementy bazy danych

Dziedziny

Tabele, perspektywy

Indeksy

Więzy ogólne (asercje)

Wyzwalacze i procedury użytkownika

Użytkownicy, role, uprawnienia

Zbiory znaków, zestawienia, translacje

background image

18 marzec 2004

SQL - język definicji danych

3

Dziedzina standardowa

Logiczna (TRUE, FALSE, UNKNOWN);

Znakowe: char(n) lub character(n), varchar(n) lub

character varying(n);

Bitowe: bit(n), bit varying(n);

Liczowe dokładne: int lub integer, shortint,

numeric(n,p), decimal(n,p);

Liczbowe zmiennopozycyjne: float(p), real,

double;

Daty i czasu: date, time, timestamp [WITH TIME

ZONE]

Przedziały czasu: interval p to k;

Inne: text lub clob, blob.

background image

18 marzec 2004

SQL - język definicji danych

4

Dziedzina użytkownika

CREATE DOMAIN <NAZWA> AS <dziedzina zdef.>
[DEFAULT <wartość domyślna>][<więzy

dziedzinowe>]

<wartość domyślna>::= <stała> | NULL | <f. bez

arg.>

<więzy dziedzinowe>::=
[CONSTRAINT <nazwa więzu>]
CHECK ( VALUE { IN (v1,v2,...,vk) |
IS NOT NULL |
<operator porównania> <wartość>|
BETWEEN <w1> AND <w2> |
IN (<zapytanie SELECT>) })

background image

18 marzec 2004

SQL - język definicji danych

5

Tabela

CREATE TABLE <nazwa tabeli>
(
<kolumna1> <dziedzina1>
[<więzy kolumny 1>],

<kolumna2> <dziedzina2>

[<więzy kolumny 2>],...
[<więzy relacji>],...
)

background image

18 marzec 2004

SQL - język definicji danych

6

Więzy kolumny

[CONSTRAINT <nazwa więzu>]
NOT NULL |
DEFAULT <wartość domyślna> |
PRIMARY KEY |
UNIQUE |
REFERENCES <tabela>(<kolumna>)
[<akcja referencyjna>]
[<integralność referencyjna>] |
CHECK <warunek>

background image

18 marzec 2004

SQL - język definicji danych

7

Akcja referencyjna

ON { DELETE | UPDATE }

{ RESTRICT |
NO ACTION |
CASCADE |
SET NULL |
SET DEFAULT }

background image

18 marzec 2004

SQL - język definicji danych

8

Integralność referencyjna

Domyślnie – jeżeli jakaś kolumna klucza

obcego jest pusta, to integralność

referencyjna nie jest kontrolowana;

MATCH FULL – jeśli wszystkie kolumny

klucza obcego są puste, to integralność

referencyjna nie jest kontrolowana;

przeciwnie – musi istnieć odpowiedni rekord

w tabeli nadrzędnej;

MATCH PARTIAL – rekord podrzędny pasuje

do rekordu nadrzędnego, jeśli zgadza się z

nim na niepustych polach klucza obcego.

background image

18 marzec 2004

SQL - język definicji danych

9

Więzy relacji

[CONSTRAINT <nazwa więzu>]
PRIMARY KEY (<lista kolumn>) |
UNIQUE (<lista kolumn>) |
FOREIGN KEY (<lista kolumn>)
REFERENCES

<tabela>(<lista kolumn>)

[<akcja referencyjna>][<integralność
referencyjna>]|

CHECK <warunek>

background image

18 marzec 2004

SQL - język definicji danych

10

Więzy – moment kontroli

Spełnienie więzu może być
kontrolowane natychmiast po
wprowadzeniu, aktualizacji
rekordu z tabeli (IMMEDIATE)

Może być jednak odroczone do
momentu wypełnienia transakcji
(DEFERRED)

background image

18 marzec 2004

SQL - język definicji danych

11

Perspektywa (tabela
wirtualna)

CREATE VIEW
<nazwa perspektywy> [<nazwa
kolumny>,...]
AS
<zapytanie SELECT definiujące
perspektywę>
[ WITH
[CASCADED|LOCAL]
CHECK OPTION]

background image

18 marzec 2004

SQL - język definicji danych

12

Perspektywa -
implementacja

Perspektywa materializowana – zapytanie
definiujące perspektywę jest wyliczane i
przechowywane jako tabela przez SZBD.
Zapytania do perspektywy są realizowane
przez wgląd w tę tabelę. Modyfikacje
perspektywy mogą być przeprowadzane
przez:

– ponowne obliczenie zapytania;
– aktualizację tylko tych rekordów, które

dotknęła modyfikacja.

background image

18 marzec 2004

SQL - język definicji danych

13

Perspektywa –
implementacja

Rozkład – jest metodą polegającą
na przekształceniu zapytania
dotyczącego perspektywy tak, by
dotyczyło tabel bazowych, a
warunki wyboru pochodzące z
definicji perspektywy zostały
włączone w definicję tabeli.

background image

18 marzec 2004

SQL - język definicji danych

14

Perspektywa -
modyfikacje

Perspektywa jest modyfikowalna, gdy dotyczy
jednej tabeli i występują w niej wszystkie
kolumny niepuste (z nałożonym warunkiem
NOT NULL lub PRIMARY KEY) z tej tabeli.

Własność modyfikowalności można
rozciągnąć na perspektywy powstałe z kilku
tabel, o ile w tabeli wynikowej występują
kolumny kluczy i kolumny niepuste z
wszystkich tabel, które są złączane w celu
utworzenia perspektywy.

background image

18 marzec 2004

SQL - język definicji danych

15

Perspektywa -
modyfikacje

Perspektywa nie może być modyfikowalna, gdy:

zawiera operator DISTINCT;

zwraca kolumnę wyliczaną;

jest definiowana przez zapytanie grupujące;

jest definiowana przez zapytanie zawierające

UNION, EXCEPT lub INTERSECT;

w warunku WHERE zapytania definiującego

występuje odwołanie do tabeli występującej

w klauzuli FROM.

background image

18 marzec 2004

SQL - język definicji danych

16

Perspektywa – WITH CHECK
OPTION

WITH CHECK OPTION

– rekord wstawiony poprzez perspektywę musi

należeć do perspektywy;

– rekord zmodyfikowany poprzez perspektywę

nadal musi należeć do perspektywy.

CASCADED – wstawienie lub modyfikacja rekordu

do perspektywy lub perspektywy na jej podstawie

zdefiniowanej, nie może spowodować zniknięcia

rekordu z danej perspektywy;

LOCAL – rekord może zniknąć po modyfikacji z

perspektywy, o ile zniknie z tabeli, na podstawie

której jest zdefiniowana perspektywa.

background image

18 marzec 2004

SQL - język definicji danych

17

Indeks

CREATE [UNIQUE] INDEX
<nazwa indeksu> ON

<nazwa tabeli> (<lista atrybutów>)

[USING {
HASH |
BTREE |
RTREE }]

background image

18 marzec 2004

SQL - język definicji danych

18

Zmiany w schemacie BD

DROP – usunięcie danego obiektu

(DOMAIN, TABLE, VIEW, INDEX) z

opcją RESTRICT lub CASCADE

ALTER – modyfikacja definicji;

możliwe operacje, to:

– [DROP | ADD ] COLUMN]
– [DROP | ADD ] CONSTRAINT
– [DROP | SET ] [DEFAULT...]

[CHECK...]

background image

18 marzec 2004

SQL - język definicji danych

19

Więzy ogólne – asercje

CREATE ASSERTION <nazwa
więzu>
CHECK <warunek>

background image

18 marzec 2004

SQL - język definicji danych

20

Przykład

CREATE DOMAIN TNazwa AS
VARCHAR(20) DEFAULT ‘???’;

CREATE DOMAIN TPłeć AS
CHAR
DEFAULT ‘?’
CHECK VALUE IN (‘K’, ‘M’);

background image

18 marzec 2004

SQL - język definicji danych

21

Przykład cd.

CREATE TABLE Osoba
( nazwisko Tnazwa NOT NULL,
imię Tnazwa,

KM Tpłeć,

PESEL CHAR(11) UNIQUE NOT
NULL,

PRIMARY KEY (nazwisko, imię));

background image

18 marzec 2004

SQL - język definicji danych

22

Przykład cd.2

CREATE TABLE Samochód
(nrRej VARCHAR(10) PRIMARY
KEY,
marka Tnazwa,
właściciel CHAR(11)
REFERENCES Osoba(pesel) ON
DELETE SET NULL ON UPDATE
CASCADE);

background image

18 marzec 2004

SQL - język definicji danych

23

Przykład cd.3

CREATE VIEW WW AS

SELECT nazwisko, imię

FROM Osoba JOIN Samochód ON

pesel=właściciel;

CREATE VIEW WX AS
SELECT nazwisko, imię
FROM WW WHERE marka IN

(‘BMW’,’Opel’);

CREATE INDEX samWgWłaściciel
ON Samochód(Właściciel)


Document Outline


Wyszukiwarka

Podobne podstrony:
06 podstawy SQL 3id 6524 ppt
06 podstawy SQL 3id 6524 ppt
MT st w 06
Kosci, kregoslup 28[1][1][1] 10 06 dla studentow
06 Kwestia potencjalności Aid 6191 ppt
06 Podstawy syntezy polimerówid 6357 ppt
06
06 Psych zaburz z somatoformiczne i dysocjacyjne
GbpUsd analysis for July 06 Part 1
Probl inter i kard 06'03
06 K6Z4
06 pamięć proceduralna schematy, skrypty, ramyid 6150 ppt
Sys Inf 03 Manning w 06

więcej podobnych podstron