← Database Management System Ana Sayfa
CEN208 — Normalizasyon Alıştırmaları
📚 CEN208 — Veritabanı Yönetim Sistemleri

Normalizasyon Alıştırmaları

Closure · Anahtarlar · BCNF · 3NF · 4NF Ayrıştırması — Soru & Çözümler

Soru 1 Nitelik Kapanışı (Closure of Attributes)
📋 Verilen

İlişki: R(A, B, C, D, E)

FD'ler: A → B  ·  BC → D  ·  D → E

(a) {A}⁺ = ?

Yalnızca A'dan başlayarak hangi niteliklere ulaşabilirsiniz?

(b) {A, C}⁺ = ?

A ve C'den başlayarak hangi niteliklere ulaşabilirsiniz?

💡
Closure Algoritması Hatırlatması

Başlangıç kümesiyle başla. Her adımda: eğer bir FD'nin sol tarafı tamamıyla kapanışın içindeyse, sağ tarafı kapanışa ekle. Değişim olmayıncaya kadar tekrarla.

✓ Çözüm Adım Adım Closure Hesabı

(a) {A}⁺ Hesabı

AdımMevcut KapanışUygulanan FDSonuç
1 {A} Başlangıç
2 {A} A → B(A kapanışta var) {A, B}
3 {A, B} BC → D(C kapanışta yok!) Değişim yok
4 {A, B} D → E(D kapanışta yok!) Değişim yok
5 {A, B} Uygulanabilir FD kalmadı DUR
🎯 Sonuç

{A}⁺ = {A, B}

⚠️
Sık Yapılan Hata!

C kapanışta olmadığı halde BC → D uygulamak. Sol tarafın tamamı kapanışta bulunmak zorunda!

(b) {A, C}⁺ Hesabı

AdımMevcut KapanışUygulanan FDSonuç
1 {A, C} Başlangıç
2 {A, C} A → B(A kapanışta) {A, B, C}
3 {A, B, C} BC → D(B ve C her ikisi de kapanışta!) {A, B, C, D}
4 {A, B, C, D} D → E(D kapanışta) {A, B, C, D, E}
5 {A, B, C, D, E} Tüm nitelikler kapsandı DUR
🎯 Sonuç

{A, C}⁺ = {A, B, C, D, E} → Tüm nitelikleri kapsıyor!

Anahtar İpucu

Bir kümenin kapanışı tüm R niteliklerini kapsıyorsa, o küme bir süper anahtardır. {A,C}⁺ = {A,B,C,D,E} olduğundan, {A,C} süper anahtardır!

Soru 2 Anahtarları Bulma (Finding Keys)
📋 Verilen

İlişki: R(A, B, C, D, E)

FD'ler: A → B  ·  BC → D  ·  D → E

❓ Soru

R ilişkisinin tüm anahtarlarını bulun. Kapanış hesaplayarak cevabınızı gerekçelendirin.

İpucu: Önce tekli nitelikleri test edin, sonra kombinasyonları deneyin.

🔑
Anahtar Tanımı

Bir anahtar şu iki koşulu sağlamalı: (1) Tüm nitelikleri fonksiyonel olarak belirleyebilmeli, (2) Minimal olmalı — hiçbir alt kümesi de anahtar olmamalı.

✓ Çözüm Sistematik Anahtar Arama

Adım 1: Tekli Nitelikleri Test Et

KümeKapanışTüm Nitelikleri Kapsıyor mu?
{A}{A, B}❌ Hayır
{B}{B}❌ Hayır
{C}{C}❌ Hayır
{D}{D, E}❌ Hayır
{E}{E}❌ Hayır
📌

Hiçbir tekli nitelik anahtar değil. İkili kombinasyonlara geçiyoruz.

Adım 2: İkili Kombinasyonları Test Et

KümeKapanışTüm Nitelikleri Kapsıyor mu?
{A, C} {A, B, C, D, E} ✅ EVET — Süper Anahtar!
{A, D} {A, B, D, E} ❌ Hayır (C eksik)
{B, C} {B, C, D, E} ❌ Hayır (A eksik)
{C, D} {C, D, E} ❌ Hayır (A, B eksik)

