Bases de Dades ORACLE
Tema: Administració remota de la BD. L'Schema Manager
Activitat: Creació de vistes
INTRODUCCIÓ
-
Una vista és un objecte que permet crear una selecció personalitzada
d'un taula o de varies interrelacionades .
-
Les vistes no contenen dades, només contenen una consulta SQL.
-
Les vistes s'utilitzen per a:
- Proporcionar seguretat adicional sobre una taula mostrant només
unes determinades files/columnes.
- Amagar la complexitat de les dades a certs usuaris: una vista pot
mostrar dades de moltes taules interrelacionades com si només es
tractes d'un única taula.
- Per simplificar els comandaments SQL: per accedir a les dades situades
en múltiples taules interrelacionades de les quals tenim una vista
només caldrà indicar en la senténcia SQL quines columnes
volem sense tenir en compte les interrelacions, de les quals ja s'encarrega
la vista.
- Per presentar les dades amb una perspectiva diferent de la que ofereixen
les taules. Per exemple, en una vista podem renombrar algunes columnes
sense afectar a les taules en les que es basa.
- Per expresar consultes complexes en SQL que no es poden implementar
només amb SELECT sobre taules, com ara consultes recursives (el
resultat d'una selecció sobre una taula es pren com a base per un
altre consulta sobre la mateixa taula).
-
Des de PL/SQL utilitzem les vistes de la mateixa forma que les taules,
de forma que si no ho sabem prèviament les podem confondre amb taules.
De fet podem executar instruccions insert (afegir dades), update
(modificar les), select (seleccionar les) i delete (esborrar
les) sobre una vista. Els canvis afectaran a les taules associades.
-
En la següent figura veiem la consulta SQL que conté la vista
SALES (vendes) en l'esquema SCOTT, dissenyada per visualitzar algunes de
les dades de quatre taules interrelacionades: ORD (dades generals d'una
comanda), ITEM (detalla de la comanda), CUSTOMER (comprador) i PRODUCT
(articles). La clàusula WHERE assegura que es combinen les files
que realment estan relacionades emprant les columnes que les interrelacionen.
Una vista que mostra dades de quatre taules interrelacionades
-
La següent figura mostra com podem executar una consulta SQL de selecció
sobre la vista anterior de la mateixa forma que amb les taules i com el
resultat es dóna també en format taula:
Consulta de selecció sobre una vista
-
Per crear una vista actuem com en la resta d'objectes que ja hem vist:
utilitzem l'icona d'afegir objecte, triem el tipus d'objecte vista i veurem
la finestra de disseny de vistes:
Exemple de creació d'una vista. Es mostra el
codi SQL de generació de la vista en la part inferior.
PRÀCTIQUES
1. Crea una vista en el teu usuari per visualitzar els següents
camps de les taules interrelacionades Publicacions i Temes:
Títol de la publicació
Editorial
Any de la publicació
Descriptors temàtics
La llista ha d'estar ordenada per Any de la publicació.
Doneu el nom "Vista_Publi_Tema" a la vista. Verifica el seu correcte
funcionament des de SQL amb una consulta de selecció tal com si
sigues una taula.
2. Intenta introduir dades en la vista Vista_Publi_Tema amb
la sentència Insert. És possible? Perquè?
3. Crea una vista que només mostra les files de Vista_Publi_Tema
que siguin de l'editorial InforBook's, és a dir, crea una
vista sobre un altre vista. Pots fer-ho? Verifica el seu funcionament.