13991883 Creacion y Uso de Constraints

download 13991883 Creacion y Uso de Constraints

of 20

Transcript of 13991883 Creacion y Uso de Constraints

CREACIN Y USO DE CONSTRAINTS SECUENCIAS, VISTAS E NDICES

CURSO: TALLER DE BASE DE DATOS

ALUMNOS:ANGULO VIGO, RONALD JAVIER. SANCHEZ HUAMAN ROGER MIGUEL. ERWIN FLORES VARGAS.

CICLO: 2008 II

DOCENTE: Ing. Hugo Prez Quiroz.

Cajamarca, Noviembre del 2008.

INDICE

i. Introduccin 1. Creacin y uso de constraints 1 .1 Tipos de Constraints 1 .2 Reglas en el uso de constraints 1 .3 Definiendo constraints 1.3.1 CONSTRAINT NOT NULL 1.3.2 CONSTRAINT UNIQUE 1.3.3 CONSTRAINT PRIMARY KEY 1.3.4 CONSTRAINT FOREIGN KEY 1.3.5 CONSTRAINT CHECK

Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg. Pg.

01. 01. 02. 02. 03. 03. 04. 05. 08. 10. 10. 10. 11. 11. 12. 12. 12. 13. 13. 14. 14. 15. 15. 16. 16. 17. 17. 18. 18. 18.

1 .4 Manipulacin de Constraints1.4.1 AADIENDO UN CONSTRAINT 1.4.2 ELIMINANDO UN CONSTRAINT 1.4.3 DESHABILITANDO UN CONSTRAINT

1.4.4 HABILITANDO UN CONSTRAINT 2. CREACION 2.1 2.2 2.3 2.4 2.5 3 Y USO DE SECUENCIAS. Creacin de Secuencias Ver Lista de Secuencias Uso de la Secuencia Modificar Secuencias Borrar Secuencias

CREACION Y USO DE VISTAS. 3 .1 Creacin De Vistas 3.2 Ejecucin de comandos DML sobre Vistas 3.3 Mostrar la lista de Vistas 3.4 Borrar Vistas CREACION Y USO DE INDICES 4.1 Creacin de ndices 4.2 Lista de ndices 4.3 Borrar ndices

4

5 Bibliografa

Pg. 18.

INTRODUCCIONOrdenCompra NroOrden FechaEmision FechaRecibo RucDniProvee (FK) Categoria DetalleOrdenCompra NroOrden (FK) CodProducto (FK) CantidadPedida Descripcion CantidadRecibida CategoriaID NombreCategora Ubicacin DetalleOrdenSalida Codproducto (FK) NroOrdenSalida (FK) Descripcion Cantidad OrdenSalida NroOrdenSalida FechaVenta FechaSalida EstadoEntrega RucDniCte (FK)

Cliente RucDniCte Proveedor RucDniProvee RazonSocial Fax Direccion Telefono1 Email CuentaProveedor Telefono2 DetalleCompra NroCompra (FK) CodProducto (FK) Cantidad PrecioCompra Descuento Descripcion Venta NroVenta FechaVenta IdUsuario (FK) Saldo FechaPago Direccion Email Telefono1 RazonsocNombre Telefono2

Ususario IdUsuario Producto Codproducto Descripcion Stockminimo Stockactual Marca PrecioCompra PrecioVenta FechaVencimiento Presentacion CategoriaID (FK) Nombre ApPaterno ApMaterno Password Telefono Email Direccion

Compra NroCompra FechaCompra TipoDocumento RucDniProvee (FK) NroDocumento FechaPago Estado Igv

Boleta NroBoleta FechaEmision Igv MontoTotal NroVenta (FK) Estado FechaPago RucDniCte (FK)

DetalleBoleta NroBoleta (FK) CodProducto (FK) Cantidad Precio SubMonto Descripcion Descuento

1 - CREACION Y USO DE CONSTRAINTS El servidor de Oracle utiliza constraints para prevenir el registro de datos no vlidos a las tablas. Se pueden utilizar los constraints para lo siguiente: Implementar o imponer reglas en los datos de una tabla cuando una fila es insertada, modificada o borrada de la tabla. El constraint se debe cumplir para que la operacin se realice. Previene la eliminacin de una tabla si existen dependencias con otras. Proporciona reglas para herramientas de Oracle, como Oracle Developer. Las reglas de negocio se implementan en ORACLE mediante restricciones (constraints), disparadores (triggers) o cdigo de aplicacin.

1 .1 Tipos de Constraints

