1. 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))
ARAŞTIRMA
ÖĞRENME FAALİYETİ– 1
AMAÇ
4
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
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
6
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:
s_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.
7
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ğ veritabanına bağlanılabilmekte ve kayıtlarla ilgili işlemler yapılabilmektedir