Дерекқорлардағы көп мәнді тәуелділік

Мазмұны:

Дерекқорлардағы көп мәнді тәуелділік
Дерекқорлардағы көп мәнді тәуелділік
Anonim

Реляциялық дерекқорда бір дерекқор кестесінде сақталған ақпарат бір кестеде сақталған басқа ақпаратты бірегей түрде анықтағанда, тәуелділік пайда болады. Көп мәнді тәуелділік кестеде бір немесе бірнеше жолдардың болуы сол кестеде бір немесе бірнеше басқа жолдардың болуын білдіретін кезде пайда болады. Басқаша айтқанда, кестедегі екі атрибут (немесе баған) бір-бірінен тәуелсіз, бірақ екеуі де үшінші төлсипатқа байланысты.

Image
Image

Көп мәнді тәуелділік қалыпқа келтіру стандартының төртінші қалыпты пішінін болдырмайды. Реляциялық дерекқорлар жазба дизайнына арналған нұсқауларды көрсететін бес қалыпты пішінді орындайды. Олар деректердегі жаңарту аномалиялары мен сәйкессіздіктерін болдырмайды. Төртінші қалыпты пішін дерекқордағы көптен-бірге қатынасты қарастырады.

Функционалдық тәуелділік пен көп мәнді тәуелділік

Көп мәнді тәуелділікті түсіну үшін функционалдық тәуелділіктің не екенін қайта қарау пайдалы.

Егер X төлсипаты Y төлсипатын бірегей түрде анықтаса, онда Y функционалды түрде X-ке тәуелді болады. Бұл X -> Y ретінде жазылады. Мысалы, төмендегі Студенттер кестесінде Студент_Аты Мамандықты анықтайды:

Студент_аты Майор
Ravi Өнер тарихы
Бет Химия

Бұл функционалдық тәуелділікті жазуға болады: Студент_Аты -> Магистр. Әрбір Студент_Аты бір мамандықты анықтайды, одан артық емес.

Дерекқор осы студенттердің айналысатын спорт түрлерін де бақылағанын қаласаңыз, мұны істеудің ең оңай жолы - «Спорт» атты басқа бағанды қосу деп ойлайсыз:

Студент_аты Майор Спорт
Ravi Өнер тарихы Футбол
Ravi Өнер тарихы Волейбол
Ravi Өнер тарихы Теннис
Бет Химия Теннис
Бет Химия Футбол

Мәселе мынада: Рави де, Бет те бірнеше спортпен айналысады. Әрбір қосымша спорт түріне жаңа жол қосу керек.

Бұл кесте көп мәнді тәуелділікті енгізді, себебі мамандық пен спорт бір-бірінен тәуелсіз, бірақ екеуі де студентке байланысты. Бұл қарапайым мысал және оңай анықтауға болады, бірақ көп мәнді тәуелділік үлкен, күрделі дерекқордағы мәселеге айналуы мүмкін.

Көп мәнді тәуелділік X ->-> Y жазылады. Бұл жағдайда:

Студенттің_аты ->-> Майор

Студенттің_аты3 -2-4 > Спорт

Бұл "Студент_аты көп мамандықты анықтайды" және "Студент_аты спортты көп анықтайды" деп оқылады.

Көп мәнді тәуелділік әрқашан кемінде үш атрибутты қажет етеді, себебі ол үшіншіге тәуелді кемінде екі төлсипаттан тұрады.

Көп мәнді тәуелділік және нормализация

Көп мәнді тәуелділігі бар кесте төртінші қалыпты пішіннің қалыпқа келтіру стандартын бұзады, себебі ол қажетсіз артықшылықтарды жасайды және сәйкес келмейтін деректерге ықпал етуі мүмкін. Оны 4NF дейін жеткізу үшін бұл ақпаратты екі кестеге бөлу керек.

Төмендегі кестеде енді Студент_Аты -> Major функционалдық тәуелділігі бар және көп мәнді тәуелділіктер жоқ:

Студент_аты Майор
Ravi Өнер тарихы
Ravi Өнер тарихы
Ravi Өнер тарихы
Бет Химия
Бет Химия

Бұл кестеде де Студент_аты -> Спорт: бір ғана функционалдық тәуелділік бар.

Студент_аты Спорт
Ravi Футбол
Ravi Волейбол
Ravi Теннис
Бет Теннис
Бет Футбол

Нормаластыру көбінесе күрделі кестелерді оңайлату арқылы орындалады, осылайша оларда бір идеяға немесе тақырыпқа қатысты ақпарат болады, бірақ бір кестеде тым көп әр түрлі ақпарат болуы керек.

Ұсынылған: