otros objetos de esquemas z051 cap 12

15
Otros objetos de Esquemas Oracle Database 11g Cap 12 Sql Fundamentals I Alexander Calderón Peraza www.BasesdeDatosUes.Blogsp ot. com

Upload: alexander-calderon

Post on 26-May-2015

1.278 views

Category:

Education


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: Otros Objetos de Esquemas Z051 Cap 12

Otros objetos de Esquemas

Oracle Database 11g Cap 12

Sql Fundamentals I

Alexander Calderón Peraza

www.BasesdeDatosUes.Blogspot.

com

Page 2: Otros Objetos de Esquemas Z051 Cap 12

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

Page 3: Otros Objetos de Esquemas Z051 Cap 12

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;

Page 4: Otros Objetos de Esquemas Z051 Cap 12

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;

Page 5: Otros Objetos de Esquemas Z051 Cap 12

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.

Page 6: Otros Objetos de Esquemas Z051 Cap 12

Creando vistas

• CREATE [OR REPLACE] VIEW

• [Schema.]VistaNombre

• AS

• Subconsulta

Page 7: Otros Objetos de Esquemas Z051 Cap 12

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’;

Page 8: Otros Objetos de Esquemas Z051 Cap 12

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;

Page 9: Otros Objetos de Esquemas Z051 Cap 12

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;

Page 10: Otros Objetos de Esquemas Z051 Cap 12

SECUENCIA

• Es una estructura para generar valores enteros únicos.

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

Page 11: Otros Objetos de Esquemas Z051 Cap 12

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

Page 12: Otros Objetos de Esquemas Z051 Cap 12

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

Page 13: Otros Objetos de Esquemas Z051 Cap 12

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;

Page 14: Otros Objetos de Esquemas Z051 Cap 12

Í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.

Page 15: Otros Objetos de Esquemas Z051 Cap 12

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.