Хелпикс

Главная

Контакты

Случайная статья





Дәріс 8. Функционалдық тәуелділік концепциясы. Қалыптастыру.



Дә ріс 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 кірісін кө ріп тұ рмыз.

Мақ сат тізімдер мен реляциялық санаудың мә ндері.

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

2. Бұ л компонент –мақ саттық тізім (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 танымал тілі мә лімделді.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.