VERİ TABANI BİLEŞENLERİ
Bir veri tabanı üzerinde birden fazla veri tabanı bileşeni vardır. Bu bileşenler, saklanmak istenen ham bilginin, belli bir formatta alınarak veri haline gelmesi işlemini gerçekleştirir.
Tablolar (Tables)
Verilerin mantıksal olarak saklandığı ortamlardır. Tabloları adlandırırken tablonun içeriği ile uyumlu olmasına dikkat etmek gerekir. Tablo adlarının ve tablolarda kullanılan sütun adlarının kaç karakter uzunluğunda olduğu, üzerinde çalışılan veri tabanının tablo ve sütun özelliklerinden öğrenilmelidir. Örnek olarak, bir kurumda satış ve üretim bölümünü ilgilendiren iki ayrı tabloyu örnek alalım. Tablolar şöyle olsun:
SATIŞ bölümü tabloları ÜRETİM bölümü tabloları
st_urun ur_malzeme
st_musteri ur_malzeme_tip
Tablolar veri tabanında Create table tablo_adı biçiminde oluşturulur. Bir veri tabanında tabloları mantıksal olarak gruplayabilmek de olasıdır. Örnekteki “st” satış bölümünü, “ur” üretim bölümünü anlatmaktadır. Bu şekilde bir tanımlama kullanarak mantıksal olarak bir gruplama ya da düzenleme yapılmış olur.
Sütunlar (Columns)
Sütunlar ortak özellikli verileri tanımlar. Sütunlara verilen adlar, konusuna göre anlamlı olmalıdır. İlk iki ya da dört karakterlik kısmı, ait olduğu tablonun adının kısaltması olması tercih edilir.
Örnek olarak;
st_urun ( st_malzeme(
urun_no smallint , malz_no smallint,
urun_ad char(20)) malz_tip smallint))
Satırlar (Rows)
Bir tabloda yer alan her bir kayıt bir satıra karşılık gelir.
Alanlar (Fields)
Bir sütundaki aynı türdeki bilginin her bir kısmını saklamak üzere yapılan tanımlamalardır. Bir alan tanımlanırken veri tipinin belirlenmesi gerekir.
İndeksler
Eğer bir tabloda birkaç yüz kayıt olduğu düşünülürse bu tabloda işlem yapmak oldukça kolaydır. Ancak, tablonun milyonlarca kaydının olduğu düşünülürse bu tabloyu belirli bir alana göre yapılandırmak gerekir. Böylece verilere erişim daha kısa sürede olacaktır. İşte bu yapılara indeks denilmektedir.
İndeksler de herhangi bir tabloya/* bağlı olarak çalışır, adlandırılmaları da bu şekilde yapılır.
Örnek olarak;
st-urun(
urun_no smallint,
urun_ad char(20))
İndeksler, tablodaki kayıtları fiziki olarak sıraya koyuyorsa “Kümelemeli (Clustered)
İndeks”, fiziki olarak sıraya koymuyorsa “Kümelemesiz (NonClustered) İndeks adını alır.
İndeksler unique (tekil) ya da non-unique (tekil olmayan-duplicate) olarak oluşturulabilir. İndekslerin adlandırılma şekli şöyle olmalıdır.
tablo_adı + sütun_adı + unique/non-unique + idx (indeks)
“st_urun” tablosu “urun_no” sütununa göre unique olarak şu şekilde indekslenir:
st_urun_urun_no_idx
“Composite indeks” kullanılacaksa, yani birden fazla sütun üstünde indeks oluşturmak isteniyorsa şu biçimde olur:
st_urun_urun_no + urun_ad + idx
İndexlerin adlandırılma şekli şöyle olmalıdır:
tablo_adı + sütun_adı1 + sütun_adı2 + unique/non-unique + idx
1 2 3 4 5
Burada 2 ve 3 nu.lı alanlarda sütun adlarını görüyoruz; bu aynı zamanda, indeksin “urun_no” sütunu altında, “urun_ad” sütununa göre yapılmasını sağlar. İndeks oluşturulurken adlarının uzun olmasından kaynaklanan bir hatayla karşılaşılırsa, veri tabanının kabul ettiği maksimum ad uzunluğuna göre, anlam bütünlüğünü bozmadan ismi kısaltmak gerekir.
Primary Key (Birincil Anahtar)
Primary key, bir tablonun seçilen bazı sütunlarındaki verinin farklı satırlarda tekrarlanmamasını (Bir kez kullanılmasını) işaret eder. T.C. Kimlik no.gibi alanlar seçilmelidir. Adlandırılma şekli şöyledir:
kolon_adı_pk
ya da
pk_kolon_adı
Birden fazla sütun bileşik olarak “birincil anahtar” olarak tanımlanabilir. Örneğin;
urun_no_urun_ad_pk
ya da
pk urun_no_urun_ad
Foreign Key (Yabancı Anahtar)
Foreign key, birbirleriyle ilişkili olan tabloların ilişkisini sütun seviyesinde ifade eder.
İki tabloda birbirleri ile mantıksal ve fiziksel ilişkisi olan sütunlardır.
Referans alınan tablonun_Sütun_adı_Referans edilen tablonun_Sütun_adı_fk
ya da
fk_ Referans alınan tablonun_Sütun_adı_ Referans edilen tablonun_Sütun_adı
Birden fazla sütun bileşik olarak yabancı anahtar olarak tanımlanabilir. Örneğin;
urun_no_urun_ad_pk
ya da
pk urun_no_urun_ad
Constraint (Kısıtlayıcı)
Herhangi bir alan için girilebilecek verileri sınırlayan kurallara “Kısıtlayıcı” denir.
Birincil anahtar kısıtlayıcı, tekil kısıtlayıcı, default (varsayılan) kısıtlayıcı, yabancı anahtar kısıtlayıcı, kontrol kısıtlayıcı olmak üzere beş tür kısıtlayıcı vardır. Eğer kullanıcı, kısıtlayıcının istediği şekilde veri girmezse veri tabanı yönetim sistemi hata verir. Bunun sonucu olarak da kullanıcının keyfi değerler girmesi önlenmiş olur.
Bir tablodaki sütun adları kullanılarak verilerin sınırları belirlenebilir, ilk giriş değeri DEFAULT olarak atanabilir. Adlandırma biçimi şöyledir:
kolon_adı_chk
ya da
kolon_adı_def
Örnek olarak, “st_urun” tablosunun “urun_no” kolonu üzerinde bir constraint olduğu
şu şekilde belirtilir:
st_urun_no_chk
Stored Procedures (Kaydedilmiş Prosedürler):
SQL ifadeleri çalıştırılmadan önce veri tabanı yönetim sistemi tarafından değerlendirilerek ve derlenerek sonuçları geriye döndürülür. Değerlendirilen ve derlenen SQL ifadeleri veri tabanı yönetim sisteminin içinde saklanabilir. Saklanabilen bu nesnelere Stored Procedure-Kaydedilmiş Prosedürler denir.
Kaydedilmiş prosedürlere verilen adlar yaptıkları iş ve işlemlerle uyumlu olmalıdır.
Kaydedilmiş prosedürler yaptıkları işleme göre mantıksal olarak gruplandırılabilir.
Örneğin, satış bölümündeki üretim tablosunda insert (bilgi girişi) işlemi yapan bir
kaydedilmiş prosedürün adı sp_ur_insert _bil, delete (silme) işlemi yapan bir kaydedilmiş prosedürün adı sp_ur_delete_bil olursa mantıksal olarak bir gruplandırma yapılmış olur.
Kaydedilmiş prosedürler veri tabanında create procedure SP_adı ile oluşturulup execute SP_adı ile çalıştırılır.
Triggers (Tetikleyiciler)
Tetikleyiciler kaydedilmiş prosedürlerin özel bir türüdür. Yapılan bir işlem sonucunda otomatik olarak arka planda çalışması için hazırlanmış bir prosedürdür. Personel tablosundan bir kayıt silinince maaş tablosundan da silinmesi gereklidir.
Tetikleyicilerin adlandırmaları kaydedilmiş prosedürlerle aynı özellikleri taşır, mantıksal gruplandırmaya dikkat edilir. Tetikleyiciler tablo bazında çalışır, dolayısıyla hangi tablo üstünde çalışıyorlarsa o tablonun adı ile birlikte kullanılır.
Bir tetikleyici üzerinde insert (kayıt ekleme), update (kayıt güncelleme), delete (kayıt silme) işlemleri olabilir.
Tetikleyici adları, tablo adı ile birlikte yaptıkları işlemi de yansıtmalıdır.
Örneğin; ürün tablosunda “st_ urun_ekle” kayıt ekleme işlemi yapan, “st_ urun_sil” kayıt silme işlemi yapan, “st_ urun_gncl” ise güncelleme işlemi yapan bir tetikleyici olarak veri tabanında Create trigger trigger_adı şeklinde oluşturulur.
CLR (Common Language Runtime)
Ağ veri tabanı içerisine yerleşmiş olan CLR ile .Net programlama dillerinin server içerisinde çalışacak program parçaları geliştirilebilmektedir. Bir arayüz aracılığıyla ağ veri tabanına bağlanılabilmekte ve kayıtlarla ilgili işlemler yapılabilmektedir.