Adres Defteri – Simple Indexing – C programlama

Merhabalar, bu yazımda Data Organisation and Managament dersinde verilen bir ödevden bahsedeceğim. Dersimizin ismi üzerinden de belli olmakla birlikte burada işimiz tamamen veri ile. Verilerin eklenmesi, indexlenmesi, onlara erişim sağlayıp üzerlerinde işlemler yapabilmek.

Şimdi bu ödevde biz basit indexleme ( simple indexing ) kullandık. Biraz işleyişten bahsedeyim. Şu şekilde; şimdi disk üzerinde iki adet dosyanız bulunuyor. Bunlar txt, dat, bin, vs olabilir. Biz dat seçtik ve üzerinde binary – ikili dosya sistemi olarak kayıtlar yaparak dışarıdan bakıldığında insanların okuyamayacağı türden kayıtlar yaptık. Simple indexingte bir data dosyası bir de index dosyası bulunmaktadır. Index dosyasında data dosyasındaki kayıtların birincil anahtarı ( primary key ) tutulur. Index dosyası hızlı işlem yapabilmek için disk üzerinde okunup RAM e bir liste yapısına aktarılır. List üzerinden insert, update, delete, search işlemleri yapılır. Bulunan primay key  e göre data dosyasındaki kaydın tamamı okunur.

Şimdi yaptığım ve verilen ödeve giriyorum.

Bizden bir adres defteri oluşturmamızı istediler. Bunun içerisinde ad, soyad, adres bilgileri bulunacak bunlara ek olarak da bir kaç tane farlı alan eklemeliydik. (Örneğin yaş, bölüm gibi.)

** Primary key’in name + surname ( yani isimlerin birleştirilmiş halinin) olması istendi ve primary key unique olmalı yani eşsiz. (örnek: TAYYİP MUSLU girilmiş ise daha sonra tekrar aynı isim girildiğinde kayıt işlemi yapmayacak)

Kayıtlarda ekleme işlemi yaparken PK ya bakarak kaydın tüm bilgilerini data dosyasına yazdık. Ardından bu kaydın Primary key bilgisini RAM ‘ a aldık. İşlemler artık uygulama kapanıncaya kadar RAM ‘ da sürecek. Uygulama düzgün kapatılırsa tekrardan index file içerisine kayıt olacak.

Uygulama tekrar açıldığında ise index file içerisindeki indexi RAM’e yükleyecek.

RAM deki index dosyaları Primary key’e göre alfabetik olarak sıralı şekilde yapılıyor. ( Bunun için bublesort kullandım).

Insert, update, delete, search işlemlerinde birinci anahtar olan (Name+Surname) ye göre işlemler yapılıyor.

Eğer uygulama normal kapatılmaz ise bir flag dosya içerisinde belirleniyor. Eğer flag açıksa index dosyası, data dosyası tekrar okunarak sıfırdan RAM ‘ e alınıyor.

Resimler

Bu şekilde bir ödev geliştirdim. Bunun kodları ve dökümantasyonu GitHub hesabımda bulunuyor.

Burada ki linkten ulaşabilirsiniz. (GitHub | Simple Indexing System)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir