DBMS'de Hashing: Statik ve Dinamik Hashing Teknikleri
DBMS'de Hashing nedir?
DBMS'de karma, indeks yapısını kullanmadan, istenen verinin diskteki konumunu doğrudan aramak için kullanılan bir tekniktir. Karma yöntemi, bir veritabanındaki öğeleri indekslemek ve almak için kullanılır; çünkü belirli bir öğeyi, orijinal değerini kullanmak yerine daha kısa karma anahtarı kullanarak aramak daha hızlıdır. Veriler, adresleri bu kayıtların saklandığı bellek konumunda karma işlevi uygulanarak oluşturulan veri blokları biçiminde saklanır. veri bloğu veya veri kümesi.
Neden Hashing'e ihtiyacımız var?
DBMS'de Hashing yöntemini uygulamanız gereken durumlar şunlardır:
- Büyük bir veritabanı yapısı için, tüm indeks değerlerini tüm seviyelerde aramak zordur ve ardından istenen veriyi elde etmek için hedef veri bloğuna ulaşmanız gerekir.
- Karma yöntemi, bir veritabanındaki öğeleri indekslemek ve almak için kullanılır; çünkü belirli bir öğeyi, orijinal değerini kullanmak yerine daha kısa karma anahtarı kullanarak aramak daha hızlıdır.
- Hashing, indeks yapısını kullanmadan, bir veri kaydının disk üzerindeki doğrudan konumunu hesaplamak için ideal bir yöntemdir.
- Aynı zamanda sözlüklerin uygulanmasında da yararlı bir tekniktir.
Hashing'de Önemli Terminolojiler
Hashing'de kullanılan önemli terminolojiler şunlardır:
- Veri grubu – Veri grupları, kayıtların saklandığı hafıza konumlarıdır. Aynı zamanda Depolama Birimi olarak da bilinir.
- anahtar: A DBMS anahtarı bir ilişkideki (tablo) bir satırı (demet) tanımlamanıza yardımcı olan bir nitelik veya nitelik kümesidir. Bu, iki tablo arasındaki ilişkiyi bulmanızı sağlar.
- Özet fonksiyonu: Karma işlevi, tüm arama anahtarları kümesini gerçek kayıtların yerleştirildiği adrese eşleyen bir eşleme işlevidir.
- Doğrusal Problama – Doğrusal problama, problar arasında sabit bir aralıktır. Bu yöntemde, eski kaydın üzerine yazmak yerine yeni kaydı girmek için bir sonraki mevcut veri bloğu kullanılır.
- İkinci dereceden araştırma– Yeni paket adresini belirlemenize yardımcı olur. Orijinal hesaplama tarafından verilen başlangıç değerine ikinci dereceden polinomun ardışık çıktısını ekleyerek, problar arasında Aralık eklemenize yardımcı olur.
- Hash indeksi – Veri bloğunun bir adresidir. Bir karma işlevi basit bir matematiksel işlevden karmaşık bir matematiksel işleve kadar her şey olabilir.
- Double Çırpı -Double Hashing, karma tablolarında çarpışma sorunlarını çözmek için kullanılan bir bilgisayar programlama yöntemidir.
- Kova Taşması: Kovanın taşması durumuna çarpışma denir. Bu, herhangi bir statiğin çalışması için ölümcül bir aşamadır.
Hashing Tekniklerinin Türleri
Temel olarak iki tür SQL karma yöntemi/tekniği vardır:
- Statik Karma
- Dinamik Karma
statik Karma
Statik karma işleminde ortaya çıkan veri grubu adresi her zaman aynı kalacaktır.
Bu nedenle, şunu söylemek için bir adres oluşturursanız Öğrenci_ID = 10 karma işlevini kullanma mod(3), sonuçta ortaya çıkan paket adresi her zaman olacaktır 1. Yani paket adresinde herhangi bir değişiklik görmeyeceksiniz.
Dolayısıyla bu statik karma yönteminde bellekteki veri kümesi sayısı her zaman sabit kalır.
Statik Karma İşlevleri
- Kayıt ekleme: Tabloya yeni bir kayıt eklenmesi gerektiğinde, hash anahtarını kullanarak yeni kayıt için bir adres oluşturabilirsiniz. Adres oluşturulduğunda kayıt otomatik olarak o konuma kaydedilir.
- Arama: Kaydı almanız gerektiğinde, aynı karma işlevi, verilerin saklanması gereken paketin adresini almak için yardımcı olacaktır.
- Bir kaydı silin: Hash fonksiyonunu kullanarak öncelikle silmek istediğiniz kaydı getirebilirsiniz. Daha sonra hafızadaki o adrese ait kayıtları kaldırabilirsiniz.
Statik karma ayrıca şu şekilde bölünmüştür:
- Açık karma
- Hashing'i kapatın.
Hashing'i aç
Açık karma yönteminde, yeni kaydı girmek için eskisinin üzerine yazmak yerine bir sonraki mevcut veri bloğu kullanılır. Bu yöntem aynı zamanda doğrusal problama olarak da bilinir.
Örneğin A2, eklemek istediğiniz yeni bir kayıttır. Hash fonksiyonu adresi 222 olarak üretir. Ancak bu adres zaten başka bir değer tarafından işgal edilmiştir. Bu nedenle sistem bir sonraki veri kümesini (501) arar ve ona A2'yi atar.
Hashing'i kapat
Close hash yönteminde kovalar dolduğunda aynı hash için yeni bir kova tahsis edilir ve sonuç bir önceki kovanın ardından bağlanır.
Dinamik Karma
Dinamik karma, veri gruplarının dinamik olarak ve isteğe bağlı olarak eklendiği ve kaldırıldığı bir mekanizma sunar. Bu karma işleminde, karma işlevi çok sayıda değer oluşturmanıza yardımcı olur.
Sıralı İndeksleme ve Karma Arasındaki Fark
Dizin Oluşturma ve Hashing arasındaki temel farklar aşağıdadır
parametreler | Sipariş İndeksleme | Çırpı |
---|---|---|
Adresin saklanması | Bellekteki adresler, birincil anahtar adı verilen anahtar değerine göre sıralanır. | Adresler her zaman anahtar değer üzerinde bir karma işlevi kullanılarak oluşturulur. |
Performans | Hash dosyasındaki veriler arttığında azalabilir. Performansını düşürecek herhangi bir (ekleme/silme/güncelleme) işlemi yapıldığında verileri sıralı bir şekilde sakladığından. | Karma performansı, verilerin sürekli olarak eklendiği ve silindiği durumlarda en iyi olacaktır. Ancak veritabanı çok büyük olduğunda karma dosya organizasyonu ve bakımı daha maliyetli olacaktır. |
İçin kullanmak | Verilerin aralıktan alınması için tercih edilir; yani belirli bir aralık için verinin alınması söz konusu olduğunda bu yöntem ideal bir seçenektir. | Bu, arama anahtarına göre belirli bir kaydı almak istediğinizde ideal bir yöntemdir. Ancak, yalnızca karma işlevi arama anahtarında olduğunda iyi performans gösterecektir. |
Bellek yönetimi | Silme/güncelleme işlemi nedeniyle kullanılmayan çok sayıda veri bloğu olacaktır. Bu veri blokları yeniden kullanım için serbest bırakılamaz. Bu nedenle belleğin düzenli bakımı gereklidir. | Statik ve dinamik karma yöntemlerinde bellek her zaman yönetilir. Statik karmayı genişletmek için kova taşması da mükemmel şekilde işlenir. |
Çarpışma Nedir?
Karma çarpışma, veri kümesindeki iki veya daha fazla veriden elde edilen karmaların, hatalı bir şekilde aynı yeri eşlediği bir durumdur. karma tablo.
Hashing Çarpışması ile nasıl başa çıkılır?
Karma çarpışmasını önlemek için kullanabileceğiniz iki teknik vardır:
- yeniden karma: Bu yöntem, kaydın yerleştirilmesi gereken boş bir yuva bulunana kadar sürekli olarak uygulanan ikincil bir karma fonksiyonunu çağırır.
- Zincirleme: Zincirleme yöntemi, anahtar karmaları aynı değere sahip olan öğelerin Bağlantılı bir listesini oluşturur. Bu yöntem, her tablo konumuna ekstra bir bağlantı alanı gerektirir.
ÖZET
- In DBMSHashing, indeks yapısını kullanmadan, istenen verinin diskteki konumunu doğrudan aramak için kullanılan bir tekniktir.
- Karma yöntemi, bir veritabanındaki öğeleri indekslemek ve almak için kullanılır; çünkü belirli bir öğeyi, orijinal değerini kullanmak yerine daha kısa karma anahtarı kullanarak aramak daha hızlıdır.
- Veri grubu, Anahtar, Hash fonksiyonu, Doğrusal Problama, İkinci dereceden problama, Karma indeksi, Double Hashing, Bucket Overflow, karma işleminde kullanılan önemli terminolojilerdir
- İki tür karma yöntemi vardır: 1) statik karma 2) dinamik karma
- Statik karma işleminde ortaya çıkan veri grubu adresi her zaman aynı kalacaktır.
- Dinamik karma, veri gruplarının dinamik olarak ve isteğe bağlı olarak eklendiği ve kaldırıldığı bir mekanizma sunar.
- Bellekteki indeksleme adresleri kritik bir değere göre sıralanırken karma adresler her zaman anahtar değer üzerinde bir karma işlevi kullanılarak oluşturulur.
- Karma çarpışma, veri kümesindeki iki veya daha fazla veriden elde edilen karmaların, karma tablosunda aynı yeri yanlış şekilde eşlediği bir durumdur.
- Yeniden karma ve zincirleme, karma çarpışmasını önlemenize yardımcı olan iki yöntemdir.