You are on page 1of 20

CREACIÓN 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 Pérez Quiroz.

Cajamarca, Noviembre del 2008.

INDICE

i. Introducción Pág. 01.
1. Creación y uso de constraints Pág. 01.
1 .1 Tipos de Constraints Pág. 02.
1 .2 Reglas en el uso de constraints Pág. 02.
1 .3 Definiendo constraints Pág. 03.
1.3.1 CONSTRAINT NOT NULL Pág. 03.
1.3.2 CONSTRAINT UNIQUE Pág. 04.
1.3.3 CONSTRAINT PRIMARY KEY Pág. 05.
1.3.4 CONSTRAINT FOREIGN KEY Pág. 08.
1.3.5 CONSTRAINT CHECK Pág. 10.
1 .4 Manipulación de Constraints Pág. 10.
1.4.1 AÑADIENDO UN CONSTRAINT Pág. 10.
1.4.2 ELIMINANDO UN CONSTRAINT Pág. 11.
1.4.3 DESHABILITANDO UN CONSTRAINT Pág. 11.
1.4.4 HABILITANDO UN CONSTRAINT Pág. 12.

2. CREACION Y USO DE SECUENCIAS. Pág. 12.
2.1 Creación de Secuencias Pág. 12.
2.2 Ver Lista de Secuencias Pág. 13.
2.3 Uso de la Secuencia Pág. 13.
2.4 Modificar Secuencias Pág. 14.
2.5 Borrar Secuencias Pág. 14.

3 CREACION Y USO DE VISTAS. Pág. 15.
3 .1 Creación De Vistas Pág. 15.
3.2 Ejecución de comandos DML sobre Vistas Pág. 16.
3.3 Mostrar la lista de Vistas Pág. 16.
3.4 Borrar Vistas Pág. 17.

4 CREACION Y USO DE INDICES Pág. 17.
4.1 Creación de Índices Pág. 18.
4.2 Lista de Índices Pág. 18.
4.3 Borrar Índices Pág. 18.

5 Bibliografía Pág. 18.

INTRODUCCION OrdenSalida OrdenCompra Categoria DetalleOrdenCompra NroOrdenSalida NroOrden CategoriaID NroOrden (FK) DetalleOrdenSalida FechaVenta FechaEmision NombreCategoría FechaSalida CodProducto (FK) Codproducto (FK) FechaRecibo Ubicación EstadoEntrega CantidadPedida NroOrdenSalida (FK) RucDniProvee (FK) RucDniCte (FK) Descripcion Descripcion CantidadRecibida Cantidad Cliente RucDniCte Proveedor Direccion Venta RucDniProvee Email NroVenta Telefono1 RazonSocial Fax FechaVenta RazonsocNombre Direccion IdUsuario (FK) Telefono2 Ususario Saldo Telefono1 Compra IdUsuario FechaPago Email NroCompra CuentaProveedor Nombre Producto FechaCompra Telefono2 ApPaterno TipoDocumento Codproducto ApMaterno RucDniProvee (FK) Descripcion Password DetalleCompra NroDocumento Stockminimo Telefono NroCompra (FK) Boleta FechaPago Stockactual Email Estado CodProducto (FK) Direccion NroBoleta Marca Igv Cantidad PrecioCompra FechaEmision PrecioCompra PrecioVenta Igv Descuento FechaVencimiento MontoTotal Descripcion Presentacion NroVenta (FK) CategoriaID (FK) DetalleBoleta Estado NroBoleta (FK) FechaPago CodProducto (FK) RucDniCte (FK) Cantidad Precio SubMonto Descripcion Descuento 1 . modificada o borrada de la tabla. como Oracle Developer. Las reglas de negocio se implementan en ORACLE mediante restricciones (constraints). Se pueden utilizar los constraints para lo siguiente:  Implementar o imponer reglas en los datos de una tabla cuando una fila es insertada.  Proporciona reglas para herramientas de Oracle. El constraint se debe cumplir para que la operación se realice.  Previene la eliminación de una tabla si existen dependencias con otras. disparadores (triggers) o código de aplicación. .CREACION Y USO DE CONSTRAINTS El servidor de Oracle utiliza constraints para prevenir el registro de datos no válidos a las tablas.

. Los Constraints son fáciles de referenciar si les proporcionas un nombre adecuado. Los constraints deben seguir el estándar para nombrar objetos. Se pueden ver los constraints definidos para una tabla específica en la tabla USER_CONSTRAINTS del diccionario de datos. 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 después de que la tabla ha sido creada.1 Tipos de Constraints 1 .2 Reglas en el uso de constraints Todos los constraints son almacenados en el diccionario de datos. el servidor de Oracle genera un nombre con el siguiente formato SYS_Cn. Si tú no especificas un nombre para tu constraint.1 .

Los constraints son usualmente creados al mismo tiempo que la tabla.1 . pero pueden ser añadidos después de la creación de la misma y también pueden ser deshabilitados temporalmente. Los constraints pueden estar definidos en uno de dos niveles que son: 1. Debido a que esos constraints no tienen nombre. Las columnas sin un constraint NOT NULL pueden contener valores nulos por defecto. En el ejemplo anterior se aplica un constraint NOT NULL a las columnas LAST_NAME y HIRE_DATE de la tabla EMPLOYEES.1 CONSTRAINT NOT NULL El constraint NOT NULL se asegura de que las columnas no contengan valores nulos. . el servidor de Oracle crea nombres para ellos. El constraint NOT NULL puede ser especificado solamente a nivel de columnas y no a nivel de tabla.3.3 Definiendo constraints En la imagen anterior se muestra la sintaxis para definir constraints en la creación de una tabla.

