otros objetos de esquemas z051 cap 12

Post on 26-May-2015

1.278 Views

Category:

Education

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

describe el uso de secuencias, vistas e indices para oracle database 11g

TRANSCRIPT

Otros objetos de Esquemas

Oracle Database 11g Cap 12

Sql Fundamentals I

Alexander Calderón Peraza

www.BasesdeDatosUes.Blogspot.

com

Vista

• Para un usuario, una vista es lo mismo que una tabla.

• Las instrucciones DML no funcionan sobre una vista.

• VENTAJAS Seguridad Simpleza Prevencion de errores Facilidad de datos Rendimiento

Mejorando la Seguridad

• Observe la tabla HR.employees, contiene informacion delicada, sin embargo el depto de finanzas puede requerir alguna informacion, para ello:

• CREATE VIEW hr.emp_fin AS select hire_date, job_id, salary, commission_pct, department_id from hr.employees;

Simpleza

• Se vuelve mas sencillo consultar una vista ya elaborada, que codificar nuestro SQL

• CREATE VIEW dept_sal as select d.department_name, sum(e.salary) from departments d left outer join employees e on d.department_id=e.department_id group by department_name;

• Select * from dept_sal;

Prevenir Errores

• Dado que las vistas no son actualizables, al brindar acceso a las mismas garantizamos la protección sobre los datos reales.

Facilidad de datos• La información en las tablas esta normalizada,

por lo que dificulta la lectura y entendimiento de la misma.

Creando vistas

• CREATE [OR REPLACE] VIEW

• [Schema.]VistaNombre

• AS

• Subconsulta

Ejercicio

• Create view emp_anon_v as select hire_date, job_id, salary, commission_pct, department_id, from employees;

• Create view dept_anon_v as select department_id, department_name, location_id from departments;

• Create view dept_emp as select department_name, last_name from departments join employees using (department_id);

• Select * from dept_emp where department_name=‘Marketing’;

Sinónimo

• Un sinónimo es un nombre alternativo para un objeto.

• Select * from hr.employees@orcl;

• Create public synonym emp for hr.employees@orcl;

• Entonces cualquier usuario podra ejecutar: select * from emp;

CREATE [PUBLIC] SYNONYM Nombre FOR objeto;

• Los sinonimos privados son objetos de esquemas.

• Los sinonimos publicos existen independientes del esquema.

• Oracle primero busca en los objetos del esquema local, y luego si no encuentra lo busca en los sinonimos publicos.

• DROP [public] synonym Nombre;

SECUENCIA

• Es una estructura para generar valores enteros únicos.

• Son de gran utilidad para crear valores de llaves primarias.

Sintaxis

• CREATE SEQUENCE NombreSecuencia

• [INCREMENT BY numero]

• [START WITH numero]

• [MAXVALUE numero | NONMAXVALUE]

• [MINVALUE numero | NOMINVALUE]

• [CYCLE | NOCYCLE ]

• [CACHE number | NOCACHE]

• [ORDER | NOORDER];

Indica el incremento para la generación del siguiente numero

Valor inicial de la secuencia, por defecto 1

Máximo valor que puede tomar la secuencia en ascenso antes de generar un error o reiniciar conteo

Controla el comportamiento de MAXVALUE y MINVALUE, por defecto mostrara un error, pero si CYCLE es especificado reiniciara la secuencia

Por rendimiento oracle genera un cache de la secuencia de 20 para los siguientes valores

Solo para uso en CLUSTER, order obliga a todas las instancias del cluster a coordinar el incremento en la secuencia

Utilizando secuencias

• Cada sesión selecciona su propio valor con NEXTVAL (columna ficticia de la secuencia)

• Nextval es globalmente unico, para cada sesion se genera uno diferente.

• CURRVAL es constante para una sesion, hasta que se selecciona NEXTVAL nuevamente.

• No se puede invocar CURRVAL hasta despues de haber invocado NEXTVAL

Ejemplo

• Create sequence order_seq start with 10;

• Create sequence line_seq start with 10;

• Insert into orders(order_number, order_date, customer_number) values(order_seq.nextval, sysdate,‘1000’);

• Insert into order_line(order_number, line_number, item_number, quantity) values (order_seq.currval, line_seq.nextval,’A111’, 1);

• Commit;

Índices

• Los indices tienen dos funciones, para implementar llaves primarias y unicas, y para proveer rendimiento.

• Llaves foraneas se implementan por medio de indices, pero los indices existen en la tabla padre.

• Los indices se crean automaticamente.

• Si no se posee un indice, se realizara un FULL TABLE SCAN.

Tipos de Indices

• B*Tree. Es el tipo usado por defecto B es por Balance El nodo principal de 3 puntos a muchos nodos

en el segundo nivel El puntero a una fila es el ROWID

• Bitmap Son poco utilizados, pues soportan baja

cardinalidad.

top related