Oracle Unique Index

Oracle Unique Index



Izvedba baze podataka jedna je od bitnih uloga programera baze podataka. Osiguravanje da vaša baza podataka radi s optimalnim performansama može značajno utjecati na čitanje ili pisanje aplikacija u tu bazu podataka.

Iako postoje brojni načini poboljšanja performansi baze podataka, jedna značajka je gotovo univerzalna za svaku bazu podataka. Indeksi baze podataka su strukture podataka ili objekti koji se koriste za povećanje brzine dohvaćanja podataka iz tablice.

Kada se pravilno koriste, indeksi baze podataka mogu smanjiti brzinu upita za gotovo polovicu, ovisno o ciljnim podacima, izgledu, dostupnim resursima itd.







U ovom vodiču naučit ćete kako raditi s jedinstvenim indeksima u Oracle bazama podataka kako biste spriječili dostupnost dvostrukih vrijednosti u indeksiranom stupcu.



Oracle Unique Index

Možemo upotrijebiti jedinstveni indeks kako bismo osigurali da se u određenom stupcu ne pohranjuju duplikati redaka. Ako stupac određenog indeksa sadrži jedinstveno pravilo, pokušaj dodavanja dva retka sa sličnom vrijednošću u tom stupcu rezultirat će pogreškom koja ukazuje na kršenje jedinstvenog ograničenja.



U Oracleu možemo stvoriti jedinstveni indeks pomoću naredbe CREATE UNIQUE INDEX kao što je prikazano u nastavku:





CREATE UNIQUE INDEX index_name ON table_name ( stupci ) ;

Stupci koji su uključeni u indeks neće prihvatiti duple retke.

Primjer jedinstvene ilustracije tablice

Da biste demonstrirali kako stvoriti i koristiti jedinstveni indeks, uzmite sljedeću tablicu:



IZABERI * FROM uzorak_podataka;

Izlaz :

Stvorite jedinstveni indeks na stupcu First_Name

Sljedeći primjer izjave pokazuje kako stvoriti jedinstveni indeks pomoću stupca first_name:

stvoriti jedinstveni indeks first_name_unique na sample_data ( ime ) ;

Omogućavanjem ovog indeksa ne možemo umetnuti više od jednog retka s istim imenom.

Uzmimo za primjer sljedeću izjavu za umetanje:

umetnite u sample_data ( iskaznica , ime, ip_adresa, btc_adresa, kreditna_kartica, identifikator )
vrijednosti ( jedanaest , 'Wallas' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;

Ako pokrenemo danu naredbu za umetanje, trebali bismo dobiti pogrešku kao što je prikazano u nastavku:

[ 23000 ] [ 1 ] ORA-00001: jedinstveno ograničenje ( HR.FIRST_NAME_UNIQUE ) prekršena

Kao što vidimo, umetanje zadane vrijednosti krši jedinstveno ograničenje za stupac first_name.

Napravite jedinstveni indeks s dva stupca

Također možemo imati jedinstveni indeks koji se sastoji od više od jednog stupca. U sljedećem primjeru stvaramo jedinstveni indeks pomoću stupaca first_name i io_address:

stvoriti jedinstveni indeks verify_columns na sample_data ( ime, ip_adresa ) ;

Slično, dodavanje dvostrukih vrijednosti za stupac first_name ili ip_address rezultirat će jedinstvenim pogreškama kršenja indeksa.

Automatski jedinstveni indeksi

Jeste li se ikada zapitali što se događa kada deklarirate stupac tablice s primarnim ključem ili jedinstvenim ograničenjem?

Jednostavno rečeno, ako postavite stupac kao primarni ključ tablice ili dodijelite jedinstveno ograničenje danom stupcu, pogon baze podataka automatski stvara jedinstveni indeks za taj stupac.

Time se osigurava da se u taj stupac ne umetne duplicirana vrijednost.

Uzmimo za primjer sljedeću izjavu:

stvoriti tablicu sample_data
(
iskaznica broj,
ime_varchar2 ( pedeset ) ,
ip_adresa  varchar2 ( dvadeset ) ,
btc_adresa varchar2 ( pedeset ) ,
kreditna_kartica varchar2 ( pedeset ) ,
identifikator  varchar2 ( 40 ) ,
ograničenje sample_pk primarni ključ ( iskaznica )
) ;

U prethodnom primjeru, stvorili smo tablicu i postavili stupac id kao primarni ključ tablice. Zatim, da bismo vidjeli jedinstveno ograničenje povezano s tim stupcem (automatski generirano), možemo pokrenuti sljedeću naredbu:

Izaberi index_name, index_type, vidljivost, status, TABLE_NAME
iz svih_indeksa gdje je TABLE_NAME = 'SAMPLE_DATA' ;

Rezultati :
U ovom slučaju, možemo vidjeti jedinstveni indeks koji je kreirao motor baze podataka za id stupac.

Zaključak

U ovom ste vodiču naučili kako stvoriti i koristiti jedinstvene indekse u Oracle bazi podataka. Također ste naučili što se događa kada dodijelite primarni ključ ili jedinstveno ograničenje stupcu tablice.