Veri tabanı, bilgiyi düzenli ve tekrar erişilebilir biçimde saklayan sistemdir. Bir web sitesinin yazıları, kullanıcıları, yorumları ve ürünleri dosyalarda değil, sitenin barındırıldığı sunucuda çalışan bir veri tabanında durur. Ziyaretçi bir sayfayı açtığında gördüğü metin, o anda veri tabanından çekilip sayfaya yerleştirilmiştir.
Bu yapının doğrudan bir sonucu vardır: bir sitenin yedeği tek parça değildir. Dosya yedeği ve veri tabanı yedeği ayrı ayrı alınır, çünkü dosyalar diskte duran nesnelerdir, veri tabanı ise çalışan bir servistir.
Aşağıda veri tabanının tablo yapısını, ilişkisel ve NoSQL ayrımını, SQL ile arasındaki farkı, sitenin veri tabanına nasıl bağlandığını, panelden nasıl yönetildiğini ve yedeğinin neden ayrı alındığını sırayla açıklıyoruz.
Veri tabanı nedir ve ne işe yarar?
Veri tabanı, bilgiyi düzenli ve tekrar erişilebilir biçimde saklayan sistemdir. Web bağlamında karşılığı nettir: sitenizin içeriği metin dosyalarında değil, sunucuda çalışan bir veri tabanında tutulur.
Burada bir ayrım gerekir. Günlük konuşmada “veri tabanı” denince akla verinin kendisi gelir; oysa veri tabanı, verinin saklandığı ve sorgulandığı sistemdir. Bu sistemi yöneten yazılıma veri tabanı yönetim sistemi (VTYS) denir ve barındırmada karşınıza çıkan MySQL, MariaDB ya da MSSQL gibi adlar bu yazılımların adıdır.
Veri tabanının dosyaya göre üstünlüğü, veriyi aramaya ve ilişkilendirmeye uygun tutmasıdır. On bin ürünü metin dosyasında saklarsanız, bir ürünü bulmak için dosyanın tamamını okumanız gerekir. Veri tabanı aynı işi indeksler üzerinden saniyenin çok altında yapar. Bu farkın nasıl mümkün olduğunu anlamak için veri tabanının nasıl yapılandığına bakmak gerekir.
Aynı sistem eşzamanlı erişimi de yönetir. Bir sitede aynı anda yüz ziyaretçi sayfa açıyorsa, veri tabanı bu isteklerin hepsini sıraya alır ve birbirini bozmadan cevaplar. Dosyaya yazan iki işlemin birbirinin üzerine yazması gibi bir sorun burada yaşanmaz; kayıt bütünlüğünü koruyan mekanizma sistemin kendisindedir.

Veri tabanı nasıl yapılandırılır: tablo, satır ve sütun
İlişkisel bir veri tabanı üç temel yapıdan oluşur:
- Tablo. Aynı türden kayıtların tutulduğu yapıdır. Bir blogda
yazilartablosu bütün yazıları,kullanicilartablosu bütün kullanıcıları tutar. - Satır. Tablodaki tek bir kayıttır.
yazilartablosundaki her satır bir yazıdır. - Sütun. Kaydın tek bir özelliğidir.
yazilartablosunda başlık, içerik, yayın tarihi ve yazar birer sütundur.
Tablolar birbirine bağlanabilir. yazilar tablosundaki yazar sütunu, kullanicilar tablosundaki bir satırı işaret eder; böylece yazarın adı yüz yazıda yüz kez tekrarlanmaz, tek yerde durur ve gerektiğinde oradan çekilir. İlişkisel veri tabanına adını veren şey tam olarak bu bağlantıdır. Bağlantıyı taşıyan sütunlara anahtar denir ve bu yapı sayesinde bir yazarın adı değiştiğinde yüz yazının tamamı otomatik olarak güncellenmiş olur; çünkü ad tek bir yerde durmaktadır.
İlişkisel veri tabanı ile NoSQL arasındaki fark nedir?
İlişkisel veri tabanında veri, önceden tanımlı tablolarda durur. Hangi sütunun ne tür veri alacağı baştan belirlenir ve bu yapıya uymayan kayıt kabul edilmez. Bu katılık bir kısıt gibi görünse de veri tutarlılığını garanti eder.
NoSQL yaklaşımında şema esnektir. Veri, tablo yerine belge ya da anahtar-değer çiftleri olarak saklanır; her kayıt farklı alanlara sahip olabilir. Çok büyük ölçekli ve yapısı sürekli değişen verilerde tercih edilir.
Barındırma tarafında bu ayrımın pratik karşılığı basittir: paylaşımlı hosting paketlerinde standart olarak ilişkisel veri tabanı sunulur. İçerik yönetim sistemleri, e-ticaret yazılımları ve forum yazılımlarının hepsi ilişkisel yapıya göre yazılmıştır; NoSQL ihtiyacı genellikle kendi sunucusunu yöneten projelerde ortaya çıkar.
Veri tabanı ile SQL arasındaki fark nedir?
SQL bir veri tabanı değil, ilişkisel veri tabanlarıyla konuşmak için kullanılan dildir. Açılımı Structured Query Language’dir ve yaptığı iş, “şu tablodan şu koşula uyan kayıtları getir” gibi istekleri sisteme anlatmaktır.
Karışıklığın kaynağı ürün adlarıdır: MySQL, MSSQL ve PostgreSQL adlarının hepsinde SQL geçer. Bunlar dilin adı değil, o dili konuşan sistemlerin adıdır. Bir sitenin kodu veri tabanına bağlandığında aslında bu dili kullanarak konuşur; siz bu konuşmayı görmezsiniz, yalnızca sonucunu sayfada görürsünüz.

