Veritabanı Şeması Nedir?
İngilizce: Database Schema
Yayın: · Son güncelleme:
Veritabanı Şeması Nedir? Kısaca
Veritabanı şeması (schema), bir veritabanındaki tabloların, sütunların, veri türlerinin, anahtarların ve tablolar arasındaki ilişkilerin yapısını tanımlayan plandır. Verinin kendisini değil, iskeletini anlatır.

İçindekiler
Veritabanı şeması nedir?
Veritabanı şeması, verilerin nasıl düzenleneceğini gösteren mimari çizimdir. Hangi tabloların olacağı, her tabloda hangi sütunların bulunacağı, bu sütunların veri türü ve hangi alanların birbirine bağlanacağı şemada tanımlanır. Bir binanın kat planına benzer: odaları gösterir, içindeki eşyaları değil.
PostgreSQL ve SQL Server gibi bazı sistemlerde "schema" kelimesi ayrıca tabloları gruplayan bir ad alanı anlamında da kullanılır. Örneğin "muhasebe" ve "satis" adlı iki şema aynı veritabanında yan yana durabilir.
Bir şemada neler bulunur?
Şema, veritabanının kurallarını da içerir. Tablo ve sütun tanımlarının yanında birincil ve yabancı anahtarlar, zorunlu alanlar, varsayılan değerler ve indeksler şemanın parçasıdır.
Varsayımsal bir kütüphane uygulamasının şeması şöyle özetlenebilir: "kitaplar" tablosunda id, ad, yazar_id ve basim_yili; "yazarlar" tablosunda id ve ad sütunları bulunur. kitaplar.yazar_id ise yazarlar.id sütununa yabancı anahtar olarak bağlanır.
Şema nasıl gösterilir ve değiştirilir?
Şemayı görselleştirmenin en yaygın yolu ER diyagramı çizmektir. Kod tarafında ise şema genellikle CREATE TABLE komutlarıyla ya da ORM'deki model sınıflarıyla tanımlanır.
Yayındaki bir uygulamada şemayı elle değiştirmek risklidir. Bunun yerine her değişiklik bir migration dosyası olarak yazılır, sürüm kontrolünde saklanır ve tüm ortamlarda aynı sırayla uygulanır.
Şemasız veritabanı olur mu?
MongoDB gibi doküman veritabanları için "şemasız" ifadesi kullanılır, ama bu tam doğru değildir. Şema veritabanında zorunlu tutulmaz, uygulama kodunun içinde yaşar. Verinin düzenli kalması için bu sistemlerde de şema doğrulama kuralları tanımlamak iyi bir alışkanlıktır.
Sıkça Sorulan Sorular
Şema ile veritabanı aynı şey mi?
Hayır. Veritabanı verinin kendisini ve yapısını birlikte barındırır, şema ise yalnızca yapıyı tanımlar. Bazı sistemlerde ise tek bir veritabanı birden fazla şema içerebilir.
Şemayı sonradan değiştirmek mümkün mü?
Evet, ALTER TABLE gibi komutlarla ya da migration araçlarıyla değiştirilir. Büyük tablolarda yapılan değişiklikler uzun sürebileceği için yedek alıp önce test ortamında denemek gerekir.