Veritabanı, birbiriyle ilişkili bilgilerin bir arada tutulduğu sistemlerdir. Veritabanı üzerindeki bilgiler düzenli bir şekilde tutulduğu için bu bilgilere erişim, bilgilerin yönetimi, yeni bilgi eklenme ve bilgilerin güncellenmesi çok kolaydır ve çok hızlıdır.
Veritabanı, hayatımızın her alanında yer almaktadır. Günlük hayatta kullandığımız bazı şeyler veritabanını daha kolay anlayabilmek için örnek olarak gösterilebilir.
- Alışveriş Listesi: Aylık ihtiyaçlarımızı listelediğimiz ve çoğunlukla kağıt üzerine aklımıza geldikçe yazdığımız alışveriş listeleri bir veritabanı olarak düşünülebilir. Listede alacağımız ürünlerin isimleri, hangi üründen (kg, adet, litre vs birimleri ile) ne kadar alacağımız, ürünün tahmini fiyatı ve aylık bütçemiz yer almaktadır. Ürünlerden aldıklarımızın üstünü çizerek o ürünü aldığımızı ve bu ay için tekrar alınmayacağını belirtiyoruz. Eğer aldığımız fiyatı da yanına yazıyorsak tüm ürünleri satın aldıktan sonra bütçemizi ne kadar aştığımızı veya bütçemizden ne kadar para arttığını da hesaplıyoruz. Bu örnekte alışveriş listesinin olduğu kağıdı veritabanının bulunduğu sunucu (bilgisayar), alışveriş listesini (yazdığımız maddeleri) veritabanında bir tablo, listeye ekleme, listedeki ürünün üzerine çizme işlemini veritabanı operasyonu (Insert – ekleme, Delete – silme), tahmini tutarları ve ürünler için ödenen tutarları hesaplama işlemlerini de veritabanı üzerinde yapılan hesaplama fonksiyonu (function veya procedure) olarak düşünebiliriz.
- İmza Föyü: Okullarda ve iş yerlerinde o gün derse / iş yerine gelindiğine dair imza atılan föy bir veritabanı olarak düşünülebilir. Föy üzerinde hangi gün olduğu bilgisi, okullar için hangi ders – iş yerleri için sabah, öğle, akşam imza alanları bulunmaktadır. Örneğimize okul üzerinden devam edelim. 3 saatlik bir derste öğrenciler her girdikleri saat için bir imza atıyorlar ve girmedikleri saatleri boş bırakıyorlar. Yıl boyunca öğrencilerin %20 devamsızlık hakkı olduğunu düşünürsek öğrencilerin yıl sonunda devamsızlıktan kalıp kalmadıkları, yıl içindeki imza föylerini takip ederek kontrol edilebilir. Bu örnekte üniversitedeki tüm derslerin imza föylerini veritabanı, imza föylerindeki isim listelerini veritabanında bir tablo, öğrencilerin gün ve ders bazında attığı imzaları veritabanı operasyonu (Insert – ekleme), yıl sonunda öğrencilerin devamsızlıklarının toplanmasını da hesaplama fonksiyonu (function veya procedure) olarak düşünebiliriz.
Yukarıdaki örneklerde veritabanı ile ilgili teknik terimlerden birkaçını kullandım. Veritabanında çoğunlukla karşılaşacağınız teknik terimlerin bir kısmını aşağıda listeyelim:
- Database : Veritabanı
- Table : Tablo – verinin tutulduğu yer (örn: alışveriş listesindeki bir ürün satırı)
- Column : Sütun – tutulan verinin bir özellik (örn: alışveriş listesinde ürünün sadece adı)
- Insert : Tabloya kayıt ekleme işlemi
- Update : Tablodaki bir veya birden çok kaydı güncelleme işlemi
- Delete : Tablodan bir veya birden çok kaydı silme işlemi
- Select : Tablodan bir veya birden çok kaydı sorgulama (okuma) işlemi
- Alter : Tablonun ya da veritabanının farklı bir bileşenini güncelleme işlemi
- Drop : Tabloyu ya da veritabanının farklı bir bileşenini silme işlemi
- Function : Bir tane veri döndüren fonksiyon (C# ya da Java’daki fonksiyon gibi)
- Procedure : Tablo halinde veri döndüren fonksiyon
Günlük hayattan örneklerle veritabanının ne olduğunu mantıksal olarak biraz kavramaya çalıştık. Peki gerçek veritabanları hayatımızın nerelerinde kullanılıyor? Cevabı çok basit: hemen hemen her yerde.
- Facebook uygulaması üzerinde sizin, arkadaşlarınızın, onların arkadaşlarının ... tüm bilgileri, sayfalar, gruplar, mesajlar, etkinlikler, resimler, videolar, notlar,... Facebook uygulaması üzerinde bulunan bütün bilgiler, veritabanı üzerinde tutulur. Siz birine mesaj yazdığınızda yazdığınız mesaj önce veritabanında mesaj tablosuna bir satır olarak kaydedilir, kayıt işlemi tamamlandıktan sonra karşıdaki kişi sizin mesajınızı görür. Bazen (benim başıma birkaç kere geldi) “Mesajınız Gönderilemedi” uyarısıyla karşılaşabilirsiniz. İnternetin anlık kopmaları ya da sistemsel bazı sıkıntılardan mesaj Facebook’un veritabanına kaydedilemediği için karşıdaki kişiye de gönderilmedi ve bilgilendirme (uyarı) mesajı gösterdi.
- HepsiBurada gibi online satış sitelerinde ürün kategorileri (cep telefonu, bilgisayar, giyim, süpermarket vs), ürünler, kampanyalar, ürün yorumları, ürün resimleri, ürün hakkında tartışmalar, ürünlerin taksitlendirilmeleri, sipariş verirken oluşturduğunuz sepet, satın alınan ürünün HepsiBurada’da çalışan kişiler tarafından görüntülenip kargolanarak size gönderilmesi ve kargo bilgilerinin sisteme girişi ... ve daha bir çok işlem ve bilgi veritabanı üzerinde tutulur. Bir ürünü incelemek için ürün sayfasını açtığınızda veritabanındaki ürün ve ürüne bağlı diğer tablolardan (resim, yorum, tartışma vb) ürün ile ilgili teknik özellikleri, fiyatı, resimleri, yorumları, kampanyaları, taksit seçenekleri, tartışmaları ve diğer bilgileri alınır. Ürünü sepete eklediğinizde veritabanında bulunan sepet tablosuna sizin o ürünü sepete eklediğinize ve satın alma sürecini başlattığınıza dair bir kayıt gönderir. Satın alma sürecinde kredi kartından onay verilip satın alma işlemi gerçekleştiğinde sepette bulunan ve ödemesini yaptığınız tüm ürünler, satın alınan ürünler tablosuna atılır. Bu tabloda bu ürünlerin işlemi yaptığınız tarihte sizin tarafınızdan satın alındığı bilgileri tutulur. Müşteri temsilcileri kendi ekranlarında satın alınan ürünler sayfasına giriş yaptıklarında sizin satın aldığınız ürünleri görürler ve paketleyip kargoya verdikten sonra kargo numarasını satın alınan ürünler tablosuna eklerler. Böylelikle siz siparişlerim sayfasına girdiğinizde, müşteri temsilcisi kargo numarasını veritabanına eklediği için kargo numarası üzerinden ürününüzün nerede olduğunu görebilirsiniz. Bu anlattığım sadece satın alma sırasında yapılan işlemlerin özetiydi. Bu işlemler gerçekte daha karmaşık ve birbiriyle ilişkili iş süreçlerinden oluşmaktadır.
Veritabanı kavramının örneklerle beraber gözünüzde canlandığını ümit ederek veritabanının nasıl yönetildiği konusuna bir sonraki makalede değineceğiz.