1 .2 Reglas en el uso de constraints Todos los constraints son almacenados en el diccionario de datos. Los Constraints son fciles de referenciar si les proporcionas un nombre adecuado. Los constraints deben seguir el estndar para nombrar objetos. Si t no especificas un nombre para tu constraint, el servidor de Oracle genera un nombre con el siguiente formato SYS_Cn, donde n es un entero que identifica el nombre del constraint como nico. Los constraints pueden ser definidos al mismo tiempo que se crea una tabla o despus de que la tabla ha sido creada. Se pueden ver los constraints definidos para una tabla especfica en la tabla USER_CONSTRAINTS del diccionario de datos.

1 .3 Definiendo constraints En la imagen anterior se muestra la sintaxis para definir constraints en la creacin de una tabla.

Los constraints son usualmente creados al mismo tiempo que la tabla, pero pueden ser aadidos despus de la creacin de la misma y tambin pueden ser deshabilitados temporalmente. Los constraints pueden estar definidos en uno de dos niveles que son:

1.3.1 CONSTRAINT NOT NULL El constraint NOT NULL se asegura de que las columnas no contengan valores nulos. Las columnas sin un constraint NOT NULL pueden contener valores nulos por defecto. El constraint NOT NULL puede ser especificado solamente a nivel de columnas y no a nivel de tabla. En el ejemplo anterior se aplica un constraint NOT NULL a las columnas LAST_NAME y HIRE_DATE de la tabla EMPLOYEES. Debido a que esos constraints no tienen nombre, el servidor de Oracle crea nombres para ellos.

En este ejemplo utilizamos en constraint NOT NULL, en el instante que creamos nuestra tabla Sindicato. CREATE TABLE SINDICATO( IdSindicato Char(4)NOT NULL, NomSIndicato Varchar2(40)NOT NULL, TipoGestion Varchar(35)); Otro tipo de implementacin del constraint NOT NULL, es modificando la tabla que ha sido creada anteriormente. describe categoria; Name Null Type ---------------------------------------------------------------------------------------CATEGORIAID NOT NULL CHAR(18) UBICACIN CHAR(18) NOMBRECATEGORA CHAR(18) Modificamos la restriccin de la tabla. ALTER TABLE CATEGORIA MODIFY(UBICACIN NOT NULL); CATEGORIAID NOT NULL CHAR(18) UBICACIN NOT NULL CHAR(18) NOMBRECATEGORA CHAR(18) Insertamos valores a nuestra tabla. INSERT INTO CATEGORIA VALUES ('AL12', ,'ALIMENTOS'); ERROR: Error starting at line 1 in command: INSERT INTO CATEGORIA VALUES ('AL12',,'ALIMENTOS') Error at Command Line:2 Column:15 Error report: SQL Error: ORA-00936: falta una expresin 00936. 00000 - "missing expression" *Cause: *Action:

1.3.2 CONSTRAINT UNIQUE Un constraint UNIQUE requiere que todos los valores en una columna o conjunto de columnas sean nicos esto es, dos filas de una tabla no pueden tener valores duplicados en la columna o conjunto de columnas especificadas. La columna o conjunto de columnas incluida en la definicin del constraint UNIQUE es llamada llave nica (unique key).

Si el constraint UNIQUE comprende ms de una columna, el grupo de columnas es llamado llave nica compuesta (composite unique key). Los constraints UNIQUE permiten el uso de valores nulos siempre y cuando no se hayan definido constraints NOT NULL para las mismas columnas. De hecho, cualquier nmero de filas puede incluir nulos para las columnas sin constraints NOT NULL puesto que los valores nulos no son iguales a nada. Un valor nulo en una columna (o en todas las columnas de una llave nica compuesta) siempre satisface un constraint UNIQUE. Un constraint UNIQUE puede ser definido a nivel de columna o tabla. Una llave nica compuesta es creada usando el nivel de definicin de tabla.

DESCRIBE CLIENTE; Name Null Type -------------------------------------------------------------------------------RUCDNICTE NOT NULL CHAR(18) DIRECCION CHAR(18) EMAIL CHAR(18) TELEFONO1 CHAR(18) RAZONSOCNOMBRE CHAR(18) TELEFONO2 CHAR(18)

En este caso realizamos dos restricciones UNIQUE a los campos de Email y RazonSocial. ALTER TABLE CLIENTE MODIFY (CONSTRAINT UNMAIL UNIQUE(EMAIL))

