Commodore sayı 4, sayfa 14
Sayfanın metni

Sayfa 14

Üç Tür Dosya

Veri tabanı programlarında üç tür disket dosyası kullanılabilir. İlki sıradüzensel (seguential) dosyadır. Bu dosyada tüm bilgi birleştirilerek ardışık olarak diskete aktarılır. Programlarınızı diskete ya da kasete sıradüzensel dosya olarak kayıt edebilirsiniz. Sıradüzensel dosya kullanıyorsanız, bilgileri birbirinden ayırt etmek için bilgi ögeleri arasına ayraçlar koymak zo- . Sıradüzensel dosyaların kullanımında karşılaşılan problemlerden biri, bir kayıtın değiştirilmesi sırasında yeni yerleştirillecek kayıtın eskisinden daha farklı bir uzunlukta olmasından doğar. Bu durum raflara kitap yerleştirmeye benzetilebilir. İnce bir kitabı raftan çıkarın ve yerine kalın bir tane koyun. Boş yer açmak için kalan kitapların tümünü kaydırmak gerekecektir. Eğer değişiklik seyrek olarak yapılıyor ise eski kaydı silerek yerini boş bırakmak ve yenisini en sona eklemek bir çözüm olabilir. İkinci tür, rölatif dosyalardır. Bu türü de bir sıra güvercin yuvasına benzetebiliriz. Belirli bir tanesi dolu olup diğerleri kısmen boş olabilir. Bu yapıda bir dosyayı genişlettiğinizde yer açmak için kaydırma yapmanız gerekmez. Dosya, en büyük kaydı içine alacak kadar büyük bir alan içerdiği sürece hiçbir sorunla karşılaşmazsınız. Karmaşık bilgi dosyalama sistemlerinde genellikle kullanılan dosya türü budur. Üçüncü tür bir sıradüzensel dosyadır, fakat bir adres tablosuyla birlikte ele alınır (bir disketin kılavuzu gibi). Bu tür dosyalara HİBRİD (melez) dosya denilmektedir. Kullanılmak için yapılan programlamanın hamallığı oldukça fazladır. Kazanılan alan, ek programlama ve tablo tarafından harcanılan alandan büyük olmadıkça bu yöntem pek tavsiye edilmez. Yandaki şekil üç dosya türünü de şematize etmektedir. Eğer disk işletim sisteminiz rölatif dosyaların kullanımına olanak sağlıyorsa (aynı zamanda rasgele-erişimli dosya adıyla da anılir), disketteki kalan yeriniz olmadığı sürece bu türü kullanmak isteyeceksiniz. Eğer sisteminiz rölatif dosyaların kullanımını içermiyorsa, programınızı bunu sağlayacak biçimde tasarlayabilirsiniz. Bunun için bir tablo tutabilirsiniz ya da kayıt numarasını disketteki adresine (track ve sektör) çeviren bir formül kullanabilirsiniz. Daha sonra kaydı doğrudan track ve sektör kullanarak yazabilirsiniz. Bu süreç biraz karmaşıktır. fakat yapmaya değer.

Çıkışın Planlanması

Kazanılan tecrübeler planlamanın en önemli kısmının programın çıkış İşlevlerinden oluştuğunu göstermektedir. İstediğiniz çıktı türleri üzerinde düşünmek, bilgi dosyalamanın sizin için en kullanışlı yolunu gösterir, ayrıca giriş işlevlerinin tanımlanmasına da yardımcı olur. Soruna iki farklı açıdan bakabiliriz; bilginin nasıl kodlanması gerektiği ve dosyanın nasıl taranacağı. Yine sondan başa doğru gitmek en iyisi. İlk olarak tarama işlemine göz atalım.

Tarama Zamanı

Alıcıdır

Diyelim ki dosyanızda arama yapmak istiyorsunuz. Elinizdeki dosyada belirli bir bilgi grubuna karşılık gelecek bir bilgi ögesi var -örneğin bir yazar adı- ve siz bu yazara ait tüm kitapların adlarını görmek istiyorsunuz. Yazar adı anahtar olarak kullanılmaktadır ve siz, anahtar kullanarak yazara ilişkin tüm kayıtlara ulaşmak istiyorsunuz. Programın yazar adını bulabilmesi için önce her kayıt içindeki veri ögelerinin yerlerini ve uzunluklarını belirlemeniz gereklidir. Yazar adı kayıt içinde ilk 16 byte'ı kaplayabilir. Disketten okuma yapıp anahtar ile karşılaştırırsınız. Eğer aynı iseler bu kayıt istediğiniz kayıttır. Tüm istediğiniz kayıtların ekrana ve/veya yazıcıya dökümünü yapmanız mümkündür. Fakat bu noktada önemli bir sorun ile karşılaşırsınız. Disketten yazar adını alıp anahtar ile karşılaştırma bir ya da iki saniye sürebilir, ama eğer her biri bir saniye sürecek şekilde taranması gereken bin adet kaydınız var ise...! Bu durumda tüm dosyayı taramak yaklaşık 20 dakika alacaktır. Bu süre küçümsenmeyecek kadar büyüktür. Bunun altından nasıl kalkılabilir?

Klavyeyle gezinmek için ← ve → tuşları.