Oracle Unique Index

Oracle Unique Index



Performanța bazei de date este unul dintre rolurile esențiale ale unui dezvoltator de baze de date. Asigurarea că baza de date rulează la performanțe optime poate avea un impact semnificativ asupra citirii sau scrierii aplicațiilor în acea bază de date.

Deși există numeroase modalități de îmbunătățire a performanței bazei de date, o caracteristică este aproape universală pentru orice bază de date. Indicii de baze de date sunt structuri de date sau obiecte care sunt utilizate pentru a spori viteza de extragere a datelor din tabel.

Când sunt utilizate corect, indecșii bazei de date pot reduce viteza unei interogări cu aproape jumătate, în funcție de datele țintă, aspectul, resursele disponibile etc.







În acest tutorial, veți învăța cum să lucrați cu indecși unici în bazele de date Oracle pentru a preveni disponibilitatea valorilor duplicate într-o coloană indexată.



Oracle Unique Index

Putem folosi un index unic pentru a ne asigura că nu sunt stocate rânduri duplicate într-o coloană dată. Dacă coloana unui index dat conține o regulă unică, încercarea de a adăuga două rânduri cu o valoare similară în acea coloană va duce la o eroare care indică o încălcare a constrângerii unice.



În Oracle, putem crea un index unic folosind instrucțiunea CREATE UNIQUE INDEX, așa cum se arată în următoarele:





CREATE UNIQUE INDEX index_name ON table_name ( coloane ) ;

Coloanele care sunt incluse în index nu vor accepta rânduri duplicat.

Exemplu de ilustrație unică de masă

Pentru a demonstra cum să creați și să utilizați un index unic, luați următorul tabel:



SELECTAȚI * FROM mostre_date;

Ieșire :

Creați un index unic pe coloana First_Name

Următorul exemplu de instrucțiune arată cum să creați un index unic folosind coloana first_name:

creați un index unic first_name_unique pe sample_data ( Nume ) ;

Prin activarea acestui index, nu putem insera mai mult de un rând cu același prenume.

Luați, de exemplu, următoarea declarație de inserare:

inserați în sample_data ( id , prenume, adresa_ip, adresa_btc, card_credit, identificator )
valorile ( unsprezece , „Wallas” , „169.158.70.77” , „1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q” , „4017955174552” ,
„26811d77-0a3a-4397-bc33-f7835f7c7ab9” ) ;

Dacă rulăm instrucțiunea de inserare dată, ar trebui să obținem o eroare așa cum se arată în următorul:

[ 23000 ] [ 1 ] ORA-00001: constrângere unică ( HR.FIRST_NAME_UNIQUE ) încălcat

După cum putem vedea, inserarea valorii date încalcă constrângerea unică pentru coloana first_name.

Creați un index unic cu două coloane

De asemenea, putem avea un index unic care este compus din mai multe coloane. În exemplul următor, creăm un index unic folosind coloanele first_name și io_address:

creați index unic verify_columns pe sample_data ( prenume, adresa_ip ) ;

În mod similar, adăugarea de valori duplicate pentru coloana first_name sau ip_address va duce la erori unice de încălcare a indexului.

Indici unici automati

V-ați întrebat vreodată ce se întâmplă când declarați o coloană de tabel cu o cheie primară sau o constrângere unică?

În termeni simpli, dacă setați o coloană ca cheie primară a tabelului sau atribuiți o constrângere unică unei anumite coloane, motorul bazei de date creează automat un index unic pentru acea coloană.

Acest lucru asigură că nu este inserată nicio valoare duplicată în acea coloană.

Luați de exemplu următoarea afirmație:

creați tabelul sample_data
(
id număr,
prenume  varchar2 ( cincizeci ) ,
adresa_ip  varchar2 ( douăzeci ) ,
adresa_btc varchar2 ( cincizeci ) ,
card_credit varchar2 ( cincizeci ) ,
identificator  varchar2 ( 40 ) ,
cheie primară constrângere sample_pk ( id )
) ;

În exemplul anterior, creăm un tabel și setăm coloana id ca cheie primară a tabelului. Apoi, pentru a vizualiza constrângerea unică asociată cu acea coloană (generată automat), putem rula următoarea comandă:

Selectați nume_index, tip_index, vizibilitate, stare, TABLE_NAME
din all_indexes unde TABLE_NAME = „SAMPLE_DATA” ;

Rezultate :
În acest caz, putem vedea indexul unic care este creat de motorul bazei de date pentru coloana id.

Concluzie

În acest ghid, ați învățat cum să creați și să utilizați indecșii unici din baza de date Oracle. De asemenea, ați învățat ce se întâmplă atunci când atribuiți o cheie primară sau o constrângere unică unei coloane de tabel.