Veritabanına Giriş
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
|