Definirea datelor n SQL SQL folosete termenii tabel, rnd, coloan echivaleni cu termenii din modelul relaional formal relaie, tuplu, atribut. Comanda SQL pentru definirea datelor este CREATE care poate fi folosit pentru crearea schemelor, tabelelor, domeniilor. Conceptul de schem n SQL Conceptul de schem SQL a fost introdus n standardul SQL2 pentru a grupa mpreun tabele i alte structuri care apar in aceleai baze de date.
Schema SQL este identificat de nume, identificator de
autorizare care indic utilizatorul sau contul care este proprietarul schemei, descriptorii pentru fiecare element al schemei bazei de date.
Elementele schemei bazei de date includ tabele, constrngeri,
vederi, domenii. Conceptul de schem n SQL O schem este creat cu comanda CREATE SCHEMA care poate s includ toate definiiile elementelor. Alternativ, schemei ii poate fi asociat doar numele i identificatorul de autorizare, iar elementele pot fi definite ulterior.
CREATE SCHEMA VLAICU AUTHORIZATION AUREL;
n general, nu toi utilizatorii sunt autoriza i sa creeze scheme
sau elemente n schem.
Privilegiile pentru a crea scheme, tabele sau alte structuri
trebuie explicit acordate utilizatorilor sau conturilor de ctre DBA sau administratorul de sistem. Conceptul de catalog n SQL n SQL2 a fost introdus conceptul de catalog care reprezint o colecie de scheme ntr-un sistem de gestiune a bazelor de date. Comanda CREATE TABLE Comanda CREATE TABLE este folosit pentru a specifica o nou relaie sau tabel cu un nume, o list de atribute i constrngeri.
Atributele sunt specificate prin numele lor, tipul de date i
constrngeri, cum ar fi NOT NULL, PRIMARY KEY, etc.
Constrngerile asupra atributelor (cheie primar, chei externe,
check, default, not null) pot fi specificate fie la crearea tabelului, dup ce atributele sunt declarate, sau pot fi adugate mai trziu folosind comanda ALTER TABLE. Comanda CREATE TABLE Schema tabelei poate fi specificat i n comanda de crearea a tabelei (CREATE TABLE). CREATE TABLE FIRMA.Angajat ...
n loc de: CREATE TABLE Angajat . . .
Relaiile declarate cu comanda CREATE TABLE sunt numite
tabele de baz sau relaii de baz.
Aceasta nseamn c relaia i tuplurile sunt create i stocate
fizic n SGBD. Exemplu Create table Angajat ( Nume char(15) not null, Salariu int not null, Data_ang date ) Creeaz tabela Angajat, cu 3 cmpuri: Nume tip caracter, dimensiune 15 caractere Salariu tip ntreg Data_ang- tip dat Exemplu Create table elev ( Nume char(20), Clasa char(3), Medie dec(5,2), Baiat boolean ) CREATE TABLE elev (nume char(20), clasa char(3), medie dec(5,2), baiat boolean) Constrngeri Constrngerile de baz n SQL pot fi descrise ca i parte a definiiei tabelelor i includ: constrngeri de cheie primar, constrngeri de cheie extern, resctricii pe domeniile atributelor i NULL, Constrngeri DEFAULT, UNIQUE, CHECK, constrngeri pe tuplurile unei relaii. Constrngeri - NOT NULL Deoarece SQL permite NULL ca si valoare pentru atribute, constrngerea NOT NULL poate fi specificat dac valorea NULL nu este permis pentru un anumit atribut.
Aceast constrngere este ntotdeauna specificat implicit
pentru atributele care sunt parte a cheii primare dintr-o rela ie.
Exemplu: CREATE TABLE angajati ( Nume char(15) NOT null,
Salariu int NOT null, Data_ang date) Constrngeri - DEFAULT Este de asemenea posibil definirea unei valori implicite (default value) pentru un atribut, prin adugarea clauzei DEFAULT <valoare> la definirea unui atribut. Valoarea implicit este adugat n fiecare nou tuplu, dac o alt valoare explicit nu este dat acelui atribut. Dac nu se specific nici o clauz DEFAULT, valoarea implicit pentru un atribut este NULL dac acestuia nu i-a fost adugat constrngerea NOT NULL. Exemplu: CREATE TABLE elev (nume char(20), clasa char(3), medie dec(5,2) default 6, baiat boolean) Obs. Pentru a funciona trebuie creat nainte o baz de date cu CREATE DATABASE nume Constrngeri - UNIQUE Valorile atributului care are constrngerea UNIQUE trebuie sa fie unice. Atributul poate avea si valori NULE.
char(3), medie dec(5,2) , baiat boolean) Constrngeri - CHECK Un alt tip de constrngere poate restric iona atributul sau valorile domeniului, folosind clauza CHECK urmat de un atribut sau definiia unui domeniu.
char(3), medie number(5,2) check(medie>1 AND medie <10), baiat boolean) Obs. Pentru a funciona trebuie creat nainte o baz de date cu CREATE DATABASE nume Constrngeri cheie primar Deoarece cheile i integritatea referenial (cheile externe) sunt foarte importante, exist clauze speciale n cadrul comenzii CREATE TABLE pentru a le putea a specifica.
Clauza PRIMARY KEY specific unul sau mai multe atribute
care alctuiesc cheia primar a unei relaii.
Dac cheia primar este alctuit dintr-un singur atribut, atunci
clauza poate urma imediat dup atribut. Constrngerile de cheie extern Integritatea referenial este specificat prin clauza FOREIGN KEY. Regulile de integritate referenial pot fi nclcate cnd se insereaz tupluri noi sau cnd sunt terse tupluri, sau cnd valorile cheilor primare sau externe sunt modificate. Aciunea implicit pe care SQL o ia la nclcarea integrit ii refereniale este de a rejecta operaia care a cauzat nclcarea integritii. Proiectantul bazei de date poate specifica explicit aciunea alternativ pe care o poate lua SQL cnd integritatea referenial este nclcat: ON DELETE or ON UPDATE SET NULL ON DELETE or ON UPDATE CASCADE ON DELETE or ON UPDATE SET DEFAULT