Oracle Benzersiz Dizini

Oracle Benzersiz Dizini



Veritabanı performansı, bir veritabanı geliştiricisinin temel rollerinden biridir. Veritabanınızın optimum performansta çalıştığından emin olmak, o veritabanına okuma veya yazma uygulamalarını önemli ölçüde etkileyebilir.

Veritabanı performansını iyileştirmenin sayısız yolu olmasına rağmen, bir özellik neredeyse herhangi bir veritabanı için evrenseldir. Veritabanı dizinleri, tablodan veri alma hızını artırmak için kullanılan veri yapıları veya nesneleridir.

Doğru kullanıldığında, veritabanı dizinleri, hedef verilere, düzene, mevcut kaynaklara vb. bağlı olarak bir sorgunun hızını neredeyse yarı yarıya azaltabilir.







Bu öğreticide, dizinlenmiş bir sütunda yinelenen değerlerin kullanılabilirliğini önlemek için Oracle veritabanlarında benzersiz dizinlerle nasıl çalışılacağını öğreneceksiniz.



Oracle Benzersiz Dizini

Belirli bir sütunda yinelenen satırların saklanmamasını sağlamak için benzersiz bir dizin kullanabiliriz. Belirli bir dizinin sütunu benzersiz bir kural içeriyorsa, o sütunda benzer değere sahip iki satır eklemeye çalışmak, benzersiz kısıtlama ihlalini gösteren bir hatayla sonuçlanacaktır.



Oracle'da, aşağıda gösterildiği gibi CREATE UNIQUE INDEX deyimini kullanarak benzersiz bir dizin oluşturabiliriz:





BENZERSİZ DİZİN OLUŞTURUN dizin_adı AÇIK tablo_adı ( sütunlar ) ;

Dizine dahil edilen sütunlar, yinelenen satırları kabul etmeyecektir.

Eşsiz Tablo Çizimi Örneği

Benzersiz bir dizinin nasıl oluşturulacağını ve kullanılacağını göstermek için aşağıdaki tabloyu alın:



SEÇME * sample_data'dan;

Çıktı :

First_Name Sütununda Benzersiz Bir Dizin Oluşturun

Aşağıdaki örnek ifade, first_name sütununu kullanarak benzersiz bir dizinin nasıl oluşturulacağını gösterir:

sample_data üzerinde first_name_unique benzersiz dizin oluştur ( ilk adı ) ;

Bu dizini etkinleştirerek, aynı ada sahip birden fazla satır ekleyemeyiz.

Örneğin aşağıdaki insert deyimini ele alalım:

sample_data içine ekle ( İD , ad, ip_adresi, btc_adresi, kredi_kartı, tanımlayıcı )
değerler ( on bir , 'Valla' , '169.158.70.77' , '1CNz5d1d5SC8SaR6dFSVihwztqYx5Fg77q' , '4017955174552' ,
'26811d77-0a3a-4397-bc33-f7835f7c7ab9' ) ;

Verilen insert deyimini çalıştırırsak, aşağıdaki gibi bir hata almalıyız:

[ 23000 ] [ 1 ] ORA-00001: benzersiz sınırlama ( HR.FIRST_NAME_UNIQUE ) ihlal

Gördüğümüz gibi, verilen değeri eklemek, first_name sütunu için benzersiz kısıtlamayı ihlal ediyor.

İki Sütunlu Benzersiz Bir Dizin Oluşturun

Birden fazla sütundan oluşan benzersiz bir dizine de sahip olabiliriz. Aşağıdaki örnekte, first_name ve io_address sütunlarını kullanarak benzersiz bir dizin oluşturuyoruz:

sample_data üzerinde benzersiz bir dizin valide_columns oluşturun ( ilk_ad, ip_adresi ) ;

Benzer şekilde, first_name veya ip_address sütunu için yinelenen değerler eklemek, benzersiz dizin ihlali hatalarına neden olur.

Otomatik Benzersiz Dizinler

Birincil anahtar veya benzersiz kısıtlama içeren bir tablo sütunu bildirdiğinizde ne olduğunu hiç merak ettiniz mi?

Basit bir ifadeyle, bir sütunu tablonun birincil anahtarı olarak ayarlarsanız veya belirli bir sütuna benzersiz bir kısıtlama atarsanız, veritabanı motoru o sütun için otomatik olarak benzersiz bir dizin oluşturur.

Bu, söz konusu sütuna yinelenen değer girilmemesini sağlar.

Örneğin aşağıdaki ifadeyi ele alalım:

tablo sample_data oluştur
(
İD sayı,
ad  varchar2 ( elli ) ,
ip_adresi  varchar2 ( yirmi ) ,
btc_adresi varchar2 ( elli ) ,
kredi_kartı varchar2 ( elli ) ,
tanımlayıcı  varchar2 ( 40 ) ,
kısıtlama sample_pk birincil anahtarı ( İD )
) ;

Önceki örnekte, bir tablo oluşturuyoruz ve id sütununu tablonun birincil anahtarı olarak ayarlıyoruz. Ardından, o sütunla ilişkili (otomatik olarak oluşturulmuş) benzersiz kısıtlamayı görüntülemek için aşağıdaki komutu çalıştırabiliriz:

seçme index_name, index_type, görünürlük, durum, TABLE_NAME
all_index'lerden burada TABLE_NAME = 'ÖRNEK VERİ' ;

Sonuçlar :
Bu durumda, veritabanı motoru tarafından id sütunu için oluşturulan benzersiz dizini görebiliriz.

Çözüm

Bu kılavuzda, Oracle veritabanında benzersiz dizinlerin nasıl oluşturulacağını ve kullanılacağını öğrendiniz. Bir tablo sütununa birincil anahtar veya benzersiz kısıtlama atadığınızda ne olduğunu da öğrendiniz.