Bu sayfadaki yazılar
Sayfanın metni
Sayfa 9
Leonard Shapiro ÇEVİREN: JÜLİDE ERGÜDER
Moni bir database sistemi satın aldınız. Bir dBASE ya da buna benzer bir şey. Yeni oyuncağınızı çok mu çok seviyorsunuz. Raporlarını artık çabucak yazabiliyorsunuz, herhangi bir konuda özel malumat edinmek istediğinizde, hazır bilgiye kolayca erişebiliyorsunuz. Database'inizle daha çok ve çeşitli şeyler yapabilmeyi arzu ettiniz ve böylece sisteminize durmaksızın yeni bilgiler eklediniz. Başkaları da database sisteminizi kullanabilmek için kuyruk oldular. Bunun üzerine yeni bilgi yükleme yolları üzerinde kafa yormaya başladınız. Sisteme yeni dosyalar ve dosyalara da yeni bilgiler yığıldıkça yığıldı. Ve malzeme biriktikçe ipin ucunu kaçırmaya başladınız. Database kütüklerine ne yüklediğinizi tam ve kesin olarak hatırlayamıyorsunuz. Aynı bilgi farklı farklı dosyalardaymış gibi geliyor. Bir program ya da bir database kütüğünü değiştirdiğinizde, öbür programlar ve kütükler etkileniyor. Yeni bilgi yüklemek istediğinizde, bazı kütüklerin genişletilmesi mi yoksa yeni bir kütük açılması mı gerektiğine bir türlü karar veremiyorsunuz. Data'nızın yeni bir yapılanmaya şiddetle ihtiyacı var. Database'inize verileri düzenleme yönteminin ilkelerini tatbik etmelisiniz. Tıpkı, programlarınıza yapılanmış programlamanın ilkelerini uygulamanız gerektiği gibi.
Dosyalar da Yapılanabilir
Yapılanmış programlamayı kullanmazdan evvel, geniş programlar kaydeden hepimiz, lenduha gibi uzun ve idaresi müşkül programlardan şikayet eder dururduk. Yapılanmış programlamanın ilkeleri, WHILE, IF vb. birkaç minik yapıtaşı kullanarak küçük program modülleri oluşturma yolunu gösterdi ve programınızın daha anlaşılır olmasını sağladı. Bu sistem işe yaradı. Yapılanmış programların hem kusurlarının giderilmesi hem de sürekli bakımı daha kolaydı. Aslında, yapılanmış programlama öylesine geniş kabul gördü ki, dBASE II gibi bilgisayar “dilleri” -GOTO ifadelerini atlayıp yapılanmış programlamanın yapı taşlarını dahil ederek- birkaçını kapsamına aldı.
Verilerin düzenlenmesi, bilgilerin yapılanmış programlamanın programınıza sağladığı türden bir örgütlenme (iç düzen) temin eden bir ilkeler ve araçlar bütündür. Bu yöntem, mikro bilgisayar camiasında nispeten az biliniyor. Ama, asıl bilgisayar cemaatinin başka isimleri tarafından yıllardır tanınıyor. Verilerin sisteminin farklı yönlerine (veçhelerine) database düzenleme teorisi, normalleştirme ya da veri örneklemesi deniliyor. Bu makalede verilerin düzenlenmesi yönteminin üç önemli ilkesini tartışacağız: 1. Verileriniz programlarınız kadar önemlidir. 2. Veri kütüklerinizin yapısı neredeyse içerikleri derecesinde önem taşır, 3. Bazı dosya düzenlemeleri tehlikelidir.
İmdat
İşinizde bir bilgisayar programlama guru'su (mürşit) sayılıyorsunuz. Herkes yardımcı olmanız için kapınızı aşındırıyor. Bilgisayar programlama bağlantılarına (Bak. Şekil 1.) ilişkin, HELP (İmdat) adlı düzenlenmiş bir database kütüğünüz var. Help'teki her kaydın da üç alanı var: Bilgisayar ürününün ismi, bu ürünle bağlantı kuracak kişinin adı ve bu kişinin bulunabileceği bir telefon numarası. Bu bilgiyi Help database'inizden çıkarabilmek amacıyla Findhelp adlı bir program hazırladınız. Findhelp ile bilgisayar ürününün adını verdiğinizde, Findhelp anında size yardımcı olacak kişinin adı ile telefon numarasını ekrana düşürecektir. Programı herkesin hizmetine sunun, bu sayede çok sayıda kişi bu programdan istifade edebilecektir. Bilhassa, firmanızda en çok rağbet gören Paperclip kelime işleme programında yardımcı olabilir. Programınız, Paperclip konusunda yardım için Esin'e başvurulması talimatını veriyor, ama Esin bazen meşgul olabiliyor. Doğan, Esin ölçüsünde yardım edemese de, Doğan'ın her an el altında olduğunu keşfediyor. Böylece, Doğan'ın adını Help database'e ekliyor (Bak. Şekil 2). Ama, bu yeni durum anında bir mesele yarattı. Findhelp programını hazırlarken, Help dosyasındaki bilgisayarın her parçası için bir bağlantı mevcut olduğunu varsaydınız. Şimdi, Paperclip hakkında bilgi isteyen herkese program Doğan'ın ismini veriyor. Yardım konusunda en fazla yardımcı olabilecek Esin'in adı bile geçmiyor hiç. Bu misal, veri biçimlendirmenin ilk iki ilkesini canlandırıyor. Yusuf, Doğan'ın ismini Help dosyasına ekleyerek, Findhelp programını olduğundan daha az yararlı bir hale getirdi neredeyse, Findhelp programına bir çomak sokulmuş gibi oldu. Uzun lafın kısası, zayıf veriler, zayıf programlar kadar zararlı olabilirler.
Bire bir ilkesi:
İkinci ilke, veri dosyalarınızın yapısının taşıdığı önemle ilgili. Yusuf dosyadan herhangi bir şey çıkarmasa da, bu misaldeki zararın meydana geleceğine dikkat buyurunuz, lütfen. Yusuf, her bir bilgisayar başına ancak bir bağlantının kaydedilebileceği şeklindeki bağımlılık esasını ihlal etti. Findhelp programını hazırladığınızda, bu esası varsaymıştınız. Ama Yusuf'a Help dosyasının yapısını açıkladığınızda, yalnızca dosyadaki üç alanın içeriklerini izah ettiniz. Bağlantı alanının ürün alanına bağımlılığı esası dahil, dosyanın yapısını “Ürün -> Bağlantı” işareti bu bağlantıyı ifade eder. Bağlantı alanında yalnızca bir tek değerin Ürün alanındaki her bir değere tekabül etmesi demektir. Şekil 2'de bağımlılık esasına uyulmuyor zira, aynı ürüne (Procword) iki ayrı bağlantı (Doğan ve Esin) verilmiş. Ürün -> Bağlantı bağımlılığını bir başka ifade şekli de şudur: Ürün alanı Bağlantı alanını belirler. Ürün -> Bağlantı gibi bağımlılıklar, belki de, database sistemlerinde mevcut en önemli yapı türüdür. Mesela, kullanıcı kimlik numaralarını da içeren müşteri database sistemlerinde, genellikle kimlik (ID) numarası, müşterinin adına bağlıdır. Yani, bir müşteri için yalnızca bir tek kimlik (ID) numarası tahsis edilmiştir. Müşteri dosyalarını düzenleyenler sistemde bu bağımlılık ilkesini esas alan programlar mevcut olup olmadığına dikkat etmelidirler. Ki, bu sayede, yeni bir müşterinin ismi ilave edildiğinde, aynı ada kayıtlı başka müşterilerin de bulunup bulunmadığını denetleyebilsinler.
Tehlikeli Dosya
Düzenlemesi
Bağımlılıklar, bazı düzenlemelerin tehlikeli olduğuna dair üçüncü ilke açısından da temel bir ağırlık taşır. Bu ilkeyi de bir başka örnekle canlandıracağım. Esin size telefon edip telefon numarasının değiştiğini haber veriyor. Siz de büyük bir vazifeşinaslık gösterip Procword kayıtlarına bakıyor ve gereken değişikliği yapıyorsunuz. Fakaaat, Procmail ve Procbase programlarına yardımcı olan Esin'in bağlantı değerine sahip olduğunu unuttunuz. Database'iniz şu anda Şekil 3.'de olduğu gibi bir görünüm aldı. Esin ile bağlantı kurmak amacıyla sizin database'inizi kullanan bir kimse, yüzde 67 ihtimalle onun eski -ve tabii, yanlış- numarasını bulacaktır. Dosya düzenlemenizin başka sorunları da yok değil. Diyelim ki, Spread konusunda Cevat fevkalade yardımcı oluyor ve onun özel telefon numarasını elde etmeyi başardınız. Bir gün, Spread arızalandığı için iptal edilince siz de onun kaydını database'den sildiniz. Ertesi hafta, bir arkadaşınız Cevat'ın Comm. için de fevkalade yardımcı olabileceğini söylüyor size. Ama, ne yazık ki, geçmiş olsun Cevat'ın özel telefon numarasını kaybetmiş bulunuyorsunuz. Son bir potansiyel sorun daha: Eğer Esin sizin 100 ürününüz için bağlantı değerine sahipse, onun telefon numarasını yüz ayrı yerde kaydederek database'inizde boşu boşuna bir sürü yer işgal ve israf ediyorsunuz demektir. Kuşkusuz, eğer database'inizin ileride bir telefon rehberi olarak kullanılabileceğini önceden görebilmiş olsaydınız, tüm bu sorunlarınızın önüne geçilebilirdi. Database'inizi biri bağlantılar, öbürü de telefon rehberi olmak üzere, ikiye bölerdiniz. Böylece, her şey halloluverirdi. Verilerin düzenlenmesi, sizi ileriyi görmek zorunda bırakmaksızın elverişli ve uygun dosya yapıları oluşturmanıza imkan veren tahlil araçlar da sağlar. Bu araçlar yukarıda bahsi geçen sorunların doğmasını önler; dosyalar çok geniş ve kendi aralarında ilişkili çok sayıda alanın oluşturduğu karmaşık bir manzara arzettiği zamanlarda bile... Tehlikeli dosya düzenlemelerini engellemek için, dosyanızdaki bağımlılıkların neyin nesi olduklarına iyice vakıf bulunmalısınız. Bağımlılıklar ile tehlikeli dosya yapıları arasındaki bağlantıyı, Help'teki bağımlılıkların veri düzenlenmesi işinden biraz anlayan herkese açık seçik ikaz işaretleri verdiğini göstererek açıklayacağım.
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 8
A faaliyet gösteren Akustik Elektronik COMMODORE 64'lerde ve oyun makinalarında statik ve dinamik elektrik yüklerinin neden olduğu arızaları engelleyecek bir ürün geliştirdi. Joystick'ler ile portlar arasında takılan bu ara birim, 1500 Volt'a kadar dinamik ve 400 Volt'a kadar da statik elektrik yüklerini makinadan yalıtıyor ve böylece örneğin COMMODORE 64'ün içindeki CIA (Complex Interface Adaptor— CIA) üzerinde meydana gelebilecek bir arızayı önlüyor. (CIA mi nedir? Bunu öğrenmek için bu sayıdaki “6526 Üzerine Notlar” adlı yazımıza bakacaksınız.) Joystick Port Koruyucu (JPK) olarak adlandırılan bu ara birim, joystick okuma işlemlerinde herhangi bir yavaşlamaya da neden olmuyor.
gibi, son yıllarda, bilgisayarların “ev”cilleşmesi, hemen her alanda gündelik yaşama daha fazla girmesi sürecini yaşıyoruz. Neredeyse 1960'ların mainframe'leri (büyük bilgisayarları) kadar güçlü bilgisayarlar, bütün Batı ülkelerinin süpermarket raflarında “ev bilgisayarları” etiketi altında alıcısını beklemektedir. Bu yaygınlaşma, özellikle ABD'de hemen bir yan sanayiin de doğmasına ve büyümesine neden olmuştur. Piyasada en fazla satılan bilgisayarlar için yazılım, eklenti, arabirim üretmek üzere birçok yeni şirket kurulmuş, zaten varolanlar da çalışmalarına hız vermiştir. Bu yan sanayii, akla gelen ve gelmeyen her konuya el atmış, bazen bilgisayarı yapan firmanın bile aklının ucundan geçmeyen ürünleri ortaya koyarak, bilgisayarın günlük yaşama daha fazla girmesine, yaygınlaşmasına hizmette bulunmuştur. Tahmin edileceği gibi, bu sanayiin gözdesi “Commodore”dur. Commodore'un her yeni tipinin ilk örnekleri daha üretim bandından inmeden bu firmalar tarafından alınmakta ve bu tip için üretilebilecek yazılım ve donanımı rakip firmalardan önce piyasaya sürebilmek için zamanla yarışa girilmektedir. Commodore-64, en zengin eğlence, eğitim ve iş yazılımı kütüphanesine sahip olmasının yanısıra, çeşitli eklenti ve arabirimler takılarak; konuşmakta, alarm sistemlerini kontrol etmekte, telefonda numara çevirmekte, bir radyo aracılığı ile telsiz teleks işaretlerini yazıya çevirmekte, elektriksel işaretleri bir osiloskop gibi ekranda göstermekte, video kameraya takılarak görüntü işlemekte, hatta “UFO” dedektörü olarak bile kullanılmaktadır. C-64'ün ülkemizde de yeterince yaygınlaştığına inanan Verikon, asıl faaliyet alanı olan Telekomünikasyonun yanısıra, bu alanda üretim yapmak üzere bir bölüm oluşturulmuş ve ilk ürün olarak Eprom programlayıcıyı piyasaya sunmuştur. En ileri tasarım standartlarına uygun olarak üretilen bu programlayıcı C-64'e takılarak; 2, 4, 8 ve 16 byte epromları programlamakta ve uygulama yazılımı, otostart kartuş olarak kendi içinde bulunmaktadır. Tamamen Türkçe olan yazılım, kullanmayı son derece basitleştirmekte ve okuma, boş-dolu denetleme, karşılaştırma, check-sum yapma, kısmen veya tamamen programlama, data üzerinde her türlü işleme imkân verme gibi özellikleri taşımaktadır. Kullanma kılavuzunda çeşitli eprom tipleri tanıtılmakta, C-64 için otostart kartuş programların nasıl yapılacağı, Basic ve makine dili programların nasıl kartuş haline getirileceği üzerine ayrıntılı bilgi verilmekte ve ayrıca bir de kartuş plaket şeması yeralmaktadır. Verikon ciddi yazılım evlerinin, teknik çevrelerin ve elektronik imalatçıların büyük bir ihtiyacına cevap vereceğini tahmin ettiği eprom programlayıcının ardından C-64 kullanıcılarının ilgisini çekeceğini umduğu diğer ürünlerini de sırayla piyasaya sunacaktır.