DBMS'de İndeksleme: Nedir, ÖRNEKLERLE İndeks Çeşitleri
⚡ Akıllı Özet
Veritabanında indeksleme, haritalama yoluyla kayıtları hızlı bir şekilde elde etmeyi sağlayan bir veri yapısı tekniğidir.ping Kaydının disk adresine yönelik bir arama anahtarı. Birincil, ikincil, kümeleme, çok seviyeli ve B-ağacı indekslerinin her biri alan, hız ve bakım açısından farklı avantajlar sunar.

İndeksleme Nedir?
Endeksleme İndeks, veritabanı dosyasından kayıtları hızlı bir şekilde almanızı sağlayan bir veri yapısı tekniğidir. İndeks, yalnızca iki sütundan oluşan küçük bir tablodur. Birinci sütun, tablonun birincil veya aday anahtarının bir kopyasını içerir. İkinci sütun ise bir dizi değer içerir. işaretçileri Bu, söz konusu anahtar değerinin saklandığı disk bloğunun adresini içerir.
Bir dizin:
- Arama anahtarını girdi olarak alır.
- Eşleşen kayıtların bir koleksiyonunu verimli bir şekilde döndürür.
İndeks olmadan, veritabanı bir sorguyu yanıtlamak için her satırı taramak zorundadır. İndeks olduğunda ise doğrudan eşleşen bloğa atlar; bu nedenle seçilen indeks türünün performans üzerinde büyük etkisi vardır.
DBMS'de İndeksleme Türleri

