Oracle Unique Index

Oracle Unique Index



El rendiment de la base de dades és una de les funcions essencials d'un desenvolupador de bases de dades. Assegurar-se que la vostra base de dades s'executa amb un rendiment òptim pot afectar significativament les aplicacions que llegeixen o escriuen a aquesta base de dades.

Tot i que existeixen nombroses maneres de millorar el rendiment de la base de dades, una característica és gairebé universal per a qualsevol base de dades. Els índexs de bases de dades són estructures o objectes de dades que s'utilitzen per millorar la velocitat de recuperació de dades de la taula.

Quan s'utilitzen correctament, els índexs de bases de dades poden reduir la velocitat d'una consulta gairebé a la meitat, depenent de les dades de destinació, la disposició, els recursos disponibles, etc.







En aquest tutorial, aprendràs a treballar amb índexs únics a les bases de dades Oracle per evitar la disponibilitat de valors duplicats en una columna indexada.



Oracle Unique Index

Podem utilitzar un índex únic per assegurar-nos que no s'emmagatzemen files duplicades en una columna determinada. Si la columna d'un índex determinat conté una regla única, si intenteu afegir dues files amb un valor similar en aquesta columna, es produirà un error que indica una infracció de la restricció única.



A Oracle, podem crear un índex únic mitjançant la instrucció CREATE UNIQUE INDEX tal com es mostra a continuació:





CREATE UNIQUE INDEX nom_índex ON nom_taula ( columnes ) ;

Les columnes que s'inclouen a l'índex no acceptaran cap fila duplicada.

Exemple d'il·lustració de taula única

Per demostrar com crear i utilitzar un índex únic, utilitzeu la taula següent:



SELECCIONA * FROM dades_mostra;

Sortida :

Creeu un índex únic a la columna First_Name

L'exemple següent mostra com crear un índex únic mitjançant la columna first_name:

creeu un índex únic first_name_unique a sample_data ( nom ) ;

En activar aquest índex, no podem inserir més d'una fila amb el mateix nom.

Prengui per exemple la següent declaració d'inserció:

inseriu a dades_mostra ( id , first_name, ip_address, btc_address, credit_card, identificador )
valors ( 11 , 'Wallas' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;

Si executem la instrucció d'inserció donada, hauríem d'obtenir un error com es mostra a continuació:

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

Com podem veure, inserir el valor donat infringeix la restricció única de la columna first_name.

Creeu un índex únic amb dues columnes

També podem tenir un índex únic que consta de més d'una columna. A l'exemple següent, creem un índex únic mitjançant les columnes first_name i io_address:

creeu índexs únics verify_columns a sample_data ( nom, adreça_ip ) ;

De la mateixa manera, afegir valors duplicats per a la columna first_name o ip_address donarà lloc a errors de violació d'índex únics.

Índexs únics automàtics

Us heu preguntat mai què passa quan declareu una columna de taula amb una clau primària o una restricció única?

En termes senzills, si configureu una columna com a clau primària de la taula o assigneu una restricció única a una columna determinada, el motor de base de dades crea automàticament un índex únic per a aquesta columna.

Això assegura que no s'insereix cap valor duplicat en aquesta columna.

Prengui per exemple la següent afirmació:

crear la taula sample_data
(
id nombre,
primer_nom  varchar2 ( 50 ) ,
adreça_ip varchar2 ( 20 ) ,
btc_address varchar2 ( 50 ) ,
targeta de crèdit varchar2 ( 50 ) ,
identificador varchar2 ( 40 ) ,
clau primària de restricció sample_pk ( id )
) ;

A l'exemple anterior, creem una taula i establim la columna id com a clau primària de la taula. Aleshores, per veure la restricció única associada a aquesta columna (generada automàticament), podem executar l'ordre següent:

seleccionar nom_índex, tipus_índex, visibilitat, estat, NOM_TAULA
de tots_índexs on TABLE_NAME = 'SAMPLE_DATA' ;

Resultats :
En aquest cas, podem veure l'índex únic que crea el motor de base de dades per a la columna id.

Conclusió

En aquesta guia, heu après a crear i utilitzar els índexs únics a la base de dades Oracle. També heu après què passa quan assigneu una clau primària o una restricció única a una columna de taula.