İçeriğe geç
parazade

Veri Modeli Nedir?

İngilizce: Data Model

Yayın: · Son güncelleme:

Veri Modeli Nedir? Kısaca

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.

Veri Modeli nedir?
İçindekiler
  1. Veri modeli nedir?
  2. Modelleme aşamaları
  3. Örnek
  4. Modellerken nelere dikkat etmeli?

Veri modeli nedir?

Veri modeli, bir uygulamanın verisini nasıl göreceğinin ve saklayacağının tarifidir. Hangi nesnelerin (müşteri, ürün, sipariş) olacağı, bunların hangi bilgileri taşıyacağı ve aralarındaki ilişkiler bu planda belirlenir. Yazılımın ilk aşamalarında hazırlanır ve sonraki pek çok kararı etkiler.

"Veri modeli" ifadesi ayrıca ilişkisel, doküman ya da graf gibi veri saklama yaklaşımlarını anlatmak için de kullanılır. Örneğin MongoDB'nin doküman veri modelini kullandığı söylenir.

Modelleme aşamaları

Veri modeli genellikle üç katmanda geliştirilir:

  • Kavramsal model: İş tarafının diliyle ana varlıkları ve ilişkileri gösterir.
  • Mantıksal model: Nitelikleri, anahtarları ve ilişki türlerini teknolojiden bağımsız tanımlar.
  • Fiziksel model: Seçilen veritabanına özgü tablo, veri türü ve indeks ayrıntılarını içerir.

Örnek

Varsayımsal bir küçük e-ticaret sitesi için kavramsal modelde "müşteri sipariş verir, sipariş ürün içerir" cümleleri yeterlidir. Mantıksal modelde siparişin tarih ve toplam tutar bilgileri, sipariş ile ürün arasındaki çoka çok ilişki ve bu ilişkiyi çözen "siparis_kalemleri" yapısı tanımlanır. Fiziksel modelde ise tutar alanının PostgreSQL'de NUMERIC(12,2) türünde olacağı gibi ayrıntılar netleşir.

Modellerken nelere dikkat etmeli?

Modeli kodlamaya başlamadan önce gerçek iş senaryolarıyla sınayın. "İade edilen siparişler nasıl görünecek?" ya da "bir ürünün birden fazla rengi olabilir mi?" gibi sorular, sonradan maliyetli değişiklikleri önler. Modeli bir ER diyagramı ile görselleştirip iş birimiyle birlikte gözden geçirmek, eksik varlıkları erkenden ortaya çıkarır.

Sıkça Sorulan Sorular

Veri modeli ile veritabanı şeması arasındaki fark nedir?

Veri modeli daha geniş bir kavramdır ve teknolojiden bağımsız olarak da kurulabilir. Veritabanı şeması ise fiziksel modelin belirli bir veritabanında uygulanmış hâlidir.

No-code araçlarda veri modeli gerekir mi?

Evet. Airtable veya Bubble gibi araçlarda da tabloların ve aralarındaki bağlantıların baştan doğru kurulması, uygulama büyüdükçe karmaşayı önler.

İlgili terimler

Veritabanı Şeması(Database Schema)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.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.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.İlişkisel Veritabanı(Relational Database)İlişkisel veritabanı, verileri satır ve sütunlardan oluşan tablolarda saklayan ve tabloları ortak anahtarlarla birbirine bağlayan veritabanı türüdür. Veriler SQL diliyle sorgulanır ve güncellenir.MongoDBMongoDB, verileri tablolar yerine JSON benzeri dokümanlar hâlinde saklayan, doküman tabanlı bir NoSQL veritabanıdır. Esnek yapısı sayesinde alanları kayıttan kayda değişebilen veriler kolayca tutulur.İndeks(Index)İndeks, veritabanında belirli sütunlardaki değerleri sıralı bir yapıda tutarak aranan kayıtların tüm tabloyu taramadan hızlıca bulunmasını sağlayan yardımcı veri yapısıdır. Kitabın sonundaki dizine benzer.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.