Índice único de Oracle

Índice único de Oracle
El rendimiento de la base de datos es una de las funciones esenciales de un desarrollador de bases de datos. Asegurar que su base de datos se esté ejecutando en 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 bases de datos son estructuras de datos u objetos que se utilizan para mejorar la velocidad de la recuperación de datos de la tabla.

Cuando se usan correctamente, los índices de bases de datos pueden reducir la velocidad de una consulta en casi la mitad, dependiendo de los datos de destino, el diseño, los recursos disponibles, etc.

En este tutorial, aprenderá cómo trabajar con índices únicos en las 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 dada. Si la columna de un índice dado contiene una regla única, intentar agregar dos filas con un valor similar en esa columna dará como resultado un error que indica una violación de restricción única.

En Oracle, podemos crear un índice único utilizando la instrucción Crear índice única como se muestra en lo siguiente:

Crear un índice único index_name en table_name (columnas);

Las columnas que se incluyen en el índice no aceptarán ninguna fila duplicada.

Ejemplo de ilustración de tabla única

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

Seleccionar * de sample_data;

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 índice único primero_name_unique en sample_data (first_name);

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

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

Insertar en sample_data (id, first_name, ip_address, btc_address, credit_card, identificador)
Valores (11, 'Wallas', '169.158.70.77 ',' 1cnz5d1d5sc8sar6dfsvihwztqyx5fg777 ',' 4017955174552 ',
'26811D77-0A3A-4397-BC33-F7835F7C7AB9');

Si ejecutamos la declaración de inserción dada, debemos obtener un error como se muestra en lo siguiente:

[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 usando las columnas First_Name and IO_Address:

crear un índice único verify_columns en sample_data (first_name, ip_address);

Del mismo modo, agregar valores duplicados para la columna First_Name o IP_Address dará como resultado errores únicos de violación del índice.

Í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 la clave principal de la tabla o asigna una restricción única a una columna determinada, el motor de la base de datos crea automáticamente un índice único para esa columna.

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

Tome, por ejemplo, la siguiente declaración:

Crear tabla sample_data
(
número de identificación,
First_Name varchar2 (50),
ip_address varchar2 (20),
btc_address varchar2 (50),
Credit_Card Varchar2 (50),
Identificador VARCHAR2 (40),
restricción sample_pk clave primaria (ID)
);

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

Seleccionar index_name, index_type, visibilidad, estado, table_name
desde all_indexes donde table_name = 'sample_data';

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 usar los índices únicos en la base de datos de Oracle. También aprendió qué sucede cuando asigna una clave principal o una restricción única a una columna de tabla.