Adım 3: {A, C} Minimal mi?

Bir kümenin minimal anahtar olması için, hiçbir gerçek alt kümesi süper anahtar olmamalı:

🔍
{A} alt kümesi süper anahtar mı?

{A}⁺ = {A, B} ≠ tüm nitelikler → Hayır

🔍
{C} alt kümesi süper anahtar mı?

{C}⁺ = {C} ≠ tüm nitelikler → Hayır

🎯 Sonuç

R'nin tek anahtarı: {A, C}

Alt kümelerin hiçbiri süper anahtar değil → {A,C} minimaldir → gerçek anahtar.

🧠
Neden yalnızca {A, C}?

A olmadan BC üzerinden D'ye gidilebilir ama A'yı elde etmek mümkün değildir. C olmadan A üzerinden yalnızca B'ye ulaşılır. İkisi birlikte tüm zinciri başlatır: A→B, BC→D, D→E.

Soru 3 Normal Form Kontrolü — BCNF ve 3NF
📋 Verilen

İlişki: R(A, B, C, D, E)

FD'ler: A → B  ·  BC → D  ·  D → E

Anahtar: {A, C}

(a)

R, BCNF'de mi? Değilse tüm ihlalleri belirleyin.

(b)

R, 3NF'de mi? Değilse tüm ihlalleri belirleyin.

(c)

R'nin asal (prime) nitelikleri nelerdir?

✓ Çözüm Normal Form Analizi

(c) Asal Nitelikler — Önce Bunu Belirleyelim

📌
Asal Nitelik Tanımı

En az bir anahtar içinde yer alan nitelikler "asal" (prime), diğerleri "asal olmayan" (non-prime) olarak adlandırılır.

Anahtar = {A, C} olduğundan:
A — Asal (prime) B — Asal Değil C — Asal (prime) D — Asal Değil E — Asal Değil

(a) BCNF Kontrolü

📐
BCNF Kuralı

Her önemsiz olmayan FD X → Y için X, bir süper anahtar olmalıdır. İstisna yoktur.

FDSol Taraf KapanışıSüper Anahtar mı?BCNF İhlali?
A → B {A}⁺ = {A,B} ❌ Hayır ⚠️ İHLAL
BC → D {BC}⁺ = {B,C,D,E} ❌ Hayır ⚠️ İHLAL
D → E {D}⁺ = {D,E} ❌ Hayır ⚠️ İHLAL
❌ Karar

R, BCNF'de DEĞİLDİR — 3 FD'nin tamamı ihlal oluşturur.

(b) 3NF Kontrolü

📐
3NF Kuralı

X → A ifadesi 3NF'yi ihlal eder ancak ve ancak: X süper anahtar DEĞİL VE A asal nitelik DEĞİL koşullarının ikisi birlikte sağlanıyorsa.

FDSol Taraf Süper Anahtar?Sağ Taraf Asal mı?3NF İhlali?
A → B ❌ Hayır B asal değil ⚠️ İHLAL
BC → D ❌ Hayır D asal değil ⚠️ İHLAL
D → E ❌ Hayır E asal değil ⚠️ İHLAL
❌ Karar

R, 3NF'de de DEĞİLDİR — 3 FD'nin tamamı ihlal oluşturur.

🧠
Önemli Not

R, 3NF'de olmadığı için kesinlikle BCNF'de ve 4NF'de de değildir. Normal form hiyerarşisi: 4NF ⊂ BCNF ⊂ 3NF. Zayıf olanı sağlayamayan, güçlü olanı hiç sağlayamaz.

Soru 4 BCNF Ayrıştırması
📋 Verilen

İlişki: R(A, B, C, D, E)

FD'ler: A → B  ·  BC → D  ·  D → E

Anahtar: {A, C}

❓ Soru

R'yi tümüyle BCNF'de olan ilişkiler kümesine ayrıştırın. BCNF ayrıştırma algoritmasını kullanın. Nihai ilişkileri, anahtarlarını ve varsa kaybedilen FD'leri belirtin.

