- •Дәріс 8. Функционалдық тәуелділік концепциясы. Қалыптастыру.
- •8.1 Функционалдық тәуелділік концепциясы. Реляциялық есептеулер.
- •Бойс-Кодтың қалыпты формасы.
- •Кесте 7 - қызметкерлер_бөлімдер,жобалар қатынасы.
- •Кесте 10 - Тапсырмалар қатынасы.
- •Кесте 13 - “Қойылатындар қатынасы”.
- •2 Мысал. Бізге бұрынғыдай қойылатындарды ескеру қажет болсын, бірақ әр қою актісі бірқатар номерге ие болсын деп жорамалдайық. Қатынас келесі түрге ие болады:
- •Кесте 18 - “Нөмірмен қою қатынасы”.
Дәріс 8. Функционалдық тәуелділік концепциясы. Қалыптастыру.
8.1 Функционалдық тәуелділік концепциясы. Реляциялық есептеулер.
Біз ҚЫЗМЕТКЕРЛЕР және БӨЛІМ сызбасы бар деректер қорымен жұмыс жасап отырмыз және 50 ден астам қызметкерлері бар бөлім басшыларының аттарын және номерлерін білгіміз келеді деп қарастырайық.
Егер мұндай іздеудің формулировкасы үшін реляционды алгебра қолданылатын болса, онда біз келесі түрде оқылатын алгебралық қорытынды алар едік:
ҚЫЗМЕТКЕРЛЕР және БӨЛІМ қатынасының СОТР_НОМ=ОТД_НАЧ шарты бойынша қосылысын орындау;
Пайда болған қатынасты ОТД_КОЛ > 50 шарты бойынша шектеу;
Келесі операцияның нәтижесін СОТР_ИМЯ, СОТР_НОМ атрибутына жобалау.
Біз іздеудің қадамдарының тізбегін құралық, олардың әрқайсысы жеке-жеке реляционды операцияларға сәйкес болады. Егер де біз осы бөлімге қатысты сұраныс құрып, ол үшін реляциондық есептеуді қолдансақ, келесі түрде оқылатын формула алатын едік СОТР_ИМЯ және СОТР_НОМ-ды ОТД_НАЧ және ОТД_КОЛ мағыналы бөлім қызметкерлеріне беру.
Екінші формулировкада біз тек қана нәтижелік қатынастардың сипаттамаларын көрсеттік, бірақ оны құру тәсілі туралы ештеңе айтпадық. Мұндай жағдайда жүйе ҚЫЗМЕТКЕРЛЕР және БӨЛІМ қатынасына қандай операцияларды қандай тәртіпте орындау керек екенін өзі анықтауы керек. Жалпы алғанда , алгебралық формулировка процедуралы , яғни сұранысты орындаудың ережесін талап етеді , ал логикалық формулировка сипаттауышы деклоративті болып келеді, өйткені ол тілеген нәтиженің қасиетін сипаттайды.Біз дәрістің басында шын мәнінде көрсететініміздей бұл екі механизм өзара эквивалентті және бұл формализмдердің 1 түрден келесі түрлендірудің ережелері бар.
Кортежді айнымалы және дұрыс құрылған формулалар.
Реляциялық есептеу бірінші реттік предикаттық санаудың формальды механизмінің қолданбалы бұтағы болып табылады. Санаудың базисті түсінігі болып мүмкін мәндерінің облысы анықталған айнымалы түсінік және айнымалыларға предикаттармен кванторларға сүйенетін формуланы дұрыс құру түсінігі табылады.
Айнымалының облысын анықтауға байланысты кортежді санау және доменді санау сияқты санаудың түрлері бар. Кортеждерді санауда айнымалыны анықтау облысы болып деректер базасының қатынасы табылады, яғни әр айнымалының мүмкін мәні болып кейбір қатынастың кортежі табылады.
Домендерді есептеуде айнымалылардың анықталу облысы болып домендер есептеледі , ал оларға деректер базасы қатынасының атрибуты анықталған, яғни әр айнымалының мүмкін мәні болып кейбір доменнің мәні табылады.Біз кортеждерді санауды толық қарастырамыз, ал дәріс соңында домендерді есептеудің ерекшеліктерін қысқаша сипаттаймыз.
Алгебралық реляцияға арналған бөлімнен бұл бөлімнің айырмашылығы бар, өйткені осы бөлімде кейбір нақты синтаксистерді қолдануға тура келеді , бірақ біз оларды формальды түрде анықтаймыз. Керекті синтаксисті конструкциялар қажетінше енгізілетін болады. Маңыздылығы жағынан, қолданылатын синтаксис QUELL деректер қоры тілінің негізгі тіліінің синтаксисімен сәйкес келмейді, ал бұл тіл СУБД INGRES тілінің болып саналады.
Кортежді айнымалыны анықтау үшін RANGE операторы қолданылады. Мысалы: анықтау облысы ҚЫЗМЕТКЕРЛЕР болатын СОТРУДНИК айнымалысын анықтау үшін келесі конструкцияняы қолданамыз:
RANGE ҚЫЗМЕТКЕР IS ҚЫЗМЕТКЕРЛЕР
Біз айтып кеткендей бұл анықтаудан мынадай қорытынды жасауға болады: кез- келген уақытта ҚЫЗМЕТКЕР айнымалысы өз кезегінде кейбір ҚЫЗМЕТКЕРЛЕР қатынасының кортеждерін ұсынады. Кортежді айнымалыларды қолдану кезінде формулаларға айнымалы атрибутының мәніне сілтеме жасауға болады. Мысалы: ҚЫЗМЕТКЕР айнымалысының СОТР_ИМЯ атрибуты мәніне сілтеме жасау үшін ҚЫЗМЕТКЕР. СОТР_ИМЯ конструкциясын қолдану керек. Дұрыс қолданылған формулалар (WFF-WELL-FORMED FORMULA) кортежді айнымалыларға жүктейтін шарттарды айқындау үшін арналған. Негізгі WFF болып қарапайым салыстырулар табылады, ал олар өз кезегінде скаляр мәндерді салыстыру операциясын көрсетеді. Мысалы: “СОТРУДНИК. СОТР_НОМ=140” конструкциясы қарапайым салыстыру болып табылады.
WFF күрделірек нұсқалары NOT, AND, OR және IF…. THEN логикалық байланыстардың көмегімен құралады. Егер form – WFF болса , ал comp қарапайым салыстыру болса, онда NOT form, comp AND form, comp OR form және IF comp THEN form WFF болып табылады.
Бұдан басқа , WFF кванторлар көмегімен құруға болады. Егер form- WFF болса, және онда var айнымалысы қолданылса, онда EXIST var (form) және FOR ALL var (form) WFF болып табылады.
WFF кіретін айнымалылар еркін немесе байланысқан болуы мүмкін. WFF кіретін айнымалылардың құрылуына қолданылмаған болса, олар еркін болып табылады.
Бұл дегеніміз, WFF есептеу кезінде еркін кортежді айнымалылардың мәндерін жинақтағанда true мәні алынса, онда бұл кортежді айнымалылардың мәні нәтижелік қатынасқа жатуы мүмкін. Егер WFF EXISTS var (form) немесе FORALL var (form) түрін құрғанда айнымалының аты квантордан кейін бірден қолданылса, онда бұл WFF және барлық WFF var – байланысқан айнымалы болып саналады. Бұл дегеніміз осы айнымалыны байланыстырған
WFF минимальды шегінен айнымалы көрінбей қалады. Мұндай WFF мәнін есептегенде айнымалыға қатысты бір мән емес оның бүкіл анықталу облысы қолданылады.
СОТР1 және СОТР2 екі кортежді айнымалы болсын және ҚЫЗМЕТКЕРЛЕР қатынасына анықталған деп алайық. Онда WFF EXISTS СОТР2 (СОТР1.СОТР_ЗАРП > СОТР2.СОТР_ЗАРП ) СОТР1 айнымалысының ағымды кортежіне true мәнін қабылдайды, бірақ ол үшін барлық ҚЫЗМЕТКЕРЛЕР қатынасында СОТР_ЗАРП атрибутының мәні салыстырудың ішкі шартын қанағаттандыруы керек. WFF FOR ALL СОТР2(СОТР1.СОТР_ЗАРП > СОТР2.СОТР_ЗАРП ) ҚЫЗМЕТКЕРЛЕР айнымалысының ағымды кортежіне true мәнін қабылдау үшін ҚЫЗМЕТКЕРЛЕР қатынасының барлық кортеждері үшін СОТР_ЗАРП атрибутының мәні салыстыру шартын қанағаттандыруы керек.
Дұрысына келсек еркін және байланысқан айнымалылар туралы емес, еркін және байланысқан айнымалылардың кірісі туралы айту керек.Егер var айнымалысы WFF form да ,онда барлық WFF var айнымалысының аты қолданылуы мүмкін, бірақ оның аты WFF form-дағы var айнымалысының кірісіне кез-келген жағдайда қатысы болмайды. Мысалы:
EXISTS СОТР2 (СОТР1.СОТР_ОТД_НОМ = СОТР2.СОТР_ОТД_НОМ) AND
FORALL СОТР2 (СОТР1.СОТР_ЗАРП > СОТР2.СОТР_ЗАРП)
Біз бұл жерде СОТР2айнымалысының әр түрлі мағынада 2 кірісін көріп тұрмыз.
Мақсат тізімдер мен реляциялық санаудың мәндері.
Сонымен, WFF формулировка МБ қатынасынан таңдау шарттарын қамтамасыз етеді.МБ мен кәдімгідей жұмыс істеу үшін санауды қолдану керек болса, нәтижелік қатынастың бағаналары мен таңдауды анықтайтын компонент қажет болады.
Бұл компонент –мақсаттық тізім (target-list).Мақсаттық тізім –мақсаттық элементтерден тұрады, ал олардың әр қайсысы төмендегідей түрлерге ие болады:
Var-attr, мұнда var WFF сәйкес еркін айнымалының аты, ал attr –var –айнымалыны анықтаған қатынас атрибуты.
Var, тізім үстіне бар болуына эквивалентті Var-attr1, Var-attr2...., Var attrn -, мұнда Var-attr1, Var-attr2...., Var attrn – анықтауыш қатынасының барлық атрибуттары кіреді.
New_ name = var-attr;new_name- нәтижелік қатынастың атрибутына сәйкес жаңа ат.
Соңғы нұсқа WFF-та анықталу облыстары бірдей бірнеше еркін айнымалылар қолданылғанда қажет болады.
Кортеждердің реляциялық санағының нәтижесі болып, target-list WHERE wff. Түріндегі конструкция есептеледі. Нәтиженің мәні болып,денесі WFF пен анықталатын, ал атрибуттар жинағы мен олардың аты- мақсаттық тізім болатын қатынас табылады.
Домендерді реляциялық санау.
Домендерді есептегенде айнымалылардың анықтау облысы қатынастар емес, домендер болып табылады. ҚЫЗМЕТКЕРЛЕР және БӨЛІМ деректер қорымен байланысты, домендік айнымалылар ИМЯ немесе НОСОТР туралы айтуға болады.
Домендерді санаудың кортеждерді санаудан басты формальды айырмашылығы болып предикаттардың қосымша жинағының бар болуы табылады. Егер R-(a1l:vi2,…,aim:vim )(m<=n),қатынас болса,ол атрибуттары а1,а2, ап болса мүшелік шарттың түрі төмендегідей болады.
R (ai1:vi1, ai2:vi2, ..., aim:vim) (m <= n),
Мұнда Vig-не литералды берілген тұрақты не кортежді айнымалы аты. Мүшелік шарты true мәнін тек мына жағдайда қабылдайды: егер R қатынасында көрсетілген атрибуттардың мәндері болса, онда ---- атрибутына қатаң шарт қойылады, ол шарт доменді айнымалылардың ағымдық мәнінен тәуелсіз, егер де ------ доменді айнымалы аты болса, онда мүшелік шарты осы айнымалының әртурлі мағынасына ие болады.
Қалған барлық қатынастарда домендерді санаудың мәні кортеждердің санағының мәніне ұқсас. Дербес жағдайда доменді айнымалылар енудің еркін және байланысқан түрлері кезігеді.
Мысал үшін: домендерді санауды қолданып, минималды жалақы алмайтын қызметкерлердің номері мен аттарын алу сұранысын құрайық (қарапайымдылық)үшін, біз доменді айнымалыларды анықтадық деп , ал олардың аттары ҚЫЗМЕТКЕРЛЕР қатынасы атрибуттарының атымен сәйкес келеді, ал егер 1 доменде анықталған бірнеше домендер қажет болса,біз аттардың соңынан цифрлар қосамыз):
СОТР_НОМ, СОТР_ИМЯ WHERE EXISTS СОТР_ЗАРП1
(ҚЫЗМЕТКЕРЛЕР (СОТР_ЗАРП1) AND
ҚЫЗМЕТКЕРЛЕР (СОТР_НОМ, СОТР_ИМЯ, СОТР_ЗАРП) AND
СОТР_ЗАРП > СОТР_ЗАРП1)
Дербес жағдайда осы есептеуде тілдер жанұясында бірінші (қызықты) тіл болған және кестелі пішінде негізделген Query-by-Example танымал тілі мәлімделді.
8.2 Қалыптастыру: бірінші, екінші және үшінші қалыпты формалар.
