Arkadaslar veri tabanı nedir? Database ve veri tabanı aynı şeyler değilmi bir yanlışım yok...

İçinde bulunan nesneleri vasıtasıyla çok büyük verileri saklayan ve bu verilerle işlem yapan bir platformdur. Database ortamındaki tablolara veriler, direk kendi içindeki çeşitli tools (araçlar) aracılığı ile işlenebildiği gibi yazılan arayüzlerle de (interface) işlenebilir. (örnek: visual basic, asp, php vb. uygulamalarla geliştirilmiş arayüzler) Son yıllarda veri tabanları çok sayıda tabloların bir araya getirilmesi sonucu oluşturulmaktadır. Dolayısıyla ortaya bu tablolar ya da diğer veri tabanı nesneleri arasında çeşitli ilişkiler kurma durumu çıkmıştır. Ortaya çıkan bu teknolojik yapıya da ilişkisel veritabanı (relational database) denmiştir (Bu türe uyan en yaygın veri tabanları: Access, mysql, sql server, oracle v.b.gibi). İlişkisel model şu özelliklere sahiptir: * nesneler ve ilişkileri (örnek:iki tablo arasında ilişki) * ilişkiler üzerinde tanımlı işlemler (örnek: İlişki kurulacak ana toblo üzerindeki alanda PK = Primary Key (birincil anahtar )uygulamak ya da tabloda index oluşturmak…) * doğruluk ve tutarlılık için veri bütünlüğü (İlişki kurulan tablolar arasındaki alanların içeriği olan verilerin maksimum uzunlukları ve tipleri aynı olmalıdır.)

Veritabanında bulunan temel kavramlar:

- Tablo (Table): Veri saklama için temel yapıdır. Bir veya daha fazla sütundan ve sıfir veya daha fazla satırdan oluşur. - Sütun (Column): Tablodaki bir veri türüne karşılık gelir. - Satır (Row): Kaydın (record) diğer adıdır. Sütun değerleri grubudur. - Alan (Field): Bir satır-sütun koordinatındaki değerdir. Alanda veri bulunmazsa, bu alan NULL değer içerir denir. - Birincil Anahtar (Primary Key): Tekrarlanmayacak alandır. Buradaki veri aynı tablo içinde birden fazla tekrarlanamaz . (örnek: personel bilgilerinde T.C.No ) - Yabancı Anahtar (Foreign Key): Aynı veya farklı bir tablo içindeki birincil anahtarlara başvuran (referencing) sütun veya sütun gruplarıdır. Yabancı anahtar değeri bir birincil anahtar değeri ile aynı olmalı ve NULL olmamalıdır.

Tablo çeşitleri:

Gerçek anlamda bir veri tabanı oluşturulurken aşağıdaki başlıklarda tablolar oluşturulmalıdır. 1. Ana Tablo (main table): Veri tabanında mutlaka olması gereken tablo çeşididir. Ana tabloda mutlaka bir birincil anahtar (primary key) alanı olması gerekir. Çünkü bu tabloya bağlı bir ya da daha fazla alt tablo olabilir. Bu tablolarla ilişki söz konusu alanda kurulur. (örnek: T.C. kimlik no) Bu alan boş veri içeremez, veri tekrarı olamaz. 2. Alt tablolar (sub tables): Ana tablodaki her bir satırdaki bir kayıt için detay bilgilerin işlendiği bir ya da birden fazla tablolardır. (örnek: Öğrenci kimlik tablosunda bir öğrenci tektir ve bu tablo bir ana tablodur. Oysa bu tablodaki her bir öğrenciye ait derslerin ve notların işlendiği tabloda öğrenci T.C. kimlik birden fazla satırda olacaktır. Dolayısıyla burada öğrenci not tablosu kimlik tablosuna bağlı bir alt tablodur. Bağlı oldukları alan da T.C. kimlik no’dur) 3. Sözlük tabloları (dictionary tables): Ana tablolarda ya da alt tablolarda birden fazla satırda kullanılan benzer veriler bu tablolara kod olarak kaydedilmelidir. (Çünkü bu alanlar üzerinde sorgulama yapıldığında, string bir verinin yanlış yazılma olasılığı olduğundan sonuç tutarsız olabilir. Örnek: Medeni hal, İl, ilçe, meslek, unvan v.b. veriler) İşte bu verilerin tutulduğu yardımcı tablolar oluşturulmalıdır. Bu tablolara sözlük tabloları denir ve ana tablo ile alt tablolara referans ederler. Sözlük tablolarında ilgili veriye ait kod ve ad bulunurken, ana ve alt tablolarda sadece kod bulunur. (Örnek: Sözlük tablosunda Medeni hal kodu ve evli-bekar verisi varken ana tabloda sadece medeni hal kodu bulunur. Sorgulamada da bu alandaki veri adı sözlük tablosunda alınır) Sözlük tabloları genel ve özel olmak üzere iki şekilde (veri tabanının büyüklüğüne ve uygulamanın türüne göre) oluşturulur. Genel sözlük tablolarında daha çok fazla satır içermeyen statik veriler taşınabildiği gibi özel sözlük tablolarında çok fazla satır içeren statik veriler saklanır. (örnek: Medeni hal, sınıf adları, cinsiyet v.b. gibi verileri genel sözlük tablolarında, il, ilçe, meslekler, ülkeler gibi verileri de kendi adlarını alan özel sözlük tablolarında saklamak doğru olur) Önemli: o Tablo ve alan adlarında kesinlikle Türkçe karakter kullanılmaz (örnek; İ,Ö,Ç,Ğ,Ş v.b. ) o Tablo adı ve alan adları büyük harflerle olmalı. o Karakterler arasında özel işaret ve boşluk bulunmamalıdır.(_ hariç) o Alan adları ve tablo adları rakamla başlamamalıdır.