Web sitesi veri tabanını nasıl kullanır?
Bir sayfanın açılması dört adımlı bir zincirle gerçekleşir:
- Ziyaretçi sayfayı ister. Tarayıcı sunucuya istek gönderir.
- Site kodu veri tabanına bağlanır. Bağlantı, sitenin yapılandırma dosyasında yazılı bilgilerle kurulur.
- Sorgu çalışır ve kayıtlar döner. İstenen yazı, ürün ya da kullanıcı bilgisi veri tabanından okunur.
- Sayfa oluşturulup gönderilir. Kayıtlar şablona yerleştirilir ve tamamlanan sayfa tarayıcıya iletilir.
İkinci adımdaki bağlantı için dört bilgi gerekir: sunucu adı, veri tabanı adı, kullanıcı adı ve şifre. Paylaşımlı barındırmada sunucu adı genellikle localhost olur, çünkü veri tabanı sunucusu web sunucusuyla aynı makinede çalışır.
Bu zincirin en önemli sonucu taşımalarda ortaya çıkar: bir sitenin dosyalarını yeni sunucuya kopyalamak tek başına yetmez, veri tabanı da taşınmalıdır. Yalnızca dosyaları taşıyan bir geçişte site açılır ama içerik gelmez; çünkü tema ve kod yeni sunucudadır, yazılar eski sunucudaki veri tabanında kalmıştır. Taşımanın doğru sırası için Hosting Taşıma Nasıl Yapılır? Kesintisiz Geçiş Rehberi yazısına bakabilirsiniz.
Barındırmada hangi veri tabanı çalışır?
Linux tabanlı barındırma paketlerinde standart, MySQL ve onunla uyumlu MariaDB’dir. İkisi aynı kökten gelir ve pratikte aynı komutlarla çalışır; sağlayıcıların çoğu MariaDB kurar ama panelde MySQL adıyla görünür.
Windows tarafında MSSQL kullanılır ve ASP.NET projelerinin standart veri tabanıdır. PostgreSQL bazı paketlerde ek olarak sunulur; ilişkisel yapısı daha katı ve gelişmiş sorgu yeteneklerine sahiptir.
MySQL’in barındırmada nasıl çalıştığı, bağlantı bilgilerinin nereden alındığı ve yedeğinin nasıl aktarıldığı ayrı bir konudur; ayrıntısını MySQL Nedir? MySQL Hosting Nasıl Çalışır? yazısında bulabilirsiniz. Windows tarafındaki gereksinimler için Windows Hosting Nedir? Hangi Teknolojiler İçin Gereklidir? yazısına bakabilirsiniz.
WordPress veri tabanını nasıl kullanır?
WordPress’te neyin nerede durduğu sık karıştırılır. Yazılar, sayfalar, yorumlar, kullanıcılar ve bütün site ayarları veri tabanındadır. Görseller, tema dosyaları, eklenti dosyaları ve yüklediğiniz belgeler ise diskte, wp-content klasörünün içindedir.
Bu ayrım yedeklemenin neden iki parçalı olduğunu doğrudan açıklar: veri tabanı yedeği yazılarınızı kurtarır ama görsellerinizi kurtarmaz, dosya yedeği görsellerinizi kurtarır ama yazılarınızı kurtarmaz. WordPress kurulumları veri tabanındaki tablolara bir ön ek verir; varsayılan ön ek wp_ biçimindedir ve aynı veri tabanında birden fazla kurulum barındırmayı mümkün kılar. WordPress’in barındırma tarafındaki gereksinimleri için WordPress Hosting Nedir? Web Hosting ile Farkı Nedir? yazısına bakabilirsiniz.
Veri tabanı nasıl yönetilir?
Veri tabanı üç yerden yönetilir ve hangisini kullanacağınız yapmak istediğiniz işe bağlıdır:
- Kontrol panelinin veri tabanı bölümü. Yeni veri tabanı oluşturma, kullanıcı açma ve yetkilendirme buradan yapılır. Yapısal işlemlerin yeri burasıdır.
- phpMyAdmin. Veri tabanının içeriğini görüntülemek, dışa aktarmak ve içe aktarmak için kullanılır. Tabloların içine bakmak istediğinizde açacağınız araç budur.
- Uygulamanın kendi arayüzü. Günlük işler (yazı ekleme, ürün güncelleme) uygulamanın yönetim panelinden yapılır ve arka planda zaten veri tabanına yazar.
phpMyAdmin üzerinde yapılan değişikliklerin geri alma düğmesi yoktur. Bir tabloyu silmek ya da bir alanı toplu değiştirmek anında ve kalıcıdır. Bu yüzden her müdahaleden önce ilgili veri tabanının dışa aktarımını almak, isteğe bağlı bir tedbir değil standart bir adımdır. Panelin bu bölümlerinin nerede olduğunu cPanel Nedir? Ne İşe Yarar ve Hosting Hesabı Nasıl Yönetilir? yazısında bulabilirsiniz.

Veri tabanı yedeği neden ayrı alınır?
Bir sitenin yedeği, dosya yedeği ve veri tabanı yedeği olmak üzere iki parçadan oluşur. Bunun sebebi teknik ve nettir: dosyalar diskte duran nesnelerdir, kopyalanabilirler. Veri tabanı ise çalışan bir servistir; dosyaları kopyalamak yeterli olmaz, çünkü kopyalama anında bellekte bekleyen ve henüz diske yazılmamış işlemler bulunabilir.
Bu yüzden veri tabanı kopyalanmaz, dışa aktarılır. Dışa aktarma işlemi, veri tabanının o anki tutarlı hâlini bir metin dosyası olarak üretir; bu dosya geri yüklendiğinde veri tabanı aynı hâline döner.
Tek parçalı yedeğin neden işe yaramadığı da buradan anlaşılır: yalnızca dosyaları geri yüklerseniz site açılır, tasarım gelir, ama içerik boş çıkar. Yalnızca veri tabanını geri yüklerseniz içerik yerindedir ama görseller kırık görünür. Yedekleme sürecinin iki parçasını da kapsayan bir yöntem için WordPress Yedekleme Nasıl Yapılır? Dosya ve Veritabanı Rehberi yazısına, sunucu düzeyinde anlık kayıt almak için Snapshot Nedir? Sunucu Anlık Görüntüsü Ne İşe Yarar? yazısına bakabilirsiniz.
Veri tabanı hakkında sık sorulan sorular
Her web sitesi veri tabanı kullanır mı?
Hayır. Yalnızca HTML dosyalarından oluşan statik siteler veri tabanı kullanmaz; içerik doğrudan dosyaların içinde durur. Bir içerik yönetim sistemi kullanan, üyelik alan, form kaydeden ya da ürün listeleyen her site veri tabanına ihtiyaç duyar.
Hosting paketimde kaç veri tabanı açabilirim?
Bu sayı pakete göre değişir ve pratikte önemli bir sınırdır: her uygulama kurulumu genellikle kendi veri tabanını ister. Yani veri tabanı sayısı, aynı hesapta kaç ayrı uygulama çalıştırabileceğinizi belirler. Paketinizin sınırını panelde veya paket açıklamasında görebilirsiniz; karşılaştırma için Limitsiz Web Hosting Çözümleri sayfasına bakabilirsiniz.
Veri tabanı silinirse site geri gelir mi?
Hayır. Dosyalar yerinde dursa bile içerik veri tabanındadır; silinen veri tabanının geri gelmesinin tek yolu yedektir. Bu, veri tabanı yedeğinin neden ayrıca alınması gerektiğinin en somut cevabıdır.
Veri tabanı sitemi yavaşlatır mı?
Evet, yavaşlatabilir; ama sebep veri tabanının kendisi değildir. Yavaşlığın kaynağı sayfa başına çalışan sorgu sayısı ve pakete ayrılan işlemci ile bellek payıdır. Eklenti sayısı arttıkça her sayfa yüklemesinde çalışan sorgu sayısı artar ve aynı kaynak daha çok işe bölünür.
Bu yüzden doğru soru “veri tabanı mı yavaş” değil, “paketin işlemci ve bellek payı bu siteye yetiyor mu” olmalıdır. Sorgu tarafında yapılabilecekleri Veritabanı Performansı Nasıl İyileştirilir? yazısında anlattık; kaynak tarafında sınıra dayanıyorsanız Sanal Sunucu Kiralama (NVMe VDS Sunucu) sayfasındaki paketleri inceleyebilirsiniz.


[…] yüz ziyaretçinin her biri için ayrı sorgular çalışır. Veri tabanının bu yükteki rolünü Veri Tabanı Nedir? Web Sitesinde Ne İşe Yarar ve Nasıl Çalışır? yazısında […]