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:
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.
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:
Student_Name | Majmua |
---|---|
Ravi | San'at tarixi |
Ravi | San'at tarixi |
Ravi | San'at tarixi |
Beth | Kimyo |
Beth | Kimyo |
Ushbu jadvalda Student_Name -> 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.