DBMS'de Hashing: Statik ve Dinamik Hashing Teknikleri
โก Akฤฑllฤฑ รzet
Veritabanฤฑ yรถnetim sistemlerinde (DBMS) karma (hashing), bir kaydฤฑn disk konumunu dizin taramasฤฑ yapmadan doฤrudan anahtarฤฑndan hesaplayan bir tekniktir. Karma fonksiyonu, arama anahtarlarฤฑnฤฑ veri kovalarฤฑna eลler ve statik veya dinamik karma, bu kovalarฤฑn nasฤฑl bรผyรผyeceฤini yรถnetir.

DBMS'de Hashing nedir?
Veritabanฤฑ yรถnetim sistemlerinde (DBMS), karma (hashing), indeks yapฤฑsฤฑ kullanmadan disk รผzerindeki istenen verinin konumunu doฤrudan arama tekniฤidir. Karma yรถntemi, veritabanฤฑndaki รถฤeleri indekslemek ve almak iรงin kullanฤฑlฤฑr, รงรผnkรผ belirli bir รถฤeyi orijinal deฤerinden ziyade daha kฤฑsa karma anahtar kullanarak aramak daha hฤฑzlฤฑdฤฑr. Veriler, adresleri bir karma fonksiyonu uygulanarak oluลturulan veri bloklarฤฑ ลeklinde saklanฤฑr; bu kayฤฑtlarฤฑn saklandฤฑฤฤฑ bellek konumu, dizin olarak bilinir. veri bloฤu veya veri kรผmesi.
Karma fonksiyonlara neden ihtiyacฤฑmฤฑz var?
Veritabanฤฑ yรถnetim sistemlerinde (DBMS) karma (hashing) yรถntemini uygulamanฤฑz gereken durumlar ลunlardฤฑr:
- Bรผyรผk bir veritabanฤฑ yapฤฑsฤฑnda, tรผm indeks deฤerlerini tรผm seviyeler boyunca aramak ve ardฤฑndan istenen veriye ulaลmak iรงin hedef veri bloฤuna eriลmek zordur.
- Veritabanฤฑndaki รถฤeleri indekslemek ve almak iรงin karma (hashing) yรถntemi kullanฤฑlฤฑr, รงรผnkรผ belirli bir รถฤeyi aramak iรงin orijinal deฤerden daha kฤฑsa olan karma anahtar kullanmak daha hฤฑzlฤฑdฤฑr.
- Karma algoritmasฤฑ, indeks yapฤฑsฤฑ kullanmadan disk รผzerindeki bir veri kaydฤฑnฤฑn 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
ฤฐลte karma algoritmalarฤฑnda kullanฤฑlan รถnemli terimler:
- Veri kovasฤฑ: Veri kovalarฤฑ, kayฤฑtlarฤฑn depolandฤฑฤฤฑ bellek konumlarฤฑdฤฑr. Aynฤฑ zamanda depolama birimi olarak da bilinir.
- anahtar: a DBMS anahtarฤฑ Bir iliลkideki (tablodaki) bir satฤฑrฤฑ (kayฤฑtฤฑ) tanฤฑmlamanฤฑza yardฤฑmcฤฑ olan bir รถzellik veya รถzellikler kรผmesidir.
- Karma iลlevi: bir haritaping Arama anahtarlarฤฑnฤฑn tรผmรผnรผ, gerรงek kayฤฑtlarฤฑn bulunduฤu adrese eลleyen fonksiyon.
- Doฤrusal Sondalama: Sorgulamalar arasฤฑnda sabit bir aralฤฑk bulunur. Bu yรถntemde, eski kaydฤฑn รผzerine yazmak yerine, yeni kaydฤฑ girmek iรงin bir sonraki kullanฤฑlabilir veri bloฤu kullanฤฑlฤฑr.
- ฤฐkinci Dereceden Sondalama: Orijinal hesaplamayla elde edilen baลlangฤฑรง โโdeฤerine ikinci dereceden bir polinomun ardฤฑลฤฑk รงฤฑktฤฑsฤฑnฤฑ ekleyerek yeni kova adresini belirlemeye yardฤฑmcฤฑ olur.
- Karma indeks: Veri bloฤunun adresi. Bir karma fonksiyonu basit bir matematiksel fonksiyon veya karmaลฤฑk bir fonksiyon olabilir.
- Double Karma: Karma tablolarฤฑnda รงakฤฑลmalarฤฑ gidermek iรงin ikinci bir karma fonksiyonu uygulayarak kullanฤฑlan bir yรถntem.
- Kova Taลmasฤฑ: Kova taลmasฤฑ durumuna รงarpฤฑลma denir. Bu, herhangi bir statik karma fonksiyonu iรงin รถlรผmcรผl bir aลamadฤฑr.
Hashing Tekniklerinin Tรผrleri
Veritabanฤฑ yรถnetim sistemlerinde (DBMS) temel olarak iki tรผr karma algoritmasฤฑ tekniฤi vardฤฑr:
- Statik Karma
- Dinamik Karma
ฤฐki yรถntem arasฤฑndaki temel fark, kova sayฤฑsฤฑnฤฑn sabit olup olmamasฤฑdฤฑr; bu durum sonraki iki bรถlรผmde aรงฤฑklanmaktadฤฑr.
Statik Karma
Statik karma iลleminde, elde edilen veri kovasฤฑ adresi her zaman aynฤฑ kalฤฑr.
Dolayฤฑsฤฑyla, รถrneฤin, bir adres oluลturursanฤฑz, รฤrenci_ID = 10 karma fonksiyonunu kullanarak mod(3), sonuรงta ortaya รงฤฑkan paket adresi her zaman olacaktฤฑr 1Dolayฤฑsฤฑyla kova adresinde herhangi bir deฤiลiklik gรถrmeyeceksiniz.
Bu nedenle, statik karma yรถnteminde bellekteki veri kovalarฤฑnฤฑn sayฤฑsฤฑ her zaman sabit kalฤฑr.
Statik Karma ฤฐลlevleri
- Kayฤฑt ekleme: Tabloya yeni bir kayฤฑt eklenmesi gerektiฤinde, bu kayฤฑt iรงin karma anahtarฤฑnฤฑ kullanarak bir adres oluลturulur. Adres oluลturulduktan sonra, kayฤฑt o konumda saklanฤฑr.
- Aranฤฑyor: Kaydฤฑ almak gerektiฤinde, verinin saklandฤฑฤฤฑ kovanฤฑn adresini almak iรงin aynฤฑ karma iลlevi kullanฤฑlฤฑr.
- Bir kaydฤฑ silme: Karma fonksiyonunu kullanarak, รถnce silmek istediฤiniz kaydฤฑ alฤฑrsฤฑnฤฑz, ardฤฑndan o adresi bellekten kaldฤฑrฤฑrsฤฑnฤฑz.
Statik karma algoritmasฤฑ ayrฤฑca ลu alt kategorilere ayrฤฑlฤฑr:
- Aรงฤฑk karma
- Kapalฤฑ karma algoritmasฤฑ
Hashing'i aรง
Aรงฤฑk karma yรถnteminde, eski kaydฤฑn รผzerine yazmak yerine, yeni kaydฤฑ girmek iรงin bir sonraki kullanฤฑlabilir veri bloฤu kullanฤฑlฤฑr. Bu yรถntem aynฤฑ zamanda doฤrusal sorgulama olarak da bilinir.
รrneฤin, A2 eklemek istediฤiniz yeni bir kayฤฑttฤฑr. Karma fonksiyonu 222 adresini oluลturur, ancak bu adres zaten baลka bir deฤer tarafฤฑndan kullanฤฑlmaktadฤฑr. Bu nedenle sistem bir sonraki veri kovasฤฑnฤฑ, 501'i arar ve A2'yi ona atar.