⚙️
BCNF Ayrıştırma Algoritması

1. İhlal eden bir FD bul: X → Y (X süper anahtar değil)

2. X⁺ hesapla

3. R1 = X⁺ (tüm kapanış)  ·  R2 = R − (X⁺ − X) yani X + X dışındaki nitelikler

4. Tüm ilişkiler BCNF'de olana kadar tekrarla

✓ Çözüm İterasyon İterasyon Ayrıştırma
İterasyon 1 R(A, B, C, D, E) — BCNF Kontrolü
FDSüper Anahtar?BCNF İhlali?
A → B {A}⁺ = {A,B} ≠ tüm nitelikler ⚠️ EVET — bunu seç!
BC → D {BC}⁺ = {B,C,D,E} ≠ tüm nitelikler ⚠️ EVET
D → E {D}⁺ = {D,E} ≠ tüm nitelikler ⚠️ EVET
📌

A → B ihlalini seçiyoruz. Herhangi birini seçebilirsiniz — farklı seçimler farklı ama eşdeğer ayrıştırmalara yol açar.

A → B ile Ayrıştır:
{A}⁺ = {A, B}
R1 = {A}⁺ = (A, B)
R2 = R − ({A,B} − {A}) = R − {B} = (A, C, D, E)
💡
Neden X her zaman R1'in anahtarı olur?

R1 = X⁺ olarak tanımlandığında, X her şeyi X⁺ içinde belirler → X, R1'in süper anahtarıdır. Orijinal R'de X'in hiçbir alt kümesi süper anahtar olmadığından, X aynı zamanda minimaldir → R1'in anahtarı olur.

R1(A, B)
Anahtar: {A}
FD: A → B
R2(A, C, D, E)
Anahtar: ? (kontrol edilecek)
FD'ler: ?
İterasyon 2 R1(A,B) ve R2(A,C,D,E) — BCNF Kontrolü
R1(A, B) Kontrolü:

R1'de yalnızca A → B uygulanabilir. {A}⁺ = {A,B} = R1'in tamamı → A anahtardır → İhlal yok → R1 BCNF'de. DUR.

R2(A, C, D, E) — FD Projeksiyonu:
📌
FD Projeksiyonu Nedir?

Bir alt ilişkiye hangi FD'lerin geçerli olduğunu bulmak için: yalnızca sol ve sağ tarafları tamamen o ilişkinin nitelikleri içinde kalan FD'ler alınır.

Orijinal FDR2'ye Projekte Edilir mi?Sebep
A → B❌ HayırB, R2'de yok
BC → D❌ HayırB, R2'de yok
D → E✅ EvetD ve E her ikisi de R2'de var
R2'nin anahtarını bul (yalnızca D→E geçerli):
Test KümesiR2 İçindeki KapanışR2'yi Kapsıyor mu?
{A}{A}❌ Hayır
{C}{C}❌ Hayır
{D}{D,E}❌ Hayır
{A,C}{A,C} (D→E için D lazım, yok)❌ Hayır
{A,C,D}{A,C,D} → D→E → {A,C,D,E}✅ EVET — Anahtar!
⚠️
D → E: BCNF İhlali!

{D}⁺ = {D,E} ≠ R2'nin tüm nitelikleri (A,C,D,E). D süper anahtar değil → İhlal var → Ayrıştır!

İterasyon 3 R2(A,C,D,E) → D → E ile Ayrıştır
{D}⁺ = {D, E}
R3 = {D}⁺ = (D, E)   Anahtar: {D} → D→E: {D} anahtardır → ✅ BCNF. DUR.
R4 = R2 − ({D,E} − {D}) = R2 − {E} = (A, C, D)   Geçerli FD yok → ✅ BCNF. DUR.

🏁 Nihai BCNF Ayrıştırması

İlişkiNiteliklerAnahtarFD'lerBCNF'de mi?
R1(A, B){A}A → B ✅ Evet
R3(D, E){D}D → E ✅ Evet
R4(A, C, D){A,C,D}yok ✅ Evet
⚠️
Kaybedilen FD var mı?