Insertamos algunas filas a nuestra tabla. INSERT INTO CLIENTE VALUES('43918908','LOSALIZOS 212','[email protected]','8762412','Armando Zamora','976457238'); 1 rows inserted INSERT INTO CLIENTE VALUES('439874232','EL SOL #212','[email protected]','9878712','Armando Sanchez','976897638'); ERROR: Error starting at line 1 in command: INSERT INTO CLIENTE VALUES('439874232','EL SOL #212','[email protected]','9878712','Armando Sanchez','976897638') Error report: SQL Error: ORA-00001: restriccin nica (SYSTEM.XPKCLIENTE) violada 00001. 00000 - "unique constraint (%s.%s) violated" *Cause: An UPDATE or INSERT statement attempted to insert a duplicate key. For Trusted Oracle configured in DBMS MAC mode, you may see this message if a duplicate entry exists at a different level. *Action: Either remove the unique restriction or do not insert the key.

1.3.3 CONSTRAINT PRIMARY KEY Un constraint PRIMARY KEY crea una llave primaria para la tabla. Solo una llave primaria puede ser creada por cada tabla. El constraint PRIMARY KEY es una columna o conjunto de columnas que identifica de forma nica cada fila de una tabla. Estos constraints obligan valores nicos para la columna o combinacin de columnas y aseguran que estas columnas no puedan contener valores nulos. Los constraints PRIMARY KEY pueden ser definidos a nivel de columna o a nivel de tabla. Una llave primaria compuesta es creada usando la definicin a nivel de tabla. Una tabla puede tener solo un constraint PRIMARY KEY pero puede tener diversos constraints UNIQUE.CREATE TABLE FACTURA( NroFactura NUMBER(5), fechaEmision DATE,

MontoTotal INTEGER, Igv DECIMAL, CONSTRAINT IDFAC PRIMARY KEY(NroFactura) ); DESCRIBE FACTURA; Name Null Type ----------------------------------------------------------------------------------------------NROFACTURA NOT NULL NUMBER(5) FECHAEMISION DATE MONTOTOTAL NUMBER(38) IGV NUMBER

En el ejemplo anterior se define un constraint PRIMARY KEY en la columna NroFactura de la tabla FACTURA, el nombre del constraint es IDFACT. Insertamos valores a nuestra tabla. INSERT INTO FACTURA VALUES (012,'12/11/2008',1600,13); INSERT INTO FACTURA VALUES (012,'12/11/2008',1600,12) ERROR: SQL Error: ORA-00001: restriccin nica (SYSTEM.IDFAC) violada 00001. 00000 - "unique constraint (%s.%s) violated" *Cause: An UPDATE or INSERT statement attempted to insert a duplicate key. For Trusted Oracle configured in DBMS MAC mode, you may see this message if a duplicate entry exists at a different level. *Action: Either remove the unique restriction or do not insert the key.

1.3.4 CONSTRAINT FOREIGN KEY Un Foreign Key o llave fornea, es un constraint de integridad referencial que designa a una columna o combinacin de columnas como una llave fornea estableciendo una relacin entre una llave primaria o llave nica en la misma tabla o en una tabla diferente. En el ejemplo anterior, DEPARTAMENT_ID est definida como llave fornea en la tabla EMPLOYEES (tabla dependiente o hija); esta referencia de la columna DEPARTMENT_ID de la tabla DEPARTMENTS es la tabla referenciada o tabla padre. Un valor de llave fornea debe corresponder con un valor existente en la tabla padre o ser nulo. Las llaves forneas estn basadas en los valores de los datos y su lgica pura, no fsica o apuntadores.

En el ejemplo anterior se define un constraint FOREIGN KEY en la columna DEPARTMENT_ID de la tabla EMPLOYEES, utilizando la sintaxis a nivel de tabla. El nombre del constraint es EMP_DEPTID_FK, La llave fornea tambin puede ser definida a nivel de columna, puesto que el constraint est basado en una columna. La sintaxis difiere puesto que la palabra reservada FOREIGN KEY no aparece, por ejemplo:

La llave fornea est definida en la tabla hija, y la tabla conteniendo la columna referenciada es la tabla padre. La llave fornea es definida al utilizar una combinacin de las siguientes palabras reservadas: FOREIGN KEY es usada para definir la columna en la tabla hija como un constraint a nivel tabla. REFERENCES identifica la tabla y columna en la tabla padre.

