Düzenli Bilgiler Kümesi: Veritabanı – 13

Bankacılık işlemlerinden tutun da, hipermarketlerde yapılan alışverişlere kadar hayatımızın her noktasında veritabanı işlemleri yer almaktadır. Artık dünyada veritabansız bir işlem düşünülemez oldu. Peki veritabanı nedir? Bilgiler nasıl saklanır? Herkesin bir veritabanı olabilir mi?

Veritabanı Nasıl Bir Şeydir, Yenilir mi Yutulur mu?

Düzenli Bilgiler Kümesi: VeritabanıŞu ana kadar hiç Excel dökümanı açmayanınız var mı bilmiyorum, ancak veritabanı dediğimiz şey, Excel yapısına oldukça benzerdir. Burada dikkatinizi çekmek istediğim bir nokta var. Veritabanı (database) ile Veritabanı Yönetim Sistemi’ni (DBMS) karıştırmamak gerekir. Veritabanı Yönetim Sistemi, bütün veritabanlarını bünyesinde barındıran bir sistemdir. Veritabanı ise, Veritabanı Yönetim Sistemi’nin alt kümesidir; sistemin içindeki yapı taşıdır. Yukarıda veritabanı sistemleri olarak bahsettiğimiz sistemler, Veritabanı Yönetim Sistemi’dir. Ancak bu sistemlerden “yazı dosyası” ve “XML”, Veritabanı Yönetim Sistemi değildir çünkü düşündüğümüzde bunlar bir sistem değil, sadece tanımlandırılmış ya da konumlandırılmış dosya(lar)dan ibarettir.

Şöyle düşünelim… A4 beyaz kağıtları bir arada tutmaya yarayan dosyalar vardır. Bu dosyalar çeşitli büyüklükte, karton kapaklı ya da ciltlenmiş olabilir. İşte bu dosyaları Veritabanı Yönetim Sistemleri, içindeki kağıtları da veritabanı olarak yorumlayabiliriz. Dosyanın kalitesi de, Veritabanı Yönetim Sistemi’nin kalitesi gibidir, kimisi çabuk yıpranır, kimisinin kapasitesi bellidir, kimisi ise ucuz, ama kalitelidir.

Veritabanlarında genel olarak tablolar bulunur (metodlar (procedures) ile tetikleyiciler (triggers) ileri aşamalı konulardır). Tablolar, tıpkı bildiğiniz Excel tabloları gibidir. Tablonun birinci satırında, sütunların adını tanımlayan isimler bulunur (ID, Ad, Soyad gibi). Böylece satırın hangi sütununa ne yazılacağı belirtilir. Bununla birlikte, yukarıda parantez içinde belirttiğimiz metodlar (stored procedures), tetikleyiciler (triggers) ve tablolar arası ilişkilendirmeler de veritabanının içinde bulunur. Metodlar (stored procedures), “Şunu şöyle yap, bunu böyle yap” diyen kodlardır. Örneğin, veritabanında bir tabloya veri eklemesi yaparken, metod kullanılabilir: “Şu tablonun şu sütunlarına, bu verileri gir”. Metod tanımlamalarında genellikle veritabanı ismi kullanılmaz, tablo isimlerinden yola çıkılır. Çünkü metodlar, Veritabanı Yönetim Sistemi’ne değil, her veritabanı için ayrı olarak tanımlanır. Aynı durum tetikleyiciler (trigger) için de geçerlidir. Tetikleyiciler de belli bir veritabanına dahildir. Yapısal olarak metodlara benzerlikleri bulunsa da, işleyiş mantığı farklıdır. Metodlar, ancak çağrıldıklarında işleme sokulurlar. Ancak tetikleyiciler, mevcut veritabanı üzerinde sürekli aktif olarak çalışabilirler. Bu ne demektir? Örneğin elinizde stok durumu ile ilgili bir veritabanı var. X ürünün stokları bittiği anda, tetikleyici vasıtasıyla siz bu konudan haberdar olabilirsiniz. Bunu yapmak için tetikleyiciyi çağırmanız gerekmez, zaten aktif olarak veritabanındadır. Herhangi bir müşteri X ürününü satın aldığı ve stok durumu sıfırlandığı anda, siz bundan otomatik olarak haberdar olabilirsiniz. Metodlar ve tetikleyiciler haricinde veritabanlarında foksiyonlar da kullanılabilir. Fonksiyon kullanımı, özellikle programlama ile ilgilenen okuyucularımız için anlaşılması güç bir konu değildir. Ancak bu konuda yeniyseniz, size şöyle bir örnek vermek isterim: İnsan vücudunda her organın belirli fonksiyonları vardır. Örneğin dilin tatma fonksiyonu vardır. Veritabanında da durum farklı değildir. Siz belli görevler için, belli başlı fonksiyonlar yaratabilirsiniz. Ancak fonksiyonların yaptığı pek çok işlemi metodlar da yapar ve metodların çalışma hızı fonksiyonlara oranla daha hızlıdır. Dolayısıyla yüklü bir veritabanında fonksiyon kullanımına dikkat edilmelidir ki, performans kaybı yaşanmasın. Bununla birlikte veritabanı içinde tablolar arasında ilişkiler de yer alır. İlişkiler bire bir, bire çok, kendine referans (rekürsif) ya da çoka çok şeklinde olabilir. Bu ilişkileri daha iyi anlayabilmek için yazımızın devamındaki örnek projeye göz atmanızı tavsiye ederim.

Veritabanı Yönetim Sistemlerinde, standartlaşmış bir dil kullanılır: Structured Query Language (SQL) – yani “Yapısal Sorgu Dili”. Yazı dosyaları ile XML’de böyle bir şey söz konusu değildir. Dolayısıyla yazı dosyaları ile XML’i, Veritabanı Yönetim Sistemi içinde sayamayız. Yapısal sorgu dili ile tablolar yaratabilir, tablolar arasında ilişkiler kurabilir, tablolardaki veriler için veri tipleri belirleyebilir ve kişiler için veritabanına erişim haklarını tanımlayabilirsiniz. Veritabanı Yönetim Sistemleri’ndeki en büyük güzellik de zaten budur. Yapısal sorgu dili, Veritabanı Yönetim Sistemleri’nde çok fazla değişkenlik göstermez. Evet küçük nüans farklılıkları olabilir, ama mantık hep aynı mantıktır. Dolayısıyla örneğin MySQL biliyorsanız, Microsoft SQL’e geçmeniz çok da zor olmayacaktır. En büyük değişim, Oracle Veritabanı Yönetim Sistemi’nde yaşanır ancak isminden de anlayabileceğiniz üzere, Oracle içinde “SQL” geçmemektedir. Dolayısıyla nüsans ve yapı farklılıkları olması normaldir.

Yazar Foto
Can Sinan ARTUÇ
Kurucu
E-posta

(AYRILDI) 1984 Ankara doğumlu. 2001 yılından başlayarak bugüne kadar sırasıyla NetLIFE, PC LIFE, PCnet ve PC WORLD dergilerinde yazılım editörlüğü görevinde bulundu. Bilgisayar Mühendisi olmasına karşın, programlama kadar görsel tasarıma da önem verir. İlgi alanları arasında güvenlik, yazılım, teknoloji, programlama, veritabanı ve tasarım yer alır.
» Toplam 348 yazı yazmış olan yazarın diğer yazıları için tıklayınız
Bu yazıyı beğendiniz mi? O zaman paylaşmaya ne dersiniz?
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Live
  • StumbleUpon
  • MySpace
  • Netvibes
  • Technorati
  • Twitter
  • FriendFeed
  • Add to favorites

Yorum Gönderin

Yorumunuzun yayınlanması için onay gerekmektedir. Dolayısıyla yeniden yorum göndermenize gerek yoktur :)