Ne arayalım?

ARAMIZA KATILIN

BİZE ULAŞIN

Adres:

E-posta:

host/bin/bilisimlife.dll

iletisim@bilisimlife.net

Veritabanının Yapısı 25322532 okunma

02.12.2017

Veritabanı

Rserit

Veritabanları içerlerinde bir çok kayıt bulundururlar. Bunlar tablo içerisinde yer alırlar. Biz yazılım diliyle tablo içerisinden kayıtları çekeriz. Gerekirse veritabanı üzerinde sorgu yazarak işlerimizi halledebiliriz.

Her veritabanında tablo, sütun, satır gibi kavramlar vardır. Bunlar üzerinden işlemler yapılır. Başlangıç olarak basit kavramlara, ardından gelişmiş kavramlara giriş yapalım.


Yukarıdaki resim basit bir tablo içeriğini göstermektedir.

Tablo

Bir veritabanı içerisinde bulunan verilerin tutulduğu yerdir. Bütün veriler oluşturulan tablo içerisinde tutulur. Bir veritabanında birden çok tablo bulunabilir. Bu yazılımcının ihtiyacı doğrultusunda gelişir.

Tablolar içerisinde satır ve sütun bulundurur. Sütun, bir tabloyu ayıran en önemli etmendir. Tabloyu kısımlara ayırır. Örneğin kişiler isimli bir tablonuz olsun. Ad, soyad, mail adresi diye nasıl ayırırım? Sütunlar yardımıyla tabi ki.

Bir firmanız bulunsun. Bu firmada çalışan kişileri veritabanında personel isimli bir tabloda tutabilirsiniz. Örnek ile aşağıdaki resim bize bunu basitçe anlatmaktadır.



Tablolar verileri birbirinden ayırır ve standardize eder. Sizin ürünlerinizle çalışan kişilerinizin aynı bir tabloda tutulması ne kadar saçma olurdu değil mi? Bu bakımdan ürünleri ayrı bir tabloda, kişileri ayrı bir tabloda tutulması verileri çakıştırmaz.

Eğer tablonuzda yeni şeyler girmek isterseniz, misal ile personel tablosunda kişilerin maaş bilgilerini de barındırmak isterseniz maaş isimli bir sütun oluşturmanız gerekmektedir. Bu mümkün.

Sütun (Alan)

Tabloyu oluşturan en önemli unsur sütundur. Tablonun alanlarına sütun denilmektedir.

Sütun diye bahsettiğimiz kavram aşağıdaki resimde kırmızı ile kare içerisine alınmış yerlerdir.



Bir sütunun en önemli özelliği tabloyu birbirinden ayırır ve standardize eder. Kısaca şöyle açıklayalım, personel tablosunda bütün bilgilerin iç içe geçmemesi gerekir. Bu bir karışıklıktır. Bunun için tabloyu niteliklerine göre ayırabiliriz. Örneğin bir çalışanın maaş bilgisine bakmak istiyorsanız personel tablosunda maaş alanına bakmalısınız. Böylece en kısa yol sağlanmış olur.

Bilgileri ayırma özelliği gibi verileri standardize de edebilir. Şöyle diyelim, bir tabloda isim alanına en fazla 20 karakter giriliyorsa ve kişinin ismi 20 karakterden fazlaysa sizin bunu 21 yapmanız gerekmektedir. Alanlar bunu size kolayca sağlayabilir.

Personel.Isim alanına rahatlıkla veri girişi yapabiliriz.

Not: Personel.Isim bir tekniktir. Personel diye yazılan yer tablo ismi, isim diye yazılan yer ise sütun ismidir. Bunların aralarına nokta koyularak bir tür teknik oluşturulur.

Bir veritabanı tablosundaki alanlarda üç veritipi kullanılır. Bunlar tipleriyle şöyle:

Metin: Text, memo, char, varchar, varchar2 gibi.
Sayı: Number, currency, integer, int16, int32, tinyint gibi.
Tarih: Date, datatime, shortdate gibi.

Satır (Kayıt)

Bir tablo içerisine tutulan kayıtlara satır adı verilir. Yani her bir kayıttır. Yukarıdaki resimlerde görülen veriler birer kayıttır. Personel tablosunda yazılı olan Recep Şerit gibi veriler birer kayıttır.


Resimdeki yuvarlak içerisine alınmış bilgiler birer kayıttır.

Her bir kayıt tek bir veri içerir. Yani siz bir sütuna tek bir satır girebilirsiniz. Şöyle örnek verelim, personel tablosunda Recep Şerit memleketi haricinde yaşadığı yeri eklemek istiyorsa bunu memlekete ekleyemez, çünkü memlekette olan bir kayıt var. Bunun için yeni bir sütun oluşturulması gerekiyor (yasadigiYer diye olabilir).

Diğer Kavramlar

Primary Key (PK)

Her bir kayıta atanan numaraya verilen addır. Türkçesi birincil anahtardır. Örneğin personel tablosunun PK’sına bakacak olursak bu personel_id olabilirdi. Bu Personel tablosunun PK’sı olurdu. Yani birincil kaydı bu. Diğer tablolarla ilişkilendirme işlemi olacağından PK son derece önemlidir. 

Primary Key’i size şöyle özetleyebilirim, firmanızda bir çok Recep isimli kişi varsa siz hangisini çağıracaksınız? Işte burada devreye PK giriyor. PK bunların her birisine otomatik olarak kayıt girildiğinde sayı veriyordu. Eğer ki siz çağıracağınız Recep’in şirket numarasını biliyorsanız neden karıştırasınız ki?

Bu karışık bir örnek diyelim. Neredeyse çok iyi bildiğimiz bir örnek vereyim. Öğrencisiniz, haliyle okulda bir öğrenci numaranız var. Müdür Ahmet Oğuz isimli kişiyi çağırdı. Ancak böyle bir kişi okulunuzda 3 kişi var. Hangisi gelecek? Okul müdürü eğer ki Ahmet Oğuz’un okul numarasını da söylerse sizce bir karışıklık olur mu? Olmaz, çünkü bir okul numarasından bir tane vardır. PK mantığı da aynıdır. Genellikle tablo içerisinde mutlaka id isimli bir sütun oluşturulur. id bu numaraları otomatik verir. Bu kimliği belirtir.

Kısacası primary key özel ve tekrarlanmayan bir isimdir. Her tablonun bir PK’sı bulunur.

Aşağıdaki resimde kişilerin primary key’leri bulunuyor.



Ilişki (Relation)

Ilişki bir veritabanını diğer tablolarla bağlayan etmendir. Veritabanı yapısındaki en önemli unsur denebilir.

Ilişki, iki tablo arasındaki bağı kurar. Şöyle diyelim. Şirketiniz var ve bir çok departmana sahipsiniz. Siz ismi Recep olan ve BT alanında çalışan kişileri bana getirin dediğinizde bundan şunu anlıyoruz,  personel diye bir tablo olmalı ve departman diye ayrı bir tablo olmalı. Şunu diyebilirsiniz, iyi de biz neden çalıştığımız departmanı personel tablosunda sütun olarak eklemiyoruz? Bu sakıncalıdır. Şöyle bir örnekle bu sakıncayı açıklamak gerekirse, personel tablosunda departmanı yazdınız. Bu departman BT olsun. Peki ya sonradan departman değişirse? O zaman BT departmanında çalışan bütün personelleri bulup teker teker departmanlarını değiştirmek zorunda kalırdınız ki bu büyük bir zaman kaybı olurdu. Hatalar da yapabilirsiniz. Departman numarasını yanlış girebilirsiniz vs. gibi daha bir çok yönden düşündüğünüzde hatalar ortaya çıkacaktır. Bu bakımdan departman ayrı bir tabloda ele alınır.

Veritabanı mantığı bize her bir nesne için ayrı bir tablo oluştur demektedir. Departman ile personel ayrı nesneler oldukları için ayrı tablolarda ele alacağız.

O halde aşağıdaki gibi bir departman tablosu oluşturduğumuzu varsayalım.



Tabloyu kısaca açıklayalım, id alanı PK karakteri içerir yani her bir departmanın ayrı bir sayısı var. Isim alanı departman adı ve numarası dediğimiz alan ise departman numarasıdır.

Bu iki tablo nasıl ilişkilendirilir?

Hatırlayalım, ismi Recep olan ve BT alanında çalışan kişileri getirin sorusu vardı. Sorunun cevabı oldukça basit. Departman tablosundaki id alanını personel tablosuna eklersek sorunun cevabını da çözmüş oluruz. Aşağıda eklenmiş bir biçimde göstermiş bir diyagram bulunuyor.



Primary key sizce neden var? Bu durumlarda bunun sebebi daha iyi anlaşılıyor. Iki tablo arasındaki bir bağlantı yapıldığında, tablolardan birindeki PK diğerine eklenir ki eklenilen PK oradaki tabloda FK (Foreign Key) olarak gözükür.

Foreign Key (FK)

Bir yukarıdaki fotoğrafta FK diye bir id ekledik. Bu nedir? Foreign Key, yabancı anahtar manasına gelir. Yani departman tablosunun id’sini personel tablosuna ekleyince departman_id personel tablosunda FK olarak gözükür. Çünkü başka bir tablodan geliyor. Referans olduğu için FK’dır.

Bilgi: Normalizasyon kavramına kısaca değinmek gerekirse, bir veritabanını derli toplu hale getirme sürecine normalizasyon denir. Personel ve departman tablolarıyla yaptığımız aktarma gibi işlemler bu sürece örnektir. 

Görmüş olduğunuz veritabanları şu küçük kavramlardan ibaret. Çok fazla bir şey yok. Burada daha önemli olan bu kavramları yönetmektir. Bunun için ise sorgu dili kullanılacaktır. Bu konuya da daha sonra değineceğim.

Recep ŞERIT

BİR YORUM YAZIN