Ma'lumotlar bazasini yaratishda bir nechta qimmatli qaramlik

Ko'p qimmatli qo'shadi to'rtinchi oddiy shaklni buzadi

Ma`lumotlar bazasida, bir xil ma'lumotlar bazasida saqlangan ma'lumotlar bir xil jadvalda saqlangan boshqa ma'lumotlarni aniq belgilab qo'yganida, bog'liqlik paydo bo'ladi. Ko'p miqdordagi bog'liqlik jadvalda bitta yoki bir nechta satr mavjudligi o'sha jadvalda bir yoki bir nechta boshqa satrlar mavjudligini bildiradi. Boshqacha qilib aytganda, jadvaldagi ikkita atributlar (yoki ustunlar) bir-biridan mustaqildir, lekin har ikkisi ham uchinchi xususiyatga bog'liq.

Ko'p qimmatli qo'shadi normalizatsiya standartining to'rtinchi oddiy shaklini (4NF) to'sadi. İlişkisel ma'lumotlar bazalari, ro'yxatdan o'tishingiz dizayni uchun hidoyat ko'rsatadigan besh oddiy formatga amal qiladi. Ular yangilanish anomaliyalarini va ma'lumotlardagi nomuvofiqliklarning oldini oladi. To'rtinchi an'anaviy shakl ma'lumotlar bazasida bir nechta aloqalar bilan bog'liq.

Funktsional qaramlik va bir nechta qimmatli qaramlik

Ko'p tomonlama qo'shadi tushunish uchun funktsional qaramlikning nima ekanligini qayta ko'rib chiqish foydali bo'ladi.

Agar X belgisining o'ziga xos xususiyati Y aniqlansa, unda Y funksional ravishda X ga bog'liq. Bu X -> Y deb yoziladi. Misol uchun, quyidagi Talabalar jadvalida Student_Name Majorni aniqlaydi:

Talabalar
Student_Name Majmua
Ravi San'at tarixi
Beth Kimyo


Ushbu funktsional qaramlik quyidagicha yozilishi mumkin: Student_Name -> Major . Har bir Student_Name aniq bir Majorni belgilaydi, va undan ko'p.

Agar ma'lumotlar bazasida ushbu talabalar sportni kuzatishni xohlasangiz, buning eng oson yo'li "Sport" nomli boshqa bir ustunni qo'shishni o'ylashingiz mumkin.

Talabalar
Student_Name Majmua Sport
Ravi San'at tarixi Futbol
Ravi San'at tarixi Voleybol
Ravi San'at tarixi Tennis
Beth Kimyo Tennis
Beth Kimyo Futbol


Bu erda muammo Ravi ham, Bet ham bir nechta sport o'ynashidir. Har bir qo'shimcha sport uchun yangi qatorni kiritish kerak.

Ushbu jadval bir nechta jihatdan qaramlikni keltirib chiqaradi, chunki asosiy va sport bir-biridan mustaqildir, lekin ikkalasi ham talabaga bog'liq.

Bu oddiy misol va osongina identifikatsiyalanadigan, ammo juda ko'p mustaqillik katta, murakkab ma'lumotlar bazasida muammo bo'lishi mumkin.

Ko'p tomonlama qo'shadi X -> -> Y deb yoziladi. Bunday holda:

Student_Name -> -> Major
Student_Name -> -> Sport

Bu "Student_Name multidermines Major" va "Student_Name multidermines Sport" deb o'qiladi.

Ko'p miqdordagi bog'liqlik har doim kamida uchta atributni talab qiladi, chunki u uchdan biriga bog'liq bo'lgan kamida ikkita atributdan iborat.

Ko'p qimmatli qaramlik va normalizatsiya

Bir nechta Oddiy Forma (4NK) normallashuv standartini buzadi, chunki u ortiqcha ishlamay qoladi va mos kelmaydigan ma'lumotlarga o'z hissasini qo'shishi mumkin. Buni 4NF ga etkazish uchun ushbu ma'lumotni ikki jadvalga almashtirish kerak.

Quyidagi jadvalda Student_Name -> Major-ning funktsional qaramligi va bir nechta qimmatli bog'liqliklar mavjud emas:

Talabalar va Majburiyatlar
Student_Name Majmua
Ravi San'at tarixi
Ravi San'at tarixi
Ravi San'at tarixi
Beth Kimyo
Beth Kimyo

Ushbu jadvalda Student_Name -> Sport:

Talabalar va sport
Student_Name Sport
Ravi Futbol
Ravi Voleybol
Ravi Tennis
Beth Tennis
Beth Futbol

Ko'pincha murakkab jadvallarni soddalashtirish orqali normallashuv tez-tez ko'rib chiqiladi, shuning uchun yagona jadvalni bajarishga urinishdan ko'ra, juda ko'p turli ma'lumotlarga ega bo'lishdan ko'ra, ular bitta g'oya yoki mavzu bilan bog'liq ma'lumotlarni o'z ichiga oladi.