Sunteți pe pagina 1din 11

Obiecte Views

BD Exemplu:

Obiecte Views
View - tabel virtual al carui continut se obtine in urma executiei unei interogari
Datele dintr-un View nu sunt stocate separat in baza de date impreuna cu Viewul; Nu sunt memorate nici macar campurile obiectului View; Atat DATELE cat si CAMPURILE (structura tabelara) din View sunt obtinute in mod DINAMIC la fiecare executie a interogarii care sta la baza;

Gestionarea obiectelor VIEWS


View-urile pot fi create/modificate/sterse utilizand interfata grafica dedicata pusa la dispozitie prin SQL Server Management Studio (gen QBE din Access); View-urile pot fi create/modificate/sterse direct dintr-o fraza SQL (de exemplu dintr-o fraza SQL executata in fereastra Query); Datele dintr-un View pot fi invocate cu usurinta din orice fraza SQL, printr-o fraza SQL de tip SELECT, in sintaxa SQL fiind asimilate tabelelor (virtuale).

Categorii de obiecte Views


STANDARD utilizeaza interogari uzuale de selectie pe unul sau mai multe tabele ale bazei de date; INDEXATE utilizeaza un index pentru a creste performantele accesului la date prin intermediul unui View; performanta este foarte ridicata, doar in cazul in care datele accesate nu sufera modificari dese in timp; PARTITIONATE se utilizeaza pentru a a accesa seturi de date cu structura identica, distribuite pe unul sau mai multe servere; se utilizeaza cu succes pentru implementarea bazelor de date federative;

Crearea unui View standard folosind interfata grafica dedicata (exemplu: o interogare fara grupari)
S se defineasc un obiect de tip view care s returneze toate facturile emise clienilor dup data de 23.12.2010. n rezultate se va calcula valoarea fr TVA din fiecare carte vndut. 1. Se stabilesc tabelele ce vor fi utilizate (Facturi, Clienti, Carti, ContinutFactura) 2. Se stabilesc atributele (considerate relevante) ce vor face parte din rezultatele returnate de obiectul View: NrFactura, DataFactura, CUIClient, DenumireClient, CodISBN, DenumireCarte, CantitateVanduta, PretVanzare 3. Se calculeaza ValoareCarte (zona Alias) dup expresia (zona Column): CantitateVanduta * PretVanzare 4. Se definesc condiiile de selecie a datelor. Pentru acest exemplu condiia se menioneaz pe coloana Filter, rndul DataFactura. Condiia este: >convert(datetime, 2010-12-23, 102) Observaii: Dup introducerea unei expresii SQL Server poate face ajustri asupra modului de scriere al acesteia. Codul 102 indic modul de specificare al datei calendaristice (aaaa-ll-zz). nainte de a meniona eventualele condiii de selecie a datelor, se poate face o prob de execuie, pentru a vedea dac interogarea furnizeaz rezultate sau nu.

Crearea unui View standard folosind interfata grafica dedicata (exemplu: o interogare fara grupari)

Crearea unui View standard folosind interfata grafica dedicata (exemplu: interogare cu grupari)
S se defineasc un obiect de tip view care s returneze toate facturile care conin cri tiprite dup data de 1.1.2010 (inclusiv). Se va calcula i un total valoric (parial) al acestor facturi. Se vor afia doar facturile cu totalul mai mare de 20 lei. 1. Se stabilesc tabelele ce vor fi utilizate (Facturi, Clienti, Carti, ContinutFactura) 2. Se stabilesc atributele (considerate relevante) ce vor face parte din rezultatele returnate de obiectul View: NrFactura, DataFactura, CUIClient, DenumireClient 3. Se activeaz opiunea de interogri cu totaluri (Query Designer ->Add Group By) 3. Se calculeaza Total (zona Alias) dup expresia (zona Column): CantitateVanduta * PretVanzare, iar pe coloana Group By se alege SUM. 4. Se definesc condiiile de selecie a datelor. pe coloana Filter, rndul DataAparitie. Condiia este: >=convert(datetime, 2010-01-01, 102) Pe coloana Total, condiia este: >20 Observaii: Coloana DataAparitie nu va putea fi afiat n rezultatele interogrii (zona Output), deoarece condiia pentru acest atribut acioneaz nainte (zona Group By se alege Where) de momentul efecturii gruprilor i calculul funciilor agregate

Crearea unui View standard folosind interfata grafica dedicata (exemplu: interogare cu grupari)

Crearea/modificarea/stergerea unui View standard in SQL


CREATE VIEW numeView As fraza_SQL_SELECTIE ALTER VIEW numeView As fraza_SQL_SELECTIE DROP VIEW numeView CREARE VIEW

MODIFICARE VIEW

STERGERE VIEW

Exemplu creare:
CREATE VIEW vwProduse As SELECT * FROM Produse WHERE UM=Buc Exemplu modificare: ALTER VIEW vwProduse As SELECT * FROM Produse WHERE UM=kg or UM=Buc Nota: accesarea unui View dintr-o fraza SQL se realizeaza respectand sintaxa unei fraze SELECT: SELECT lista_atribute FROM NumeView .

Crearea unui View indexat in limbajul SQL


CREATE VIEW numeView WITH SCHEMABINDING As fraza_SQL_SELECTIE

CREATE UNIQUE CLUSTERED INDEX numeIDX ON numeView(numecamp)

Exemplu:

CREATE VIEW Exemplu WITH SCHEMABINDING As SELECT CodProdus, DenumireProdus, PretCatalog FROM dbo.Produs WHERE UM='Buc

CREATE UNIQUE CLUSTERED INDEX numeIDX ON Exemplu(CodProdus)

Crearea unui View partitionat in SQL


Se implementeaza cu ajutorul interogarilor de tip UNION, fiind de fapt o reuniune a seturilor de date cu structura identica/asemanatoare distribuite la nivel local sau pe servere diferite; Exemplu: afisarea facturilor din doua baze de date (Curs si CursBIS) cu structura identica, situate pe acelasi server

Crearea unui View partitionat distribuit in SQL


Exemplu: afisarea facturilor din doua baze de date (CursBIS si CursDistribuit) cu structura identica, situate pe servere diferite ([s-win-sql-cig\cig] si [fm-1CD7063cd72e\fmmobile])

Nota: pentru a putea executa o fraza SQL care foloseste date de pe mai multe servere se executa in prealabil procedura:

sp_addlinkedserver nume_server
(o singura data) pentru fiecare server.

S-ar putea să vă placă și