Bilgi Tabanlı Sistemler (Knowledge Based Systems – KBS) -3
3.4.2.1.3.1 Kavramsal Modelleme
Bilindiği gibi bir yazılım geliştirme sistemi veriler ve bu veriler üzerine gerçekleştirilen süreçler şeklinde iki temel kavramdan oluşmaktadır. Bu nedenle bir yazılım modelinin geliştirilmesi sırasında problemin ayrıştırılması veri ya da süreç faktörünün önemine göre gerçekleştirilir. Süreçleri temel alan programlama modelleri C, Pascal gibi yapısal programlama dillerinin birer kara kutu gibi işleyen fonksiyonlarını kullanırlar. Oysa veriler temel alınarak programlama tasarımı yapan nesneye dayalı programlama yöntemlerinde, bilgi tabanlı sistemlerde olduğu gibi, sistemin hangi süreçleri ne tür veriler üzerinde uyguladığı araştırılır. Gerçek dünya uygulamaları esas olarak iki kısımdan oluşmaktadır:
- Varlıkların simgelenişinin incelendiği nesneye yönelik veri modellerinin desteklenmesi,
- Mevcut nesneye-yönelik veri tabanı sistemleri ile tam olarak desteklenmeyen varlıklar arası ilişkilerin simgelenmesi.
Nesneye yönelik veri tabanlarının gelişimi hem nesneye yönelik programlama dillerinin hem de anlamsal veri modellerinin gelişmesi ile güçlenmiştir. Aslında nesneye yönelik veri tabanının yapısal bileºenlerinin anlamsal veri modelleri ile ortak yönleri olmasına rağmen, ilişkilerin ele alınış tarzı daha çok nesneye yönelik programlama dillerdeki gibi gerçeklenir. İlişkileri nesneleri kullanarak modellemek her zaman kolay olmayabilir.
Nesneye yönelik veri tabanı sistemlerinde varlıklar arası ilişkiler:
Nesne yapısının bir parçasını oluşturan nesne özelliklerinin simgelendiği iç-varlık ilişkisi; örneğin kitap ile kitabın başlığı arasındaki ilişki,
Varlıklar arası ilişkilerin daha zayıf olduğu ara-varlık ilişkisi; örneğin kurum ile kurumda çalışanlar ilişkisi şeklinde nesne özelliklerine göre sınıflandırılabilir (Beraha S., Su J. 1999).
Bu iki tanım arasındaki farkı şöyle de açıklayabiliriz:
- Iç-varlık ilişkisi varlıklarla bir anlam taşırken, ara-varlık ilişkileri varlıklardan ayrı simgelenirler.
- Varlıkların öncelikli özelliklerinin ara varlık ilişkilerinden ayırt edilmesi nedeni ile iç varlık ilişkileri ile oluşturulan veri tabanı oldukça esnek; yani modülerdir.
- Ara-varlık ilişkilerinde ise nesne özellikleri bazı karmaşık ilişkileri tam olarak gerçekleştiremez; örneğin yuvalanmış ilişkilerin sıradüzensel olarak örgütleşmesi nedeni ile, işlenmeleri oldukça güçtür. Bir düzeydeki bir varlık bir sonraki düzeydeki bir dizi varlık ile ilişkilendirilebilir.
- Ara varlık ilişkilerinin tanımlanması ve işlenmesi SQL benzeri yüksek düzeyli çalışmalarla desteklenebilir.
Avrupa kökenli O2, Amerika kökenli GemStone ve ONTOS nesneye yönelik veri tabanı yönetim sistemleri:
1. Uygulama dilleri ve platform farklılıkları
2. Temel veri tanımlama ve yönetim özellikleri,
3. Aktif/pasif nesnelerin kullanımı,
4. Çoklu miras ilişkisini destekleme,
5. Birleşik nesne özellikleri destekleme,
6. Dinamik şema gelişim özellikleri,
7. Veri depolama yönetimi,
8. Bildirim değiştirebilme özelliği,
9. Uygunluk ve sorgu yönetimi,
10. Veri tabanı erişim hızı ve güvenlik,
11. Kullanıcı ara yüzleri.
gibi özellikleri ile farklılık gösteren, C++ programlama dilinde (GemStone ilave olarak Smalltalk ‘u da desteklemektedir) geliştirilmiş ticari nesneye yönelik veri tabanı yönetim sistemleridir (Barillere B. Ve ark. 1993).
3.4.2.1.3.1.1 Kavramsal Modellemenin Önemi
Nesneye yönelik bir dil gibi kavramsal modelleme dili de bir gerçek dünya varlığı ile ilgili tüm bilgiyi davranışı ile birlikte nesnenin kendisinde kuşatır. Kavramsal modelleme dilleri gerçek dünya varlıklarını bilgisayar modelindeki nesneye doğrudan eşleştirmesi nedeni ile, bu tür sistemlerin tasarımı ve yaşama geçirmesi oldukça kolaydır. İlk nesneye yönelik standart dillerden olan Smalltalk, örnek değişkenlerinin özelliklerle yer değiştirmesi ile kısıtların bütünlüğünü ve ilişkilerin diğer nesnelerle semantiğini kuşatmıştır.
İlişkisel veri modeli pek çok gerçek dünya veritabanı yönetiminde için standart olarak uygulanmaktadır. Geliştirilecek modelin, örneğin bir bilgi modelinin, veri tabanları ile varlıklar arasındaki ilişkilerin değerlerinin tutulduğu tablolarla uyumlu olup olmadığı araştırılır. Bu yaklaşım, yüzyıllardan beri insanların bilgi dizilerini tutmakta kullandığı iki boyutlu tablolara çok benzeyen tek ifadeli yapısı ile oldukça güçlüdür. Sonucun olumlu olması için de veri güvenilirliği ve başarım oranı yüksek uygulamaların geliştirilmesi gerekir. Bu nedenle ilişkisel veri tabanı teknolojisi karmaşık bilgi sistemlerinin isterlerini tam olarak karşılayamaz. Oysa nesneye yönelik veri tabanı tasarımı ile son derece karmaşık bilginin hızlı bir şekilde yönetilmesi mümkündür. Herhangi bir gerçek dünya varlığının tanımlanması için gerekli olan bilginin, Pascal ‘da kayıtlarla ve C’ de yapılarla tek bir depolama nesnesinde depolanabilmesine rağmen, bu varlığın çeşitli mesajlara karşı göstereceği davranış ve ilişkilerinin diğer nesneler üzerindeki etkileri ve kısıtlarının programın tümüne yayılması zorunluluğu vardır.
Bilindiği gibi veri tabanı kendi içinde verinin anlamı hakkında hiç bir şey saklayamaz. Bu da veri tabanı uygulamalarında sınırlama oluşturmuştur. Oysa anlambilimsel veri modeli verinin yapısının Geliştirilmesini sağlayarak uygulamalardaki kısıtları ortadan kaldırmıştır (ChiMu Corporation. 2002). Anlambilimsel veri modelleri kavramsal modellemenin üst seviyesinde geliştirilir, tasarımın gerçekleştirme aşaması ile bir bağlantısı yoktur. Bu tür modellemede ifade kolaylığı, basitlik, kesinlik ve simgesellik temel ilkelerdir. Anlambilimsel ağlarda düğümler nesneleri simgelerken, bağlantılar veya yaylar bağıntıları simgeler. Anlambilimsel modellerin olumlu yönleri kolay anlaşılabilirliği, mirası desteklemesi, bilgiyi incelemenin doğal yolu olması iken; olumsuz yönleri de istisna durumlarını modellemedeki zorluk, yordamsal bilgiyi simgelemedeki güçlük, düğümleri ve bağıntıları tanımlamak için bir standart geliştirilmemiş olmasıdır. Aslında ticari veri tabanı yönetim sistemleri anlambilimsel veri modelleme kavramları kapsamında değildir. Çünkü bu tür modelleme ile birbirinden farklı veya çelişkili yorumlar ortaya çıkabilir. Ayrıca anlambilimsel içeriğin ilişkisel bir yaşama geçirmede korunması da oldukça güçtür. Veritabanında bilginin birden fazla anlamının sunulmasını mümkün kılan anlambilimsel veri modelleri çeşitli veri soyutlamaları ile geliştirilebilir.( Z, ALTAN, 2002)
3.4.2.1.3.1.2 Nesne Modelleme Tekniği: Veri Soyutlamaları
Veri soyutlamaları ile gerçek dünya, varlıklar ve varlıklar arasındaki ilişkiler şeklinde çeşitli bakış açılarına göre tanımlanabilir (Goldstein R.C., Storey V.C. , 1999).
- Alt tip-üst tip ilişkilerini simgeleyen kapsama,
- İki veya daha fazla nesne arasındaki ilişkiye izin vererek daha yüksek seviyede bir nesne oluşturan kümeleşme,
- Öğelerin koleksiyonunu daha yüksek seviyede bir küme olarak tanımlayan birliktelik
İncelenen sistemin yapısını simgeleyen nesneye yönelik modelleme metodolojisidir.
Kapsama soyutlaması genellikle “is -a” ifadesi ile gösterilir. İlişkilerde “A is -a B” dir. A özel bir varlık tipi, B ise genel nesne tipi ile ilgilidir. Kapsama soyutlaması birçok çeşide ayrılabilir:
- Sınıflandırma, varlık oluşumu ve onun uygun varlık tipi arasında bir kapsama soyutlamasıdır. Örneğin; “Ayşe sekreterdir”. Varlık tipinden varlık oluşumuna doğru ters ilişki de tanımlanabilir.
- Genel varlık tipi birbiriyle çakışmayan özel varlık tiplerinin birleşimi olarak tanımlandığında
- bu soyutlama genelleştirme oluşturur. Özel varlık tipleri genelin bir parçasıdır. Örneğin; öğrenci lisans ve yüksek lisans öğrencilerin genelleştirmesidir.
- Özelleştirme ise genelleştirmenin tersidir. Genel varlık tipi olayları bağımsız altsınıflar şeklinde görüntüleyen bazı ayırt edici karakteristikler içerir. Örneğin; mezun öğrenciler öğrencilerin özel bir halidir.
- Tek bir genellemeye birden fazla özel varlık tipi ilişkilendirildiğinde, özel varlıklar arasındaki ilişkiyi kontrol etmek gerekir. Örneğin özel varlık tipi numarasının genel varlık tipi için tanımlanması gerekebilir. Çalışanlar isimli genel varlık tipinin; sekreter, mühendis, yönetici, tam zamanlı ve yarı zamanlı çalışanlar varlık tiplerini içerdiği kabul edilsin. Bunların bir grubu tam zamanlı ve yarı zamanlı çalışanlar varlıkları olarak tüm çalışanları içerirler ve örtüşme oluşturmazlar. Bir başka grup ise teknisyen, sekreter ve mühendis olarak tüm çalışanları içermemesine rağmen örtüşme de oluşturmaz. Fakat bu iki grup arasında örtüşme olabilir. Örtüşme olduğunda özel varlıklar arasında alt küme sıradüzeni oluşur.( Z, ALTAN, 2002)
Kümeleşme, nesneler arasındaki ilişkinin daha yüksek düzeyde bir nesne olarak ele alındığı soyutlamadır. Küme oluşturulurken kümeyi oluşturan nesnelerin özgül özellikleri bastırılır. Örnek olarak “rezervasyon” otel, insan ve tarihin kümeleşmiş halidir. Nesnenin kendine ait özelliği olabileceği gibi başka ilişkiler de içerebilir. Üç tür kümeleşme tanımlanabilir:
- Bir özellik diğer özelliklerin birleşimi olabilir. Mesela “adres ” özelliği numara, cadde, posta kutusu, posta kodu özelliklerinin bir kümeleşmesidir.
- Bir varlık, varlık ve /veya özelliklerin bir toplaşımı olabilir. Örneğin komite bir varlık olarak, bir özellik olan isimden, bir varlık olan başkandan, bir varlık olan sekreterden, varlık takımı olan öğelerden meydana gelebilir.
- Bir ilişki, varlık ve özelliklerin bir toplaşımı olabilir. Örneğin; görev ilişkisi, hem çalışan ve proje varlık tiplerinin hem de başlangıç tarihi ve bitiş tarihi özelliklerinin kümeleşmesi olabilir.
Kümeleşmenin bileşenleri seviyelerde tanımlanabilir. Örneğin, klima arabanın amaca uygun bileşeni (olması şart olmayan) iken, motor belirleyici (karakteristik bileşenin tek başına kümeleşme oluşturması) bileşenidir. Kümeleşmenin bütünlüğünü sağlamak için, uygun olmayan bileşenler kaldırılmalı, tüm belirleyici bileşenler tanımlanmalı, herhangi bir belirleyici bileşen sadece bir defa kullanılmalıdır. Birliktelik, öğe nesnelerin ayrıntılarının bastırıldığı, küme nesnesinin özelliklerinin ön plana çıkarıldığı soyutlama tipidir. Kümeleşme için tanımlanan komite örneğindeki öğelik, kişi varlık tipinin birlikteliğidir.
Birliktelik “komitenin öğelik bileşeni” şeklinde tanımlandığında ilişki için de kullanılmış olur. Birlikteliğin öğelerinin tümü aynı cinsten olmalıdır. Oysa kümeleşmenin bileşenleri çoğunlukla aynı cinsten değildir. Birliktelik soyutlaması ile sonlu sayıda öğe kullanılabilmesine rağmen, kümeleşmede bileşenlerin sayısı sabit olmalıdır.( Z, ALTAN, 2002)
Farklı gerçek dünya kavramlarını modellemede kullandığımız ve yukarıdaki veri soyutlamalarına göre tanımlanan nesneler bir içerik sıradüzeni oluştururlar. Aşağıdaki şekilde en genel şekilde çoklu içerik temsil edilmektedir.

Şekil 2 Bisiklet Tasarımı İçin İçerik Sıradüzeni( Z, ALTAN, 2002)
Yukarıdaki tasarımda her bir bileşen bir nesne olarak modellenir ve bu bileşenlerin içerikleri aynı zamanda nesne içeriklerini oluşturur. Bir simgelenişle sınıflara ait değişkenlerin tümü tanımlanmamış olabilir. Örneğin bisiklet sınıfı marka-ismi isimli bir değişkende içerebilir. ( Z, ALTAN, 2002)










