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ı 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.
TabloVeritabanı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.