Вы находитесь на странице: 1из 17

UNIVERSIDAD TECNOLGICA

DE CHETUMAL

INGENIERA EN TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN

PROFESOR:
M.S.I. FRANCISCO HERRERA

ASIGNATURA:
BASE DE DATOS

TRABAJO:
CUADERNILLO DE SCRIPTS
PRESENTA:
VCTOR HUGO MEDRANO ORTEGN

CHETUMAL, QUINTANA ROO, 03 DE MARZO DE 2016

NDICE
MANEJO DE VISTAS............................................................................................. 3
SUBCONSULTAS.................................................................................................. 6
SINNIMOS.......................................................................................................... 9
JUSTIFICACIN, MEJORES PRCTICAS UTILIZADAS..........................................12
BUENAS PRCTICAS USADAS PARA VISTAS..................................................12
BUENAS PRCTICAS USADAS PARA SUBCONSULTAS....................................13
BUENAS PRCTICAS USADAS PARA SINONIMOS............................................14
REFERENCIAS................................................................................................... 14

MANEJO DE VISTAS
Una vista es un objeto. Una vista es una alternativa para mostrar datos de varias
tablas; es como una tabla virtual que almacena una consulta. Los datos accesibles
a travs de la vista no estn almacenados en la base de datos, en la base de
datos se guarda la definicin de la vista y no el resultado de ella.
Entonces, una vista almacena una consulta como un objeto para utilizarse
posteriormente. Las tablas consultadas en una vista se llaman tablas base. En
general, se puede dar un nombre a cualquier consulta y almacenarla como una
vista.
Una vista suele llamarse tambin tabla virtual porque los resultados que retorna y
la manera de referenciarlas es la misma que para una tabla.
Las vistas permiten:

simplificar la administracin de los permisos de usuario: se pueden dar al


usuario permisos para que solamente pueda acceder a los datos a travs
de vistas, en lugar de concederle permisos para acceder a ciertos campos,
as se protegen las tablas base de cambios en su estructura.
mejorar el rendimiento: se puede evitar tipear instrucciones repetidamente
almacenando en una vista el resultado de una consulta compleja que
incluya informacin de varias tablas.

Podemos crear vistas con: un subconjunto de registros y campos de una tabla;


una unin de varias tablas; una combinacin de varias tablas; un subconjunto de
otra vista, combinacin de vistas y tablas.
Una vista se define usando un "select".
La sintaxis bsica para crear una vista es la siguiente:

CREATE VIEW NOMBREVISTA


AS SUBCONSULTA;

El contenido de una vista se muestra con un "select":

SELECT * FROM NOMBREVISTA;

VISTA 1
CREATE VIEW VISTA_CLIENTES
AS SELECT
"CLI_ID","CLI_NOMBRE","CLI_DIRECCION","CLI_CIUDAD","CLI_DEPARTAMENTO","
CLI_TELEFONO","EMP_ID","CLI_CREDITOLIMITE","CLI_OBSERVACIONES"
FROM CLIENTES;

VISTA 2
CREATE VIEW VISTA_PRECIOS
AS SELECT
"PRO_ID","PRE_FECHAINICIO","PRE_FECHAFIN","PRE_ESTANDAR","PRE_MINIMO"
FROM PRECIOS;

VISTA 3
CREATE VIEW VISTA_DEPARTAMENTOS

AS SELECT
"DEP_ID","DEP_NOMBRE","DEP_LOCALIZACION"
FROM DEPARTAMENTOS;

VISTA 4
CREATE VIEW VISTA_ORDENES
AS SELECT
"ORD_ID","ORD_FECHA","ORD_PLANCOMISION","CLI_ID","ORD_FECHAENTREGA
","ORD_TOTAL"
FROM ORDENES;

VISTA 5
CREATE VIEW VISTA_PRODUCTOSPORORDEN
AS SELECT
"ORD_ID","PPO_ID","PRO_ID","PPO_PRECIOACTUAL","PPO_CANTIDAD","PPO_TOT
ALLINEA"
FROM PRODUCTOSPORORDEN;

VISTA 6
CREATE VIEW VISTA_GRADOSDESALARIO
AS SELECT
"GRA_ID","GRA_LIMITEINFERIOR","GRA_LIMITESUPERIOR"
FROM GRADOSDESALARIO;

