Extras din curs
Obiecte complexe in SQL. Vederi.
O vedere (VIEW). Este un obiect al BD care poate fi considerat ca fiind o tabele virtuala adica o tabele pentru care se pastreaza in BD doar schema nu si datele. Poate fi utilizata in orice interogare ca si un tabel. Cu anumite restrictii dependente de SGBD ele pot fi utilizate si in op. de actualizare.
Din punct de vedere al SQL orice vedere este alcatuita dintr-o instructiune SELECT pastrata permanent ca un obiect dinstinct al BD.
O vedere este de obicei folosita pentru a incapsula o operatie de jonctiune mai complicata sau o interogare utilizata frecvent. Poate fi utilizata pentru a oferi unui utilizator numai datele de care are nevoie sau la care are drept de acces. Aceasta inseamna ca atunci cand se atribuie drepturile de acces pentru diversi utilizatori se vor atribui drepturi de acces la diverse vederi dar nu si la tabelele pe baza carora se construieste vederea.
Coloanele unei vederi pot fi coloane extrase dintr-o tabela, din alta vedere sau coloane calculate. Se observa ca o vedere poate sa faca apel la o alta vedere. In final trebuie sa se ajunga la tbl de baza sau expresii care nu utilizeaza tabele ci functii.
Ex: GETDATE ( ) à returneaza ora, minutele, secundele, data.
SQL Server 2000 nu suporta decat vederi statice. Pentru a simula o vedere temporala valabila doar pe durata unei sesiuni de lucru se creaza o vedere statica in BD predefinita tempbd.
Crearea unei vederi in SQL Server 2000 e posibila numai in BD pentru care e definite. Crearea vederii se realizeaza cu ajutorul comenzii: CREATE VIEW.
Sintaxa comenzii este:
CREATE VIEW[proprietar]nume_vedere[(lista_coloane)]
[WITH <atribute_vedere>[,..n]]
AS
Comanda_SELECT
[WITH CHECK OPTIONS]
<atribute_vedere>::={ENCRIPTION|SCHEMA BINDING}
Parametrii comenzii au urmatoarele semnificatii:
- nume vedere = numele vederii care trebuie sa respecte toate regulile impuse identific
- lista coloane = parametru obtional cu numele coloanei dintr-o vedere. Se va utiliza doar daca numele numele unora dintre coloanele vederii difera de numele coloanei corespunzatoare din tabloul de baza sau exista coloane calculate carora trebuie sa le dam un nume. In acest ultim caz putem da nume coloanei calculate in comanda SELECT folosind aliasul de coloana. Daca lista lipseste, numele coloanei e identic cu cel din comanda SELECT prin care definim vederea.
- cuvantul cheie AS = cuvantul prin care se introduce comanda SELECT de definire a vederii.
Comanda SELECT e o comanda SELET prin care se defineste structura si continutul vederii create. O vedere poate fi creata utilizand una sau mai multe tablouri si vederi deja definite si asupra carora cel care creaza vederea are drept de acces.
Exista cateva restrictii privind comanda SELECT. Principalele sunt:
- nu se accepta includerea clauzei ORDER BY decat in cazul in care la inceputul comenzii SELECT apare optinea TOPn, care specifica faptul ca vor fi selectate numai primele n elemente din lista. In general, utilizarea ordonarii in interiorul comenzii SELECT de definitie nu se justifica deoarece utilizatorul trebuie sa poata ordona informatia in functie de necesitati. Exista cazuri in care este necesar sa se selecteze de la inceput informatia intro-a aunmita ordine.
- nu se accepta includerea cuvintelor cheie INTO, deoarece aceasta ar insemna crearea unei copii fizice a continutului selectat.
- nu se accepta referirea la tablourile temporale sau la variabile tablou.
Obtiunea WITH CHECK OPTION obliga ca in cazul in care se folosesc comenzi de actualizare, toate operatiile de actualizare a datelor executate asupra unei vederi trebuie sa respecte regulile de integritate impuse de comanda SELECT din vedere. Aceasta este necesar, deoarece in lipsa unei optiuni o linie introdusa fara sa respecte clauza impusa de SELECT va dispare de pe ecran dupa actualizare. Daca se utilizeaza aceasta obtine, toate liniile introduse vor apare pe ecran.
Optiunea WITH ENCRIPTION asigura criptarea textului comenzii de creare a vederii pentru ca acesta sa nu poata fi vizualizat. Nu se recomada cecat intr-o veriune finala.
Optiunea WITH SCHEMA BINDING asigura integritatea structurala a unei vederi in sensul ca nici o tbl. si nici o vedere care participa la realizarea unei vederi cu aceasta clauza nu vor putea fi eliminate si nu modifica structura pana cand vederea afectata nu e eliminata.
Cand introducerea BD se realizeaza printr-o vedere, sistemul verifica daca toate obiectele referite exista, daca sunt valide si daca modificarea datelor nu violeaza regimul de integritate a datelor. Daca cel putin o verificare esueaza, interogarea este abandonata si se returneaza un mesaj de eroare. Daca toate verificarile s-au finalizat cu succes, interogarea asupra vederii va fi transformata automat intr-un set de interogari asupra continutului tabloului de baza.
Preview document
Conținut arhivă zip
- PBD - curs - 30.04.2004.doc
- PBD curs-18.03.2004.doc