En este ejemplo utilizamos en constraint NOT NULL. . NomSIndicato Varchar2(40)NOT NULL. ERROR: Error starting at line 1 in command: INSERT INTO CATEGORIA VALUES ('AL12'. Name Null Type ---------------------------------------------------------------------------------------- CATEGORIAID NOT NULL CHAR(18) UBICACIÓN CHAR(18) NOMBRECATEGORÍA CHAR(18) Modificamos la restricción de la tabla. CREATE TABLE SINDICATO( IdSindicato Char(4)NOT NULL. TipoGestion Varchar(35)).3..'ALIMENTOS') Error at Command Line:2 Column:15 Error report: SQL Error: ORA-00936: falta una expresión 00936. .'ALIMENTOS'). ALTER TABLE CATEGORIA MODIFY(UBICACIÓN NOT NULL)."missing expression" *Cause: *Action: 1. INSERT INTO CATEGORIA VALUES ('AL12'. describe categoria. es modificando la tabla que ha sido creada anteriormente. La columna o conjunto de columnas incluida en la definición del constraint UNIQUE es llamada llave única (unique key). en el instante que creamos nuestra tabla Sindicato. CATEGORIAID NOT NULL CHAR(18) UBICACIÓN NOT NULL CHAR(18) NOMBRECATEGORÍA CHAR(18) Insertamos valores a nuestra tabla. dos filas de una tabla no pueden tener valores duplicados en la columna o conjunto de columnas especificadas. 00000 .2 CONSTRAINT UNIQUE Un constraint UNIQUE requiere que todos los valores en una columna o conjunto de columnas sean únicos esto es. Otro tipo de implementación del constraint NOT NULL.

De hecho. Una llave única compuesta es creada usando el nivel de definición de tabla. Name Null Type -------------------------------------------------------------------------------- RUCDNICTE NOT NULL CHAR(18) DIRECCION CHAR(18) EMAIL CHAR(18) TELEFONO1 CHAR(18) RAZONSOCNOMBRE CHAR(18) TELEFONO2 CHAR(18) . DESCRIBE CLIENTE. Los constraints UNIQUE permiten el uso de valores nulos siempre y cuando no se hayan definido constraints NOT NULL para las mismas columnas. el grupo de columnas es llamado llave única compuesta (composite unique key). 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.Si el constraint UNIQUE comprende más de una columna. cualquier número de filas puede incluir nulos para las columnas sin constraints NOT NULL puesto que los valores nulos no son iguales a nada.

'8762412'. . 1 rows inserted INSERT INTO CLIENTE VALUES('439874232'. Los constraints PRIMARY KEY pueden ser definidos a nivel de columna o a nivel de tabla. *Action: Either remove the unique restriction or do not insert the key.3 CONSTRAINT PRIMARY KEY Un constraint PRIMARY KEY crea una llave primaria para la tabla.'EL SOL #212'.'9878712'. 00000 .3.'LOSALIZOS 212'."unique constraint (%s.'976897638').es'.'arzame@yahoo. Una tabla puede tener solo un constraint PRIMARY KEY pero puede tener diversos constraints UNIQUE.'Armando Zamora'. Una llave primaria compuesta es creada usando la definición a nivel de tabla.'EL SOL #212'. fechaEmision DATE. ALTER TABLE CLIENTE MODIFY (CONSTRAINT UNMAIL UNIQUE(EMAIL)) Insertamos algunas filas a nuestra tabla.'arzame@yahoo.'Armando Sanchez'.XPKCLIENTE) violada 00001.es'. El constraint PRIMARY KEY es una columna o conjunto de columnas que identifica de forma única cada fila de una tabla.'976897638') Error report: SQL Error: ORA-00001: restricción única (SYSTEM. Solo una llave primaria puede ser creada por cada tabla.es'.'976457238'). ERROR: Error starting at line 1 in command: INSERT INTO CLIENTE VALUES('439874232'.%s) violated" *Cause: An UPDATE or INSERT statement attempted to insert a duplicate key.'9878712'. 1. CREATE TABLE FACTURA( NroFactura NUMBER(5). Estos constraints obligan valores únicos para la columna o combinación de columnas y aseguran que estas columnas no puedan contener valores nulos. INSERT INTO CLIENTE VALUES('43918908'. For Trusted Oracle configured in DBMS MAC mode.'arzame@yahoo. you may see this message if a duplicate entry exists at a different level.'Armando Sanchez'.En este caso realizamos dos restricciones UNIQUE a los campos de Email y RazonSocial.

INSERT INTO FACTURA VALUES (012.13). For Trusted Oracle configured in DBMS MAC mode. MontoTotal INTEGER. DESCRIBE FACTURA.12) ERROR: SQL Error: ORA-00001: restricción única (SYSTEM. INSERT INTO FACTURA VALUES (012. *Action: Either remove the unique restriction or do not insert the key. . you may see this message if a duplicate entry exists at a different level."unique constraint (%s. CONSTRAINT IDFAC PRIMARY KEY(NroFactura) ).%s) violated" *Cause: An UPDATE or INSERT statement attempted to insert a duplicate key. 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.1600. el nombre del constraint es IDFACT.1600. Igv DECIMAL.'12/11/2008'.IDFAC) violada 00001.'12/11/2008'. Insertamos valores a nuestra tabla. 00000 .

La llave foránea es definida al utilizar una combinación de las siguientes palabras reservadas:  FOREIGN KEY es usada para definir la columna en la tabla hija como un constraint a nivel tabla. esta referencia de la columna DEPARTMENT_ID de la tabla DEPARTMENTS es la tabla referenciada o tabla padre. Las llaves foráneas están basadas en los valores de los datos y su lógica pura. por ejemplo: La llave foránea está definida en la tabla hija. puesto que el constraint está basado en una columna. es un constraint de integridad referencial que designa a una columna o combinación de columnas como una llave foránea estableciendo una relación entre una llave primaria o llave única en la misma tabla o en una tabla diferente. . 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.3. En el ejemplo anterior. y la tabla conteniendo la columna referenciada es la tabla padre. El nombre del constraint es EMP_DEPTID_FK. La sintaxis difiere puesto que la palabra reservada FOREIGN KEY no aparece.4 CONSTRAINT FOREIGN KEY Un Foreign Key o llave foránea. DEPARTAMENT_ID está definida como llave foránea en la tabla EMPLOYEES (tabla dependiente o hija). Un valor de llave foránea debe corresponder con un valor existente en la tabla padre o ser nulo.1. no física o apuntadores.  REFERENCES identifica la tabla y columna en la tabla padre. La llave foránea también puede ser definida a nivel de columna.

UID. Sin las opciones DELETE CASCADE o ON DELETE SET NULL.  ON DELETE SET NULL convierte los valores de las llaves foráneas a nulos cuando el valor del padre es removido. LEVEL y ROWNUM  Llamadas a funciones SYSDATE. El comportamiento por defecto es llamado regla de restricción.3. No se tienen límites en el número de constraints CHECK cuando se define una columna. 1 . NEXTVAL. cuando prohibimos la actualización o eliminación de un dato referenciado. con las siguientes excepciones:  Las referencias a columnas CURRVAL. 1.5 CONSTRAINT CHECK El constraint CHECK define una condición que para cada fila debe satisfacerse.4 Manipulación de Constraints . las filas en la tabla padre no pueden ser eliminadas si estas son referenciadas en la tabla hija.  ON DELETE CASCADE indica que cuando la fila en la tabla padre es eliminada. La condición puede utilizarse de manera similar a las condiciones de una consulta. las filas dependientes en la tabla hija pueden ser eliminadas. USER y USERENV  Consultas que hagan referencia a valores en otras filas de la misma tabla Una columna puede tener múltiples constraints CHECK las cuales pueden referenciarse en la definición de la columna.

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.1.4. 1. Si no se le especifica un nombre al constraint. En el ejemplo anterior se crea un constraint FOREIGN KEY en la tabla EMPLOYEES. habilitar o deshabilitar un constraint.4. eliminar. pero no se puede modificar su estructura. Entonces se usa la sentencia ALTER TABLE con la cláusula DROP. El constraint asegura que un jefe exista como un empleado válido en la tabla EMPLOYEES. Normas a seguir  Se puede añadir.  Se puede añadir un constraint NOT NULL a una columna existente con el uso de la cláusula MODIFY de la sentencia ALTER TABLE. el sistema genera uno. Sintaxis: . aunque es recomendado.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.1 AÑADIENDO UN CONSTRAINT Se pueden añadir constraints a tablas existentes con el uso de la sentencia ALTER TABLE y la cláusula ADD. La opción CASCADE de la cláusula DROP ocasiona que todos los constraints dependientes sean borrados.

 La cláusula CASCADE deshabilita las dependencias de los constraints de integridad.4. Sintaxis: Donde:  table es el nombre de la tabla. Ejemplo: 1.3 DESHABILITANDO UN CONSTRAINT Se puede deshabilitar un constraint sin eliminarlo o recrearlo con el uso de la sentencia ALTER TABLE y la cláusula DISABLE.4.4 HABILITANDO UN CONSTRAINT Se puede habilitar un constraint sin eliminarlo o recrearlo utilizando la sentencia ALTER TABLE con la cláusula ENABLE.Ejemplo: 1.  Deshabilitar un constraint único o llave primaria. . este aplica a todos los datos de la tabla. elimina el índice único. Todos los datos de la tabla deben satisfacer el constraint. Normas a seguir:  Si se habilita un constraint. Sintaxis Normas a seguir:  Se puede usar la cláusula DISABLE en las sentencias CREATE TABLE y ALTER TABLE.  constraint es el nombre del constraint.

Ejemplo: .1 Creación de Secuencias Donde: a) Secuencia. Por defecto -1026. Máximo valor que puede tomar la secuencia. se crea un índice único o de llave primaria automáticamente. Se utilizan para generar valores para campos que se utilizan como clave forzada (claves cuyo valor no interesa.  Se puede usar la cláusula ENABLE en las sentencias CREATE TABLE y ALTER TABLE. Hace que la secuencia vuelva a empezar si se ha llegado al máximo valor. Las secuencias se almacenan independientemente de la tabla. Es el nombre que se le da al objeto de secuencia b) INCREMENT BY. Mínimo valor que puede tomar la secuencia.  Si se habilita un constraint PRIMARY KEY o UNIQUE key. g) CYCLE. Indica cuánto se incrementa la secuencia cada vez que se usa. 2. Si no se toma e) NOMAXVALUE que permite llegar hasta el 1027 f) MINVALUE. Por defecto se incrementa de uno en uno c) START WITH. por lo que la misma secuencia se puede utilizar para diversas tablas. Indica el valor inicial de la secuencia (por defecto 1) d) MAXVALUE.  Habilitar un constraint de llave primaria que ha sido deshabilitado con la opción CASCADE no habilita ninguna llave foránea dependiente de la llave primaria. Ejemplo: 2 – CREACION Y USO DE SECUENCIAS Una secuencia sirve para generar automáticamente números distintos. Es una rutina interna de Oracle la que realiza la función de generar un número distinto cada vez. sólo sirven para identificar los registros de una tabla).

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 número de secuencia disponible. Eso muestra en pantalla el siguiente valor de la secuencia.NEXTVAL FROM DUAL.CREATE SEQUENCE Sec_Numeros START WITH 5 INCREMENT BY 2 MAXVALUE 100 MINVALUE 5 En la primera ejecución obtenemos: SELECT Sec_Numeros.NEXTVAL FROM DUAL. CURRVAL . 2.NEXTVAL FROM DUAL. CURRVAL ---------------------- 7 2. NEXTVAL ---------------------- 7 LA Ejecucion del comando CURRVAL nos retorna siempre el valor actual de la secuecia SELECT Sec_Numeros.CURRVAL FROM DUAL.3 Uso de la Secuencia Los métodos NEXTVAL y CURRVAL se utilizan para obtener el siguiente número y el valor actual de la secuencia respectivamente. Ejemplo : SELECT Sec_Numeros. Realmente NEXTVAL incrementa la secuencia y devuelve el valor actual. NEXTVAL ---------------------- 5 En la segunda ejecución obtenemos: SELECT Sec_Numeros.

ni sea subconsulta de otro SELECT. COMPLEJAS. Su uso más habitual es como apoyo al comando INSERT: 2. ni grupos. d) La cláusula SET de la instrucción UPDATE. Sintaxis: 2. no a los ya utilizados. . 2. eso asegura que los datos sean coherentes al utilizar los datos almacenados en las tablas. UPDATE o DELETE. No se puede utilizar (y siempre hay tentaciones para ello) como valor para la cláusula DEFAULT de un campo de tabla. Las vistas se emplean para:  Realizar consultas complejas más fácilmente  Proporcionar tablas con datos completos  Utilizar visiones especiales de los datos Hay dos tipos de vistas: 1. 3 – CREACION Y USO DE VISTAS. Obtienen datos de varias tablas.devuelve el valor de la secuencia. c) La cláusula VALUES de la instrucción INSERT. pero sin incrementar la misma. Su ventaja es que permiten siempre realizar operaciones DML sobre ellas. pero la modificación sólo puede afectar a los futuros valores de la secuencia.4 Borrar Secuencias Lo hace el comando DROP SEQUENCE seguido del nombre de la secuencia a borrar.3 Modificar Secuencias Se pueden modificar las secuencias. No siempre permiten operaciones DML. pueden utilizar funciones de agrupación. Una vista no contiene datos sino la instrucción SELECT necesaria para crear la vista. Ambas funciones pueden ser utilizadas en: a) Una consulta SELECT que no lleve DISTINCT. b) Una subconsulta SELECT en una instrucción INSERT. Una vista no es más que una consulta almacenada a fin de utilizarla tantas veces como se desee. Las forman una sola tabla y no contienen funciones de agrupación. ni sea parte de una vista. SIMPLES.

