İçeriğe geç
parazade

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.

Veritabanı Şeması nedir?
İçindekiler
  1. Veritabanı şeması nedir?
  2. Bir şemada neler bulunur?
  3. Şema nasıl gösterilir ve değiştirilir?
  4. Şemasız veritabanı olur mu?

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.

İlgili terimler

ER Diyagramı(ER Diagram)ER diyagramı (varlık-ilişki diyagramı), bir veritabanındaki varlıkları, bu varlıkların niteliklerini ve aralarındaki ilişkileri görsel olarak gösteren şemadır. Veritabanı tasarlanırken plan olarak kullanılır.MigrationMigration, yazılım geliştirmede veritabanı şemasındaki değişiklikleri sıralı ve sürümlenmiş dosyalar hâlinde tanımlama ve uygulama yöntemidir. Tablo ekleme, sütun değiştirme gibi adımlar kodla kaydedilir ve her ortamda aynı sırayla çalıştırılır.Veri Modeli(Data Model)Veri modeli, bir sistemde hangi verilerin tutulacağını, bu verilerin nasıl düzenleneceğini ve birbirleriyle nasıl ilişkilendirileceğini tanımlayan yapısal plandır. Genellikle kavramsal, mantıksal ve fiziksel aşamalarla hazırlanır.Normalizasyon(Database Normalization)Normalizasyon, ilişkisel veritabanı tasarımında veri tekrarını ve güncelleme hatalarını azaltmak için tabloları kurallara göre bölme işlemidir. Bu kurallar birinci, ikinci ve üçüncü normal form gibi aşamalarla tanımlanır.Veritabanı(Database)Veritabanı, verilerin düzenli, aranabilir ve güncellenebilir biçimde saklandığı elektronik kayıt sistemidir. Müşteri listeleri, siparişler ve ürün bilgileri gibi veriler veritabanlarında tutulur.PostgreSQLPostgreSQL (kısaca Postgres), SQL standartlarına sıkı bağlılığı, gelişmiş veri türleri ve eklenti desteğiyle bilinen açık kaynak kodlu, nesne-ilişkisel bir veritabanı yönetim sistemidir.Yabancı Anahtar(Foreign Key)Yabancı anahtar (foreign key), bir tablodaki sütunun başka bir tablonun birincil anahtarına işaret etmesini sağlayan kısıttır. Tablolar arasındaki ilişkiyi kurar ve var olmayan bir kayda bağlantı yapılmasını engeller.