La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Copyright  Oracle Corporation, 1998. All rights reserved. 12 Otros Objetos de la Base de Datos.

Presentaciones similares


Presentación del tema: "Copyright  Oracle Corporation, 1998. All rights reserved. 12 Otros Objetos de la Base de Datos."— Transcripción de la presentación:

1 Copyright  Oracle Corporation, 1998. All rights reserved. 12 Otros Objetos de la Base de Datos

2 12-2 Copyright  Oracle Corporation, 1998. All rights reserved. Objetivos Al completar esta lección, debería ser capaz de hacer lo siguiente: Describir otros objetos de la B.D. y sus posibilidades. Crear, mantener y usar secuencias Crear y mantener índices Crear sinónimos públicos y privados Al completar esta lección, debería ser capaz de hacer lo siguiente: Describir otros objetos de la B.D. y sus posibilidades. Crear, mantener y usar secuencias Crear y mantener índices Crear sinónimos públicos y privados

3 12-3 Copyright  Oracle Corporation, 1998. All rights reserved. Objetos de la base de datos ObjectoDescripción TablaUnidad básica de almacenamiento; compuesta de registros y columnas. VistaLógicamente representa un subconjunto de una o más tablas. SecuenciaGenera valores para claves primarias. IndiceMejoran el rendimiento de algunas consultas SinónimoDa nombres alternativos a los objetos.

4 12-4 Copyright  Oracle Corporation, 1998. All rights reserved. ¿Qué es una secuencia? Genera números únicos de forma automática. Genera números únicos de forma automática. Es un objeto que se puede compartir. Es un objeto que se puede compartir. Se usa típicamente para crear valores de una clave primaria. Se usa típicamente para crear valores de una clave primaria. Sustituye código de aplicación. Sustituye código de aplicación. Mejora la eficiencia en cuanto a la rapidez de acceso cuando los valores están en el caché de memoria. Mejora la eficiencia en cuanto a la rapidez de acceso cuando los valores están en el caché de memoria. Genera números únicos de forma automática. Genera números únicos de forma automática. Es un objeto que se puede compartir. Es un objeto que se puede compartir. Se usa típicamente para crear valores de una clave primaria. Se usa típicamente para crear valores de una clave primaria. Sustituye código de aplicación. Sustituye código de aplicación. Mejora la eficiencia en cuanto a la rapidez de acceso cuando los valores están en el caché de memoria. Mejora la eficiencia en cuanto a la rapidez de acceso cuando los valores están en el caché de memoria.

5 12-5 Copyright  Oracle Corporation, 1998. All rights reserved. La sentencia CREATE SEQUENCE Defina una secuencia para generar números secuenciales automáticamente. CREATE SEQUENCE sequence [INCREMENT BY n] [START WITH n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}]; CREATE SEQUENCE sequence [INCREMENT BY n] [START WITH n] [{MAXVALUE n | NOMAXVALUE}] [{MINVALUE n | NOMINVALUE}] [{CYCLE | NOCYCLE}] [{CACHE n | NOCACHE}];

6 12-6 Copyright  Oracle Corporation, 1998. All rights reserved. Creación de una secuencia Crear una secuencia DEPT_DEPTNO para ser utilizada por la PK de la tabla DEPT. No utilizar la opción CYCLE. Crear una secuencia DEPT_DEPTNO para ser utilizada por la PK de la tabla DEPT. No utilizar la opción CYCLE. SQL> CREATE SEQUENCE dept_deptno 2INCREMENT BY 1 3START WITH 91 4MAXVALUE 100 5NOCACHE 6NOCYCLE; Sequence created. SQL> CREATE SEQUENCE dept_deptno 2INCREMENT BY 1 3START WITH 91 4MAXVALUE 100 5NOCACHE 6NOCYCLE; Sequence created.

7 12-7 Copyright  Oracle Corporation, 1998. All rights reserved. Verificación de secuencias Verificar los valores de una secuencia en la tabla USER_SEQUENCES del diccionario de datos.Verificar los valores de una secuencia en la tabla USER_SEQUENCES del diccionario de datos. La columna LAST_NUMBER muestra el próximo número disponible de la secuencia.La columna LAST_NUMBER muestra el próximo número disponible de la secuencia. Verificar los valores de una secuencia en la tabla USER_SEQUENCES del diccionario de datos.Verificar los valores de una secuencia en la tabla USER_SEQUENCES del diccionario de datos. La columna LAST_NUMBER muestra el próximo número disponible de la secuencia.La columna LAST_NUMBER muestra el próximo número disponible de la secuencia. SQL> SELECTsequence_name, min_value, max_value, 2 increment_by, last_number 3 FROMuser_sequences; SQL> SELECTsequence_name, min_value, max_value, 2 increment_by, last_number 3 FROMuser_sequences;

8 12-8 Copyright  Oracle Corporation, 1998. All rights reserved. Las pseudocolumnas NEXTVAL y CURRVAL NEXTVAL retorna el próximo valor disponible de la secuencia. NEXTVAL retorna el próximo valor disponible de la secuencia. – Devuelve un valor único cada vez que es referenciada, aún por diferentes usuarios. CURRVAL obtiene el actual valor de la secuencia. CURRVAL obtiene el actual valor de la secuencia. – NEXTVAL debe ser emitido para la secuencia, antes que CURRVAL pueda referenciarse. Seguir las reglas para su uso. Seguir las reglas para su uso. NEXTVAL retorna el próximo valor disponible de la secuencia. NEXTVAL retorna el próximo valor disponible de la secuencia. – Devuelve un valor único cada vez que es referenciada, aún por diferentes usuarios. CURRVAL obtiene el actual valor de la secuencia. CURRVAL obtiene el actual valor de la secuencia. – NEXTVAL debe ser emitido para la secuencia, antes que CURRVAL pueda referenciarse. Seguir las reglas para su uso. Seguir las reglas para su uso.

9 12-9 Copyright  Oracle Corporation, 1998. All rights reserved. Uso de una secuencia Inserte un nuevo departamento llamado “MARKETING” en San Diego. Visualice el valor actual para la secuencia DEPT_DEPTNO. Inserte un nuevo departamento llamado “MARKETING” en San Diego. Visualice el valor actual para la secuencia DEPT_DEPTNO. SQL> INSERT INTOdept(deptno, dname, loc) 2 VALUES(dept_deptno.NEXTVAL, 3 'MARKETING', 'SAN DIEGO'); 1 row created. SQL> INSERT INTOdept(deptno, dname, loc) 2 VALUES(dept_deptno.NEXTVAL, 3 'MARKETING', 'SAN DIEGO'); 1 row created. SQL> SELECTdept_deptno.CURRVAL 2 FROMSYS.dual; SQL> SELECTdept_deptno.CURRVAL 2 FROMSYS.dual;

10 12-10 Copyright  Oracle Corporation, 1998. All rights reserved. Uso de una secuencia Mantener los valores de secuencia en memoria permite un acceso más rápido a los mismos. Mantener los valores de secuencia en memoria permite un acceso más rápido a los mismos. Se puede producir una brecha o gap en los valores de una secuencia cuando: Se puede producir una brecha o gap en los valores de una secuencia cuando: – Se produce un rollback. – Se cae el sistema. – Una secuencia es usada en otra tabla. Obtener el próximo número disponible en una secuencia, si fue creada con NOCACHE, consultando la tabla USER_SEQUENCES. Obtener el próximo número disponible en una secuencia, si fue creada con NOCACHE, consultando la tabla USER_SEQUENCES. Mantener los valores de secuencia en memoria permite un acceso más rápido a los mismos. Mantener los valores de secuencia en memoria permite un acceso más rápido a los mismos. Se puede producir una brecha o gap en los valores de una secuencia cuando: Se puede producir una brecha o gap en los valores de una secuencia cuando: – Se produce un rollback. – Se cae el sistema. – Una secuencia es usada en otra tabla. Obtener el próximo número disponible en una secuencia, si fue creada con NOCACHE, consultando la tabla USER_SEQUENCES. Obtener el próximo número disponible en una secuencia, si fue creada con NOCACHE, consultando la tabla USER_SEQUENCES.

11 12-11 Copyright  Oracle Corporation, 1998. All rights reserved. Modificación de una secuencia Cambiar los valores de incremento, valor máximo, valor mínimo y las opciones de caché y ciclo. SQL> ALTER SEQUENCE dept_deptno 2 INCREMENT BY 1 3 MAXVALUE 999999 4 NOCACHE 5 NOCYCLE; Sequence altered. SQL> ALTER SEQUENCE dept_deptno 2 INCREMENT BY 1 3 MAXVALUE 999999 4 NOCACHE 5 NOCYCLE; Sequence altered.