BC → D FD'si kayboldu! B, C ve D artık aynı tabloda birlikte bulunmuyor. Bu BCNF ayrıştırmasında zaman zaman bağımlılık korunumunun (dependency preservation) feda edildiği anlamına gelir. 3NF her zaman bağımlılık korur, BCNF her zaman korumaz.

Soru 5 MVD ve 4NF Ayrıştırması
📋 Verilen

İlişki: R(student, course, hobby)

MVD'ler: student →→ course  ·  student →→ hobby

Anahtar: {student, course, hobby}

(a)

R, 4NF'de mi? İhlalleri belirleyin.

(b)

R'yi 4NF ilişkilerine ayrıştırın.

(c)

Bu ayrıştırma neden kayıpsızdır (lossless)?

📐
4NF Kuralı Hatırlatması

X →→ Y, 4NF'yi ihlal eder ancak ve ancak: X süper anahtar DEĞİL ve MVD önemsiz (trivial) değilse.

Önemsiz MVD: Y ⊆ X veya X ∪ Y = R tüm nitelikleri.

✓ Çözüm MVD Analizi ve 4NF Ayrıştırması

(a) 4NF Kontrolü

Anahtar = {student, course, hobby} → Tüm nitelikler birlikte anahtarı oluşturuyor. Bu yüzden hiçbir tekli ya da ikili küme süper anahtar olamaz.
MVDSol Taraf Süper Anahtar mı?Önemsiz mi?4NF İhlali?
student →→ course {student} süper anahtar değil course ⊄ {student} & birlikte hepsi yok → Önemsiz Değil ⚠️ İHLAL
student →→ hobby {student} süper anahtar değil hobby ⊄ {student} & birlikte hepsi yok → Önemsiz Değil ⚠️ İHLAL
❌ Karar

R, 4NF'de DEĞİLDİR — Her iki MVD da ihlal oluşturur.

🧠
Neden Bu Bir Sorun?

Bir öğrencinin 3 dersi ve 2 hobisi varsa tablo 3×2 = 6 satır gerektirir. Oysa dersler ve hobiler tamamen bağımsızdır — birbirini etkilemez. Bu gereksiz kombinasyon tekrarı MVD kaynaklıdır.

(b) 4NF Ayrıştırması

⚙️
4NF Ayrıştırma Adımı

student →→ course ihlalini kullanarak ayrıştır:

R1 = (student, course)  ·  R2 = (student, hobby)

R1(student, course)
Anahtar: {student, course}
MVD / FD yok → 4NF ✅
studentcourse
AliMatematik
AliFizik
AyşeTarih
R2(student, hobby)
Anahtar: {student, hobby}
MVD / FD yok → 4NF ✅
studenthobby
AliSatranç
AliYüzme
AyşeResim

🏁 Nihai 4NF Ayrıştırması

İlişkiNiteliklerAnahtar4NF'de mi?
R1(student, course){student, course}✅ Evet
R2(student, hobby){student, hobby}✅ Evet

(c) Neden Kayıpsız (Lossless)?

🔗
Kayıpsız Birleşim Garantisi

R1 ve R2'nin ortak niteliği student'tir. student →→ course MVD'si, R1 ⋈ R2 natural join işleminin orijinal R'yi tam olarak ürettiğini garanti eder — sahte (spurious) demet oluşmaz.

🧠
Sezgisel Açıklama

MVD'nin anlamı şudur: her student değeri için, course ve hobby kümeleri birbirinden tamamen bağımsızdır. Bu bağımsızlık, ayrıştırıldıktan sonra join ile yeniden birleştirildiğinde bilgi kaybı olmadığını garanti eder. Kayıpsız birleşim, doğal olarak MVD tanımından kaynaklanır.

📊
Kazanım

Örnek: Ali'nin 2 dersi ve 2 hobisi varsa orijinal tablo 4 satır gerektirirdi. Ayrıştırma sonrası: R1'de 2 satır + R2'de 2 satır = toplam 4 satır ama tekrar yok, her gerçek bir kez saklanıyor.