Dinamik web sitelerini anlattığım yazımda veritabanlarına kısaca değinmiştim. Dinamik web siteleri, veritabanları ile çalışır ve verileri bu veritabanlarına kaydederler. Kullanıcı ile veritabanı arasındaki karşılıklı iletişimi sağlamak için server (sunucu) ve web sitesi aracı olur. Böylelikle, bilgiler veritabanlarına kaydedilir, bu bilgiler analiz edilir (en azından edilmelidir) ve buna göre genel durum ile ilgili bir yargıya varılır, durumu daha da iyi yapmak için çalışmalar düzenlenir, olası problemlere karşı önlem alınır.
Son cümleden neyi kastettiğimi birazdan daha net açıklayacağım. Şimdi kısaca veritabanı nedir, ondan söz edelim. Veritabanı, çevrimiçi (online) veya çevrimdışı(offline - örneğin masaüstü uygulamaları) mecrada, verilerin depolandığı, düzenlendiği, değiştirildiği dosyalardır. En yaygın olarak kullanılan veritabanları, MySql, Ms Access, SQL Server ve Oracle'dır. Ms Access, genellikle daha küçük çaptaki projeler için kullanılırken; profesyonel kullanım amacında olan şirketlerin tercihi büyük oranda Oracle'dır (Son zamanlarda SQL Server'ın da bazı büyük şirketler tarafından tercih edildiğini duymuştum). Veritabanları, tablolardan oluşur. Bu tabloların her birinde değişik bilgiler saklanır. Her tabloda, sütunlar ve satırlar vardır, tıpkı Excel'deki gibi. Sütunlar verinin tipini, satırlar her bir kaydı (record) temsil eder. Örneğin, Üyeler adlı tablomuz olduğunu varsayalım. Bu tablonun içindeki sütunlar, Üye Adı, Üye Soyadı, Üye Kullanıcı Adı, Üye Şifresi, Üye Doğum Tarihi, Üye Oturduğu Şehir olarak düzenlenebilir. Böylelikle her bir üye için bu bilgileri tek bir satırda veritabanına kaydedebiliyoruz. Başka bir tabloda ise, satış verileri olduğunu düşünelim ve bu tablonun adı da Satışlar olsun. Satışlar tablusunun ise, Satılan Ürün, Satılan Ürün adeti, Satış Tarihi, Üye Adı sütunlarından olduğunu düşünelim. Böylelikle bir tabloda üyelerimizi, diğer tabloda satışlarımızı saklamış olduk. Genel olarak ticari bir veritabanının en önemli iki bileşeni bu iki tablodur. Sonrasında ise, çok daha fazla geliştirilerek, tüm veriler, tüm aktiviteler ve işlemler için tablolar tasarlanır ve veriler yönetilir.
Veritabanı diyince akla gelen en önemli ikinci konu, sorgulamadır. Sorgulama, veritabanı ile ilgili yaptığımız tüm işlemler anlamına gelmektedir. Bu işlemler, verileri gösterme, verileri düzenleme, yeni veri ekleme ve veri silme olarak tanımlanabilir. Sorgulama işlemleri tüm veritabanları için standart olan SQL dili ile yapılır. Örneğin, Üyeler tablosundaki tüm verileri görüntülemek için Select * from Üyeler demeniz yeterli olacaktır. Görüntülemek için Select fonksiyonu kullanırken, yeni veri eklemek için Insert, mevcut veriyi düzenlemek için Update, mevcut veriyi silmek için Delete kullanılmaktadır (buradan detaylı olarak teknik bilgi alabilirsiniz)
Bahsetmek istediğim üçüncü nokta ise, tablolar arasında iletişim kurmaktır. Örneğin hangi üyenin hangi ürünü aldığını hali hazırdaki veritabanı düzenlemesinde görüntüleyemiyorum. Bu görüntülemeyi yapabilmem için Üyeler ve Satışlar tablosunu iki tabloda da bulunan Üye Adı sütunu vasıtasıyla bağlamam gerekiyor. Böylelikle hem iki tablodaki belli bir verinin ilişkili olduğunu veritabanına tanımlayarak, veriyi standardize ediyoruz (verinin giriş ve düzenlenme aşamasında işe yarıyor), hem de olan veriler üzerinden görüntüleme yapmak istediğimizde oldukça işimiz oldukça kolay oluyor.
Aşağıda, MS Access ile hazırlanmış küçük bir veritabanını, barındırdığı tabloları ve tablolar arasındaki ilişkiyi inceleyebilirsiniz.(Aşağıdaki veritabanında Üye Adı'nı değil, daha yaygın olarak kullanılan ID'leri kullanarak tabloları bağladım. ID, her bir kaydın o kayda özel olarak atanan numarasıdır.)Gelelim, bu konunun E-Ticaret ve E-Pazarlama ile ilgisine. Öncelikle, veritabanın birçok açıdan bir web sitesi için önemli olduğunu belirtmeliyim. Örneğin, bir veritabanı olması gerektiği gibi tasarlanmaz ise, web sitesinin veritabanından bilgileri çekerek sitede yayınlama süresi uzayabilir, bu da kaderinizi tüketicinin sabrına bırakmanız anlamına gelir. Hız ve performans konusu (özellikle de 100 binlerce, milyonlarca veriden bahsediyorsak) bir E-Ticaret sitesi için hayati önem taşımaktadır. Bir diğer nokta, veritabanı aracılığı ile durumunuzu çok net bir şekilde analiz edebilirsiniz. Hangi günler, hangi haftalar, hangi aylar satışlarınız nasıl değişmiş, adet ve gelir anlamındaki değişimler ne şekilde olmuş, hangi müşteriler daha fazla alışveriş yapmış, hangileri hiç ürün satın almamış gibi birçok bilgiyi anlık olarak veritabanından çekeceğiniz veriler ile edinebilirsiniz. Bir kademe üstünde, bu bilgileri kullanarak çeşitli promosyonlar veya reklam kampanyaları yapabilirsiniz. Örneğin, yeni müşteri kazanmak adına, son 3 ayda hiç alışveriş yapmamış müşterilerinize %5'lik indirim kuponu verebilir ve bu promosyonu e-mail ile müşterinize ulaştırabilirsiniz. Bir diğer örnek, en fazla tercih edilen ürünlerinizi belli bir sıraya göre anasayfanızda gösterebilirsiniz, ya da en fazla şikayet gelen ürünlerinizi incelemeye alabilirsiniz. Tüm bu bilgilerin hepsi, veritabanının size verdiği sonuçlar üzerinden elde edilmektedir.
Veritabanı, aslında tüm şirketler için hayati önem taşımaktadır. Ancak bir E-Ticaret sitesi sanal dünyadaki tüm işlemleri kaydını veritabanı sayesinde tuttuğu ve bu şekilde operasyonunu yönetebildiği için, E-Ticaret sitesi için veritabanı biraz daha önemlidir. Bu önemin farkına varıp, veritabanının bu anlamda düzenlenmesi, inşa edilmesi ve yönetilmesi, büyük önem taşımaktadır.