FlatFile VERİTABANI

PHP Scriptlerle ilgili bölümümde en çok karşılaşacağınız kavramlardan birisi de FlatFile veritabanıdır. Konuya hakim olmayan veya yeni başlayan ziyaretçilerim için bu konuyu biraz açmak istiyorum.

Hatta, biliyorum diyenlerin dahi okumasını tavsiye ederim çünkü eminim yanlış bildikleri birşeyler kalmıştır akıllarında :)


Flat File ile ilgili doğrular ve yanlışlar.

  • FlatFile veritabanları notepad dosyalarına yazılan içeriklerdir.

  Yanlış.  Hatta diyenler zekalarından kuşku duymalılar. Tüm veritabanları verileri (şifrelenmedikleri sürece) oldukları gibi tutar. Notepad dosyası benzetmesi algıda güçlük çekenlerin zırvasıdır. Veritabanının uzantısı veya dosya tipi kesinlikle önemli değildir. Önemli olan veritabanının yapısı, yani verilerin ve parametrelerinin yazılış sıralanış ve geri aranma biçimidir. Kısacası, amatör ellerde tüm veritabanları hantaldır. Ancak uzman bir kodcunun elinde FlatFile veritabanları olası en yüksek hızı sağlar.

  • FlatFile veritabanları yüksek kapasiteleri kaldırmaz

  Yanlış.  Yukarıda da belirttiğim gibi. Kodlayan amatörse elbette kaldırmaz. Siz FlatFile'da 2 GB boyutundaki veritabanını tek dosyaya sığdırmak isterseniz elbette bunda arama & sorgu yapmak güçleşecektir. Ha tutar tüm girdileri şişme olmasın diye ayrı dosyalara atarsanız da bu kez yüzbinlerce dosya sunucunun disk operasyonlarını yavaşlatacaktır. Neyseki FlatFile üzerinde yazmayı tercih edenlerin çoğu tecrübeli kodcular oluyorlar. Bu nedenle sorunlu uygulama sayısı çok azdır. Hatta MySql'deki problemli uygulama sayısı ile mukayese edildiğinde çok daha iyi durumdadır. Kısacası FlatFile'lar olası her kapasiteyi kaldırır.

  • FlatFile veritabanları sistemi yavaşlatır

  Yanlış.  Bu da tamamen yukarıda değindiğim yazılımcı tecrübesi ile ilgili. Sistemde darboğaz (overhead) yaratan FlatFile yazılımlarla MySql vb. veritabanı kullanan yazılımları oranladığımda sistemi zorlayan yazılımların sadece %5'inin FlatFile olduğunu gördüm.

  • FlatFile'ın bakımı ve onarımı daha zordur.

  Yanlış.  Hatta yalanın ve bilgisizliğin daniskası :) Bilakis, FlatFile'ların en büyük avantajı kurulumda, bakımda, yedeklemede, yedeği geri yüklemede ve uygulamanın başka bir dinize veya başka bir sunucuya taşınmasında yarattığı avantajlardır. İstisnasız olarak yukarıda saydığım tüm maddelerde harici veritabanlarının tamamından daha kolay yönetilirler. Hemde kat kat daha kolay.

  • FlatFile yaygın değildir çünkü tercih edilmez.

  Kısmen doğru.  Yaygın değildir çünkü FlatFile yazılımı hakkıyla yazabilen veya yazmayı tercih eden yazılımcı çok azdır. "Kolayı ve hazır komut sorgu setleri varken neden kasayım?" düşüncesi nedeniyle FlatFile'lar yaygın değildir. Tabiki biraz da önyargılar... Yazılımcı zor diye tercih etmez ama kullanıcı için sorun yoktur. Yukarıda madde madde saydığım başlıklar altında çamur atılan bir kavram ister istemez amatör veya kendisini profesyonel zanneden kullanıcıların kafalarını bulandıracaktır.

  • E o zaman, FlatFile uygulamalar gittikçe daha da yaygınlaşıyordur

  Fena Halde Doğru :)  Kullanıcılar bilinçlendikçe daha da yaygınlaşmaya devam edecektir. Web tabanlı uygulamalar profesyonellerin tekelinden çıkıp son kullanıcıların eline düştükçe daha basit ve daha stabil sistemler elbette daha çok rağbet görecektir. Yönetim kolaylığı kavramı önem kazandıkça, FlatFile daha da çok desteklenecektir.

  • Ama popüler yazılımların neredeyse hepsinde Sql tabanlı sistemler var.

  Doğru.  Gazete alırken içeriğine önem veririz değilmi? Peki çok satan gazete = kaliteli gazete midir? Popülerlik kalite göstergesimidir? Az sabırlı olun. FlatFile uygulamalar popüler platformlarda da diğerlerine yetişti. Hatta yakında CMS pazarı bile temeli FlatFile olan Lanius CMS'nin gücü ve esnekliğiyle sallanacak. Sanırım bekletecek tek alan forumlar olacak. En yoğun veri trafiğinin ve sorgusunun yaşandığı scriptler forumlardır. Çok çok başarılı örnekleri var ancak halen milyon üyeli bir forumu hakkıyla kaldırabilecek durumda değilller. Bekliyoruz :)

  • Bu durumda FlatFile her kategoride Sql tabanlıları sollamıştır değilmi?

  Yanlış.  Her sistemin gelişme süreci vardır. Hiçbir sistem de mükemmel değildir. Tüm diğer artılarına rağmen halen Sql'i tercih etmek zorunda kalmanıza neden olacak üç kriter vardır.

1. Örneğin bir CMS ile bir Forumu (veya başka 2 yazılımı) biribirine entegre etmek istediğinizde FlatFile işinizi zorlaştırır. Ancak sorgu mantığı ve ve veri saklama yapıları belirli kalıplar içerisinde kısmen standardize edilmiş olan Sql tabloları bu entegrasyon için büyük kolaylık sağlar. Gerçi bu işler hazır scriptler ile yapılıyor ama :) Her uygulama için bulamazsınız.

2. Yoğun arama ve sorgu yapılan (küçük ve orta ölçeklilerde değil) veritabanlarında Sql vb. türevler daha hızlıdır. Ama bu uç noktalar için geçerlidir. Bir forumda bu husus için endişelenmeniz için veritabanı boyutunuzun ortalama 5 GB'a falan gelmesine ihtiyaç vardır ki... Türkiye'de kaç forumun böyle kitlesi var ?

3. Veritabanları arası dönüşüm hususunda yine sql vb. türevi harici veritabanları ciddi kolaylıklar sağlar. Nedeni tablo, veri yapısı vb. özelliklerinin benzer olmasıdır. Ne zaman peki? Mesela bir forum uygulamasınının üyelerini ve kayıtlarını başka bir forum uygulamasına taşımak istediğiniz zaman. Ancak son kullanıcılar için pratikte forum dışında herhangi bir yazılım grubunda böyle bir olanak zaten yoktur. Düzgün başlayın, taşıma gereği de duymayın :)

E bu durumda öneriniz nedir diye soranlar için...

Tekrar okuyun, demekki tam anlayamamışsınız :D


Görüş öneri ve sorularınız için buraya
Sitedeki değişikliklerden haberdar olmak için ise buraya tıklayınız