Índice único de Oracle

Indice Unico De Oracle



El rendimiento de la base de datos es uno de los roles esenciales de un desarrollador de base de datos. Asegurarse de que su base de datos funcione con un rendimiento óptimo puede afectar significativamente las aplicaciones que leen o escriben en esa base de datos.

Aunque existen numerosas formas de mejorar el rendimiento de la base de datos, una característica es casi universal para cualquier base de datos. Los índices de la base de datos son estructuras de datos u objetos que se utilizan para mejorar la velocidad de recuperación de datos de la tabla.

Cuando se usan correctamente, los índices de la base de datos pueden reducir la velocidad de una consulta a casi la mitad, según los datos de destino, el diseño, los recursos disponibles, etc.







En este tutorial, aprenderá a trabajar con índices únicos en bases de datos de Oracle para evitar la disponibilidad de valores duplicados en una columna indexada.



Índice único de Oracle

Podemos usar un índice único para garantizar que no se almacenen filas duplicadas en una columna determinada. Si la columna de un índice dado contiene una regla única, intentar agregar dos filas con un valor similar en esa columna generará un error que indica una violación de restricción única.



En Oracle, podemos crear un índice único usando la declaración CREATE UNIQUE INDEX como se muestra a continuación:





CREAR ÍNDICE ÚNICO index_name ON table_name ( columnas ) ;

Las columnas que se incluyen en el índice no aceptarán filas duplicadas.

Ejemplo de ilustración de tabla única

Para demostrar cómo crear y usar un índice único, tome la siguiente tabla:



SELECCIONE * DESDE muestra_datos;

Producción :

Crear un índice único en la columna First_Name

La siguiente declaración de ejemplo muestra cómo crear un índice único usando la columna first_name:

crear un índice único first_name_unique en sample_data ( primer nombre ) ;

Al habilitar este índice, no podemos insertar más de una fila con el mismo nombre.

Tomemos, por ejemplo, la siguiente declaración de inserción:

insertar en sample_data ( identificación , nombre, dirección_ip, dirección_btc, tarjeta_de_crédito, identificador )
valores ( 11 , 'Wallas' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
        '26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;

Si ejecutamos la declaración de inserción dada, deberíamos obtener un error como se muestra a continuación:

[ 23000 ] [ 1 ] ORA-00001: restricción única ( HR.FIRST_NAME_UNIQUE ) violado

Como podemos ver, insertar el valor dado viola la restricción única para la columna first_name.

Crear un índice único con dos columnas

También podemos tener un índice único que se compone de más de una columna. En el siguiente ejemplo, creamos un índice único utilizando las columnas first_name y io_address:

crear un índice único verificar_columnas en muestra_datos ( nombre, dirección_ip ) ;

De manera similar, agregar valores duplicados para la columna first_name o ip_address dará como resultado errores de violación de índice únicos.

Índices únicos automáticos

¿Alguna vez se ha preguntado qué sucede cuando declara una columna de tabla con una clave principal o una restricción única?

En términos simples, si establece una columna como clave principal de la tabla o asigna una restricción única a una columna dada, el motor de la base de datos crea automáticamente un índice único para esa columna.

Esto asegura que no se inserte ningún valor duplicado en esa columna.

Tomemos por ejemplo la siguiente declaración:

crear tabla sample_data
(
    identificación número,
nombre varchar2 ( 50 ) ,
dirección_ip varchar2 ( 20 ) ,
dirección_btc varchar2 ( 50 ) ,
credit_card varchar2 ( 50 ) ,
identificador varchar2 ( 40 ) ,
restricción sample_pk clave principal ( identificación )
) ;

En el ejemplo anterior, creamos una tabla y configuramos la columna id como clave principal de la tabla. Luego, para ver la restricción única asociada con esa columna (generada automáticamente), podemos ejecutar el siguiente comando:

Seleccione index_name, index_type, visibilidad, estado, TABLE_NAME
de all_indexes donde TABLE_NAME = 'DATA DE MUESTRA' ;

Resultados :
En este caso, podemos ver el índice único creado por el motor de la base de datos para la columna de identificación.

Conclusión

En esta guía, aprendió a crear y utilizar los índices únicos en la base de datos de Oracle. También aprendió lo que sucede cuando asigna una clave principal o una restricción única a una columna de la tabla.