la cambia por la actual. f) WITH CHECK OPTION. e) Select en la que se basa esta vista.1 Creación De Vistas a) OR REPLACE. b) FORCE. Permite grabar un nombre para esta restricción. Crea la vista aunque los datos de la consulta SELECT no existan. Nombre que se le da a la vista. Hace que sólo las filas que se muestran en la vista puedan ser añadidas (INSERT) o modificadas (UPDATE). c) Vista. La restricción que sigue a esta sección es el nombre que se le da a esta restricción de tipo Check Option.3 . Ejemplo: . Lo bueno de las vistas es que tras su creación se utilizan como si fueran una tabla. g) WITH READ ONLY. Hace que la vista sea de sólo lectura. Lista de alias que se establecen para las columnas devueltas por la consulta. Si la vista ya existía. d) Alias. El número de alias debe coincidir con el número de columnas devueltas por SELECT.

CREACION Y USO DE INDICES Los índices son esquemas que hacen que Oracle acelere las operaciones de consulta y ordenación sobre los campos a los que el índice hace referencia.)  Usen GROUP BY o DISTINCT  Posean columnas con cálculos (PRECIO * 1. se le pueden hacer consultas como si se tratara de una tabla normal.2 Ejecución de comandos DML sobre Vistas Las instrucciones DML ejecutadas sobre las vistas permiten añadir o modificar los datos de las tablas relacionados con las filas de la vista. lo que permite crearles y borrarles en cualquier momento. pero una vez creada la vista. De ahí que cuantos más índices haya. 3.16) Además no se pueden añadir datos a una vista si en las tablas referencias en la consulta SELECT hay campos NOT NULL que no aparecen en la consulta (es lógico ya que al añadir el dato se tendría que añadir el registro colocando el valor NULL en el campo). los índices involucrados se actualizan a fin de que su información esté al día. AVG. Cada vez que se añade un nuevo registro. Lo que realizan es una lista ordenada por la que Oracle puede acceder para facilitar la búsqueda de los datos.. Ejemplo (Sobre la vista anterior): 3. Se almacenan aparte de la tabla a la que hace referencia. más le . Incluso se puede utilizar el comando DESCRIBE sobre la vista para mostrar la estructura de los campos que forman la vista.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. para saber qué vistas hay disponibles se usa: 3.4 Borrar Vistas Se utiliza el comando DROP VIEW: 4 . Es decir. Ahora bien.. no es posible ejecutar instrucciones DML sobre vistas que:  Utilicen funciones de grupo (SUM.La creación de la vista del ejemplo es compleja ya que hay relaciones complicadas..

c) Son parte habitual de cláusulas WHERE. d) Son parte de listados de consultas de grandes tablas sobre las que casi siempre se muestran como mucho un 4% de su contenido. por los que les crea el propio Oracle. c) Pertenecen a tablas cuyas consultas muestran más de un 6% del total de registros.UNIQUE (crea también un índice único) y FOREIGN KEY (crea un índice con posibilidad de repetir valores. Estos son índices obligatorios. 4. pero más rápidas se realizan las instrucciones de consulta. apellido2 y nombre. Esto no es lo mismo que crear un índice para cada campo. La mayoría de los índices se crean de manera implícita. Éstos se crean para aquellos campos sobre los cuales se realizarán búsquedas e instrucciones de ordenación frecuente. como consecuencia de las restricciones PRIMARY KEY (que obliga a crear un índice único sobre los campos clave) . Sintaxis: El ejemplo crea un índice para los campos apellido1. Se aconseja crear índices en campos que: a) Contengan una gran cantidad de valores. d) Pertenecen a tablas que se actualizan frecuentemente. nombre) a la vez. e) Se utilizan en expresiones. No se aconseja en campos que: a) Pertenezcan a tablas pequeñas. se pueden crear índices de forma explícita.1 Creación de Índices Aparte de los índices obligatorios comentados anteriormente.cuesta a Oracle añadir registros. b) Contengan una gran cantidad de nulos. Los índices se pueden crear utilizando expresiones complejas: . índice con duplicados). b) No se usan a menudo en las consultas. este índice es efectivo cuando se buscan u ordenan clientes usando los tres campos (apellido1. GROUP BY u ORDER BY. apellido2.

mx/dep/sada/Ingenieria%20en%20 Sistemas%20Computacionales/5to%20Semestre/Taller%20de%2 0Base%20de%20Datos/taller_bd/sqlprocedual.aposada. 4.edu.pdf e) http://www.2 Lista de Índices Para ver la lista de índices se utiliza la vista USER_INDEXES.3 Borrar Índices La instrucción DROP INDEX seguida del nombre del índice permite eliminar el índice en cuestión.pdf .edu.uclm.itescam.pdf c) http://www.itmina.net/downloads/documentos/bd/Plus%20b %C3%A1sico.Esos índices tienen sentido si en las consultas se utilizan exactamente esas expresiones. 5 BIBLIOGRAFIA a) http://alarcos.inf-cr. 4.jorgesanchez.pdf b) http://blearning.iespana.net/bd/oracleSQL.es/cursos/bd/oracle%20curso%206%20le cciones. Mientras que la vista USER_IND_COLUMNS Muestra la lista de columnas que son utilizadas por índices.es/doc/bda/doc/lab/BDa-p2.PDF d) http://www.PDF f) http://leebyte.mx/principal/sylabus/fpdb/recursos/r 23532.