ArÅŸiv Anasayfa Veritabanı Makaleleri
Sayfalar: 1
Veritabanına Giriş Gönderen: FetihlerFatihi Tarih: 19 February 2006 20:27:34

Notice: Undefined index: current_action in /home/del10000/domains/delphidunyasi.net/public_html/Sources/Subs.php on line 2391
Veritabanı Nedir
Veritabanı hemen hemen her bilgisayar kullanıcısının hayatına mutlaka girmiştir.
Bir Web sitesine üye olduğunuzda üyelik bilgileriniz bir Veritabanında saklanır. Bu örnekle sanırım Veritabanının ne olduğunu yavaş yavaş anlamış oluyoruz.
Evet, veritabanı verileri barındıran bir sistemdir. Veritabanı derken “Veritabanı Yönetim Sistemleriâ€?  hatırlanır. Yine bunu da günlük hayattan örnek verelim:
Araba denince aklımıza “A� markalı araba “B� markalı araba diye ayırımlar gelir. Veritabanları da tıpkı arabalar gibi markalara ayrılır diyebiliriz. Çeşitli Veritabanı Yönetim Sistemleri vardır “A� veya “B� markalı arabanın nasıl ki ortak görevi ulaşımı sağlamaksa Veritabanı Yönetim Sistemlerinin de amacı verileri depolamak.
“Neden böyle bir ayırım var?� diye sorarsanız “A� markalı Arabamız “B� markalı arabamızdan daha hızlı ve daha konforlu olabilir. Veritabanı Yönetim Sistemleri de tıpkı arabalar gibi yapabileceklerine göre ayrılır.
Bu Bölümde anlatacağımız Veritabanı Yönetim Sistemi: “MySQL�dir.
Dikkat ederseniz bir web sitesinde üye olduÄŸunuzda üyelik bilgilerinizi deÄŸiÅŸtirebiliyor veya yetkiniz varsa Kaydınızı silebiliyorsunuz. Bu iÅŸlemlerde SQL dediÄŸimiz kodlama sistemiyle yapılır.  SQL’in Veritabanı Yönetim Sistemlerindeki rolü direksiyonun arabalardaki rolüne benzer.
Tabii ki Åžuana kadar anlattıklarım Veritabanını anlatmak için yeterli deÄŸil. Öncelikle her Veritabanı Yönetim Sisteminde bulunan özellik ve terimleri öğreneceÄŸiz. Teorik olarak veritabanının ne olduÄŸunu, nasıl iÅŸlediÄŸini öğrendikten sonra direksiyona (SQL’ den bahsediyorum) hakim olup Interbase Veritabanı Yönetim Sistemiyle (Bu sözcüğü  “VTYS “ olarak isimlendireceÄŸim) Veritabanımızı fiziksel olarak oluÅŸturmuÅŸ olacağız.

Veri (Data) ve Bilgi (Information)
Veri ve bilgi terimleri sık sık birbirlerinin yerine kullanılmaktadırlar. Veri, kimi yerde olayları veya yerleri, kimi yerde insanları veya diÄŸer nesneleri ilgilendiren gerçeklerdir. Dolayısı ile veri kavramı her alan için basit farklılıklar gösterebilir. Bilgisayar üzerinde veri kavramını yerine göre,  bilgisayarın manyetik disk yüzeyinde (Hard Disk gibi.), Yarı iletkenden oluÅŸmuÅŸ bir hafıza biriminde (Ram gibi.) veya bir veritabanı içerisinde iÅŸlenebilecek durumda bulundurulan kayıtlar olarak varsayacağız.

Veri ÇeÅŸitli ÅŸekillerde iÅŸlenmeye veya tasfiye edilmeye hazır durumda olan; fakat ilk bakışta faydasız ve anlamsız görünen bir sürü kaydı gösterir.  Bilgisayarda bilgilerin 0 ve birlerden oluÅŸtuÄŸunu biliyorsunuz. Bunlara baktığımızda pek bir anlam çıkaramayız, ama gerekli iÅŸlemlerden geçtikten sonra anlayacağımız ÅŸekilde bir bilgiye dönüşür. Buna baÄŸlı olarak “Bilgiâ€?  kullanıcı için bir anlam ifade eden veridir.

Bu iki kavramı veritabanı konusunda ne gibi bir anlam ifade edebileceğini düşünürsek; Veri: Veritabanı içersinde saklanan değerler, Bilgi ise: Bu değerlerin anlam kazanmış halidir. Örneğin Bir Web Sitesine üye olduğunuzda “12345� size bir şey ifade etmezken Üye giriş parolası olarak düşünürseniz sizin için bir anlamı olacak ve bilgiye dönüşecektir.

Tablo
Veritabanının en temel öğesi olup, bilgileri barındıran nesnedir. Üyelik sistemi kullanan bir web sayfasındaki bilgileri örnek alalım.


Åžekil: 1

Yukarıda basit bir tablo görüyoruz. Tablonun her satırına kayıt diyoruz. Üye_No: 1, Adı: Mehmet Fatih, Soyadı: Küçükkelepçe, Kullanıcı_Adı: Fatih, Mesleği: Programcı bilgileri bir kaydı temsil ediyor. Kayda aynı zamanda Satır da diyebiliyoruz. Üye_No, Adı, Soyadı, Kullanıcı_Adı, Mesleği altına yazılan bilgilerin her birine Alan, Sütun, Kolon (Column, Field) diyoruz.
Tabloya dikkat ederseniz sütun baÅŸlıklarında Türkçe karakter kullanmadım. Bazı VTYS’ler Türkçe karakter desteÄŸi sunsalar da siz sütun baÅŸlıklarında Türkçe karakter kullanmamayı bir prensip haline getirin. Sütun isimlendirme de ÄŸ,ÅŸ,ç,ü,ı,ö,I,Äž,Åž,Ü,Ç,Ö harflerini kullanmayın. DiÄŸer harf,  rakam, ve altı çizili karakter (_) dışında kalan karakterleri kullanmayın. Sütun isimlendirmelerinde ilerde yine başınızın aÄŸrımaması için Sütun ismini büyük harfleri kullanarak belirtin. Bu size Büyük Küçük karakterlere duyarlı olan VTYS’lerde problem çıkarmamasını saÄŸlayacaktır.
Tıpkı Delphideki değişkenler gibi Sütunları oluştururken Sütunlara girilecek bilgilerin Veri Tipini belirtmek zorundayız.
Veri tipi alanların barındırdığı bilgi türünü belirler. ÖrneÄŸin birinin mesaj sayısı rakamsal veridir. Veritabanınızda böyle bir bilgi barındırıyorsanız rakamsal bir veri tipi seçmelisiniz.  Foruma her mesaj  attığınız da üyenin mesaj sayısını bir arttırarak toplama iÅŸlemi yapmış olursunuz. İçinde rakam geçiyor diye o alanın veri tipini rakamsal bir veri tipi olarak belirlemeniz hatalı bir yöntem olur. ÖrneÄŸin üyenin  telefon bilgilerini barındıran bir alanımız olduÄŸunu düşünelim. Bu bilgiler rakamlardan oluÅŸmasına raÄŸmen hiçbir ÅŸekilde matematiksel bir iÅŸleme tabi tutulmayacaktır. Bu sebeple bu alanın veri tipini metinsel tipte seçebiliriz.
Veritabanı konusunda yeni iseniz Veritabanı deyince her şeyin tablolardan ibaret olduğunu düşünebilirsiniz; ancak veritabanı birçok nesneyi barındırır.

Birincil Anahtar (Primary Key)
Teorik olarak zorunlu olmayan ama her tabloda olması gereken önemli bir faktördür. Bir önceki sayfada Üye_No adında bir Birincil Anahtarımız vardı. Üye no alanına kesinlikle  aynı deÄŸere sahip bilgi giremezsiniz. Yani iki adet 1 verisi girilemez. En bariz bir ÅŸekilde önemini anlatmak için silme iÅŸlemini örnek gösterebiliriz. Veritabanlarında silme iÅŸlemleri kaba bir tamirle kodlar vasıtasıyla emrinizle silinir. Sitemizde adı fatih olan bir çok üye olabilir. Emir verirken sadece ben silmek istediÄŸiniz düşünelim. Adı fatih olan kaydı sil dediÄŸinizde bütün fatihler silinir, ancak Birincil Anahtara  sahip olan üye no alanına göre emri verirseniz emriniz harfiyen yerine getirilir. Çünkü 1 numarasına sahip baÅŸka bir üye olamaz.

İlişkisel Bütünlük (Referential Integrty)
Birbiri ile ilişkili tabloların belli kurallara göre organize bir şekilde yönetilmesini sağlayan kurallar bütününe İlişkisel Bütünlük diyoruz.
Birbiri ile ilişkili tablolarda ne demek oluyor diye sorabilirsiniz. Bunun Cevabını örnekler üzerinde açıklayalım.


Åžekil: 2

Yukarıdaki örnek tablomuzda bir kullanıcının yazdığı mesaj baÅŸlıkları bulunmaktadır. Her kullanıcı birden fazla mesaj atabilmektedir. Nitekim Kullanıcı Adı Fatih olan kiÅŸi 5 onu baÅŸlığı açmıştır. Dikkat ettiyseniz her attığı mesaj için Adı, Soyadı, Kullanıcı Adı, MesleÄŸi Sütunlarına (Alan) her defasında Üyenin Adı, Soyadı, Kullanıcı Adı, MesleÄŸi bilgileri tekrar tekrar girilmiÅŸtir. Bu ise daha çok yer kaplaması,  yavaÅŸlama anlamına gelmektedir. Ayrıca kayıt sayısı arttıkça kayıtlar üzerinde hakimiyetinizde zorlaşır.
İlişkisel Bütünlük (Referential Integrty) dediğimiz yapıyı dikkate alarak, yukarıdaki tabloyu aşağıdaki şekilde iki tablo halinde bölüyoruz. Tabloları dikkatle inceleyiniz.

Ana Tablo (Master Table)

Åžekil: 3      

Ayrıntı Tablo (Detail Table)

Åžekil: 4   
   
Gördüğünüz gibi üyenin üyelik bilgileri ve açtığı konu başlıkları bilgileri tek tabloda değil iki ayrı tabloda tutulmuştur. Bu ilişkiye Ana/Ayrıntı (Master/Detail) diyoruz. Peki detay tablodaki kayıtların Ana tabloda bulunan üyelerin hangisine ait olduğunu nasıl anlayacağız. Dikkat ettiyseniz Ana ve Ayrıntı tablolarının her ikisinde de UYE_NO adında bir alan bulunmaktadır. Ayrıntı tablosunda bulunan Üye_No alanındaki değerler ile Ana Tablodaki Üye_No alanındaki değerler bir biri ile eşleşiyorsa Ayrıntı tablosunda bulunan kayıtların Ana tablodaki hangi kayda ait olduğunu bulmak pek zor olmasa gerek.
Örneğin yukarıdaki ayrıntı tablosunda Üye_No alanında 1 değeri bulunan kayıtlar Ana Tabloda Kullanıcı Adı Fatih olan üyeye aittir. Tablolarınızı oluştururken kesinlikle bu yapıya dikkat edin. Bu dersimizde yapı olarak veritabanını tanıdık. Gelecek dersimiz MySQL kurulumu üzerine olacak.