Реляциялық дерекқорда бір дерекқор кестесінде сақталған ақпарат бір кестеде сақталған басқа ақпаратты бірегей түрде анықтағанда, тәуелділік пайда болады. Көп мәнді тәуелділік кестеде бір немесе бірнеше жолдардың болуы сол кестеде бір немесе бірнеше басқа жолдардың болуын білдіретін кезде пайда болады. Басқаша айтқанда, кестедегі екі атрибут (немесе баған) бір-бірінен тәуелсіз, бірақ екеуі де үшінші төлсипатқа байланысты.
Көп мәнді тәуелділік қалыпқа келтіру стандартының төртінші қалыпты пішінін болдырмайды. Реляциялық дерекқорлар жазба дизайнына арналған нұсқауларды көрсететін бес қалыпты пішінді орындайды. Олар деректердегі жаңарту аномалиялары мен сәйкессіздіктерін болдырмайды. Төртінші қалыпты пішін дерекқордағы көптен-бірге қатынасты қарастырады.
Функционалдық тәуелділік пен көп мәнді тәуелділік
Көп мәнді тәуелділікті түсіну үшін функционалдық тәуелділіктің не екенін қайта қарау пайдалы.
Егер X төлсипаты Y төлсипатын бірегей түрде анықтаса, онда Y функционалды түрде X-ке тәуелді болады. Бұл X -> Y ретінде жазылады. Мысалы, төмендегі Студенттер кестесінде Студент_Аты Мамандықты анықтайды:
Студент_аты | Майор |
---|---|
Ravi | Өнер тарихы |
Бет | Химия |
Бұл функционалдық тәуелділікті жазуға болады: Студент_Аты -> Магистр. Әрбір Студент_Аты бір мамандықты анықтайды, одан артық емес.
Дерекқор осы студенттердің айналысатын спорт түрлерін де бақылағанын қаласаңыз, мұны істеудің ең оңай жолы - «Спорт» атты басқа бағанды қосу деп ойлайсыз:
Студент_аты | Майор | Спорт |
---|---|---|
Ravi | Өнер тарихы | Футбол |
Ravi | Өнер тарихы | Волейбол |
Ravi | Өнер тарихы | Теннис |
Бет | Химия | Теннис |
Бет | Химия | Футбол |
Мәселе мынада: Рави де, Бет те бірнеше спортпен айналысады. Әрбір қосымша спорт түріне жаңа жол қосу керек.
Бұл кесте көп мәнді тәуелділікті енгізді, себебі мамандық пен спорт бір-бірінен тәуелсіз, бірақ екеуі де студентке байланысты. Бұл қарапайым мысал және оңай анықтауға болады, бірақ көп мәнді тәуелділік үлкен, күрделі дерекқордағы мәселеге айналуы мүмкін.
Көп мәнді тәуелділік X ->-> Y жазылады. Бұл жағдайда:
Студенттің_аты ->-> Майор
Студенттің_аты3 -2-4 > Спорт
Бұл "Студент_аты көп мамандықты анықтайды" және "Студент_аты спортты көп анықтайды" деп оқылады.
Көп мәнді тәуелділік әрқашан кемінде үш атрибутты қажет етеді, себебі ол үшіншіге тәуелді кемінде екі төлсипаттан тұрады.
Көп мәнді тәуелділік және нормализация
Көп мәнді тәуелділігі бар кесте төртінші қалыпты пішіннің қалыпқа келтіру стандартын бұзады, себебі ол қажетсіз артықшылықтарды жасайды және сәйкес келмейтін деректерге ықпал етуі мүмкін. Оны 4NF дейін жеткізу үшін бұл ақпаратты екі кестеге бөлу керек.
Төмендегі кестеде енді Студент_Аты -> Major функционалдық тәуелділігі бар және көп мәнді тәуелділіктер жоқ:
Студент_аты | Майор |
---|---|
Ravi | Өнер тарихы |
Ravi | Өнер тарихы |
Ravi | Өнер тарихы |
Бет | Химия |
Бет | Химия |
Бұл кестеде де Студент_аты -> Спорт: бір ғана функционалдық тәуелділік бар.
Студент_аты | Спорт |
---|---|
Ravi | Футбол |
Ravi | Волейбол |
Ravi | Теннис |
Бет | Теннис |
Бет | Футбол |
Нормаластыру көбінесе күрделі кестелерді оңайлату арқылы орындалады, осылайша оларда бір идеяға немесе тақырыпқа қатысты ақпарат болады, бірақ бір кестеде тым көп әр түрлі ақпарат болуы керек.