Commodore sayı 4, sayfa 10

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 10

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

Farzedelim ki, Şekil 4., Help dosyanızdaki tüm bağımlılıkları liste halinde gösteriyor. Ürün'den Bağlantı'ya ve Bağlantı'dan Telefon'a olan geçişli bağımlılığa dikkat buyurunuz. Geçişli bağımlılık A, B ve C alanları iki bağımlılığa sahip olduğu durumlarda ortaya çıkar: A -> B ve B -> C'de (bu bağımlılıklar Ürün -> Bağlantı ve Bağlantı -> Telefon biçimindedir) Ve, B ile A arasında hiç bağımlılık yoktur. Herhangi bir geçişli bağımlılık tehlikeli bir dosyalama yapısına işaret eder. Esin'in telefon numarasının Help dosyasında gereksiz yere tekrar edilişi gibi, A -> 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 tekrarlanması sonucunu verecektir. Ve bu tekrarlanış, sırası geldiğinde, eğer tutar bir de database'inizi değiştirirseniz biribirini hiç tutmayan, yanlış bilgilere de yol açabilir. Esin'in telefon numarası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 kaydedilmesi 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 ederseniz, yukarıda izah ettiğim güçlüklerden kendinizi korumuş olursunuz.

Ne Yapmalı?

Bu makalenin sizi, database dosyaları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 sevkedeceğini ümit ediyorum. Ama, öyle uzun boylu büyüleneyim demeyin. Yapılanmış programlamanın gerektiğinde GOTO ifadelerinden istifa etmesi 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österebilir. Mesela, bir dosyadaki geçişli bağımlılıktan kurtulmanın olağan yolu, dosyayı iki yeni dosyaya bölmektir. Sizin sahip olduğunuz database sistemi bir seferde iki dosyaya bölünmeye müsait olmayabilir. Bu nedenle, eğer dosyalarınızda geçişli ya da gömülü bağımlılıklar keşfederseniz, dosya 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ü bağı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üzenlemek gerekiyor? Bu soruların cevaplarını daha ilerki sayılarımızda bulacaksınız. Ayrıca, aşağıda adları verilen kitapların incelenmesi, bu soruların cevaplarını kendi başınıza bulmanızı sağlayacaktır.

Ürün Bağlantı — Telefon no: Spread...... Esin 568-6588 Comm....... Esin 937-8194 Comm....... Doğan 485-0898 Procmail.... Esin 237-8194 Procbase...Esin 237-8194

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

Ürün Bağlantı — Telefon no: Procword...Doğan....... 263-2900 Spread...... Sama 568-6588 Ece 237-8194 Comm....... 485-0898 Procmail ... Ece 237-8194 Procbase... 237-8194

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

Ürün Bağlantı Telefon no: Procword...Doğan....... 525-5793 Spread...... Sn 332-3208 520-1453 Comm....:.. 485-0898 Procmail .... Verm 237-8194 237-8194

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

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

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ü, Procword ürünü için birden fazla bağlantı gösterilmiştir.)

Bağımlılık > Telefon

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

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

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