12 12-12 Copyright  Oracle Corporation, 1998. All rights reserved. Guía para modificar una secuencia Se debe ser el propietario de la secuencia, o tener el privilegio ALTER para la misma. Se debe ser el propietario de la secuencia, o tener el privilegio ALTER para la misma. Son afectados solamente los valores futuros de la secuencia. Son afectados solamente los valores futuros de la secuencia. Algunas validaciones son realizadas. Algunas validaciones son realizadas. Si se quiere recomenzar la secuencia con un número diferente, la misma debe ser eliminada y creada nuevamente. Si se quiere recomenzar la secuencia con un número diferente, la misma debe ser eliminada y creada nuevamente. Se debe ser el propietario de la secuencia, o tener el privilegio ALTER para la misma. Se debe ser el propietario de la secuencia, o tener el privilegio ALTER para la misma. Son afectados solamente los valores futuros de la secuencia. Son afectados solamente los valores futuros de la secuencia. Algunas validaciones son realizadas. Algunas validaciones son realizadas. Si se quiere recomenzar la secuencia con un número diferente, la misma debe ser eliminada y creada nuevamente. Si se quiere recomenzar la secuencia con un número diferente, la misma debe ser eliminada y creada nuevamente.

13 12-13 Copyright  Oracle Corporation, 1998. All rights reserved. Eliminación de una secuencia Eliminar una secuencia del diccionario de datos usando el comando DROP SEQUENCE. Eliminar una secuencia del diccionario de datos usando el comando DROP SEQUENCE. Una vez eliminada, la secuencia ya no puede ser referenciada. Una vez eliminada, la secuencia ya no puede ser referenciada. Eliminar una secuencia del diccionario de datos usando el comando DROP SEQUENCE. Eliminar una secuencia del diccionario de datos usando el comando DROP SEQUENCE. Una vez eliminada, la secuencia ya no puede ser referenciada. Una vez eliminada, la secuencia ya no puede ser referenciada. SQL> DROP SEQUENCE dept_deptno; Sequence dropped. SQL> DROP SEQUENCE dept_deptno; Sequence dropped.

14 12-14 Copyright  Oracle Corporation, 1998. All rights reserved. ¿Qué es un índice? Un objeto de la base de datos. Un objeto de la base de datos. Usado por el Servidor Oracle para acelerar la recuperación de filas mediante el uso de punteros. Usado por el Servidor Oracle para acelerar la recuperación de filas mediante el uso de punteros. Reduce la E/S de disco usando un camino de acceso rápido como método para la ubicación de los datos. Reduce la E/S de disco usando un camino de acceso rápido como método para la ubicación de los datos. Independiente de la tabla que indexa. Independiente de la tabla que indexa. Son usados y mantenidos automáticamente por el motor SGBD. Son usados y mantenidos automáticamente por el motor SGBD. Un objeto de la base de datos. Un objeto de la base de datos. Usado por el Servidor Oracle para acelerar la recuperación de filas mediante el uso de punteros. Usado por el Servidor Oracle para acelerar la recuperación de filas mediante el uso de punteros. Reduce la E/S de disco usando un camino de acceso rápido como método para la ubicación de los datos. Reduce la E/S de disco usando un camino de acceso rápido como método para la ubicación de los datos. Independiente de la tabla que indexa. Independiente de la tabla que indexa. Son usados y mantenidos automáticamente por el motor SGBD. Son usados y mantenidos automáticamente por el motor SGBD.

15 12-15 Copyright  Oracle Corporation, 1998. All rights reserved. ¿Cómo se crean los índices? Automáticamente.Automáticamente. Un índice único es creado automáticamente cuando se define una restricción PRIMARY KEY o UNIQUE en la definición de una tabla. Manualmente.Manualmente. Los usuarios pueden crear índices no únicos sobre columnas para acelerar el tiempo de acceso a las filas. Automáticamente.Automáticamente. Un índice único es creado automáticamente cuando se define una restricción PRIMARY KEY o UNIQUE en la definición de una tabla. Manualmente.Manualmente. Los usuarios pueden crear índices no únicos sobre columnas para acelerar el tiempo de acceso a las filas.

16 12-16 Copyright  Oracle Corporation, 1998. All rights reserved. Creación de un índice Mejoran la velocidad de acceso a una consulta; por ej. para la columna ENAME (apellido) de la tabla EMP SQL> CREATE INDEX emp_ename_idx 2 ON emp(ename); Index created. SQL> CREATE INDEX emp_ename_idx 2 ON emp(ename); Index created. CREATE INDEX index ON table (column[, column]...); CREATE INDEX index ON table (column[, column]...); Crear índices sobre una o más columnas

17 12-17 Copyright  Oracle Corporation, 1998. All rights reserved. Guía para la creación de un índice La columna es usada frecuentemente en una cláusula WHERE o en una condición de join. La columna es usada frecuentemente en una cláusula WHERE o en una condición de join. La columna tiene un rango muy amplio de valores. La columna tiene un rango muy amplio de valores. La columna contiene un gran número de valores nulos. La columna contiene un gran número de valores nulos. Dos o más columnas son usadas juntas con frecuencia en una cláusula WHERE o en una condición de join. Dos o más columnas son usadas juntas con frecuencia en una cláusula WHERE o en una condición de join. La tabla es grande y se espera que la mayoría de las consultas recuperen menos del 2 al 4 % de las filas. La tabla es grande y se espera que la mayoría de las consultas recuperen menos del 2 al 4 % de las filas. Definir más índices no siempre mejora la rapidez de las consultas. Definir más índices no siempre mejora la rapidez de las consultas. La columna es usada frecuentemente en una cláusula WHERE o en una condición de join. La columna es usada frecuentemente en una cláusula WHERE o en una condición de join. La columna tiene un rango muy amplio de valores. La columna tiene un rango muy amplio de valores. La columna contiene un gran número de valores nulos. La columna contiene un gran número de valores nulos. Dos o más columnas son usadas juntas con frecuencia en una cláusula WHERE o en una condición de join. Dos o más columnas son usadas juntas con frecuencia en una cláusula WHERE o en una condición de join. La tabla es grande y se espera que la mayoría de las consultas recuperen menos del 2 al 4 % de las filas. La tabla es grande y se espera que la mayoría de las consultas recuperen menos del 2 al 4 % de las filas. Definir más índices no siempre mejora la rapidez de las consultas. Definir más índices no siempre mejora la rapidez de las consultas.

18 12-18 Copyright  Oracle Corporation, 1998. All rights reserved. Guía para la creación de un índice No crear un índice si: La tabla es pequeña.La tabla es pequeña. Las columnas no son usadas con frecuencia en condiciones de las consultas.Las columnas no son usadas con frecuencia en condiciones de las consultas. Se espera que la mayoría de las consultas recuperen más que el 2 al 4% de las filas.Se espera que la mayoría de las consultas recuperen más que el 2 al 4% de las filas. La tabla es actualizada frecuentemente.La tabla es actualizada frecuentemente. No crear un índice si: La tabla es pequeña.La tabla es pequeña. Las columnas no son usadas con frecuencia en condiciones de las consultas.Las columnas no son usadas con frecuencia en condiciones de las consultas. Se espera que la mayoría de las consultas recuperen más que el 2 al 4% de las filas.Se espera que la mayoría de las consultas recuperen más que el 2 al 4% de las filas. La tabla es actualizada frecuentemente.La tabla es actualizada frecuentemente.

19 12-19 Copyright  Oracle Corporation, 1998. All rights reserved. Verificación de índices La vista USER_INDEXES del diccionario de datos contiene el nombre de un índice y su condición de unicidad. La vista USER_INDEXES del diccionario de datos contiene el nombre de un índice y su condición de unicidad. La vista USER_IND_COLUMNS contiene el nombre del índice, nombre de la tabla, y nombre de la columna. La vista USER_IND_COLUMNS contiene el nombre del índice, nombre de la tabla, y nombre de la columna. La vista USER_INDEXES del diccionario de datos contiene el nombre de un índice y su condición de unicidad. La vista USER_INDEXES del diccionario de datos contiene el nombre de un índice y su condición de unicidad. La vista USER_IND_COLUMNS contiene el nombre del índice, nombre de la tabla, y nombre de la columna. La vista USER_IND_COLUMNS contiene el nombre del índice, nombre de la tabla, y nombre de la columna. SQL> SELECTic.index_name, ic.column_name, 2ic.column_position col_pos,ix.uniqueness 3 FROMuser_indexes ix, user_ind_columns ic 4 WHEREic.index_name = ix.index_name 5 ANDic.table_name = 'EMP';

20 12-20 Copyright  Oracle Corporation, 1998. All rights reserved. Eliminación de un índice Elimina un índice del diccionario de datos. Elimina el índice EMP_ENAME_IDX del diccionario de datos. Para borrar un índice, tiene que ser propietario del mismo o tener el privilegio DROP ANY INDEX. Elimina un índice del diccionario de datos. Elimina el índice EMP_ENAME_IDX del diccionario de datos. Para borrar un índice, tiene que ser propietario del mismo o tener el privilegio DROP ANY INDEX. SQL> DROP INDEX emp_ename_idx; Index dropped. SQL> DROP INDEX emp_ename_idx; Index dropped. SQL> DROP INDEX index;

21 12-21 Copyright  Oracle Corporation, 1998. All rights reserved. Sinónimos Simplificar el acceso a los objetos creando un sinónimo (otro nombre para un objeto). Simplificar el acceso a los objetos creando un sinónimo (otro nombre para un objeto). Hacer referencia a una tabla propia o de otro usuario. Hacer referencia a una tabla propia o de otro usuario. Permite acortar la longitud de los nombres de los objetos. Permite acortar la longitud de los nombres de los objetos. Simplificar el acceso a los objetos creando un sinónimo (otro nombre para un objeto). Simplificar el acceso a los objetos creando un sinónimo (otro nombre para un objeto). Hacer referencia a una tabla propia o de otro usuario. Hacer referencia a una tabla propia o de otro usuario. Permite acortar la longitud de los nombres de los objetos. Permite acortar la longitud de los nombres de los objetos. CREATE [PUBLIC] SYNONYM synonym FOR object; CREATE [PUBLIC] SYNONYM synonym FOR object;

22 12-22 Copyright  Oracle Corporation, 1998. All rights reserved. Creación y eliminación de sinónimos SQL> CREATE SYNONYMd_sum 2 FORdept_sum_vu; Synonym Created. SQL> CREATE SYNONYMd_sum 2 FORdept_sum_vu; Synonym Created. SQL> DROP SYNONYM d_sum; Synonym dropped. SQL> DROP SYNONYM d_sum; Synonym dropped. Crear un nombre más corto para la vista DEPT_SUM_VU Borrar un sinónimo

23 12-23 Copyright  Oracle Corporation, 1998. All rights reserved. Creación y eliminación de sinónimos SQL> CREATE PUBLIC SYNONYMdept 2 FORhr.departments; Synonym Created. SQL> CREATE PUBLIC SYNONYMdept 2 FORhr.departments; Synonym Created. SQL> DROP PUBLIC SYNONYM dept; Synonym dropped. SQL> DROP PUBLIC SYNONYM dept; Synonym dropped. Crear sinónimo público. Borrar un sinónimo público.

24 12-24 Copyright  Oracle Corporation, 1998. All rights reserved. Resumen Use secuencias para generar números secuenciales de forma automática. La información sobre secuencias se almacena en la tabla USER_SEQUENCES. Cree índices para mejorar la velocidad en la recuperación de datos, en consultas. La información sobre índices se almacena en la tabla USER_INDEXES. Use sinónimos para ofrecer nombres alternativos para objetos. Use secuencias para generar números secuenciales de forma automática. La información sobre secuencias se almacena en la tabla USER_SEQUENCES. Cree índices para mejorar la velocidad en la recuperación de datos, en consultas. La información sobre índices se almacena en la tabla USER_INDEXES. Use sinónimos para ofrecer nombres alternativos para objetos.

25 12-25 Copyright  Oracle Corporation, 1998. All rights reserved. Visión general de la práctica Creación de Secuencias Uso de Secuencias Creación de índices no únicos Visualización de información del diccionario de datos, sobre secuencias e índices Borrado de índices Creación de Secuencias Uso de Secuencias Creación de índices no únicos Visualización de información del diccionario de datos, sobre secuencias e índices Borrado de índices


Descargar ppt "Copyright  Oracle Corporation, 1998. All rights reserved. 12 Otros Objetos de la Base de Datos."

Presentaciones similares


Anuncios Google