data101

1. Veri Modelleme Kavramları

1.1. Veri Modelleme Nedir? ve Önemi

Veri Modelleme Nedir? Veri modelleme, verilerin yapısını, ilişkilerini ve kısıtlamalarını belirlemek için kullanılan sistematik bir süreçtir. Bu süreç, iş gereksinimlerini teknik tasarımlara dönüştürerek, veritabanlarının etkin ve verimli bir şekilde yönetilmesini sağlar. Veri modelleme, verilerin nasıl depolanacağını, işleneceğini ve kullanılacağını planlayarak, işletmelerin bilgiye dayalı kararlar almasına katkıda bulunur.

Veri Modellemenin Önemi:

1.2. Veri Modelleme Süreci

Veri modelleme süreci, veri ambarlarının ve veritabanlarının oluşturulmasında temel bir adımdır. Bu süreç, genellikle dört ana aşamadan oluşur: Gereksinim Analizi, Kavramsal Modelleme, Mantıksal Modelleme ve Fiziksel Modelleme.

1.2.1. Gereksinim Analizi

Tanım: Gereksinim analizi, veritabanının hangi iş ihtiyaçlarına cevap vereceğini belirlemek için yapılan ilk adımdır. Bu aşamada, işletmenin hangi tür verilere ihtiyaç duyduğu ve bu verilerin nasıl kullanılacağı detaylandırılır.

Adımlar:

Örnek: Bir e-ticaret sitesi için müşteri bilgileri (ad, soyad, e-posta), ürünler (isim, fiyat, stok durumu) ve siparişler (sipariş numarası, ürün, müşteri, tarih) yönetilmelidir.

1.2.2. Kavramsal Modelleme

Tanım: Kavramsal modelleme, iş gereksinimlerine uygun şekilde veritabanının temel yapısını belirler. Bu aşamada, varlıklar (entity), ilişkiler (relationship) ve özellikler (attribute) tanımlanır.

Adımlar:

Örnek:

1.2.3. Mantıksal Modelleme

Tanım: Mantıksal modelleme, kavramsal modelin detaylandırılarak mantıksal bir düzeye indirgenmesidir. Bu aşamada, veri türleri, anahtarlar ve kısıtlamalar gibi detaylar eklenir.

Adımlar:

Adımlar:

1.3.1. Veri Modelleme Araçları

1.3.2. Veri Modelleme Teknikleri

1.4. Veri Modelleme Örnek Vakalar

1.4.1. E-Ticaret Sitesi Veri Modelleme

Senaryo: Bir e-ticaret sitesi, müşteri bilgilerini, ürünleri ve siparişleri yönetmek istiyor. Bu verilerin etkili bir şekilde yönetilmesi için veri modelleme süreci uygulanacaktır.

