|
||||||||||||||||||||||||||||||||||||||||||||
8.2 Қалыптастыру: бірінші, екінші және үшінші қалыпты формалар.8. 2 Қ алыптастыру: бірінші, екінші жә не ү шінші қ алыпты формалар. Бойс-Кодтың қ алыпты формасы. 1Қ Ф. (Бірінші қ алыпты форма). Бірінші қ алыпты форма тү сінігі 2 бө лімде қ арастырылғ ан. Бірінші қ алыпты форма (1Қ Ф) бұ л- қ арапайым қ атынас. Біздің анық талатын қ атынасымызғ а келісімді қ андай да болмасын қ атынас автоматты тү рде 1Қ Ф қ алыптасады. Қ атынастың қ ысқ аша қ асиетін еске тү сіреміз(бұ л болады 1Қ Ф қ асиеті): · Қ атынастарда бірдей кортеж жоқ; · Кортеждер реттелмеген · Қ асиеттер реттелмеген жә не аты бойынша ерекшеленеді · Қ асиеттердің барлық мә ні атомарлы. Логикалық моделдеудің бірінші қ адамының жү рісінде деректер қ орымендің бірінші қ атынаста сақ талуы ұ сынылғ ан жә не келесі қ асиеттерді қ амтиды. Қ ЫЗМЕТКЕРЛЕР_БӨ ЛІМДЕР_ЖОБАЛАР_Н_ЗАДАН мұ ндағ ы Н_СОТР -қ ызметкердің табель номері. ФАМ - қ ызметкердің фамилиясы. Н_ ОТД -қ ызметкердің есептелетін бө лім номері. ТЕЛ - қ ызметкер телефоны. Н_ПРО - қ ызметкер жұ мыс жасайтын бө лім номері. ПРОЕКТ - қ ызметкер жұ мыс жасайтын жоба атауы. Н_ЗАДАН - қ ызметкер жұ мыс жасайтын тапсырма номері. Сондық тан да ә р қ ызметкер ә р жобада таза бір жұ мыс жасайды жә не потенциалды тү йін есебінде 2 қ асиет алу қ ажет болады {Н_СОТР, Н_ПРО} Ағ ымдағ ы уақ ытта пә ндік аймақ қ асиеті келесі фактлермен бейнеленеді. · 1 бө лімде жұ мыс істейтін қ ызметкер Иванов бірінші жобада 1 тапсырманы жә не 2 жобада “Климат”1 тапсырманы орындайды. · 1 бө лімде жұ мыс істейтін қ ызметкер Петров “Космос”1 жобада 2 тапсырманы орындайды. · 2 бө лімде жұ мыс істейтін қ ызметкер Сидоров “Космос”1 жобада 3 тапсырманы жә не “Климат” екінші жобасында 2 тапсырманы орындайды. Бұ л қ асиет кестеде кө рсетіледі: кілттік қ асиеттер курсивпен белгіленген:
Кесте 7 - Қ ЫЗМЕТКЕРЛЕР_БӨ ЛІМДЕР, ЖОБАЛАР қ атынасы. Ауытқ у жаң аруы. Қ арым-қ атынас кестесіне бір қ арағ аннан-ақ қ ұ жаттардың онда ү лкен қ ажеттілікпен сақ талатыны жоба бө лімінің қ ызметкерлеріне бірден тү сінікті. Сондай-ақ бұ л қ атынаста бір-бірінен тә уелсіз қ ұ жаттармен бірге қ ызметкерлер жө нінде, бө лім, жоба жә не жоба бойынша жү ргізілген жұ мыстар сақ талады. Ә зірге ешқ ашдай қ имыл қ атынаспен ө ндірілмейді, бұ л қ орқ ынышты емес. Бірақ пә н аумағ ының жайы ө згерген шақ та осы ә рекетпен қ ұ жат базасының жайын ө згертуде ү лкен қ олайсыздық пайда болады. Тарихи тұ рғ ыдан бұ л қ олайсыздық тар жаң ару ауытқ уы деген атқ а ие. Аномияғ а қ атал тү сінік беру қ ұ жаттар базасында толық қ анағ аттанарлық болып табылмайды. Ауытқ удың бұ л жұ мысында пә н аумағ ының моделі қ ұ жаттардың физикалық моделі арасындағ ы қ арама-қ айшылық ашық. Біздің пйн аумағ ы жө нінде біліміміз белгісіз себептермен ДҚ кестесінде жеткіліксіз болғ анда немесе солармен қ арсылық та кірген жағ дайда ауытқ у пайда болады. Біз ө зге кө зқ арасты ұ станамыз. Есте сақ талғ ан автордың анық тауыштың ойында ауытқ у жоқ, онда қ ұ жаттардың пә ндік аумағ ының моделі бар немесе ДҚ БЖ ә рекеттерімен пә ндік аумақ тың шектеулігін таратудағ ы бірнеше қ осымша ең бектер бар. Ауытқ у туралы тү сінікті терең ірек талқ ылау сол жұ мыс барысында шығ ады. Осылайша біз пә ндік аймақ тағ ы қ ұ жаттардағ ы ауытқ у жө нінде ө зіндік тү сінік ұ станамыз. (Онда шындығ ына келсек қ ұ жаттардың, ойлау моделі дұ рыс емес делінген) немесе пә ндік аумақ тағ ы анық тауыштық шектеуліктің таратылу барысындағ ы барлық қ ажеттіліктер деп қ абылдаймыз. (триггер немесе сақ таулы процедур тү ріндегі бағ дарламалық код). Ауытқ у ө зін қ ұ жаттар базасын ө згерту ү шін орындалғ ан операция кезінде кө рсетсе, онда ауытқ уды мынандай тү рлерге бө леді: · Орнату ауытқ уы. (INSERT) · Жаң арту ауытқ уы (UPDATE) · Ө шіру ауытқ уы (DELETE) Қ атынаста Жоба Бө лімінің Қ ызметкерлері мына ауытқ уларғ а мысал келтіруге болады: Орнату ауытқ уы. (INSERT) Қ атынаста Жоба Бө лімінің Қ ызметкерлері ә лі бірде бір жобағ а қ атынаспағ ан қ ызметкерлер жө нінде қ ұ жаттарды қ оюғ а болмайды. Мысалы, егер екінші бө лімде жаң а қ ызметкер пайда болса, айталық Пушников, жә не ол бірде бір жобағ а қ атынаспаса, онда біз қ атынас сызбасына қ оюғ а тиіспіз. (4, Пушников 62, 33-22-11, null, null, null). Н_ПРО жоба номері потенциалдық кілт қ ұ рамына кіреді жә не де ол null мағ ынасына ие бола алмайды, сондық тан мұ ны жасау мү мкін емес. Дә л сол сияқ ты, ә зірше бірде-бір қ ызметкер жұ мыс істемейтін жоба туралы деректер қ орыменді қ оюғ а болмайды. Жаң арту ауытқ уы (UP DATE). Қ ызметкерлер фамилиясы, жоба атауы, телефондар номері қ атынастың кө п тізбелерінде қ айталанады. Сондық тан, егер қ ызметкер фамилиясын ө згерсте, немесе жоба атауы ө згерсе, немесе телефон номері ө згерсе, онда мұ ндай ө згерістер бір уақ ытта барлық жерде ө згеруі керек, фамилиясы атауы немесе телефон номері дегендер кездескен жерлерде, болмаса бұ л қ атынастар дұ рыс емес болып табылады. (мысалы бір жоба ә ртү рлі тізімдерде ә ртү рлі аталуы мү мкін). Осылайша, берілген деректер қ орымен жиынын бір амалмен ө згерту мү мкін емес. Бір жазбаны жаң арту кезінде, басқ а жерлердегі деректер қ орыменді дұ рыс тү зету ү шін, қ атынастарды тұ тас кү йінде ұ стайтын триггер жазу керек. Ө шіру ауытқ уы (DELETE). Бірнеше берілген деректер қ орыменді ө шірген кезде басқ а да ақ параттарды жоғ алтып алуымыз мү мкін. Мысалы: егер “Космос” жобасын жауып ол кездесетін бірнеше бағ андарды ө шіретін болсақ, онда қ ызметкер Петров туралы барлық деректер қ орымендіжоғ алтып алуымыз мү мкін. Егер қ ызметкер Сидоровты ө шіретін болсақ, онда екінші бө лімдегі телефоны: 33-22-11 ақ паратты жоғ алтып аламыз. Егер жоба бойынша жұ мыс уақ ытша тоқ татылса, бұ л жоба бойынша деректер қ орыменді ө шірген кезде жобаның ө зі туралы деректер қ орымені де ө шіріледі. Функционалдық тә уелділіктер. Кө рсетілген ауытқ уды, берілген деректер қ орыменді дұ рыс жобалау ү шін қ атынастарды қ алыптастыру ә дісі қ олданылады. Қ алыптастыру қ атынастар атрибутының функционалды тә уелділік ұ ғ ымына негізделген. 1 Анық тама. R қ атынасы У кө птеген атрибуттары Х тің кө птеген атрибуттарына функционалды тә уелді(Х -У ті ) функционалды анық тайды тек сонда ғ ана rx=rx болғ андық тан ---------------- кез-келген тізім ү шін R-қ атынасының кез-келген кү йі ү шін (яғ ни Х атрибуты мә ніне ие болатын барлық ) тізімдерде У атрибутының мә ні сә йкес келеді. Символдық тү рде функционалдық тә уелділік мына тү рде жазылады: Хà Y. Х қ асиетінің кө пшілігі функционалды тә уелділік детерминанты деп аталады, У қ асиетінің кө пшілігі тә уелді бө лік болып табылады. 1 мысал. Қ ЫЗМЕТКЕРЛЕР_БӨ ЛІМДЕР_ЖОБАЛАР қ атынасында келесідегідей функционалды тә уелділік қ атынасын кө рсетуге болады. Қ атынас кілтіне қ асиеттің тә уелділігі: {Н_СОТР, Н_ПРО}à ФАМ
|
||||||||||||||||||||||||||||||||||||||||||||
|