Document, comentariu, eseu, bacalaureat, liceu si facultate
Top documenteAdmitereTesteUtileContact
      
    


 


Ultimele referate adaugate

Adauga referat - poti sa ne ajuti cu un referat?

Politica de confidentialitate



Ultimele referate descarcare de pe site
  CREDITUL IPOTECAR PENTRU INVESTITII IMOBILIARE (economie)
  Comertul cu amanuntul (economie)
  IDENTIFICAREA CRIMINALISTICA (drept)
  Mecanismul motor, Biela, organe mobile proiect (diverse)
  O scrisoare pierduta (romana)
  O scrisoare pierduta (romana)
  Ion DRUTA (romana)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  COMPORTAMENT PROSOCIAL-COMPORTAMENT ANTISOCIAL (psihologie)
  Starea civila (geografie)
 

Ultimele referate cautate in site
   domnisoara hus
   legume
    istoria unui galban
   metanol
   recapitulare
   profitul
   caract
   comentariu liric
   radiolocatia
   praslea cel voinic si merele da aur
 
despre:
 
IMAGINI (VIEWS)
Colt dreapta
Vizite: ? Nota: ? Ce reprezinta? Intrebari si raspunsuri
 
s6u18ue
Ce este o Imagine ?
O imagine este ca o fereastra prin intermediul careia datele din tebele pot fi vizualizate sau schimbate.
O imagine este derivata dintr-o alta imagine sau tabela la care este referita ca tabela de baza a imaginii - o tabela 'reala' cu date care sunt stocate fizic.
O imagine este stocata doar ca o secventa SELECT. Este o tabela virtuala - adica este o tabela care nu exista fizic, dar ii apare utilizatorului ca si cum ar exista.
O imagine nu are date proprii. Ea manipuleaza datele din tabela de baza asociata.
Imaginile sunt utile pentru urmatoarele scopuri :
Ingradirea accesului la o baza de date. Selectand dintr-o imagine (VIEW) putem afisa o parte restransa din baza de date.
Permite utilizatorilor sa faca cereri simple pentru obtinerea de rezultate din cereri complicate. De exemplu, imaginile permit utili- zatorilor sa selecteze informatii din tabele multiple fara cunoas- terea mecanismelor instructiunii JOIN.
Furnizeaza independenta datelor pentru useri ad-hoc si programele aplicatiilor. O imagine poate fi utilizata pentru a extrage trans- parent date din mai multe tebele. De asemenea imaginile permit ca aceleasi date sa fie vazute de utilizatori diferiti in feluri dife- rite.
Imagini Simple vs. Imagini Complexe
Clasificarea unei imagini simple :

furnizeaza date dintr-o singura tabela nu contine functii sau grupuri (GROUP) de date.
O imagine complexa poate fi compusa din date care sunt :

furnizate din mai multe tabele contine functii sau grupuri de date.
Comanda CREATE VIEW

CREATE a OR REPLACE i aFORCEi VIEW nume-view

a(coloana1, coloana2, ...)i

AS

SELECT secventa-select

aWITH CHECK OPTION aCONSTRAINT nume_constrii

Coloana1, coloana2, etc. sunt numele date coloanelor in imaginesi trebiue sa corespunda elementelor din lista selectata.




Pentru a crea o imagine simpla numita D10EMP, care contine unele detalii ale angajatilor din Departamentul 10, introduceti :

CREATE VIEW D10EMP

AS

SELECT EMPNO,ENAME,SAL

FROM EMP

WHERE DEPTNO = 10;

Cand o imagine este creata, un mesaj este afisat : "View created."

Imaginea poate fi utilizata ca orice tabela :

SELECT *

FROM D10EMP

ODRER BY ENAME;

Pentru a crea o imagine complexa numita DEPT_SUMMARY, care contine functii de grup si date din doua tabele :

CREATE VIEW DEPT_SUMMARY

( NAME, MINSAL, MAXSAL, AVSAL )

AS

SELECT DNAME, MIN(SAL), MAX(SAL), AVG(SAL)

FROM EMP,DEPT

WHERE EMP.DEPTNO = DEPT.DEPTNO

GROUP BY DNAME;

De notat faptul ca numele coloanelor alternative au fost specificate pentru imagine. Aceasta este o cerinta pentru cazul cand elementele SELECTate nu sunt conforme cu conventia denumirilor din tabele / coloane, sau daca orice coloana din imagine este derivata dintr-o functie sau expresie.

De notat si faptul ca daca o coloana este utilizata intr-o cerere (ANNSAL), o imagine a unui alias al coloanei ( nume alternativ pentru coloana in imagine ) nu e necesar. De exemplu :

CREATE VIEW DEPT20

AS

SELECT ENAME, SAL*12 ANNSAL

FROM EMP

WHERE DEPTNO = 20;

O imagine nu poate contine clauza ORDER BY. Clauza ORDER BY este specificata cand se executa SELECT din imagine.

Optiunea OR REPLACE
Aceasta optiune permite ca o imagine sa fie creata chiar daca exista una cu acelasi nume, astfel inlociundu-se vechea varianta a imaginii pentru proprietarul ei. Aceasta inseamna ca o imagine poate fi alterata fara a fi abandonata, recreandu-se si redand privilegiile obiectului.

Optiunea FORCE
Aceasta optiune creaza o imagine chiar daca tabela de baza nu exista, sau sunt prea putine drepturi pentru tabela respectiva. Oricum, tabela trebiue sa existe inainte ca imaginea sa poata fi utilizata.

Utilizarea unei Imagini cu Operatii DML
Imaginile sunt facilitati puternice deoarece ele ne permit sa executam verificari de integritate referentiale asupra datelor modificate prin utilizarea imaginilor.

Clauza WITH CHECK OPTION specifica faptul ca INSERT si UPDATE executate pein intermediul imaginii nu permit crearea de linii noi pe care imaginea nu le poate selecta, si de aceea mermite constrangerile de integritate si vreificarile validarilor de date sa fie fortate asupra datelor ce vor fi inserate sau actualizate.

In urmatorul exeplu, o imagine numita D10EMP este creata cu WITH CHECK OPTION. Aceasta inseamna ca doar linii care au DEPTNO = 10 pot fi inserate, actualizate sau sterse. Adica nici o secventa DML nu poate sa adreseze imaginea decat daca conditiile clauzei imaginii sunt indepli- nite.

CREATE VIEW D10EMP

AS

SELECT EMPNO, ENAME, DEPTNO

FROM EMP

WHERE DEPTNO = 10

WITH CHECK OPTION;

Daca exista o incercare de a executa actiuni DML asupra liniilor pe care imaginea nu le poate selecta intr-o claiza WHERE, se afiseaza eroare :

"ORA_01402 VIEW WITH CHECK OPTION

WHERE_Clause voilation."

Urmatorul exemplu va valida intratea oricarei comenzi INSERT/UPDATE astfel incat numarul SAL sa fie intre 1000 si 2000, MGR va trebui sa aibe campul EMPNO valid, si DEPTNO sa existe in tabela DEPT.

CREATE VIEW EMP_DATA

AS

SELECT EMPNO, ENAME, JOB, MGR, SAL, DEPTNO

FROM EMP

WHERE SAL BETWEEN 1000 AND 2000

AND MGR IN ( SELECT DISTINCT EMPNO

FROM EMP )

AND DEPTNO IN ( SELECT DEPTNO

FROM DEPT )

WITH CHECK OPTION;

Pentru a crea o imagine care sa restranga accesul la detaliile personale ale unui angajat valid in tabela EMP, si timpul de acces la orele de servici, atunci introduceti urmatoarea comanda :

CREATE VIEW EMP_DETAILS

AS

SELECT EMPNO, ENAME, JOB, DEPTNO

FROM EMP

WHERE ENAME = USER

AND TO_CHAR(SYSDATE,'HH24') BETWEEN 9 AND 17

AND TO_CHAR(SYSDATE,'D') BETWEEN 2 AND 6

WITH CHECK OPTION;

Cand creati o imagine cu WITH CHECK OPTION, trebiue s-i atribuiti un nume restrictiei WITH CHECK OPTION.

CREATE VIEW EMPLOYEES( ID_NUMBER, NAME, DEPARTMENT)

AS

SELECT EMPNO, ENAME, JOB, DEPTNO

FROM EMP

WHERE DEPTNO IN ( SELECT DISTINCT DEPTNO FROM DEPT)

WITH CHECK OPTION CONSTRAINT DEPT_CHECK;

Aceasta restrictie previne inserarea unei coloane in tabela EMP cu un numar care nu exista in tabela DEPT.

Cand comanda CREATE VIEW este executata in seventa SELECT care urmeaza AS nu e executata; in loc este doar depozitata in dictionarul de date.

Cand accesati date, via o imagine, ORACLE executa urmatoarele operatii :

recupereaza definitia imaginii din dictionarul de date verifica drepturile de acces converteste cererea imaginii intr-o operatie echivalenta asupra tabelei sau tabelelor asociate. Cu alte cuvinte, datele sunt recu- perate din, sau o actualizare este facuta asupra, tabelei(lor) de baza.
Odata ca imaginea a fost creata, trebuie sa se execute o cerere la Tabela Dictionarului de Date numita USER_VIEWS ca sa se vada conanda view.

Acesti parametrii SETabili vor influienta afisarea imaginii text :

