Çukurova University
Faculty of Agriculture
Biometry & Genetics Unit
LOCAL RESOURCES
  • Özet
  • Abstract
  • Giriş
  • Veritabanları ve arabirim teknolojileri
  • Web ortamında veritabanı uygulamaları
  • Tartışma ve sonuç
  • Kaynaklar
  •  

    İNTERNET'TE TARIMSAL VERİTABANI UYGULAMALARI: ÇUKUROVA ÜNİVERSİTESİ ARAŞTIRMA FONU VERİTABANI ÖRNEĞİ

    Zeynel CEBECİ, Yüksel BEK
    Çukurova Üniversitesi, Bilgisayar Bilimleri Uyg. ve Arst. Mrkz., 01330 Adana/Turkey.
    zeycag@pamuk.cu.edu.tr , bek@pamuk.cu.edu.tr

    Özet

    İnternet donanım ve yazılım teknolojilerinde görülen hızlı ilerlemeler, önceleri neredeyse durağan bir yapı içinde yavaş büyüyen, sürekliliğinin sağlanması ve yararlanışı pahalı olan veri tabanı uygulamalarında yeni bir dönem başlatmıştır. İnternet'te veri tabanı uygulamaları ile:
    • Veritabanı yapıları ve içerikleri daha fazla geliştirilebilmiş ve çeşitlendirilebilmiş,
    • Veritabanı gelişimine kullanıcılar tarafından doğrudan etkileşimli olarak katkılar yapılabilmiş,
    • Veritabanında bulunan bilgilerin geniş kitlelere en ucuz ve en hızlı şekilde iletimi sağlanabilmiştir.

    Burada listelenen faydalar, hemen her dalda olduğu gibi tarımsal üretim ve araştırmalarda da veritabanı oluşturması ve kullanımına yeniden yoğun ilgi duyulmasına yol açmıştır. Dünyada tarımsal içerikli çok çeşitli veritabanları bulunmasına karşın bunlardan çok azı İnternet ortamında başarılı şekilde hizmet vermektedir. Ülkemizde de son 5 yıldır tarımsal içerikli veri tabanı hazırlama gayretleri görülmektedir. Ancak, bu veritabanlarının hemen hepsi çevrim-içi araçlarla ilgili kitlelere açılamadığından tasarım aşamasından öteye geçememişlerdir. Günümüzün İnternet teknolojileri gerek daha önce hazırlanan ve gerekse yeni hazırlanacak veritabanları için bir yaşam fırsatı sunmaktadır. Ancak, İnternet'te veri tabanı tutumu ve yararlanışını sağlayacak yol gösterici çalışmalara gereksinim olduğu da açıktır. Bu çalışma, Çukurova Üniversitesi Araştırma Fonu'nca 16 yıldır desteklenmekte olan araştırma projeleri veri tabanı üzerinde çalışma yoluyla İnternet'te veritabanı uygulamalarını örneklemek üzere yürütülmüştür.

    Anahtar sözcükler: İnternet, Web, Veritabanı, Tarım, Tarımsal veritabanı, ADO, ASP, Çukurova Üniversitesi

    AN EXAMPLE OF AGRICULTURAL DATABASES ON THE INTERNET:THE RESEARCH DATABASE OF THE ÇUKUROVA UNIVERSITY

    Zeynel CEBECI, Yuksel BEK
    Cukurova University, Computer Sci. Res. & Appl. Centre., 01330 Adana/Turkey.
    zeycag@pamuk.cu.edu.tr , bek@pamuk.cu.edu.tr

    Abstract

    The recent advances in Internet hardware and software technologies have led to a new stage for the database applications which formerly can be characterized with a relatively slow growth rate and expensive maintenance costs. The following advantages were gained by use of new Internet + database technologies:

    • Expansion in database types and their contents,
    • Interactive data contributions by individual users,
    • Cheapest and quickest distribution of updated information to a relatively large community of the users.

    The advantages listed above directed us to rediscover the power and importance of databases in agriculture as well in the other areas. However many kinds of agricultural databases do exist in the world, a few of them successfully serve on the Net. Although the considerable efforts to establish agricultural databases were also observed in Turkey for the last 5 years, these databases were inefficient to access and use by a large community of the users because none of them were available on the on-line networks. Fortunately, today's Internet technologies offer a good opportunity to recover and extend the old off-line databases. On the other hand, some preliminary studies are needed to help to the database developers in some levels. Therefore, this study was done to demonstrate the research database of Çukurova University as an agricultural database example.

    Keywords: Internet, Web, Database, Agriculture, Agricultural database, ADO, ASP, Cukurova University

    1. Giriş

    Bir yönetim sistemince yaratılan ve yönetilen birbiriyle ilişkili veri dosyaları ve/veya tablolar kümesi olarak tanımlanabilen veritabanları, önceleri yalnızca metin tipinde bilgi depolama ve yönetiminde kullanılırken günümüzde metin, ses, görüntü ve film biçimlerinde bilgi yönetimine de imkan sağlamaktadırlar (6).

    Tarımsal üretim, endüstri, işletme, ticaret, pazarlama, eğitim-öğretim ve araştırma gibi tarımsal konularda bilgi sağlamaya yönelik verileri kapsayan tarımsal veritabanları günümüz bilgi çağının vazgeçilmez öğelerinden biri durumuna gelmiştir. Tarımsal veritabanları konusunu tartışan/inceleyen bazı çalışmalar (2,5, 9, 10, 11, 12, 13) bulunmakla birlikte, ABD Tarım Bakanlığı Ulusal Tarım Kütüphanesi (USDA NAL) "Tarımsal Bilgi Ağı Merkezi (Agricultural Network Information Center = AgNIC)" tarafından işletilen "AgDB" dizini (directory) bunlar arasında en kapsamlı olanıdır (A HREF="#k9">9). AgDB, kaliteli olduğuna karar verilerek seçilmiş tarımsal ve tarımla ilgili veritabanları, veri kümeleri ve bilgi sistemlerine ait tarımsal bir veritabanı dizinidir. Bu dizinde 800'den fazla veritabanına ait açıklama ve ağ bağları yer almakta; her bir kaynağa ait kısa tanıtıcı bilgiler erişim/edinim bilgileriyle birlikte Web üzerinde yayınlanmaktadır.

    AgDB incelendiğinde, tarım ve diğer biyolojik bilimlerin hemen her dalı için oluşturulmuş veritabanları bulunduğu; bunlardan yaklaşık %80'inin Web üzerinde, % 2'sine yakının FTP, Gopher veya bunların herhangi ikisi ve çok az bir bölümünün ise her üç İnternet ortamında da hizmet verdiği anlaşılmaktadır. AgDB dizininde, başta ABD olmak üzere İngiltere, Almanya, Kanada, Avustralya, Yeni Zelanda gibi ulusal ve FAO gibi çeşitli BM örgütlerine ait uluslararası kökenli veritabanları çoğunluktadır.

    AgDB dizininde herhangi bir Türk veritabanı yer almamasına karşın, ülkemizde çevrim-dışı ve daha çok arşiv amaçlı olarak oluşturulmuş yüzlerce veritabanı ya da "veri-kümesi" bulunduğu ileri sürülebilir. Hatta, son yıllarda tarımsal amaçlı profesyonel veritabanı oluşturma gayretleri de dikkat çekmektedir (1, 7, 8). "DPT-Çukurova Üniversitesi Ziraat Fakültesi (ÇÜZF) I.Dönem GAP Entegre Projeleri" kapsamında ÇÜZF tarafından geliştirilen "GAP-DataBank Projesi" bunlardan bir diğeridir (14). GAP-DataBank, 2-3 yıl gibi bir sürede, zahmetle ve titizlikle toplanmış tarımsal çalışmalar veritabanı olarak oluşturulmasına rağmen kamu kullanımına sokulamamıştır. Diğer veritabanları için de aynı şeyler geçerlidir.

    Türkiye kökenli tarımsal veritabanlarının canlı kalamamasının (ya da ölü doğmasının) iki temel nedeni:

    • Çevrim-dışı olarak planlanmaları,
    • Profesyonel-özel mülkiyet özelliği taşımamaları

    olarak listelenebilir. Veritabanlarının yaşama şansının ve idamesinin büyük ölçüde ağ altyapısına (çevrim-içi çalışmaya) bağlı olabileceği bazı çalışmalarda da vurgulanmıştır (1). Gerçekten de, çevrim-dışı veritabanlarının içerik bakımından zenginleştirilmeleri, yönetimi ve güncellemesi çok pahalı olup aynı zamanda iyi çalışan bir organizasyon gerektirmektedir. Bu tür veritabanları ya özel kurumlar ya da fon destekli örgütler tarafından oluşturularak CD, disk, disket vb. ortam üzerinde ücret karşılığında dağıtılmaktadır. Halbuki, Türkiye'de tarımsal veritabanları oluşturma istek ve gayretleri bazı Ziraat Fakülteleri'ndeki akademik çaba ve özveriye dayanmakta ve başlangıçta oluşturulan çekirdek tablo ve arabirimlerden öteye gidememektedir.

    Gelişen İnternet teknolojileri, tüm dünyada olduğu gibi ülkemizde de veritabanlarını yeniden gündeme sokmuş, veritabanı oluşturma, kullanım ve yönetimi belki de her zamankinden daha fazla popüler duruma gelmiştir. Çünkü:

    • Veritabanı yapıları ve içerikleri daha fazla zenginleştirilebilmiş ve çeşitlendirilebilmiş,
    • Veritabanı gelişimine kullanıcıların da doğrudan etkileşimli katkıları sağlanabilmiş,
    • Veritabanında bulunan bilgilerin geniş kitlelere en ucuz ve en hızlı şekilde iletimi sağlanabilmiştir.

    İşte bu gelişmeler, parasal destek yoksunu ve profesyonel eleman istihdam sorunu yaşayabilen kurumların da veritabanı işletmesine belli düzeylerde imkan anlamına gelmektedir.

    Gerçekten de, günümüz İnternet teknolojileri gerek daha önce hazırlanan ve gerekse yeni hazırlanacak veritabanları için bir yaşam fırsatı sunmaktadır. Çünkü, İnternet üzerinde yer alan veritabanları kullanıcılarca desteklenerek büyütülebilen bir canlılık gösterirler. Bununla birlikte, İnternet'te veritabanı oluşturma ve yararlanışını örnekleyerek yol gösteren çalışmalara gereksinim olduğu da açıktır. Bu çalışma, Çukurova Üniversitesi Araştırma Fonu'nca 16 yıllık bir süre içinde desteklenmekte olan araştırma projelerini tanıtan araştırma fonu veritabanı (4) üzerinde İnternet'te veritabanı uygulamalarını örneklemek üzere yürütülmüştür. Çalışmada, Microsoft Active Server Pages (ASP) ve Advanced Data Objects (ADO) teknolojisine dayanan bir veritabanı sorgulama arabirimi tanıtılmakta ve örneklenmektedir.

    2. Veritabanları ve Arabirim Teknolojileri

    Günümüzde veritabanı teknolojileri dBASE, FoxPro ve Paradox gibi basit ilişkisel yapıda olanlardan Oracle, DB2, Sysbase, Informix, Interbase ve MS SQL Server gibi çok gelişmiş olanlara kadar geniş bir yelpaze içinde yer almaktadır. Herhangi bir uygulamada hangi veritabanın kullanılacağı teknik ve yönetsel gerekçelerle farklı olabilmesine karşın MS Access gibi orta düzey performansa sahip ve Office ailesi ürün paketi içinde bulunması nedeniyle Windows platformlarında çok yaygın olan bir veritabanı çoğu uygulama için yeterli kabul edilebilir.

    Buna karşın, hemen belirtmek gerekir ki, bir MS tanımı olarak ortaya çıkan ODBC teknolojileri veritabanı yönetim ve uygulamalarında yeni bir dönem başlatmıştır. ODBC, depolanan veri biçiminden bağımsız olarak veritabanı uygulamalarından ilişkisel SQL verilere erişim ve işletim sağlayan standart bir arabirim teknolojisidir. Böylece veritabanı tipi ne olursa olsun her veri tabanına özel bir sürücü (ODBC driver) aracılığıyla evrensel iletişim sağlanabilmektedir. Bu nedenle, bildiri kapsamında sözü edilen uygulamalar her ne kadar MS Access veritabanı için örneklense de ODBC kaynağı şeklinde çalışıldığından tüm veritabanları için geçerli sayılabilir.

    ODBC, işletim platformuna ve veritabanına bağlı olmayan (neutral) bir standart olmasına karşın herhangi bir ağ ortamında veritabanı yaratmak ve işlemek için kullanılan gelişmiş tekniklerin sayısı bir hayli fazladır. Bu konuda tanınmış ürünlerin çoğunu üreten Microsoft önce OLEDB, daha sonra DAO'nun çeşitli uyarlamaları ve en son olarak RDO ve ADO teknolojilerini uygulamaya koymuştur. OLEDB, ODBC'den farklı olarak yalnız veritabanı biçimindeki verilere değil tüm veri tiplerine erişim sağlayan ve veritabanı bileşenleri geliştirmek için de kullanılan düşük-düzey C/C++ arabirimleridir (15). OLEDB'nin geliştiriciler tarafından kullanımı kolay değildir ve bu nedenle Data Access Objects (DAO); DAO'nun uzak veri kaynaklarını yönetmedeki eksiklerini aşmak için Remote Data Objects (RDO) geliştirilmiştir. Daha sonraları ise DAO ve RDO'nun özellikleri daha esnek şekilde birleştiren ve kullanımı basit Advanced Data Objects (ADO) teknolojisi geliştirilmiştir. ADO, her ne kadar geriye doğru uyum nedeniyle RDO ve DAO desteği vermekle birlikte DAO ve RDO' daki bazı ileri özelliklerin eklenmesi beklenmektedir (16). Bu nedenle bu çalışmadaki örneklemelerde DAO teknolojileri kullanılması uygun görülmüştür.

    Veritabanı uygulamaları işlevsel bakımından iki kategoriye ayrılabilir. Bunlardan birincisi veritabanı sisteminin statik kısmından sorumlu olup veritabanın yaratılması, kopyalanması, tablolar ve alanların yapısı ve biçimi gibi rutinleri/işlemleri kapsar. Diğer kategori ise dinamik olup sorgulama ve işleme rutinlerinden oluşur.

    Tüm bu işlemlerin pek çoğu kullanıcı arabirimleri ve işleme-sorgulama kodlarıyla gerçekleştirilir ve C/C++, Delphi, Java, Perl ve Visual Basic bu amaçla en çok kullanılan diller arasındadır. Ancak, Web tabanlı uygulamalarda Javascript (JS) ve/veya Visual Basic script (VBS) dilleri en yaygın olanlarıdır. Bunlardan bazen birincisi bazen de ikincisinin kullanılması gerekli olabilmektedir. İşte programcının her ikisinden de vazgeçmek istemediği durumlar için yine en son teknolojilerden biri olan Active Server Pages (ASP) teknolojisi önemli avantajlar sunarak platformlardan bağımsız kod yazılmasını mümkün kılmaktadır (3). ASP, JS + VBS + HTML kodlarının aynı sayfada yazılabilmesine olanak sağlayan ve sunucu üzerinde etkin bileşenler mantığına dayanan bir devingen Web sayfaları teknolojisidir. Web üzerindeki birçok veritabanı-arama motoru uygulamasında kullanılan bu esnek teknoloji günümüzde gittikçe yaygınlaşma eğilimi göstermektedir.

    3.Web Ortamında Veritabanı Uygulamalarına Giriş

    İnternet'te, daha özelde Web ortamında veritabanı uygulamaları bu bildiri kapsamında sunulacak, hatta özetlenecek kadar kısa bir konu değildir. Bu nedenle, veritabanı geliştirme konusunun sadece basit sorgulamalar gibi bazı kısıtlı ayrıntıları incelenecektir.

    Web ortamında veritabanı uygulamalarında izlenecek adımları:

    • Veri kaynakları: Veritabanları ve ODBC tanımları
    • Formlar: İstemci/Sunucu etkileşimlerinin sağlanması
    • Veritabanına erişim: Sorgulama ve sonuçların görüntülenmesi

    şeklinde 3 alt başlık altında incelemek konunun anlaşılabilirliğini arttırabilecektir. Bildiride bir tam uygulama örneği olarak halen İnternet ortamından erişilebilir şekilde hizmet veren Çukurova Üniversitesi Araştırma Fonu Projeler Veritabanı seçilmiştir (4). Bunun nedeni, hem gerçek bir bilgisel veritabanı olması hem de gelecekte uygulanması muhtemel Web-temelli tarımsal veritabanlarına iyi bir örnek teşkil ettiği düşüncesi olmuştur.

    3.1. Veri kaynakları : Veritabanın Oluşturulması ve ODBC ayarlamaları

    3.1.1. Veritabanının Oluşturulması

    Access'te veritabanı oluşturmak için Dosya menüsünden Yeni veritabanı seçildikten sonra Yeni diyalog kutusundan Boş veritabanı ikonu tıklanır. Yeni Veritabanı Dosyası diyalog penceresinde veritabanına verilecek ad (örnekte arfon.mdb) ve veritabanının yaratılacağı dizin (örnekte veriler) girilip yarat butonu tıklanır.

    Access'te veritabanının yaratılmasından sonra veritabanını oluşturan tablolar tanımlanmalıdır. Örneğimizdeki Araştırma Fonu Veritabanı yalnız araştırma projeleri hakkındaki verileri içeren tek bir tablodan (projeler) oluşacaktır. Tabloyu oluşturmak üzere görüntüdeki veritabanı penceresinde Tablolar sekmesine geçilerek sırasıyla Yeni butonu tıklanıp Tasarım Görünümü seçilir. Artık proje verilerini içerecek tablonun tanımına başlanacak aşamaya gelinmiştir. Örneklenecek projeler tablosunun yapısının aşağıda Çizelge 1'de verilen gibi olacağı varsayılmıştır.

    Çizelge 1. Araştırma veritabanı projeler tablosu yapısı
    Alan Adı İçerik Tip Uzunluk Dizin Duplikasyon
    Sirano Proje sıra no Otomatik Sayı - Evet Hayır
    Projeno Proje numarası Metin 50 - Hayır
    Yurutucu Yürücü adı Metin 50 - Evet
    Yonetici Yönetici adı Metin 50 - Evet
    Birimi Yürüten birim Metin 100 - Evet
    Destekkur Destekleyenler Metin 255 - Evet
    Baslama Başlama tarihi Metin/Tarih 10 - Evet
    Bitis Bitiş tarihi Metin/Tarih 10 - Evet
    Adi Proje Adı Metin 255 - Hayır
    Destektut Destek tutarı Sayı Otomatik - Evet

    Çizelge 1'de sol tarafta listelenen sirano, projeno, yurutucu vb. alan adları, uygulama geliştirme sırasında kullanılmaktadır. Bir başka deyişle araştırma fonu veritabanındaki projeler tablosundaki kayıtlara erişim ve tüm sorgulama işlemleri sırasında burada listelenen alan adları kullanılmaktadır. Tablo kayıtlarını oluşturan kayıt alanlarının tanımlanması bitince tabloya ad verilerek (projeler) tablo kaydedilir ve gerekirse deneme amaçlı veri girişi yapılabilir. Oluşturulan örnek tablonun (projeler tablosu) yapısı ve oluşturulmasına ilişkin görüntü Şekil 1'de görülmektedir.

    Veritabanlarının ODBC kaynağı olarak kullanılması için veritabanını oluşturan tablolar ve veritabanı kapatılarak Access ortamından çıkılmalıdır. ODBC kaynak tanımlamalarına Denetim Masası'ndan 32-bit ODBC ikonuna tıklanarak başlanır.


    Şekil 1. arfon.mdb veritabanı ve projeler tablosunun oluşturulması

    3.1.2. Veritabanının ODBC Veri Kaynağı Olarak Tanımlanması

    Denetim Masası (Control Panel) açılıp, 32-bit ODBC Yapılandırması (32-bit ODBC configuration) ikonu tıklandığında ODBC Veri Kaynağı Yöneticisi (ODBC Data Source Administrator) penceresine ulaşılır. Veri tabanına ODBC bağlantısı sağlamak için bu pencerede System DSN sekmesi tıklanmalıdır. Bu yapıldığında, varsa daha önce tanımlanmış olan "ODBC sistem veri kaynakları" listelenir (Şekil 2-a). Yeni bir veri kaynağı eklemek için Add butonu tıklanarak veri kaynağı tanımlama penceresine ulaşılır.

    Veri tabanı sürücüleri listesinden Microsoft Access Driver seçilip Son butonu tıklandığında (Şekil 2–b) ODBC Microsoft Access xx Setup penceresine (Şekil 2–c) ulaşılır. Burada "veritabanı yolu" ve "veri kaynağı adı (data source name)" ve diğer bazı özellikler tanımlanır. Bu pencerede girilen ad daha sonra geliştirilecek uygulamalarda veritabanına bağlantı için kullanılan ad; bir başka deyişle "veri kaynağının adı"dır (data source name = DSN). Çalışılan örneklemede c:\veriler\arfon.mdb veritabanına cuarfon kaynak adı olarak verilmiştir. Artık daha sonra anlatılacak uygulamalarda söz konusu veritabanına ulaşmak için bu kaynak adı kullanılacaktır.

    Veri kaynağı adının tanımlanmasından sonra veri kaynağına bağlanacak olan veritabanının seçilmesi gerekir. Bu amaçla Select butonu tıklanıp Select Database penceresine ulaşılır. Burada veritabanının bulunduğu dizin ve veritabanı seçimi yapılıp Tamam butonu tıklandığında ODBC veri kaynağı tanımı tamamlanmış olur.

    System DSN penceresine geri dönüldüğünde (Şekil 2–a) yeni oluşturulan sistem veri kaynağının listeye eklenmiş olduğu görülür. Bu aşamadan sonra veritabanı tüm SQL işlemlerine açık evrensel bir veri kaynağı durumuna gelmiş olur. Başka bir deyişle fiziksel yapı değişmediği halde (veritabanı hala Access biçiminde olduğu halde) tüm scriptler ve ODBC-temelli arabirimlerin hepsine açık hale gelmiş durumdadır.

    Şekil 2-a. ODBC veri kaynağı yönetisi-System DSN

    Şekil 2-b. Veritabanı sürücü seçimi

    Şekil 2-c. Veri kaynağı adının tanımlanması

    Şekil 2-d. Veritabanının seçilmesi

    3.2. Formlar: İstemci/Sunucu Etkileşimi

    Şimdiye kadar bir veritabanının ve/veya veri kaynağının durağan kısmıyla ya da yapısal yönü ile ilgilenildi. Veri kaynağının kullanıcılara açılması yani sorgulama, ekleme, silme ve güncelleme gibi işlemlerin yapılabilmesi ise geliştirme adımlarının ikinci aşamasını oluşturmaktadır.

    Veri kaynaklarının kullanıcılarla etkileşimi için Web ortamındaki en belirgin seçenek HTML formlarıdır. HTML formları tekniğinin bu bildiri kapsamı dışında olmakla birlikte aşağıdaki kod listesinin (Kod Listesi - 1) kısaca incelenmesinde yarar olabilir. Kod listesinde sol tarafta görülen satırlar sadece anlatımı kolaylaştırmak amacıyla kullanılan satır numaraları olup yazım sırasında koda dahil edilmemelidir.

    Kod Listesi-1, Web sunucuda yer alan bir HTML belgesine (Web sayfası) ait olup örnekte arfon.htm adıyla anılmaktadır. Bu belge kullanıcı tarafından bir Web tarayıcı yazılım aracılığıyla depolandığı Web sunucudan istendiğinde Şekil 3'tekine benzer bir görüntü elde edilir. Görüntüde "Proje Adı:" açıklamalı bir kutu, altında ise Sorgula ve Yenile olmak üzere iki adet buton bulunduğu görülmektedir. İşte bu türden Web sayfalarına Web terminolojisinde "form" denilmektedir. Web ortamında sunucu üzerindeki uygulamalara veri göndermek Web formları aracılığıyla gerçekleştirilir. Elde edilen veriler sunucu üzerinde işlenerek gerekirse kullanıcıya bilgi verilir. Böylelikle istemci-sunucu etkileşimi sağlanarak devingen uygulamalar geliştirilebilir.

    Web form yapısına ait basit bir örnek Kod Listesi-1'de görülmektedir. Bu form, projeler tablosunda bulunan projeleri, "proje adı"na göre aramak için gerekli sorgulama verilerini toplamakta kullanılan bir formdur. HTML dilinde formlar, Kod Listesi-1'in 13. satırındaki gibi bir etiketi ile başlatılıp 19. satırındaki gibi </FORM> etiketi ile bitirilen form-taşıyıcıları şeklinde kodlanırlar. 13. satırdaki başlatıcı etiketteki METHOD="post" tanımı sunucuya veri iletiminde kullanılan yöntemin "post" yöntemi; ACTION="http://www.cu.edu.tr/asp/arfon.asp" tanımı ise veriler sunucuya ulaştığında yürütülecek eylemi tanımlamak için kullanılır. Eylem belirtici, anlaşılacağı üzere basit bir URL tanımı olup verileri işleyecek olan script adresini göstermektedir. Ele alınan örnekte, eylem olarak www.cu.edu.tr Web sunucusunun /asp dizininde bulunan arfon.asp isimli bir ASP belgesine erişilmektedir. Bu belgenin içeriğine ait geniş açıklamalar izleyen konu başlığı altında incelenmektedir.

    Kod Listesi 1. Sorgulama arabirim formu (arfon.htm) 01 <HTML>
    02 <HEAD>
    03 <TITLE>Araştırma Fonu Projeler Veritabanı Sorgulama</TITLE>
    04 </HEAD>
    05 <BODY BGCOLOR="white" TEXT="navy">
    06 <CENTER>
    07 FONT SIZE="5" COLOR="black">ARAŞTIRMA FONU PROJE ARAMA</FONT>
    08 <P>Bu form Ç.Ü. Araştırma Fonu veritabanı üzerinde sorgulama yapmayı
    09 örneklemek amacındadır. Aşağıda proje adı alanına aramak
    10 istediğiniz projenin tam adını veya adı içinde geçen bir sözcüğü
    11 % işaretleri arasında yazarak girip "Sorgula" butonunu tıklayınız.
    12 <HR>
    13 <FORM METHOD="post" ACTION="http://www.cu.edu.tr/asp/arfon.asp">
    14 <FONT SIZE=3 COLOR=red>Proje Adı:</FONT>
    15 <INPUT TYPE="text" SIZE="50" MAXLENGTH="255" NAME="projeadi">
    16 <HR>
    17 <INPUT TYPE="submit" VALUE="Sorgula" NAME="button">
    18 <INPUT TYPE="reset" VALUE="Yenile" NAME="button">
    19 </FORM>
    20 </CENTER>
    21 </BODY>
    22 </HTML>

    Kod listesi-1'in form taşıyıcısı içinde, 15. satırda <INPUT…> şeklinde başlayan etiket, kullanıcının form üzerinde veri girişine imkan sağlayan bir etiket tanımıdır. TYPE="text" girilecek verinin metin tipinde olduğunu, SIZE="50" giriş kutusu uzunluğunun 50 karakter olduğunu, MAXLENGTH="255" ise en fazla yazılabilecek karakter sayısının 255 olduğunu göstermektedir. NAME="projeadi" tanımı önemli bir parametre olup kullanıcının kendi Web tarayıcı ekranında girmiş olduğu veriler bu ad altında sunucuya, daha doğrusu bir önceki paragrafta anlatılan arfon.asp'ye iletilir.

    Web sayfası formlarında sunucuya veri iletiminde listeler, seçenek butonları, im kutuları (check box), komut butonları gibi bir dizi HTML elemanından yararlanabilmekle birlikte en yaygın kullanılanı metin tipi veri giriş kutularıdır.

    Kod Listesi-1'in 17. satırındaki <INPUT TYPE="submit" VALUE="Sorgula" NAME="buton"%gt; tanımlaması, Web sayfasında üzerinde "Sorgula" açıklaması bulunan bir buton görüntüler. 18. satırdaki <INPUT TYPE="reset" VALUE="Yenile" NAME="buton"> ise yine bir buton tanımı olup üzerinde "Yenile" açıklaması bulunan bir buton görüntüler. Proje adı: açıklamalı giriş kutusuna veri yazılıp "Sorgula" butonuna tıklandığında veri Web sunucuya gönderilir. "Yenile" butonu ise giriş kutusuna yazılmış veri varsa onların silinmesi, yani giriş kutusunun yeni bir giriş için temizlenmesini sağlamaktadır.

    Daha önce de değinildiği üzere bu bildirinin amacı form yapılarını tanıtmak olmamakla birlikte yukarıda yapılan kısa açıklamalar form yapısı ve işleyiş mantığına temel düzeyde bir giriş niteliğindedir. Örneğe dönülürse, kullanıcı 15. satırdaki INPUT etiketinde "projeadi" adlı alana, veritabanında aramak istediği veriyi (örnekte %tarımsal savaş%) girip "Sorgula" butonuna tıkladığında anılan veri sunucu üzerindeki script'e (arfon.asp) ulaştırılır. Burada "tarımsal savaş" sözcüklerinin başında ve sonunda % işareti kullanılmasının nedeni proje adında tarımsal savaş geçen tüm projeleri sorgulamak anlamına gelmektedir. Bir başka deyişle, kullanıcı "…tarımsal savaşın..", "…tarımsal savaşta…" gibi ekli veya türetilmiş sözcükleri de arayabilmektedir.


    Şekil 3. Sorgulama formu ekranı

    3.3. Veritabanına Erişim: Sorgulama ve Sonuçların Görüntülenmesi

    3.3.1. Programlama Seçenekleri

    Web tarayıcısındaki formlar aracılığıyla sunucuya iletilen veriler script adı verilen ve sunucu üzerinde yerleşik bazı programlar tarafından işlenirler. Script geliştirme veya kodlama için standart giriş biriminden veri okumayı sağlayabilen tüm programlama dilleri kullanılabilir. Son kuşak dil uyarlamalarının hemen hepsi bu desteği sağladığı halde, Web uygulamalarında en yaygın kullanılanları C/C++, Java, J++, Perl, Java script (JS) ve Visual Basic script (VBS) dilleridir. C/C++, Java ve J++ dillerinde geliştirilmiş göreceli çok az script uygulaması mevcut olup göreceli olarak az kullanılmaktadırlar. Önceleri çok yaygın olan ve Unix platformlarında hala popüler olan Perl iyi bir script dili özelliği taşımasına karşın bazı önemli sakıncaları da mevcuttur.

    Son yıllarda script dünyasının en tanınmış ikilisi JS ve VBS olmuştur. VBS desteği sadece Microsoft (MS) Internet Explorer tarafından verildiğinden programcılar önceleri JS tercih etmeye eğilimliydiler. Ancak MS tarafından sürülen Etkin Sunucu Sayfaları (ASP) teknolojisi bunu sorun olmaktan çıkarmış ve Web geliştirmede yeni bir dönem başlatmıştır. ASP, Web sunucu üzerinde her an çalışmaya hazır, etkin durumda bulunan ve devingen sayfa yazımına olanak sağlayan bir teknolojidir. Teknoloji, istemci-sunucu etkileşimi hazırlanmış özel ASP sunucu bileşenleri dışında aynı sayfada HTML, JS ve VBS'in herhangi biri veya tümü ile kod yazımına olanak sağlamaktadır. Bu ise devingen Web geliştirmede kolaylık, esneklik, zenginlik ve ekonomi gibi dört önemli yararı aynı anda sunmaktadır (4).

    3.3.2. Bir Sorgulama Scriptinin Anatomisi

    ASP belgeleri metin türünde belgeler olup .asp uzantılı olmak zorundadır. Web sunucudan .asp uzantılı bir belge istendiğinde Web sunucu .asp belgesini yorumlamak üzere ASP motoruna ulaştırır. ASP motoru belge içindeki script'leri yorumlayarak işletir. Script'ten elde edilen sonuçlar standart HTML biçimine dönüştürülerek kullanıcının Web tarayıcısına gönderilirler.

    Web sunucu üzerinde farklı işlerden sorumlu onlarca, yüzlerce script bulunabilir. Script'ler, sunucunun işletim izni verilmiş herhangi bir sanal dizininde yer alırlar. Kod Listesi-2'de listesi görülen arfon.asp script'i www.cu.edu.tr sunucunda /asp adlı dizinde bulunmaktadır. Arfon.asp, daha önce anlatıldığı üzere form üzerinde "Sorgula" butonu tıkladığında işletilen script'leri içermektedir. Bu script'ler, kullanıcıdan adında geçen bazı sözcükleri yazarak hakkında bilgi istenen projeleri, araştırmalar veritabanından sorgulamak ve kullanıcıya göndermek işlevine sahiptir. Sorgulama işlemi ve ASP belgeleri ile veritabanı sorgulamasını örneklemek için Kod Listesi-2 ayrıntılı olarak açıklanacaktır. Listede sol tarafta görülen rakamlar konuyu daha iyi anlatmak için verilmiş olup gerçek kodlama sırasında kullanılmamalıdır.

    Arfon.asp belgesinde kullanılan script dili ASP belgelerinde doğal dil olarak seçilmiş VBS'dir. Ancak istenildiğinde JS dili de kullanılabilir. ASP belgelerinde HTML elemanları (01-03. satırlarda olduğu gibi) doğrudan kodlanabilir. ASP'de kod yazımı için farklı iki yaklaşım olmakla birlikte en çok başvurulanı <% ve %> işaretleri kullanmaktadır. Örneğin 04. satırda görülen <% işaretleri bir scriptin başladığını göstermektedir. Bu script öbeği 13. satırda %> işaretleriyle sona ermektedir. Script öbeğinin burada bitirilmesinin nedeni 14-18. satırlarda normal HTML etiketleri yazma gereğinden kaynaklanmıştır. Daha sonra 19. satırda olduğu gibi script yazımlarına devam edilmiştir. 19. satıra dikkat edilirse burada <% ve %> işaretlerinin tek bir deyim için kullanıldığı görülmektedir. Bu tür yazım script deyimlerinin ya da kodlamasının daha kolay idare edilmesini sağlar.

    ASP belgelerinde VBS'inin nasıl kodlandığına kısaca değindikten sonra arfon.asp'yi daha yakından tanıyabiliriz. 5. satırda scriptin çalışması sırasında bir hata oluştuğunda diğer satıra geçerek işleme devam edilmesini belirten bir VBS deyimi yer almaktadır. 6. Satırda, programda kullanılacak değişkenler tanımlanmaktadır. Burada, fPrjAd sorgulama formunda projeadi alanına yerleştirilmiş olarak scripte gönderilen verileri içerecek geçici değişkeni tanımlamaktadır. 7. satırda ise form ile (Kod Listesi-1) projeadi değişkeni içinde scripte iletilen değer fPrjAd değişkenine aktarılmaktadır. Bu değişken, daha sonra, 13. satırda, sorgulama deyiminin (SQL) oluşturulmasında kullanılmaktadır. Projeadi form değişkenindeki verinin fPrjAd script değişkenine aktarılmasında request.form kullanılmaktadır. Request, kullanıcıdan gelen istem verilerini öğrenmek için kullanılan bir nesne olup bu nesnenin form yöntemi ise form verilerinin ayrıştırılmasını sağlar. Böylece Perl scriptlerinde olduğu gibi özel parsing kodlamaları gibi güçlüklerle karşılaşılmaz.

    Sekizinci satırda set Baglan = Server.CreateObject("ADODB.Connection") deyiminde Server nesnesinin CreateObject yöntemi ile bir ADO veritabanı bağlantısı tanımlanmaktadır. Bu bağlantı "Baglan" veritabanı nesnesi olarak etiketlenmektedir. 9. satırda ise Baglan.open "cuarfon","","" tanımı ile "Baglan" nesnesi cuarfon veri kaynağına atanarak açılmaktadır. Böylece, sunucu üzerinde daha önce arfon.mdb (Bknz. Bölüm 3.1) olarak yaratılan ve cuarfon adı verilen veri kaynağına bağlanılmaktadır.

    Veritabanı kayıtları üzerinde işlem yapabilmek için veri kaynağı bağlantısından sonra veri kümesi (record set) tanımına geçilir. Kod Listesi-2'de 11 ve 12. satırlarda bu işlemin nasıl yapıldığı görülmektedir. set Kayitlar = Server.CreateObject("ADODB.Recordset") komutu ile "Kayıtlar" adında bir ADO kayıt kümesi (record set) yaratılmakta ve Kayitlar.open Sql, Baglan, 3, 3 ile açılmaktadır. "Baglan" adıyla açılan veri kaynağındaki hangi tablodan hangi alanları hangi koşul ile açarak kayıt kümesi oluşturacağı gibi birçok ayrıntı SQL cümleleri ile belirtilir. İşte 10. satırdaki Sql = "SELECT * FROM projeler WHERE adi LIKE '" & fPrjAd & "'" kodu bu işlemi gerçekleştirilmeye yöneliktir. SQL söz diziminden hemen hatırlanacağı üzere SELECT cümlesini takiben veri alanları listelenmekte olup * kullanıldığında tüm alanların okunması istenmektedir. Verilerin hangi tablodan okunacağı FROM belirtecini takiben yazılır. Örnekte "projeler" tablosu seçilmiştir. WHERE cümlesi kayıt kümesini belirleyen süzgeç koşuludur. Örnekte projeler tablosundaki adi alanı içeriği kullanıcı tarafından formdan girilerek fPrjAd değişkenine aktarılan değere benzeyen kayıtlar (WHERE adi LIKE '" & fPrjAd & "'" ) süzülmektedir.

    Kod Listesi-2'de 19.-27. satırlar arasında "Kayıtlar" kayıt kümesinde yer alan kayıtlar kullanıcı tarayıcısına (istemciye) gönderilerek görüntülenmesi sağlanmaktadır. 19. satırdaki do döngüsü "Kayıtlar" adlı kayıt kümesinde son kayda ulaşıncaya kadar (do while not Kayıtlar.EOF) dönülmesi istenmekte; döngü 27. satırdaki loop ile son bulmaktadır.

    Kod Listesi 2. Sorgulama scripti : arfon.asp belgesi. 01 <HTML>
    02 <HEAD>
    03 </HEAD>
    04 <%
    05 On error resume next
    06 dim fPrjAd, Sql, Kayitlar
    07 fPrjAd = request.form("projeadi")
    08 set Baglan = Server.CreateObject("ADODB.Connection")
    09 Baglan.open "cuarfon","",""
    10 Sql = "SELECT * FROM projeler WHERE adi LIKE '" & fPrjAd & "'"
    11 set Kayitlar = Server.CreateObject("ADODB.Recordset")
    12 Kayitlar.open Sql, Baglan, 3, 3
    13 %>
    14 <BODY BGCOLOR="white" TEXT="black">
    15 <FONT COLOR="blue" SIZE="5"> Ç.Ü. ARAŞTIRMA FONU PROJELERİ</FONT><BR>
    16 <FONT COLOR="blue" SIZE="5"> SORGULAMA SONUÇLARI</FONT>
    18 <HR>
    19 <% do while not Kayitlar.Eof %>
    20 <% = Kayitlar.Fields("projeno").Value %> :
    21 <% = Kayitlar.Fields("yurutucu").Value %> ,
    22 <% = Kayitlar.Fields("yonetici").Value %> ;
    23 <% = Kayitlar.Fields("baslama").Value %><BR>
    24 <I><% = Kayitlar.Fields("adi").Value %></I>
    25 <HR>
    26 <% Kayitlar.MoveNext %>
    27 <% loop %>
    28 <% if Kayitlar.RecordCount=0 then%>
    29 <P>Üzgünüz, aradığınız kayıt bulunamamıştır.
    30 <% else %>
    31 İsteminize uygun <%= Kayitlar.RecordCount %> kayıt bulundu.
    32 <% end if %>
    33 <% Kayitlar.close %>
    34 <% Baglan.close %>
    35 </BODY>
    36 </HTML>

    Loop deyimini izleyen satırlardaki yapılan işlemlere örnek olması bakımından döngü öbeğinin ilk satırı olan 20. satır incelendiğinde <% = Kayitlar.Fields("projeno").Value %> şeklinde kod görülmektedir. ASP belgelerinde VBS kodlarının <% ve %> işaretleri arasında yazıldığı daha önce belirtilmiş olmakla birlikte burada farklı olarak <% = .. %> yapısı görülmektedir. Eşittir işareti (=) kendisini izleyen değerin Web sayfasında görüntülenmesini sağlamaktadır. Bu durumda örnekte Kayıtlar kümesinin mevcut kaydının "projeno " alanı değerinin görüntülenmesi istenmektedir. Aynı işlemler 21, 22, 23 ve 24. satırlarda sırasıyla yurutucu, yonetici, baslama ve adi alanları için yapılmaktadır. Ayrıca 23, 24 ve 25. satırlarda bazı HTML etiketlerinin kullanımı VBS+HTML karışık kodlamasının nasıl yapıldığına ilişkin güzel bir örnek oluşturmaktadır. 26. satırdaki <% Kayitlar.MoveNext %> kodu kayıtlar kümesinde izleyen kayda ilerleme sağlar.

    Kod Listesi-2' de 28-32. satırlarda kullanıcının istemiş olduğu koşullara uyan kayıt yoksa sorgulama işleminin başarısız olduğu belirten aksi halde isteme uyan kaç adet kayıt olduğunu görüntüleyen bir if-endif öbeği yer almaktadır. "Kayıtlar" kayıt kümesi içindeki kayıt sayısı Kayitlar.RecordCount yöntemiyle elde edilmektedir. 33. satırda "Kayıtlar" kayıt kümesi, 34. satırda ise "Baglan" adıyla açılmış veri kaynağı bağlantısı kapatılmaktadır. "arfon.asp"deki kodların çalışması tamamlandığında veritabanının SQL cümlesindeki koşullara uyan kayıtlar kümesindeki veriler kullanıcının Web tarayıcısına gönderilerek görüntülenir (Şekil 4).

    Kod Listesi-2'de örneklenen ASP belgesinin (arfon.asp) şimdiye kadar sunulan açıklamalardan anlaşılacağı üzere çok fazla işi çok az kod yazımı ile çözümleyecek bir uygulama olduğu anlaşılabilir. Ayrıca DAO teknikleri ile veri tabanı kaynaklarına erişim ve sorgulama işlemlerinin basit bir işlem niteliğinde olduğu görülmektedir. Dahası veritabanlarının içerik ve tiplerinin değiştirilmesi halinde kodların yeniden yazılmasına gereksinim söz konusu olmamaktadır.


    Şekil 4. Sorgulama sonuçlarının görüntülenmesi

    4. Tartışma ve Sonuç

    Bilgisayar, çoklu-ortam ve İnternet teknolojilerindeki hızlı gelişmelerin sadece veri tabanı içeriklerini zenginleştirmek değil fakat aynı zamanda biçimsel çeşitliliği sağladığı da görülmektedir. On yıl öncesine kadar sadece metin biçiminde veri depolama yeteneğinde olan veri tabanları günümüzde ses, görüntü ve video ve hatta program kodları biçiminde veri tipleriyle de karşımıza gelmektedir.

    İnternet, son kullanıcıya en ucuz ve en hızlı erişimin bir aracı haline gelmektedir. Bu durum, veri tabanlarının gelişmesinde önemli katkılar sağlayacağı ve veri tabanlarını daha da popüler hale getireceği söylenebilir.

    ASP + ADO + ODBC birleşimine dayanan Web-Veritabanı teknolojileri, veri tabanı oluşturma ve yaşam-devamlılığı (maintenance) için kolay uygulanabilir ve esnek teknolojiler durumundadır. İleride daha da basitleştirilmiş ancak profesyonel geliştirme araçları şeklinde sürümü yapılması muhtemel bu teknolojilerin veri tabanı dünyasında önemli gelişmeler sağlayacağı beklenmelidir.

    Ülkemizde tarımsal veritabanı uygulamalarının yaygınlaştırılması için Web tabanlı yeni veritabanı uygulamalarına geçilmesi ve mevcut çevrim-dışı projelerin İnternet ortamına aktarılması tarımsal bilgi ediniminde önemli katkılar sağlayabilecektir.

    Kaynaklar

    1. Açıkgöz, N., Gevrek, M.N., 1994. Tahıldat: Tahıllarda çeşit ve tohumculukla ilgili veri tabanı paketi. Tarımda Bilgisayar Uygulamaları Sempozyumu, 5-7 Ekim 1994, EÜZF, İzmir. (Bildiriler, s. 78-81).

    2. AgriWeb , 1998. National directory of Canadian agriculture and agri-food information resources available via the Internet and other electronic means. http://www.agr.ca/agriweb/agriweb.htm(26/05/1998 17.03).

    3. Cebeci, Z., Bek, Y., 1998. Devingen Web geliştirmede yeni bir araç: Microsoft Etkin Sunucu Sayfaları Teknolojisi., Türkiye 2. Uluslararası Uzaktan Eğitim Sempozyumu. 4-8 Mayıs 1998, Ankara. (Bildiriler, s. 282-289).

    4. Cebeci, Z, 1998. Çukurova Üniversitesi Araştırma Fonu Veritabanı, http://www.cu.edu.tr/asp/cubitsarfon.htm. (10/06/1998 16:45).

    5. CFBMC,1998., FBMInet Canadian Agricultural Databases, Farm Business Management Information Network, Canadian Farm Business Management Council . http://fbminet.ca/database.htm (28/05/1998 16:20).

    6. CMP Media Inc., 1998. Tech Encyclopedia. http://www.techweb.com/encyclopedia/defineterm?term=DATABASE&exact=1 (27/05/1998 09.45).

    7. Çakır, C., Bülent, M., Işın, Ş. , 1994. Tarımsal işletmecilik veri tabanının esasları. Tarımda Bilgisayar Uygulamaları Sempozyumu, 5-7 Ekim 1994, EÜZF, İzmir. (Bildiriler, s. 67-72).

    8. Demirci, M., Nemli, Y., 1994. Veritabanı-Resim destekli proğramlama ile flora teşhisi. Tarımda Bilgisayar Uygulamaları Sempozyumu, 5-7 Ekim 1994, EÜZF, İzmir. (Bildiriler, s. 73-77).

    9. NALUSDA 1998a. AgDB: Agriculture-Related Information Systems, Databases, and Datasets. AgNIC, Agriculture Network Information Center. (Last Update on 20 May 1998). http://www.agnic.nal.usda.gov/agdb/erdcalfr.html, http://www.agnic.org/agdb/erdcalfr.html , (26/05/1998 16.00).

    10. NALUSDA, 1998b. Links to selected Ag. Related databases. http://www.nalusda.gov/ref/agdbase.htm (27/05/1998 11.20).

    11. NALUSDA, 1998c. AgNIC DirAgIr: Directories of Agriculture-related Internet Information Resources. AgNIC, Agriculture Network Information Center. (Last Update on 20 May 1998). http://www.agnic.org/diragis/ . (27/05/1998 12.00).

    12. NALUSDA, 1998d. The National Agricultural Database Laboratory. http://www.wisc.edu/adds. (27/05/1998 17.15).

    13. NCSU, 1998. WWW Virtual Library for Agriculture Programs and Agricultural Databases. http://ipmwww.ncsu.edu/cernag/databases.html (29/05/1998 13.05).

    14. Pekel, E., Bek, Y., Cebeci, Z., 1992. GAP Bölgesi'nde Tarımsal Konularda Veri Bankası (Data Bank) Oluşturulması Projesi: GAP Bölgesi Tarımsal Çalışmalar Dökümantasyon Kataloğu. Ç.Ü. Ziraat Fakültesi Genel Yayın No: 16, GAP Yayınları No: 53, Mart 1992, Adana. 294 s.

    15. Rauch, S. , 1997. Manage data from myriad sourcess with the universal data access interfaces. Microsoft Systems Journal, http://www.mcirosoft.com/msj/0997/universaldata.htm (08/06/1998 11.00).

    16. Spencer, K., 1997. Using databases with Visual Basic. http://www.entmag.com/archive/1997/oct8/1008ss.html-ssi.(08/06/1998 15.30)


    BIOMETRY and GENETICS UNIT
    Çukurova University, Faculty of Agriculture, Dept. of Animal Sci.
    011330 Adana, Turkey

    URL: http://www.cu.edu.tr/fakulteler/zb/bgabd/documents/zcebeci/tbus/inttarvtb.htm
    Created on June 10th, 1996
    Last updated on September 15th, 1998
    Designed by Zeynel Cebeci & Yüksel Bek
    Maintained by Computer Rsch. & Appl. Centre at the Cukurova University
    Visited times since September 15th, 1998
    (c) All rights reserved.
    Best viewed by MS Internet Explorer 4.0+ and Netscape Communicator 4.0+ browsers.
    Designed with small fonts at 800x600 display resolution level under MS Windows'95 platform.
    Back Home Forward