SUBCONSULTAS
Una subconsulta (subquery) es una sentencia "select" anidada en otra sentencia
"select", "insert", "update" o "delete" (o en otra subconsulta).
Las subconsultas se emplean cuando una consulta es muy compleja, entonces se
la divide en varios pasos lgicos y se obtiene el resultado con una nica
instruccin y cuando la consulta depende de los resultados de otra consulta.
Generalmente, una subconsulta se puede reemplazar por combinaciones y estas
ltimas son ms eficientes.
Las subconsultas generalmente se incluyen entre parntesis. Puede haber
subconsultas dentro de subconsultas. Generalmente las subconsultas se colocan
en la clusula "where".
Una subconsulta puede retornar:

un solo valor,
una lista de valores de una sola columna,
un conjunto de registros de varios campos.
6

Podemos averiguar si un valor de la consulta externa pertenece o no al conjunto


devuelto por una subconsulta ("in", "not in"), si es mayor, menor o igual a todos
("all") o a algunos valores ("some", "any") del conjunto devuelto.
Se pueden emplear subconsultas:

en lugar de una expresin, siempre que devuelvan un solo valor o una lista
de valores.
que retornen un conjunto de registros de varios campos en lugar de una
tabla o para obtener el mismo resultado que una combinacin (join).

Hay varios tipos bsicos de subconsultas:

las que retornan un solo valor escalar que se utiliza con un operador de
comparacin o en lugar de una expresin.
las que retornan una lista de valores, se combinan con "in", o los
operadores "any", "some" y "all".
los que testean la existencia con "exists".

SUBCONSULTA 1
SELECT CLIENTES.CLI_ID, CLIENTES.CLI_NOMBRE,
CLIENTES.CLI_DEPARTAMENTO,
(SELECT ORDENES.ORD_TOTAL
FROM ORDENES
WHERE CLI_ID= 15)
FROM CLIENTES
WHERE CLI_ID = 15;

SUBCONSULTA 2
SELECT CLIENTES.CLI_NOMBRE, CLIENTES.CLI_DIRECCION,
CLIENTES.CLI_CIUDAD,
(SELECT DEPARTAMENTOS.DEP_NOMBRE
FROM DEPARTAMENTOS
WHERE DEP_ID= 30)
FROM CLIENTES
WHERE CLI_ID = 10;

SUBCONSULTA 3
SELECT DEPARTAMENTOS.DEP_NOMBRE, DEPARTAMENTOS.DEP_LOCALIZACION,
(SELECT EMPLEADOS.EMP_NOMBRE
FROM EMPLEADOS
WHERE EMP_ID = 1100)
FROM DEPARTAMENTOS
WHERE DEP_ID = 10;

SUBCONSULTA 4
SELECT EMPLEADOS.EMP_NOMBRE, EMPLEADOS.EMP_CARGO,EMP_JEFE,
(SELECT DEPARTAMENTOS.DEP_LOCALIZACION
FROM DEPARTAMENTOS
WHERE DEP_ID = 10)
FROM EMPLEADOS
WHERE EMP_ID = 1000;

SUBCONSULTA 5
SELECT PRODUCTOS.PRO_ID, PRODUCTOS.PRO_NOMBRE,
(SELECT ORDENES.ORD_FECHA
FROM ORDENES
WHERE ORD_ID = 452)
FROM PRODUCTOS
WHERE PRO_ID = 30100201;

SUBCONSULTA 6
SELECT PRODUCTOSPORORDEN.PPO_PRECIOACTUAL,
PRODUCTOSPORORDEN.PPO_CANTIDAD,
(SELECT PRODUCTOS.PRO_NOMBRE
FROM PRODUCTOS

WHERE PRO_ID = 30100202)


FROM PRODUCTOSPORORDEN
WHERE ORD_ID = 452;

SINNIMOS
Un sinnimo en Oracle, es una representacin local o pblica de un objeto
perteneciente a un esquema. Sirve para poder hacer referencia a aquel objeto sin
tener que anteponer su esquema. Un sinnimo pblico puede ser visto por todos
los usuarios, pero uno privado, slo por el usuario que lo cre.
Para poder crear un sinnimo, el esquema o usuario que lo crea, tiene que tener
alguno o ambos privilegios de los siguientes:
CREATE SYNONYM
CREATE PUBLIC SYNONYM

Para el caso de un sinnimo simple (no pblico), el usuario tiene que tener
privilegio sobre el objeto al que le crear el sinnimo. Por ejemplo, si es una tabla,
deber tener al menos privilegio de select, insert, delete o update sobre la misma.

SINONIMO 1
CREATE SYNONYM
"DEMO"."SINOCLI"
FOR
"DEMO"."CLIENTES";
10

SINONIMO 2
CREATE SYNONYM
"DEMO"."SINODEPA"
FOR
"DEMO"."DEPARTAMENTOS";