Veritabanındaki indeksleme, indeksleme özelliklerine göre tanımlanır. İki ana indeksleme yöntemi şunlardır:
- Birincil İndeksleme
- İkincil İndeksleme
DBMS'de Birincil Dizin
Birincil indeks, iki alandan oluşan, sabit uzunlukta ve sıralı bir dosyadır. Birinci alan birincil anahtarla aynıdır ve ikinci alan belirli bir veri bloğuna işaret eder. Birincil indekste, indeks tablosundaki girdiler arasında her zaman bire bir ilişki vardır.
Birincil endeks ayrıca iki türe ayrılır:
- Yoğun Endeksi
- Seyrek İndeks
Yoğun Endeksi
Yoğun bir dizinde, veritabanındaki her arama anahtar değeri için bir kayıt oluşturulur. Bu, daha hızlı arama yapmanıza yardımcı olur ancak dizin kayıtlarını depolamak için daha fazla alana ihtiyaç duyar. Bu yöntemde, kayıtlar arama anahtar değerini içerir ve diskteki gerçek kayda işaret eder.
Seyrek İndeks
Seyrek indeks, dosyadaki değerlerin yalnızca bir kısmı için görünen bir indeks kaydıdır. Seyrek indeks, yoğun indeksleme sorunlarını çözmenize yardımcı olur. DBMSBu teknikte, bir dizi indeks sütunu aynı veri bloğu adresini saklar ve veri alınması gerektiğinde bu blok adresi getirilir.
Seyrek indeks, yalnızca bazı arama anahtar değerleri için indeks kayıtlarını saklar. Ekleme ve silme işlemleri için daha az yer ve daha az bakım yükü gerektirir, ancak kayıtları bulmada yoğun indekse göre daha yavaştır.
Aşağıda seyrek indeksin bir veritabanı indeks örneği verilmiştir.
Yoğun İndeks ve Seyrek İndeks Karşılaştırması
İki temel endeks varyantı, aşağıda özetlendiği gibi, zıt ödünleşmeler yapmaktadır.
| Görünüş | Yoğun Endeksi | Seyrek İndeks |
|---|---|---|
| Girdileri | Arama anahtarı başına bir tane | Blok başına bir tane. |
| Uzay | Daha Fazla | Less |
| Arama hızı | Daha hızlı | yavaş |
| Bakım | Daha yüksek | Alt |
DBMS'de İkincil Dizin
Veritabanı yönetim sistemlerinde ikincil indeks, her kayıt için benzersiz bir değere sahip olan ve aday anahtar olması gereken bir alan tarafından oluşturulabilir. Buna kümeleme yapmayan indeks de denir.
Bu iki seviyeli veritabanı indeksleme tekniği, haritayı küçültmek için kullanılır.ping Birinci seviyenin boyutu. Birinci seviye için geniş bir sayı aralığı seçilir, bu nedenle haritaping Boyut her zaman küçük kalır.
İkincil Dizin Örneği
İkincil indekslemeyi bir veritabanı indeksi örneğiyle anlayalım. Bir banka hesap veritabanında veriler hesap numarasına göre sıralı olarak saklanır, ancak ABC bankasının belirli bir şubesindeki tüm hesapları bulmak isteyebilirsiniz.
Burada, her arama anahtarı için ikincil bir indeks oluşturabilirsiniz. İndeks kaydı, o belirli arama anahtarı değerine sahip tüm kayıtlara işaretçiler içeren bir kovaya işaret eder.
ClusterDBMS'de Dizin Oluşturma
Kümelenmiş bir dizinde, işaretçiler değil, kayıtların kendileri dizinde saklanır. Bazen dizin, her kayıt için benzersiz olmayabilecek birincil anahtar olmayan sütunlar üzerinde oluşturulur. Böyle bir durumda, benzersiz değerler elde etmek için iki veya daha fazla sütunu gruplandırabilir ve kümelenmiş dizin adı verilen bir dizin oluşturabilirsiniz. Bu ayrıca kaydı daha hızlı tanımlamanıza da yardımcı olur.
Örnek: Bir şirketin çeşitli departmanlara çok sayıda çalışan aldığını varsayalım. Bu durumda, aynı departmana ait tüm çalışanlar için bir kümeleme indeksi oluşturulmalıdır.
Bunlar tek bir küme olarak kabul edilir ve indeks, kümenin tamamını işaret eder. Burada, Department_no benzersiz olmayan bir anahtardır.
Çok Düzeyli Endeks nedir?
Birincil dizin belleğe sığmadığında çok seviyeli indeksleme oluşturulur. Bu indeksleme yönteminde, herhangi bir kayda ulaşmak için gereken disk erişim sayısını azaltabilirsiniz. Kayıtlar diskte sıralı bir dosya olarak saklanır ve bu dosyanın üzerine seyrek bir indeks oluşturulur.
B-Ağaç Endeksi
B-ağacı indeksi, veritabanı yönetim sistemlerinde ağaç tabanlı indeksleme için en yaygın kullanılan veri yapısıdır. Dengeli bir yapı kullanan, çok seviyeli bir ağaç tabanlı indeksleme biçimidir. ikili arama ağaçlarıB-ağacının tüm yaprak düğümleri gerçek veri işaretçilerini içerir.
Dahası, tüm yaprak düğümler birbirine bağlı bir liste ile birbirine bağlanmıştır; bu da B-ağacının hem rastgele hem de sıralı erişimi desteklemesine olanak tanır.
- Yaprak düğümlerin 2 ile 4 arasında değer içermesi gerekir.
- Kökten yaprağa giden her yol çoğunlukla eşit uzunluktadır.
- Kök düğüm dışındaki yaprak olmayan düğümlerin 3 ila 5 arasında alt düğümü vardır.
- Kök veya yaprak olmayan her düğümün n/2 ile n arasında çocuğu vardır.
Tam eşleşme aramalarının baskın olduğu ve aralık taramalarının nadir görüldüğü durumlarda, karma B-ağacı indeksine göre daha hızlı bir alternatif olabilir.
İndekslemenin Avantajları
İndekslemenin önemli avantajları şunlardır:
- Bu, veri almak için gereken toplam G/Ç işlemi sayısını azaltmaya yardımcı olur, böylece tablodan doğrudan bir satıra erişmeniz gerekmez.
- Kullanıcılara daha hızlı veri arama ve alma olanağı sunar.
- Bu yöntem, her bağlantılı satır için dizinde ROWID'yi saklamanıza gerek kalmadığı için tablo alanını azaltabilir.
- Yaprak düğümlerindeki veriler zaten anahtarın değerine göre sıralanmıştır.
İndekslemenin Dezavantajları
İndekslemenin önemli dezavantajları şunlardır:
- İndeksleme işlemi için tabloda benzersiz bir değere sahip birincil anahtara ihtiyacınız vardır.
- Hali hazırda aynı şekilde indekslenmiş veriler üzerinde başka bir indeks oluşturamazsınız.
- Dizinle düzenlenmiş bir tabloyu bölümlendirmenize izin verilmez.
- İndeksleme, INSERT, DELETE ve UPDATE sorgularında performansı düşürür.