Kapalฤฑ Karma
Kapalฤฑ karma yรถnteminde, kovalar dolduฤunda aynฤฑ karma iรงin yeni bir kova tahsis edilir ve sonuรง bir รถncekine baฤlanฤฑr.
Dinamik Karma
Dinamik karma algoritmasฤฑ, veri gruplarฤฑnฤฑn dinamik olarak ve isteฤe baฤlฤฑ olarak eklenip รงฤฑkarฤฑldฤฑฤฤฑ bir mekanizma sunar. Bu karma yรถnteminde, karma fonksiyonu รงok sayฤฑda deฤer oluลturmanฤฑza yardฤฑmcฤฑ olur ve yapฤฑ verilerle birlikte bรผyรผr veya kรผรงรผlรผr. Bu da, statik karma algoritmasฤฑnฤฑn ya yer israfฤฑna yol aรงacaฤฤฑ ya da taลmaya neden olacaฤฤฑ, boyutu รถnceden tahmin edilemeyen tablolar iรงin ideal bir รงรถzรผm olmasฤฑnฤฑ saฤlar.
Sฤฑralฤฑ ฤฐndeksleme ve Karma Fonksiyonu Arasฤฑndaki Fark
Aลaฤฤฑda indeksleme ve karma algoritmalarฤฑ arasฤฑndaki temel farklar yer almaktadฤฑr:
| Parametreler | Sฤฑralฤฑ ฤฐndeksleme | รฤฑrpฤฑ |
|---|---|---|
| Adresin saklanmasฤฑ | Bellekteki adresler, birincil anahtar adฤฑ verilen bir anahtar deฤerine gรถre sฤฑralanฤฑr. | Adresler her zaman anahtar deฤer รผzerinde bir karma iลlevi kullanฤฑlarak oluลturulur. |
| Performans | Veri sayฤฑsฤฑ arttฤฑkรงa bu deฤer azalabilir, รงรผnkรผ veriler sฤฑralฤฑ olarak saklanฤฑr ve her ekleme, silme veya gรผncelleme iลlemi verilerin sฤฑrasฤฑnฤฑ deฤiลtirir. | Verilerin sรผrekli eklenmesi ve silinmesi durumunda performans en รผst dรผzeye รงฤฑkar. รok bรผyรผk veritabanlarฤฑ iรงin hash dosyasฤฑnฤฑn bakฤฑmฤฑ daha maliyetli hale gelir. |
| ฤฐรงin kullanmak | Belirli bir aralฤฑk iรงin veri alฤฑnmasฤฑ gereken aralฤฑk alma iลlemleri iรงin tercih edilir. | Arama anahtarฤฑna gรถre belirli bir kaydฤฑ almak iรงin idealdir ve yalnฤฑzca karma iลlevi arama anahtarฤฑnda olduฤunda iyi performans gรถsterir. |
| Bellek yรถnetimi | Silme ve gรผncelleme iลlemlerinden kaynaklanan ve yeniden kullanฤฑm iรงin serbest bฤฑrakฤฑlamayan birรงok kullanฤฑlmayan veri bloฤu vardฤฑr, bu nedenle dรผzenli bakฤฑm gereklidir. | Statik ve dinamik karma algoritmalarฤฑnda, bellek her zaman yรถnetilir ve kova taลmasฤฑ statik karma algoritmasฤฑnฤฑ geniลletmek iรงin ele alฤฑnฤฑr. |
รzetle, sฤฑralฤฑ olanฤฑ seรงin. indeksleme Aralฤฑk sorgularฤฑ iรงin ve anahtar รผzerinde tam eลleลme aramalarฤฑ iรงin karma fonksiyonlar kullanฤฑlฤฑr.
รarpฤฑลma Nedir?
Karma รงakฤฑลmasฤฑ, veri kรผmesindeki iki veya daha fazla รถฤenin sonuรงtaki karma deฤerlerinin yanlฤฑลlฤฑkla aynฤฑ yere eลlenmesi durumudur. karma tablo.
Karma รarpฤฑลmasฤฑyla Nasฤฑl Baลa รฤฑkฤฑlฤฑr?
Karma รงakฤฑลmasฤฑnฤฑ รถnlemek iรงin kullanabileceฤiniz iki teknik vardฤฑr:
- Tekrar ele almak: Bu yรถntem, boล bir kayฤฑt yuvasฤฑ bulunana kadar sรผrekli olarak uygulanan ikincil bir karma iลlevini รงaฤฤฑrฤฑr.
- Zincirleme: Zincirleme yรถntemi, anahtarlarฤฑ aynฤฑ karma deฤere sahip รถฤelerden oluลan baฤlantฤฑlฤฑ bir liste oluลturur. Bu yรถntem, tablonun her konumunda fazladan bir baฤlantฤฑ alanฤฑ gerektirir.