11

SINONIMO 3
CREATE SYNONYM
"DEMO"."SINOBONI"
FOR
"DEMO"."BONIFICACIONES";

*tabla sin datos (vaca)

SINONIMO 4
CREATE SYNONYM
"DEMO"."SINOEMPL"
FOR
"DEMO"."EMPLEADOS";

12

SINONIMO 5
CREATE SYNONYM
"DEMO"."SINOGRADESAL"
FOR
"DEMO"."GRADOSDESALARIO";

SINONIMO 6
CREATE SYNONYM
"DEMO"."SONOPRE"
13

FOR
"DEMO"."PRECIOS";

JUSTIFICACIN, MEJORES PRCTICAS UTILIZADAS.


BUENAS PRCTICAS USADAS PARA VISTAS

Los nombres para vistas deben seguir las mismas reglas que cualquier
identificador. Para distinguir una tabla de una vista podemos fijar una
convencin para darle nombres, por ejemplo, colocar el sufijo vista y luego el
nombre de las tablas consultadas en ellas.

Los campos y expresiones de la consulta que define una vista deben tener un
nombre. Se debe colocar nombre de campo cuando es un campo calculado o
si hay 2 campos con el mismo nombre, al concatenar los campos es necesario
colocar un alias; si no se hace aparecer un mensaje de error porque dicha
expresin debe tener un encabezado, Oracle no lo coloca por defecto.

14

Los nombres de los campos y expresiones de la consulta que define una vista
deben ser nicos (no puede haber dos campos o encabezados con igual
nombre).

Al crear una vista, Oracle hay que verificar que existan las tablas a las que se
hacen referencia en ella; no se puede crear una vista que referencie tablas
inexistentes. No se puede crear una vista si existe un objeto con ese nombre.

Probar la sentencia "select" con la cual definiremos la vista antes de crearla


para asegurarnos que el resultado que retorna es el imaginado.

BUENAS PRCTICAS USADAS PARA SUBCONSULTAS

No utilizar SELECT * por qu el motor debe leer primero la estructura de la


tabla antes de ejecutar la sentencia.

Seleccionar solo aquellos campos que se necesiten, cada campo extra genera
tiempo extra.

Especificar el alias de la tabla delante de cada campo definido en el select,


esto le ahorra tiempo al motor de tener que buscar a que tabla pertenece el
campo especificado.

Al realizar una subconsulta se prueba primero que la consulta principal


funcione correctamente y posteriormente se procede a agregar la subconsulta
para evitar errores difciles de encontrar.

El evitar el uso del HAVING en la instruccin SELECT. Las condiciones del


HAVING son de exclusividad para funciones agregadas como el COUNT,
SUM, AVG, MAX, MIN, etc y no son para condiciones de datos.

Realizar las composiciones de las subconsultas en el SELECT para que sea


ms rpida la concatenacin de las columnas de la otra consulta a la consulta
principal.

Hay que tener en cuenta el orden en el que enunciamos las tablas en el


FROM.

Hay que evitar el SELECT DISTINCT y el ORDER BY.


15

BUENAS PRCTICAS USADAS PARA SINONIMOS

Los nombres para sinnimos deben seguir las mismas reglas que cualquier
identificador. Para distinguir un sinnimo podemos fijar una convencin para
darle nombres, por ejemplo, colocar el sufijo sino y luego el nombre
abreviado del objeto.

El nombre de un sinnimo no debe ser ms largo que el nombre del objeto o


tabla referenciado esto es con el fin de que el sinnimo sea ms fcil de
recordar y facilitar la bsqueda del contenido del objeto o tabla.

No se puede crear un sinnimo con el mismo nombre del objeto referenciado.

Si se crea un sinnimo pblico y posteriormente tiene tablas dependientes o


tipos de objetos definidos por el usuario vlidos dependientes, entonces no se
puede crear otro objeto de base de datos del mismo nombre que el sinnimo
en el mismo esquema que los objetos dependientes porque esto generara un
error en la ejecucin del sinnimo.

El acceso es un poco ms eficiente cuando se accede por sinnimos pblicos.

REFERENCIAS
http://www.oracleya.com.ar/temarios/descripcion.php?
inicio=50&cod=230&punto=72
https://orlandoolguin.wordpress.com/2009/02/22/manejo-de-sinonimos/
http://www.oracleya.com.ar/temarios/descripcion.php?cod=240&punto=1
http://es.slideshare.net/etumax/optimizacion-de-consultas
https://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_7001.ht
m

16

17

Вам также может понравиться