Veri Modelleme Aşamaları:

  1. Gereksinim Analizi:
    • Veri İhtiyaçları:
      • Müşteri: Ad, soyad, e-posta, adres.
      • Ürün: İsim, fiyat, stok durumu, kategori.
      • Sipariş: Sipariş numarası, müşteri ID, ürün ID, miktar, tarih.
  2. Kavramsal Modelleme:
    • Varlıklar:
      • Müşteri, Ürün, Sipariş
    • İlişkiler:
      • Bir müşteri birçok sipariş verebilir (1-N).
      • Bir sipariş birçok ürünü içerebilir ve bir ürün birçok siparişte yer alabilir (N-N).
  3. Mantıksal Modelleme:
    • Tabloların Oluşturulması:
      • Müşteri Tablosu: ID (INT, PK), Ad (VARCHAR), Soyad (VARCHAR), Eposta (VARCHAR)
      • Ürün Tablosu: ID (INT, PK), Isim (VARCHAR), Fiyat (DECIMAL), Stok (INT), Kategori (VARCHAR)
      • Sipariş Tablosu: ID (INT, PK), MusteriID (INT, FK), Tarih (DATE)
      • Siparis_Urun Tablosu: SiparisID (INT, FK), UrunID (INT, FK), Miktar (INT)
  4. Fiziksel Modelleme: Tabloların Oluşturulması ve İndeksleme ``` CREATE TABLE Musteri ( ID INT PRIMARY KEY, Ad VARCHAR(100), Soyad VARCHAR(100), Eposta VARCHAR(100) );

CREATE TABLE Urun ( ID INT PRIMARY KEY, Isim VARCHAR(100), Fiyat DECIMAL(10, 2), Stok INT, Kategori VARCHAR(50) );

CREATE TABLE Siparis ( ID INT PRIMARY KEY, MusteriID INT, Tarih DATE, FOREIGN KEY (MusteriID) REFERENCES Musteri(ID) );

CREATE TABLE Siparis_Urun ( SiparisID INT, UrunID INT, Miktar INT, PRIMARY KEY (SiparisID, UrunID), FOREIGN KEY (SiparisID) REFERENCES Siparis(ID), FOREIGN KEY (UrunID) REFERENCES Urun(ID) );

– İndeksleme CREATE INDEX idx_MusteriID ON Siparis(MusteriID); CREATE INDEX idx_Tarih ON Siparis(Tarih); CREATE INDEX idx_UrunID ON Siparis_Urun(UrunID);


#### **1.4.2. Sağlık Sektörü Veri Modelleme**
**Senaryo:** Bir hastane, hasta bilgilerini, doktorları, randevuları ve tedavi süreçlerini yönetmek istiyor. Veri modelleme süreci, bu bilgilerin etkin bir şekilde yönetilmesini sağlayacaktır.

**Veri Modelleme Aşamaları:**
1. **Gereksinim Analizi:**
    - **Veri İhtiyaçları:**
        - **Hasta:** Hasta ID, Ad, Soyad, Doğum Tarihi, Cinsiyet, İletişim Bilgileri.
        - **Doktor:** Doktor ID, Ad, Soyad, Branş, İletişim Bilgileri.
        - **Randevu:** Randevu ID, Hasta ID, Doktor ID, Tarih, Saat.
        - **Tedavi:** Tedavi ID, Randevu ID, Tedavi Detayları, İlaç Bilgileri.
2. **Kavramsal Modelleme:**
    - **Varlıklar:**
        - **Hasta**, **Doktor**, **Randevu**, **Tedavi**
    - **İlişkiler:**
        - Bir hasta birçok randevu alabilir (1-N).
        - Bir doktor birçok randevu verebilir (1-N).
        - Her randevu birçok tedavi içerebilir (1-N).
3. **Mantıksal Modelleme:**
    - **Tabloların Oluşturulması:**
        - **Hasta Tablosu:** ID (INT, PK), Ad (VARCHAR), Soyad (VARCHAR), DogumTarihi (DATE), Cinsiyet (VARCHAR), Iletisim (VARCHAR)
        - **Doktor Tablosu:** ID (INT, PK), Ad (VARCHAR), Soyad (VARCHAR), Brans (VARCHAR), Iletisim (VARCHAR)
        - **Randevu Tablosu:** ID (INT, PK), HastaID (INT, FK), DoktorID (INT, FK), Tarih (DATE), Saat (TIME)
        - **Tedavi Tablosu:** ID (INT, PK), RandevuID (INT, FK), TedaviDetaylari (TEXT), IlacBilgileri (TEXT)
4. **Fiziksel Modelleme:**
    - **Tabloların Oluşturulması ve İndeksleme:**

CREATE TABLE Hasta ( ID INT PRIMARY KEY, Ad VARCHAR(100), Soyad VARCHAR(100), DogumTarihi DATE, Cinsiyet VARCHAR(10), Iletisim VARCHAR(100) );

CREATE TABLE Doktor ( ID INT PRIMARY KEY, Ad VARCHAR(100), Soyad VARCHAR(100), Brans VARCHAR(50), Iletisim VARCHAR(100) );

CREATE TABLE Randevu ( ID INT PRIMARY KEY, HastaID INT, DoktorID INT, Tarih DATE, Saat TIME, FOREIGN KEY (HastaID) REFERENCES Hasta(ID), FOREIGN KEY (DoktorID) REFERENCES Doktor(ID) );

CREATE TABLE Tedavi ( ID INT PRIMARY KEY, RandevuID INT, TedaviDetaylari TEXT, IlacBilgileri TEXT, FOREIGN KEY (RandevuID) REFERENCES Randevu(ID) );

– İndeksleme CREATE INDEX idx_HastaID ON Randevu(HastaID); CREATE INDEX idx_DoktorID ON Randevu(DoktorID); CREATE INDEX idx_RandevuID ON Tedavi(RandevuID); ```

Sonuç: Bu veri modeli, hastanenin hasta, doktor, randevu ve tedavi verilerini etkili bir şekilde yönetmesini sağlar. İlişkilerin doğru tanımlanması, veri bütünlüğünü ve erişim performansını artırır.

1.5. Veri Modelleme En İyi Uygulamaları

Veri modelleme sürecinde, veri kalitesi ve veritabanının performansı açısından bazı en iyi uygulamalar bulunmaktadır:

1.6. Veri Modelleme Zorlukları ve Çözümleri

Veri modelleme süreci, bazı zorlukları da beraberinde getirebilir. Bu zorluklar ve olası çözümleri aşağıda belirtilmiştir: