Veritabanı Nedir?
Veritabanı nedir? Bu yazımda sizlere veritabanı nedir onu
anlatmaya çalışacağım. PHPNuke, PostNuke diyoruz ama bu iki
portal sistemi de veritabanı kullanıyor. Peki acaba kimler
veritabanını biliyor? Bana ve arkadaşlarıma gelen mesajlar bu
durumu iyice ortaya çıkardı. Bazı kişilere kalkıp şunu
yap, ondan sonra bunu yap demek kolay ama bilmediğiniz bir nokta
var. Bu kişi veritabanı nedir bilmiyor ki!
Veritabanı neye benziyor biliyor musunuz? Eğer Microsoft Office yada OpenOffice
kullandı iseniz tablolama yazılımını bilirsiniz. Örneğin Excel de nasıl satır ve
sütunlar varsa veritabanı da aynı şey diyebilirim. Biraz kafanız karışmış
olabilir.
Web tasarımında perl gibi dillerle çeşitli dosyalara eklemeler yapma,
dosyadaki verileri okutmayı yada veri silmeyi duymuşsunuzdur. En basit şekilde
bir sayfa sayacı bu şekilde olabilir. Yani bir dosya oluşturursunuz, onun içine
bir sayı yazarsınız. Sonra bir script yardımı ile bu dosyadaki sayıyı her
ziyaretçi gelişince okutur, ekleme yaptırır ve sayfaya son halini yansıtırsınız.
Elinizde çok miktarda bilgi olduğunu düşünün. Bu bilgileri bir düz yazı
dosyasında saklamak bir yere kadar mümkündür. Bir de bırakın verinin çok yada az
oluşunu, düz yazı dosyası şeklinde bu veriyi saklayıp, daha sonra istediğiniz
zaman düzenlemeye yada değiştirmeye kalkmak bir deveye hendek atlakmaktan
zordur. Durum böyle olunca çözüm veritabanı oluyor. Başka bir açıdan daha
bakalım. Site trafiğiniz yüksekse, dosyalar üzerinde açma, kapama veri okuma,
veri yazma gibi işlemlerde sunucunuz yerlerde sürünür. Açıkçası veri dosyaları
ile çalışmak sitenin efektifliğini ve dinamik yapısını bozan bir etkendir. Çözüm
yine aynı veritabanı sunucusu kullanmak. Veritabanı sunucusu olarak hemen
aklıma, Office'den bileceğiniz access, Ms-Sql, PostgreSQL, InterBase, mSQL,
Oracle, SyBase ve tabii ki mySQL geliyor. Bunlara database engine ( yani
veritabanı motoru ) adı verilir. Bu bilgilerden sonra gelelim veritabanı
üzerinde detaylı bilgilere. Veritabanı sunucusu birbirinden bağımsız birçok
veritabanını bünyesinde barındırabilir. Her bir veritabanının tabloları olur ve
veriler bu tablolarda saklanır. Structured Query Language (SQL) yani türkçesiyle
yapısal sorgulama dili adı verilen veritabanı sorgulama dili ile tablolar
sorgulanabilir, üzerinde veri ekleme, silme ve değiştirme gibi işlemler
yapılabilir. Bir veritabanındaki veriler tablolarda tutulur. Şöyle bir yapı
mevcuttur. Aşağıdaki şekilde mysql veritabanındaki tabloları görüyorsunuz.
+-----------------+
| Tables_in_mysql |
+-----------------+
| columns_priv |
| db |
| func |
| host |
| tables_priv |
| user |
+-----------------+
SQL, veritabanları ile iletişimde bulunmak için geliştirilen standart bir
dildir. SQL komutlarına ilerde değineceğim. Peki tabloların içerisi nasıldır?
Satır ve sütunlar mevcuttur. Sütunların her biri farklı veri tutabilir. Şimdi
nukeden örnek vereyim. nuke_main tablosu şu şekildedir.
+-------------+
| main_module |
+-------------+
| Bos |
+-------------+
Yukarıda göreceğiniz gibi nuke_main tablosunda main_module sütunun adını
tanımlayan bir alan ve Bos ise bu sütunun içeriğidir. Başka bir veritabanı
tablosunun içeriğine bakalım. Bu tablomuz nuke_session olsun. Bu tablomuzun
yapısı ve içeriği ise şu şekilde.
+-----------+------------+-----------+-------+
| username | time | host_addr | guest |
+-----------+------------+-----------+-------+
| 127.0.0.1 | 1040062479 | 127.0.0.1 | 1 |
+-----------+------------+-----------+-------+
Burada göreceğiniz üzere bu tabloda ise 4 tane sütun var. Bunlar sırayla,
username, time, host_addr ve guest adındadırlar. İçeriğini görüyorsunuz. Burada
time anlaşılacağı üzere bir zaman. Ancak zamanı değil anlamsız sayıları
gösteriyor değil mi? Bu bir hata değildir. PHP tarih ve saat verisini sunucudan
epoch adı verilen bir formatta okur. Bu veriyi biz düzenler ve anlaşılır hale
getiririz. Yukarıdaki iki tabloda da sadece tek veri vardı. Şimdi birden fazla
verinin bulunduğu nuke_access tablosunun içeriğini vereyim.
+-----------+-----------------+
| access_id | access_title |
+-----------+-----------------+
| -1 | Deleted |
| 1 | User |
| 2 | Moderator |
| 3 | Super Moderator |
| 4 | Administrator |
+-----------+-----------------+
Sizlere elimden geldiğince veritabanı nedir, nasıl yapıdadır
gibi bilgiler vermeye çalıştım. Umarım anlaşılmıştır.
Ali Osman KAHRAMAN
http://www.netopsiyon.com
http://www.netopsiyon.net Yayınlanma: 2005-10-29 (10472 okuma) Copyright © Netopsiyon Online Tüm hakları saklıdır. [ Geri Dön ] |