Maxdata
Arraysize
Long
Imaginea text este memorata intr-o coloana de tipul de date Long si ar trebui setat ARRAYSIZE la o valoare mica ( de ex. 1 ) pentru a vizualiza textul.

Modificarea Datelor prin Imagini
Dupa cum am discutat, restrictiile pot fi impuse cu ajutirul clauzei WITH CHECK OPTION cand o imagine este creata. Mai sunt si alte constrangeri de care trebiue sa fiti atenti.

DELETE este interzis cand o imagine contine :

conditie Join functii de grup clauza GROUP BY comanda DISTINCT
ROWNUM (nr de ordine al randului dupa ce acesta a fost adus din baza de date).

UPDATE este interzis cand :

Oricare de mai sus
Coloane definite prin expresii ( de ex. SAL*12 )

INSERT este interzis cand :

Oricare de mai sus
Orice NOT NULL coloane nu sunt selectate de imagine ( ex. EMPNO )

Comanda DROP VIEW
Utilizati comanda DROP pentru a sterge o imagine. Aceasta comanda elimina definitia imaginii din baza de date. Coloanele si liniile nu sunt afectate deoarece sunt stocate in tabelele de unde a derivat fiecare ima- gine. Imaginile sau alte aplicatii bazate pe o imagine stearsa devin in- valide.

De notat ca o imagine poate fi derivata dintr-o tabela sau de fapt dintr-o alta imagine !

Sintaxa DROP este :

DROP VIEW nume_imagine;

Doar creatorul imaginii poate sa o stearga.

Exercitii - CAP 16 - Crearea si Utilizarea Imaginilor
Definiti o imagine care sa produca urmatoarea iesire cand este referita intr-o cerere. Rulati o cerere pentru a testa imaginea.

DEPTNO AVERAGE MAXIMUM MINIMUM SUM NO_SALS NO_COMMS

------ ---------- ------- ------- ----- -------- --------

10 2196.66667 5000 1300 8750 3 0

20 2175 3000 800 10875 5 0

30 1566.66667 2850 950 9400 6 4

Utilizand imaginea de mai sus, extrageti urmatoarea informatie. Nuarul angajatului trebuie introdus la rulare.

EMPNO ENAME JOB SAL HIREDATE MINIMUM MAXIMUM AVERAGE

----- --------- ------- ---- --------- ------- ------- -------

7902 FORD ANALYST 3000 05-DEC-83 800 3000 2175

Creati o imagine care sa impuna urmatoarele restrictii la insrearea datelor in tabela ASSIGNMENTS.
Projid trebuie sa fie mai mic de 2000.
Data de sfarsit trebiue sa fie dupa data de inceput.
Tiputile valide pentru Assign_type sunt PF, WT sau ED.
Bill_rate trebuie sa fie mai mic decat 50.00 pentru Assign_type PF, mai mic de 60.00 pentru WT si mai mic de 70.00 pentru ED.
EMPNO trebuie sa fie valid.
Retineti clauza WITH CKECK OPTION.
SOLUTII - CAP 16

CREATE VIEW AGGREGATES

( DEPTNO, AVERAGE, MAXIMUM, MINIMUM, SUM,

NO_SALS, NO_COMMS )

AS

SELECT DEPTNO,

AVG(SAL),

MAX(SAL),

MIN(SAL),

COUNT(SAL),

COUNT(COMM),

FROM EMP

GROUP BY DEPTNO;

SELECT EMP.DEPTNO,

ENAME,

JOB,

SAL,

HIREDATE,

MINIMUM,

MAXIMUM,

AVERAGE

FROM EMP, AGGREGATES AGG

WHERE EMP.DEPTNO = AGG.DEPTNO

AND EMP.EMPNO = & EMPNO;

CREATE VIEW ASG_VAL

AS

SELECT PROJID,

EMPNO,

A_START_DATE,

A_END_DATE,

BILL_RATE,

ASSIGN_TYPE,

HOURS,

FROM ASSIGNMENTS

WHERE A_START_DATE < A_END_DATE

AND PROJID < 2000

AND BILL_RATE <= DECODE( ASSIGN_TYPE,'PF',50,'WT',60,70)

AND EMPNO IN

( SELECT EMPNO FROM EMP )

WITH CHECK OPTION;


Colt dreapta
Creeaza cont
Comentarii:

Nu ai gasit ce cautai? Crezi ca ceva ne lipseste? Lasa-ti comentariul si incercam sa te ajutam.
Esti satisfacut de calitarea acestui document, eseu, cometariu? Apreciem aprecierile voastre.

Nume (obligatoriu):

Email (obligatoriu, nu va fi publicat):

Site URL (optional):


Comentariile tale: (NO HTML)


Noteaza documentul:
In prezent fisierul este notat cu: ? (media unui numar de ? de note primite).

2345678910

 
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite
Colt dreapta