language

ustmenu

searchbar

Commodore 1986-06-01 Sayfa 10

Commodore Dergisi, 1 Haziran 1986, Sayfa 10

 



Özet

Procmail ve Probase programlarına bakıyor ve gerekken değişiklikleri yapıyorsunuz. Fakat a, Procmail ve Probase programlarını yardımcı olan Esin'in bağlantı değeriine sahip olduğunu unutunuz. Database'nizin şu anda Şekil 3'de olduğu gibi bir görünümü var. Esin ile bağlantı kurmak amacıyla sizin database'ini kullanmak için 67'yi ihmal eden eski tabloları, yanlış numaraları bulacaktır.



Diğer Dergiler



Tam metin içeriği

rasının değiştiğini haber veriyor. Siz de
büyük bir vazifeşinaslık gösterip Proc-
word kayıtlarına bakıyor ve gereken
değişikliği yapıyorsunuz. Fakadai,
Procmail ve Procbase programlarına
yardımcı olan Esin'in bağlantı değe-
rine sahip olduğunu unuttunuz. Datar-
base'iniz şu anda Şekil 3.'de olduğu
gibi bir görünüm aldı. Esin ile bağlantı
kurmak amacıyla sizin database'ini-
zi kullanan bir kimse, yüzde 67 ihtimal-
le onun eski -ve tabii, yanlış- numara-
sını bulacaktır.

Dosya düzenlemenizin başka sorun-
ları da yok değil. Diyelim ki, Soread
konusunda Cevat fevkalâde yardımcı
oluyor ve onunözel telefon numarası-
nı elde etmeyi başardınız. Bir gün,
Spread arızalandığı için iptal edilin-
ce siz de onun kaydını database'den
sildiniz. Ertesi hafta, bir arkadaşınız
Cevat'ın Comm. için de fevkalâde
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 so-
run 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 kay-
dederek database'inizde boşu boşu-
na bir sürü yer işgal ve israf ediyorsu-
nuz demektir.

Kuşkusuz, eğer database'inizin ile-
ride bir telefon rehberi olarak kullanı-
labileceğini önceden görebilmiş ol-
saydınız, tüm bu sorunlarınızın önüne
geçilebilirdi. Database'inizi biri bağ-
lantılar, öbürü de telefon rehberi ol-
mak üzere, ikiye bölerdiniz. Böylece,
her şey halloluverirdi.

Verilerin düzenlenmesi, sizi ileriyi
görmek zorunda bırakmaksızın elve-
rişli ve uygun dosya yapıları oluştur-
manızı imkân veren tahlil araçlar da
sağlar. Bu araçlar yukarıda bahsi ge-
çen sorunların doğmasını önler; dos-
yalar çok geniş ve kendi aralarında
ilişkili çok sayıda alanın oluşturduğu
karmaşık bir manzara arzettiği za-
manlarda bile...

Tehlikeli dosya düzenlemelerini en-
gellemek için, dosyanızdaki bağımlı-
lıkların neyin nesi olduklarına iyice va-
kıf bulunmalısınız. Bağımlılıklar ile teh-
likeli dosya yapıları arasındaki bağ-
lantıyı, Help'teki bağımlılıkların veri dü-
zenlenmesi işinden biraz anlayan her-
kese açık seçik ikaz işaretleri verdiği-
ni göstererek açıklayacağım.

Geçişli Bağımlılıklar

Farzedelim ki, Şekil 4., Help dosya-
nızdaki tüm bağımlılıkicrı liste halinde
gösteriyor. Ürün'den Bağlantı'ya ve
Bağlantı'dan Telefon'a olan geçişli
bağımlılık'a dikkat buyurunuz. Geçişli
bağımlılık A.B ve C alanları iki bağım-

10

lılığa sahip olduğu durumlarda orta-
ya çıkar: Ax > veB-> C(Şekil 2'de
bu bağımlılıklar Ürün > Bağlantı ve
Bağlantı > Telefon biçimindedir)
Ve, Bile A arasında hiç bağımlılık yok-
tur.

Herhangi bir geçişli bağımlılık teh-
likeli bir dosyalama yapısına işaret
eder. Esin'in telefon numarasının Help
dosyasında gereksiz yere tekrar edi-
lişi gibi, Ax > B- > C şeklinde bir ge-
çişli bağımlılık her zaman, A'nın farklı
değerleri için C değerleriyle birlikte
düzenlenen B değerlerinin tekrarlan-
ması sonucunu verecektir. Ve bu tek-
rarlanış, sırası geldiğinde, eğer tutar
bir de database'inizi değiştirirseniz bi-
ribirini hiç tutmayan, yanlış bilgilere
de yol açabilir. Esin'in telefon numa-
rasının yanlış kaydı meselesinde oldu-
ğu gibi. Aynı zamanda, yer israfına da
sebep olabilir, bunun örneğini, Esin'-
in telefon numarasının 100 defa kay-
dedilmesi olayında gördük.

Geçişli bağımlılıklar, dosyaların dü-
zenlenmesinde daimi olarak yapısal
sorunlara sebebiyet verirler. Eğer bu
tür geçişli bağımlılıklara dikkat eder-
seniz, yukarıda izah ettiğim güçlükler-
den kendinizi korumuş olursunuz.

Ne Yapmalı?

Bu makalenin sizi, database dosya-
larınızı yeniden bir göz gezdirmeye ve
içerdikleri bağımlılıkların bir dökümü-
nü çıkarmaya ve sonra da geçişli ba-
ğımlılıkları bir daha incelemeye sev-
kedeceğini ümit ediyorum. Ama, öy-
le uzun boylu büyüleneyim demeyin.
Yapılanmış programlamanın gerekti-
ğinde GOTO ifadelerinden istifa etme-
si gibi, verilerin düzenlenmesi teorisi
de, düzenleyiciye yönelik bir dizi uyarı
olarak düşünülmelidir. Help dosyası-
nın tehlikeli olabileceğinde gösterdi-
ğim gibi, çeşitli nedenler onu kendi
haline bırakmayı da haklı gösterebi-
lir. Mesela, bir dosyadaki geçişli ba-
ğımlılıktan kurtulmanın olağan yolu,
dosyayı iki yeni dosyaya bölmektir. Si-
zin sahip olduğunuz database siste-
mi bir seferde iki dosyaya bölünme-
ye müsait olmayabilir. Bu nedenle,

Bağımlılık
Ürün > Bağlantı

eğer dosyalarınızda geçişli ya da gö-
mülü bağımlılıklar keşfederseniz, dos-
ya yapısını değiştirmeye kalkışmadan
önce, işin daha da çatallaşabilece-
ğini de hesaba katın.

En azından iki önemli soru kalıyor
geriye: Bir geçişli veya gömülü bar-
ğımlılık keşfettiğinizde, bunu nasıl dü-
zelteceksiniz? Ve database'leri daha
işin en başından bu türden bağımlı-
lıklar yaratmamaları için, nasıl düzen-
lemek gerekiyor? Bu soruların cevap-
larını daha ilerki sayılarımızda bula-
caksınız. Ayrıca, aşağıda adları veri-
len kitapların incelenmesi, bu sorula-
rın cevaplarını kendi başınıza bulma-
nızı sağlayacaktır.

Ürün Bağlantı (o Telefon no:
Spread...... Cevat............. 568-6588
Procword...Esin.................. 937-8194
Comm....... Solihvaremem ou 485-0898
Procmail....Esin............ ..... 237-8494
PFOGİDİSB ie ESİM nis seven 237-8194

Şekil 1. Help. Bilgisayar ürünlerinin bir
dosya database'i.

Ürün Bağlantı (o Telefon no:
Procword...Doğan............. 263-2900
Spread...... CEVOİ sssüü ös 568-6588
Procword...ESİN.................. 237-8194
Comm....... Kp PA 485-0898
Procmail...Esin.................. 237-8194
Procbase...ESİN.................. 237-8194

Şekil 2. Halp'e yeni bir bağlantı ilave
ediyor. Doğan eklendi.

Ürün Bağlantı o Telefon no:

Procword...Doğan............. 525-5793
Spread...... Cevat.............. 332-3208
Procword...Esin.................. 520-4453
Comm......Salih................ 485-0898
Procmail...ESİN.................. 237-8194
Procbase...EsiN.................. 237-8194

Şekil 3. Help'de bir bağlantı için tutar-
sız, yanlış telefon numaraları, Esin

Database'de her Ürün için yalnızca bir bağlantı mevcut demektir (Bu ba-
ğımlılık esası Şekil 2'nin örneğinde geçerli değildir. Çünkü, Procward ürü-
nü için birden fazla bağlantı gösterilmiştir.)

Bağımlılık
Bağlantı— > Telefon

Database'de bir bağlantı verilmiş ve bu bağlantı ile yalnızca bir tek tele-
fon numarası bağlantılı demektir. (Bu bağımlılık esası, Şekil 4'deki örnek için
geçerli ama, Şekil 3 için geçerli değildir.)

Şekil 4. Help'te muhtemel bağımlılıklar.

commodore



Bu sayıdaki diğer sayfalar: