Veritabanına Giriş

VERİTABANINA GİRİŞ

Delphi'nin tercih edilmesinin en büyük nedenlerinden biriside iyi bir veritabanı desteğine sahip olması ve veritabanı programı yazmayı son derece kolaylaştırmasıdır. Hatta Delphi ile hiç kod yazmadan bir veritabanı programı yapabilirsiniz. Ancak buna rağmen veritabanı programı yazmak zor ve tecrübe isteyen bir iştir. Burada herşeyin anlatılması mümkün değil. Elimden geldiği kadar veritabanının genel olarak yapısını ve veritabanı programcılığının temelini anlatmaya çalışacağım.

Delphinin bildiğiniz gibi 3 sürümü var. Standart, Profesyonel ve Client/Server (C/S). Bu sürümlerin sunduğu veritabanı desteğide farklı. Profesyonel sürüm standart sürümden daha iyi veritabanı desteği ve araçları sunuyor, C/S ise profesyonelden daha iyi.

Database ile uğraşırken bir çok terim ile karşılaşacaksınız. BDE, SQL, client, server, table, query vs. Bunları fazla problem etmeyin. Bunları zamanla öğrenirsiniz.

Veritabanını, verilerin depolandığı tablolar şeklinde düşünebiliriz. Tablolar ise ad, soyad, telefon gibi alanlardan (field) oluşur. Bu alanların tamamı ise bir kayıtı (record) oluşturur.

Veritabanı tek tablodan oluşabileceği gibi birden fazla tablodan da oluşabilir. Yüzlerce tabloya sahip veritabanlarınız olabilir. Yine bu tablolarda 100 kayıt tutabileceğiniz gibi milyonlarca kayıtta tutabilirsiniz.

İndeksler(index) veritabanlarını hızlandırmak için kullanılır. Bir tabloda bir veya birden fazla indeks olabilir. İndeksleri seçerken en çok işlem yaptığınız alanları seçmeniz iyi olacaktır. Mesela raporlarınızı daha çok tarihe göre ve il bazında alıyorsanız tarih ve il_kodu alanlarını index tanımlamalısınız.

Tablolarda alan(field) ve kayıt(record) karıştırmamanız lazım. Mesela ad, soyad, telefon ve adres'ten oluşan bir tablonuz var. Bunu bir excel sayfası olarak düşünebilirsiniz.

Ad Soyad Telefon Adres
Ali Akın 0 216 123 45 67 ....
Zafer Yıldırım 0 212 123 45 67 ...

gibi. Burada yukarıdan aşağı doğru olan kolonlar alan'dır. Yani ad alanı, soyad alanı gibi. Soldan sağa doğru olan sütunlar ise kayıttır. Yani (Ali, Akın, 0 216 123 45 67, ...) bir kayıttır.

Veritabanları etkin kayıtın yerini göstermek için kürsor(cursor) denen bir yapı kullanırlar. Mesela siz programla Zafer Yıldırım isimli kayıtı görüntülediğiniz zaman veritabanında kürsor bu kayıtı gösterir.

Birde dataset kavramı var. Dataseti şöyle açıklayabiliriz: Birden çok tablodan elde ettiğimiz veri topluluğu. Mesela müşterilerinizin adını ve adresini sakladığınız bir tablo, siparişlerini sakladığınız bir tablo ve siparişlerin detayını sakladığınız bir tablo olmak üzere 3 tablonuz var. Siz Ali Taş isimli müşterinin Ocak ayında yaptığı siparişlerin ayrıntılarını görmek istiyorsunuz. Bu 3 tablodanda veri alırsınız. Bu bir dataset olur.

Lokal ve C/S veritabanları

Veritabanlarını iki kısımda ele alabiliriz. Lokal veritabanları ve C/S veritabanları.

Lokal veritabanları tek bir makinede çalışmak üzere tasarlanmış veritabanlarıdır. Bu verilere sadece sizin programınız erişecek ve başkaları bu verilere erişmeyecekse lokal veritanını kullanabilirsiniz. Paradox, dBase ve Access lokal veritabanlarıdır.

C/S Veritabanları: Veritabanınız bir server üzerinde durur ve birden fazla kullanıcı (client) bu verilere erişir ve işlem yapar. C/S veritabanları bir kayıta birden fazla kişinin aynı anda erişmesi gibi olayları kendileri kontrol ederler ve bu tip durumların üstesinden nasıl geleceklerini bilirler. Interbase, Oracle, SQL Server, Sybase, Informix, DB2 kullanılan C/S veritabanlarıdır.

C/S veritabanlarının bir dezavantajı veritabanını kullanan kullanıcı başına para ödemenizdir. Şirketler burada iki farklı lisans yöntemi sunuyorlar. Birincisi kullanan kullanıcı başına para ödüyorsunuz (per seat). 40 tane kullanıcınız(client) varsa 40 client lisansı almalısınız. Diyelimki kullanıcı sayınız arttı ve 50 oldu. 10 tane daha client lisansı almanız gerekir. İkinci bir yöntem ise veritabanına aynı anda kaç kullanıcı bağlanıyorsa o kadar lisans almaktır (per connection). Mesela 100 kullanıcınız veritabanını kullanıyor ancak aynı anda en fazla 30 kişi veritabanına bağlanıyorsa 30 lisans almalısınız.

C/S veritabanları içinde şu anda Oracle en iyisi. Onun dışında Türkiye piyasasında SQL Server'da çoğunlukla kullanılmakta. Benim tercihim Oracle'dan yana. Eğer C/S veritabanlarında kendinizi geliştirmek istiyorsanız Oracle veya SQL Server seçin.

Lokal veritabanları ile da birden çok kullanıcının kullandığı programlar yazmak mümkün. Ancak çoğu şeyi programla halletmeniz gerekiyor. Genellikle de problemler çıkmakta.

Tek katmanlı, iki katmanlı ve çok katmanlı database yapıları

Tek katmanlı(single-tier): Genel olarak lokal veritabanları tek katmanlıdır. Tek katmanlı yapıda program veritabanına direk ulaşır ve yapılan işlemler (kayıt ekleme, kayıt silme, değiştirme) anında gerçekleştirilir.

İki katmanlı(two-tier): Burada program client tarafında çalışır. Client tarafında çalışan program gerekli sürücüleri kullanarak serverdaki veritabanına ulaşır.

Çok katmanlı(multi-tier): Burada program yine client tarafında çalışır. Program database server'la direk bağlantı kurmaz. Server tarafında çalışan bir application server ile bağlantı kurar. Bu yapı genellikle güvenlik ve hız amacıyla kullanılır.

BDE (Borland Database Engine)

BDE Delphi'nin lokal ve C/S veritabanlarına bağlanmak için kullandığı dll ve uygulamalardır. C/S veritabanlarına bağlanmak için Delphi'nin C/S sürümünü kullanmak zorundasınız. Bu sürümle birlikte gelen SQL Links, BDE tarafından C/S veritabanlarına bağlantı için kullanılır.

Delphi BDE gibi bir yapıyı niye kullanıyor?

Normalde veritabanlarının yapıları ve API'leri farklı farklıdır. BDE programcıyı tüm bu yapıları öğrenmekten kurtararak daha üst düzey komutlarla program yapımına imkan tanır.

Delphi ile gelen sürücüler kullandığınız Delphi sürümüne göre değişir. Delphinin tüm sürümleri ile Paradox ve dBase bağlanmayı sağlayan sürücüler gelir. Bu sürücüler STANDART olarak adlandırılır ve paradox ve dBase ile yapacağınız tüm işlemleri yapmanızı sağlar. Delphi'nin C/S sürümü ile Oracle, SQL Server, Interbase, Sybase, Informix gibi C/S veritabanlarına bağlanmanızı sağlayacak sürücülerde gelir.

Alias (Takma isim/Rumuz)

Alias'lar veritabanlarına bağlantı ve bağlantının özelliklerini ayarlamak için kullanılır. Bir alias BDE'ye hangi tür bir veritabanına bağlanacağı, veritabanı dosyalarının diskte nerede olduğu gibi bilgileri bildirir. Ayrıca eğer C/S bir veritabanı kullanıyor iseniz açılış modu, kullanıcı ismi, BLOB alanların büyüklüğü gibi verileri BDE'ye bildirir.

Lokal veritabanları için Alias oluşturma

1. BDE Administrator programını çalıştırın.
2. Object menüsü altından New... komutunu verin veya klavyeden Ctrl+N tuşlarına basın.
3. Database Driver Name kısmından STANDART'ı seçin.
4. Alias'ın ismini yazın ve Object menüsünden Apply komutunu verin.
5. Definition kısmında Default Driver kısmından kullandığınız veritabanını seçin.
6. Path kısmına veritabanınızın olduğu yeri seçin.
7. Object menüsünden Apply komutunu verin veya klavyeden Ctrl+A tuşlarına basın.

 


bimeks borland component database delphi delphi.net delphi dersleri firebird help interbase makale oracle seminer software sybase veritabanı web