ON DELETE CASCADE indica que cuando la fila en la tabla padre es eliminada, las filas dependientes en la tabla hija pueden ser eliminadas. ON DELETE SET NULL convierte los valores de las llaves forneas a nulos cuando el valor del padre es removido. El comportamiento por defecto es llamado regla de restriccin, cuando prohibimos la actualizacin o eliminacin de un dato referenciado. Sin las opciones DELETE CASCADE o ON DELETE SET NULL, las filas en la tabla padre no pueden ser eliminadas si estas son referenciadas en la tabla hija.

1.3.5 CONSTRAINT CHECK El constraint CHECK define una condicin que para cada fila debe satisfacerse. La condicin puede utilizarse de manera similar a las condiciones de una consulta, con las siguientes excepciones: Las referencias a columnas CURRVAL, NEXTVAL, LEVEL y ROWNUM Llamadas a funciones SYSDATE, UID, USER y USERENV Consultas que hagan referencia a valores en otras filas de la misma tabla Una columna puede tener mltiples constraints CHECK las cuales pueden referenciarse en la definicin de la columna. No se tienen lmites en el nmero de constraints CHECK cuando se define una columna.

1 .4 Manipulacin de Constraints

1.4.1 AADIENDO UN CONSTRAINT

Se pueden aadir constraints a tablas existentes con el uso de la sentencia ALTER TABLE y la clusula ADD. Sintaxis: table es el nombre de la tabla constraint es el nombre del constraint type es el tipo de constraint column es el nombre de la columna afectada por el constraint En la sintaxis el nombre del constraint es opcional, aunque es recomendado. Si no se le especifica un nombre al constraint, el sistema genera uno. Normas a seguir Se puede aadir, eliminar, habilitar o deshabilitar un constraint, pero no se puede modificar su estructura. Se puede aadir un constraint NOT NULL a una columna existente con el uso de la clusula MODIFY de la sentencia ALTER TABLE.

En el ejemplo anterior se crea un constraint FOREIGN KEY en la tabla EMPLOYEES. El constraint asegura que un jefe exista como un empleado vlido en la tabla EMPLOYEES.

1.4.2 ELIMINANDO UN CONSTRAINT

Para eliminar un constraint, se puede identificar el nombre del constraint desde las vistas del diccionario de datos SER_CONSTRAINTS y USER_CONS_COLUMNS. Entonces se usa la sentencia ALTER TABLE con la clusula DROP. La opcin CASCADE de la clusula DROP ocasiona que todos los constraints dependientes sean borrados. Sintaxis:

Ejemplo:

1.4.3 DESHABILITANDO UN CONSTRAINT

Se puede deshabilitar un constraint sin eliminarlo o recrearlo con el uso de la sentencia ALTER TABLE y la clusula DISABLE. Sintaxis

Normas a seguir: Se puede usar la clusula DISABLE en las sentencias CREATE TABLE y ALTER TABLE. La clusula CASCADE deshabilita las dependencias de los constraints de integridad. Deshabilitar un constraint nico o llave primaria, elimina el ndice nico.Ejemplo:

1.4.4 HABILITANDO UN CONSTRAINT Se puede habilitar un constraint sin eliminarlo o recrearlo utilizando la sentencia ALTER TABLE con la clusula ENABLE. Sintaxis:

Donde: table es el nombre de la tabla. constraint es el nombre del constraint. Normas a seguir: Si se habilita un constraint, este aplica a todos los datos de la tabla. Todos los datos de la tabla deben satisfacer el constraint.

Si se habilita un constraint PRIMARY KEY o UNIQUE key, se crea un ndice nico o de llave primaria automticamente. Se puede usar la clusula ENABLE en las sentencias CREATE TABLE y ALTER TABLE. Habilitar un constraint de llave primaria que ha sido deshabilitado con la opcin CASCADE no habilita ninguna llave fornea dependiente de la llave primaria. Ejemplo:

2 CREACION Y USO DE SECUENCIAS Una secuencia sirve para generar automticamente nmeros distintos. Se utilizan para generar valores para campos que se utilizan como clave forzada (claves cuyo valor no interesa, slo sirven para identificar los registros de una tabla). Es una rutina interna de Oracle la que realiza la funcin de generar un nmero distinto cada vez. Las secuencias se almacenan independientemente de la tabla, por lo que la misma secuencia se puede utilizar para diversas tablas.

2.1 Creacin de Secuencias

Donde: a) Secuencia. Es el nombre que se le da al objeto de secuencia b) INCREMENT BY. Indica cunto se incrementa la secuencia cada vez que se usa. Por defecto se incrementa de uno en uno c) START WITH. Indica el valor inicial de la secuencia (por defecto 1) d) MAXVALUE. Mximo valor que puede tomar la secuencia. Si no se toma e) NOMAXVALUE que permite llegar hasta el 1027 f) MINVALUE. Mnimo valor que puede tomar la secuencia. Por defecto -1026.g) CYCLE. Hace que la secuencia vuelva a empezar si se ha llegado al mximo valor. Ejemplo:

CREATE SEQUENCE Sec_Numeros START WITH 5 INCREMENT BY 2 MAXVALUE 100 MINVALUE 5 En la primera ejecucin obtenemos: SELECT Sec_Numeros.NEXTVAL FROM DUAL; NEXTVAL ---------------------5 En la segunda ejecucin obtenemos: SELECT Sec_Numeros.NEXTVAL FROM DUAL; NEXTVAL ---------------------7 LA Ejecucion del comando CURRVAL nos retorna siempre el valor actual de la secuecia SELECT Sec_Numeros.CURRVAL FROM DUAL; CURRVAL ---------------------7 2.2 Ver Lista de Secuencias La vista del diccionario de datos USER_SEQUENCES muestra la lista de secuencias actuales. La columna LAST_NUMBER muestra cual ser el siguiente nmero de secuencia disponible. 2.3 Uso de la Secuencia Los mtodos NEXTVAL y CURRVAL se utilizan para obtener el siguiente nmero y el valor actual de la secuencia respectivamente. Ejemplo : SELECT Sec_Numeros.NEXTVAL FROM DUAL; Eso muestra en pantalla el siguiente valor de la secuencia. Realmente NEXTVAL incrementa la secuencia y devuelve el valor actual. CURRVAL

devuelve el valor de la secuencia, pero sin incrementar la misma. Ambas funciones pueden ser utilizadas en: a) Una consulta SELECT que no lleve DISTINCT, ni grupos, ni sea parte de una vista, ni sea subconsulta de otro SELECT, UPDATE o DELETE. b) Una subconsulta SELECT en una instruccin INSERT. c) La clusula VALUES de la instruccin INSERT. d) La clusula SET de la instruccin UPDATE. No se puede utilizar (y siempre hay tentaciones para ello) como valor para la clusula DEFAULT de un campo de tabla. Su uso ms habitual es como apoyo al comando INSERT:

2.3 Modificar SecuenciasSe pueden modificar las secuencias, pero la modificacin slo puede afectar a los futuros valores de la secuencia, no a los ya utilizados. Sintaxis:

2.4 Borrar Secuencias Lo hace el comando DROP SEQUENCE seguido del nombre de la secuencia a borrar.

3 CREACION Y USO DE VISTAS. Una vista no es ms que una consulta almacenada a fin de utilizarla tantas veces como se desee. Una vista no contiene datos sino la instruccin SELECT necesaria para crear la vista, eso asegura que los datos sean coherentes al utilizar los datos almacenados en las tablas. Las vistas se emplean para: Realizar consultas complejas ms fcilmente Proporcionar tablas con datos completos Utilizar visiones especiales de los datos Hay dos tipos de vistas: 1. SIMPLES. Las forman una sola tabla y no contienen funciones de agrupacin. Su ventaja es que permiten siempre realizar operaciones DML sobre ellas. 2. COMPLEJAS. Obtienen datos de varias tablas, pueden utilizar funciones de agrupacin. No siempre permiten operaciones DML.

3 .1 Creacin De Vistas

a) OR REPLACE. Si la vista ya exista, la cambia por la actual. b) FORCE. Crea la vista aunque los datos de la consulta SELECT no existan. c) Vista. Nombre que se le da a la vista. d) Alias. Lista de alias que se establecen para las columnas devueltas por la consulta. e) Select en la que se basa esta vista. El nmero de alias debe coincidir con el nmero de columnas devueltas por SELECT. f) WITH CHECK OPTION. Hace que slo las filas que se muestran en la vista puedan ser aadidas (INSERT) o modificadas (UPDATE). La restriccin que sigue a esta seccin es el nombre que se le da a esta restriccin de tipo Check Option. g) WITH READ ONLY. Hace que la vista sea de slo lectura. Permite grabar un nombre para esta restriccin. Lo bueno de las vistas es que tras su creacin se utilizan como si fueran una tabla. Ejemplo:

La creacin de la vista del ejemplo es compleja ya que hay relaciones complicadas, pero una vez creada la vista, se le pueden hacer consultas como si se tratara de una tabla normal. Incluso se puede utilizar el comando DESCRIBE sobre la vista para mostrar la estructura de los campos que forman la vista. 3.2 Ejecucin de comandos DML sobre Vistas Las instrucciones DML ejecutadas sobre las vistas permiten aadir o modificar los datos de las tablas relacionados con las filas de la vista. Ahora bien, no es posible ejecutar instrucciones DML sobre vistas que: Utilicen funciones de grupo (SUM, AVG,...) Usen GROUP BY o DISTINCT Posean columnas con clculos (PRECIO * 1.16) Adems no se pueden aadir datos a una vista si en las tablas referencias en la consulta SELECT hay campos NOT NULL que no aparecen en la consulta (es lgico ya que al aadir el dato se tendra que aadir el registro colocando el valor NULL en el campo). Ejemplo (Sobre la vista anterior):

3.3 Mostrar la lista de Vistas La vista del diccionario de datos USER_VIEWS permite mostrar una lista de todas las vistas que posee el usuario actual. Es decir, para saber qu vistas hay disponibles se usa:

3.4 Borrar Vistas Se utiliza el comando DROP VIEW:

4 - CREACION Y USO DE INDICES Los ndices son esquemas que hacen que Oracle acelere las operaciones de consulta y ordenacin sobre los campos a los que el ndice hace referencia. Se almacenan aparte de la tabla a la que hace referencia, lo que permite crearles y borrarles en cualquier momento. Lo que realizan es una lista ordenada por la que Oracle puede acceder para facilitar la bsqueda de los datos. Cada vez que se aade un nuevo registro, los ndices involucrados se actualizan a fin de que su informacin est al da. De ah que cuantos ms ndices haya, ms le

cuesta a Oracle aadir registros, pero ms rpidas se realizan las instrucciones de consulta. La mayora de los ndices se crean de manera implcita, como consecuencia de las restricciones PRIMARY KEY (que obliga a crear un ndice nico sobre los campos clave) ,UNIQUE (crea tambin un ndice nico) y FOREIGN KEY (crea un ndice con posibilidad de repetir valores, ndice con duplicados). Estos son ndices obligatorios, por los que les crea el propio Oracle. 4.1 Creacin de ndices Aparte de los ndices obligatorios comentados anteriormente, se pueden crear ndices de forma explcita. stos se crean para aquellos campos sobre los cuales se realizarn bsquedas e instrucciones de ordenacin frecuente. Sintaxis:

El ejemplo crea un ndice para los campos apellido1, apellido2 y nombre. Esto no es lo mismo que crear un ndice para cada campo, este ndice es efectivo cuando se buscan u ordenan clientes usando los tres campos (apellido1, apellido2, nombre) a la vez. Se aconseja crear ndices en campos que: a) Contengan una gran cantidad de valores. b) Contengan una gran cantidad de nulos. c) Son parte habitual de clusulas WHERE, GROUP BY u ORDER BY. d) Son parte de listados de consultas de grandes tablas sobre las que casi siempre se muestran como mucho un 4% de su contenido. No se aconseja en campos que: a) Pertenezcan a tablas pequeas. b) No se usan a menudo en las consultas. c) Pertenecen a tablas cuyas consultas muestran ms de un 6% del total de registros. d) Pertenecen a tablas que se actualizan frecuentemente. e) Se utilizan en expresiones. Los ndices se pueden crear utilizando expresiones complejas:

Esos ndices tienen sentido si en las consultas se utilizan exactamente esas expresiones. 4.2 Lista de ndices Para ver la lista de ndices se utiliza la vista USER_INDEXES. Mientras que la vista USER_IND_COLUMNS Muestra la lista de columnas que son utilizadas por ndices. 4.3 Borrar ndices La instruccin DROP INDEX seguida del nombre del ndice permite eliminar el ndice en cuestin.

5 BIBLIOGRAFIA a) http://alarcos.inf-cr.uclm.es/doc/bda/doc/lab/BDa-p2.pdf b) http://blearning.itmina.edu.mx/dep/sada/Ingenieria%20en%20 Sistemas%20Computacionales/5to%20Semestre/Taller%20de%2 0Base%20de%20Datos/taller_bd/sqlprocedual.pdf c) http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r 23532.PDF d) http://www.jorgesanchez.net/bd/oracleSQL.pdf e) http://www.aposada.net/downloads/documentos/bd/Plus%20b %C3%A1sico.PDF f) http://leebyte.iespana.es/cursos/bd/oracle%20curso%206%20le cciones.pdf