Veri Bütünlüğü

Veri bütünlüğünü sağlamak için şu kısıtlamalar olur:

Nesne Bütünlüğü (Entity Integrity): Birincil anahtar NULL değer almamalı ve aldığı değer tekrarsız ve tek olmalıdır. Örneğin, yukarıda verdiğimiz KIMLIK_BILGILERI tablosuna birincil anahtar olan TC_KIMLIK_NO sütunundaki değeri 11111111111 olan bir kayıt daha girememiz nesne bütünlüğünü bozacağından, veri tabanı bu kaydı girmemize izin vermez. Benzer şekilde, TC_KIMLIK_NO 'su olmayan (NULL olan) bir kayıt da giremeyiz. Başvuru Bütünlüğü (Referential Integrity): Yabancı anahtar değerleri birincil anahtar değerine eşit olmalıdır. Örneğin, yukarıda verdiğimiz GOREV_KAYDI tablosuna yabancı anahtar olan TC_NO sütunundaki değeri 11111111111 olan bir kaydı, KIMLIK_BILGILERI tablosunda TC_KIMLIK_NO 'su 11111111111 olan bir kayıt bulunmadığında, giremeyiz. Sütun Bütünlüğü (Column Integrity): Sütundaki değerler tanımlı veri tipine uymalıdır. Örneğin, TC_KIMLIK_NO sütunu sayı değerler içerdiğinden o sütuna metin değerler giremeyiz. - Kullanıcı Tarafından Tanımlanan Bütünlük (User-defined Integrity): - Değerler kullanıcının tanımladığı kurallara uymalıdır. - Örneğin, NOT NULL olarak tanımlanmış bir alana NULL değer giremeyiz.

Veri tabanında (Database) veri tabanında tablolar arası ilişki işlemleri

Tüm ilişkisel veri tabanlarında ortak alan içeren ana ve alt tablolar arasında ilişki kurmak mümkündür. Bunu avantajı; 1. ilişki kurulmuş ana tabloda ilgili alanda yapılacak bir değişikliğin tüm alt tablolara da yansıması (örnek: Öğrenci KIMLIK tablosunda TCNO su değişen bir öğrencinin OGRENCI_NOTLARI tablosunda da TCNO su bağlı olarak değişir) 2. Yine ana tabloda silinen kayıt ilişkili tablolarda da silinir. Böylece veri tabanını kontrol işlemi daha da kolaylaşmış olur

Access’ da bu işlem şu şekilde yapılır:

1. Araçlar menüsünden ilşkiler seçeneği seçilir 2. Gelen tablolardan ilişki kurulacak tablolar seçilir 3. Ana tabloda bulunan primary key(birincil anahtar) alanından, alt tablodaki aynı türdeki alana Mouse sürüklenerek bırakılır 4. Bu işlemden sonra bir ileti kutusu açılır 5. Bu ileti kutusunda “tutarlılığı zorla” seçeneği seçilir ve alttaki seçenekler de açılır 6. Aktif hale gelen bu seçeneklerde seçilir ve uygula butonu tıklanır 7. Böylece 1’den n’e ilişki kurulur. 8. Bu ilişkinin amacı; ana tablodaki değişikliğin alt tabloyada yansımasıdır. 9. Bu ilişkinin hatasız olabilmesi için aşağıdaki kurallara uymak gerekir: * İlişki kurulacak tablolardan biri mutlaka ana tablo olmalı * Ana tabloda mutlaka birincil anahtar olmalıdır * Alt tabloda mutlaka ana tablodaki birincil anahtarda aynı türden ve aynı verileri içeren bir alan olmalıdır * Alt tabloda bu alana işlenmiş verilerin mutlaka ana tabloda da olması gerekir

Yanıtlar