Veritabanının ne için kullanıldığına bağlıdır.
Birçok uygulamada (web uygulamaları ya da değil), veritabanı bu uygulamaya kalıcı olarak bağlı olduğu için bu uygulamaya sıkı sıkıya bağlıdır. Daha sonra veritabanı kavramsal olarak uygulamanın bir parçasıdır, bu yüzden birlikte tasarlanmıştır (ve başka hiçbir programın bu veritabanına önemli ölçüde erişmeyeceğini veya güncellenmeyeceğini varsayarsınız ). BTW, kalıcılık , bir veritabanından başka yollarla, örneğin düz metin dosyaları, ikili dosyalar (özellikle dizinlenmiş dosyalar à la GDBM ), git (veya diğer VCS) depoları, dizinler veya dosya ağaçları, ham disk bölümleri, özel donanım (örn. flash), uzak dosya sistemleri, kontrol noktasıteknikleri. Tek bir uygulama için ve tek bir uygulama için tasarlanmış veritabanları için, ortak geri alma ve güncelleme kalıplarına dikkat etmeli ve veritabanı şemasını (ve indeksleme!) Göz önünde bulundurarak tasarlamalısınız.
Bazı durumlarda veritabanı kendi başına büyük ve bağımsız bir varlıktır ve birkaç farklı uygulama (ve hatta gelecekteki uygulamalar) tarafından kullanılmak üzere a priori olarak tasarlanmıştır . O zaman bağımsız olarak (ve çok daha dikkatli) tasarlanmalıdır.
Özellikle bazı web uygulamaları sadece varolan veritabanlarının web arayüzleridir.
Birçok durumda (bazı wiki'leri örnek olarak düşünün), veriler onu kullanan uygulamalardan daha önemlidir ve daha değerlidir. Gelecekteki kanıtlarını nasıl oluşturacağınızı ve kolayca evrilebileceğinizi umursabilirsiniz (örneğin, yedeklemek ve geri yüklemek için metinsel ve çok yönlü - tercihen standart ve belgelenmiş formatları kullanarak veya tanımlayarak).
Bir veritabanının (PROPER) tasarımının küçük bir görev olmadığını anladım ...
De okuyunuz NoSQL , belge yönelimli veritabanları , anahtar-değer veritabanları , bilgi yönetimi , bilgi gösterimi ve akıl yürütme , ontolojiler , uzman sistemler , iş kuralları yaklaşım , ERP , CMS . Belki REDIS , MongoDB vb. Kullanmayı düşünün .