Дерекқорға тәуелділік деген не?

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

Дерекқорға тәуелділік / функционалдық тәуелділік

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

Кестеде атрибуттардың арасында тәуелділік бар екенін айту, бұл атрибуттар арасында функционалдық тәуелділік бар екенін айтады. Егер дерекқорда тәуелділік бар болса, B атрибуты А төлсипатына байланысты болса, оны «A -> B» деп жазыңыз.

Мысалға, Қызметкердің сипаттамаларын, соның ішінде Әлеуметтік қауіпсіздік нөмірін (SSN) және атауды қамтитын кестеде, атау SSN (немесе SSN -> аты) байланысты, себебі қызметкердің аты SSN-тан бірегей түрде анықталуы мүмкін. Алайда кері мәлімдеме (аты -> SSN) дұрыс емес, себебі бірнеше қызметкер бірдей атқа ие, бірақ әртүрлі SSN идентификаторлары болуы мүмкін.

Әлсіз функционалдық тәуелділік

Тривиальды функционалдық тәуелділік түпнұсқалық атрибутты қамтитын атрибуттар жиынына атрибуттың функционалдық тәуелділігін сипаттағанда пайда болады. Мысалы, «{A, B} -> B» - «{name, SSN} -> SSN» сияқты тривиальды функционалдық тәуелділік . Функционалдық тәуелділіктің бұл түрі тривиальды деп аталады, себебі оны жалпы мағынадан алуға болады. Әрине, B мәнін білетін болсаңыз, онда B мәнін осы біліммен бірегей түрде анықтауға болады.

Толық функционалды тәуелділік

Толық функционалды тәуелділік , функционалдық тәуелділікке қойылатын талаптарды қанағаттандырған кезде және функционалдық тәуелділіктің тұжырымдамасының сол жағындағы атрибуттардың жиынтығы бұдан әрі қысқартылмайды. Мысалы, «{SSN, age} -> name» - бұл функционалдық тәуелділік, бірақ бұл толық функционалдық тәуелділік емес, себебі сіз тәуелділік қатынасына әсер етпей, өтініштің сол жағынан жасты алып тастай аласыз.

Өтпелі тәуелділік

Төтенше тәуелділік функционалдық тәуелділікті тудыратын жанама қатынастар болғанда пайда болады. Мысалы, «A -> C» - бұл «A -> B» және «B -> C» шынайы болғандықтан, шындық болған кезде өтпелі тәуелділік .

Бірнеше мәнді тәуелділік

Бірнеше мәнді тәуелділік кестеде бір немесе бірнеше жолдардың болуы сол кестеде бір немесе бірнеше басқа жолдардың болуын білдіреді. Мысалы, көліктің көптеген үлгісін шығаратын автокөлік компаниясын елестетіп көріңіз, бірақ әр үлгідегі әрқашан қызыл және көк түстерді жасайды. Егер сізде әр модельдің атауы, түсі мен жылын қамтитын кесте бар болса, онда компания осы кестеде көп мәнді тәуелділікке ие. Белгілі бір модельдің атына және жылына арналған жол болса, сол бір көліктің қызыл нұсқасына сәйкес келетін ұқсас жол болуы керек.

Тәуелділіктердің маңыздылығы

Дерекқорға тәуелділіктер түсіну үшін маңызды, себебі олар деректер базасын қалыпқа келтіруде пайдаланылатын негізгі құрылымдық блоктармен қамтамасыз етеді. Мысалға: