Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Домендер. Деректердің реляциялық моделінде деректердің типі түсінігімен домен түсінігі тығыз байланысты, оларды деректер типін




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

· Доменде ерекше ат болады (деректер қоры аймағында).

· Домендер деректердің кейбір қарапайым типінде немесе басқа доменде анықталынады.

· Доменде осы домен үшін болатын, деректер көпмүшесін сипаттауға мүмкіндік беретін кейбір логикалық шарты болады.

· Доменде нақты бір мәндік жүктеме болады.

Мысалы, «қызметкер жасы» деген мағынасы бар доменнің, натурал сандар көпмүшесі деп сипаттауға болады:

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

Қатынас қасиеті.

Қатынас қасиеті қатынастың жоғарыда келтірілген анықтамасымен тікелей жүреді. Бұл қасиеттер негізінен кесте мен қатынас арасындағы ерекшеліктен тұрады.

1. Қатынаста бірдей кортеж жоқ. Расында, қатынас денесі кортеж көпмүшесі. Кейбір көпмүше сияқты айырмасы жоқ элементтері жоқ (1 бөлімді қараңыз). Кестелер қатынасқа қарағанда бірдей жолдардан тұрады.

2. Кортеждер реттелмеген (жоғарыдан төменге). Шындығында, біз кесте түрінде "Қызметкерлер" қатынасын кескіндедік, бірақ қызметкер Иванов қызметкер Петровтың "алдын алады" деуге болмайды. Себебі сол - қатынас денесі көпмүше, ал көпмүше реттелген. Бұл екінші себебі, ол арқылы қатынас пен кестені әрекеттестіруге болмайды - кестедегі жолдар реттелген. Сол бір қатынас әртүрлі кестемен кескінделген, онда жолдар әртүрлі ретпен жүреді.

3. Атрибуттары реттелмеген (солдан оңға). Өйткені әр атрибуттың қатынас көлемінде ерекше бір аты болады, ал атрибут ретінің мағынасы жоқ. Бұл қасиет біршама қатынасты қатынастың математикалық анықтамасынан айырмашысын көрсетеді (1 бөлім қараңыз - кортеж компоненттері онда реттелген). Тағы да үшінші себебі, кесте мен қатынасты әрекеттестірмеу - кестедегі тік жолдар реттелмеген. Сол бір қатынас әртүрлі кестемен кескінделген, онда тік жолдар әртүрлі ретпен жүреді.

4. Атрибуттың барлық мәндері атомарлы. Оның негізінде жатқан атрибуттардың атомарлы мәні болады. Бұл қатынастың кестеден төртінші айырмашылығы - кесте ұяшығына не болмаса соны орналастыруға болады - массивтер, құрылымыдар, және тағы басқа кестелер.

Домендер – бұл бір мағынасы (семантика) бар деректер типі. Домендер салыстыруды шектеуі - нақты емес, әртүрлі домендерде мәнді салыстыруға болады.

Қатынас екі бөлімнен тұрады - қатынас тақырыбынана және қатынас денесінен. Қатынас тақырыбы - кесте тақырыбының аналогы. Қатынас тақырыбы атрибуттардан тұрады. Атрибут саны қатынас дәрежесі деп аталады. Қатынас денесі - кесте денесінің аналогы. Қатынас денесі кортежден тұрады. Қатынас кортежі кесте жолының аналогы. Қатынастың кортеж саны қатынас қуаты деп аталады.

Қатынас келесі қасиеттерге ие:

· Қатынаста ұқсас кортеж жоқ.

· Кортеждер реттелмеген (төменнен жоғары қарай).

· Атрибуттар реттелмеген (солдан оңға қарай).

· Атрибуттың барлық мәні атомарлы.

Реляциялық деректер қоры дегеніміз қатынас жиыны.

Реляциялық деректер қорының схемасы деректер қорына кіретін қатынас тақырыбының жиыны.

Егер қатынас тек скалярлы (атомарлы) мәннен тұрса, онда ол Бірінші Қалыпты Формада (1ҚФ) болады.

Потенциалды кілттер.

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

1 Анықтама. қатынасы берілсін. атрибуттар көпмүшесіндегі қатынасын потенциалды кілт деп атаймыз, егер мынадай қасиеттерге ие болса:

1. Қасиет ерекшелігі - қатынаста бірдей мәнді екі түрлі кортеж болуы мүмкін емес.

2. Артықшылық қасиетінде- бағыңынқы көпмүшесі ешқандай ерекше қасиетке ие емес.

Кез келген қатынаста кем дегенде бір потенциалды кілт болады. Расында, егер ешқандай атрибутта немесе атрибут тобында потенциалды кілт болмаса, кортеждің ерекше күшінде барлық атрибуттар потенциалды кілтті құрайды. Бір атрибуттан тұратын потенциалды кілт жай кілт деп аталады. Бірнеше атрибуттардан тұратын потенциалды кілт құрама кілт деп аталады.

Қатынастың бірнеше потенциалды кілті болады. Әдеттегідей, потенциальды кілттердің бірі алғашқы, ал қалғандары - альтернативті. Алғашқы және альтернативті кілт арасындағы айырмашылық реляциялық ДҚБЖ үлестіру кезіндегі маңызды болуы мүмкін, бірақ деректердің реляциялық моделі көз қарасынан бір потенциальды кілтті ерекшелеуге негіз жоқ. Бұл қатынасты кескіндейтін кестеге бірінші рет қараған кезде, көрінуі мүмкін, кестеде үш потенциальды кілт - кестенің әр бағанында ерекше деректер бар. Бірақ қызметкерлер арасында фамилиясы бірдей және еңбек ақысы бірдей қызметкер болуы мүмкін. Табель нөмірі әр қызметкер үшін ерекше. Бізді қандай ой, осы қатынаста тек бір потенциальды кілт - "Табель нөмірі" бар деген түсінікке әкелді? Дәл сол қатынастағы деректер мәннің түсіну. Атрибуттар аталуын өзгертіп бұл қатынасты басқа түрде көрейік: Осы кестені басқа біреуге көрсетіп, оған атрибуттар аталу мағынасын хабарламаймыз. Енді көрініп тұр деректердің мағынасын түсінбей тұрып оны талқылай алмаймыз немесе ол осы қатынаста пайда болады ма, мысалы, кортеж (1, Петров, 3000). Егер мұндай кортеж пайда болса (бір көргеннен кортеж ерекшелігі бұзылады), онда біз дәл айта аламыз, атрибуттардың біреуі де жекелей альтернативті кілт бола аламайды. Бірақ біз айта алмаймыз, алғашқы кілт не болып табылатынын.

Мән тұтастығы. Потенциальды кілттер негізінен пәндік сала объктілерінің идентификаторы қызметін атақарады (объектілерді айыруға арналған), онда бұл идентификаторлар мәні белгісіз мәні болмайды. Расында, егер идентификаторларда null-мәні болса, онда біз екі идентификатор ұқсас па, ұқсас емес пе соған "иә" немесе "жоқ" деген жауап бере алмаймыз. Бұл келесі мәннің тұтастық ережесін анықтайды: Мәннің тұтастық ережесі. Кейбір потенциальды кілт құрамына кіретін атрибуттар null-мәннің қабылдай алмайды.

Сыртқы кіллтер. Пәндік саланың әртүрлі объектілері ылғм бір-бірімен өзара байланысты, олар жөніндегі ақпарат деректер қорында сақталынады. Мысалы, тауарды жеткізу жөніндегі накладной қағазы тауар саны және бағасы тізімінен тұрады, кәсіпорындағы қызметкер бөлімде тіркеледі, оның балалары бар және т.б. "Тұрады", "бар", "тіркеледі" терминдері "накладной" және "тауар тізімі", "қызметкер" және "балалар", "қызметкер" және "бөлім" түсініктері арасындағы байланысты білдіреді. Мұндай байланыстар бірнеше қатынасты байланыстыратын сыртқы кілттер көмегімен реляциялық деректер қорында бейнеленеді. Мысалы, бізге жеткізушілердің аталуы, олармен жеткізілетін тауар аталуы мен саны жөніндегі ақпарат ақпаратты сақтау керек, бірақ әр жеткізуші бірнеше деталь жеткізе алады және әр деталь бірнеше жеткізушімен жеткізілуі мүмкін. Деректерді келесі қатынаста сақтауды ұсынуға болады:

Жеткізуші нөмірі Жеткізуші аталуы Деталь нөмірі Деталь аталуы Жеткізілетін саны
1 Иванов 1 Болт  
1 Иванов 2 Гайка  
1 Иванов 3 Винт  
2 Петров 1 Болт  
2 Петров 2 Гайка  
3 Сидоров 3 Винт  

6-кесте. "Жеткізушілер және жеткізілетін детальдар" қатынасы.

Бұл қатынастың потенциальды кілті болып екі атрибут жұбы бола алады {"Жеткізуші нөмірі", "Деталь нөмірі"} – кестеде олар курсивпен белгіленген. Деректерді сақтаудың келтірілген тәсілінде кемшіліктер бар. Егер жеткізушінің аталуы өзгерсе не болады? Себебі жеткізуші аталуы қатынастың көптеген кортежінде қайталанады, онда бұл аталуды бір уақытта ол кездесетін барлық кортежде өзгерту керекто, әйтпесе деректер қарама-қарсы болады. Дәл сондай деталь аталуымен. Деректер біздің қатынаста үлкен артықшылықпен сақталынады.

Әрі қарай, тұжырымды қалай кескіндейміз, кейбір жеткізуші, мысалы Петров, детальды жеткізуді уақытша тоқтатты? Егер біз осы жеткізуші жеткізу жөніндегі ақпарат сақталынған, барлық кортежді жойсақ, онда біз сол потенциалды жеткізуші Петров жөніндегі деректерді жоғалтамыз. Біз қатынаста кортеж типін (2, Петров, NULL, NULL, NULL) қалдырып, бұл жағдайдан шыға алмаймыз, өйткені "Деталь нөмірі" атрибуты потенциальды кілт құрамына кіреді және null-мәні болмайды. Дәл сондай болады, егер кейбір деталь уақытша ешқандай жеткізушімен жеткізілмейді. Біз мынадай ақпаратты сақтай алмаймыз, қандай да бір жеткізуші, егер ол аз дегенде бір деталь жеткізбесе және мынадай тағы ақпарат сақтай алмаймыз, қандай да бір деталь бар, егер оны ешкім жеткізбесе. Осындай мәселелер пайда болады, себебі біз бір қатынаста пәндік саланың әртүрлі объектілерін – жеткізушілер жөніндегі деректерді, деталь жөніндегі деректерді, детальды жеткізу жөніндегі деректерді араластырдық. Бұл қатынас жаман қалыптастырлған (жай қалыптастырылған болады, ол қатынас автоматты түрде 1ҚФ орналасады) деп айтылады.Қатынасты қалай дұрыс қалыптастыру керектігі келесі бөлімдерде айтылады, қазір деректерді үш қатынасқа - "Жеткізушілер", "Детальдар, "Жеткізу" таратамыз. Біз үшін маңыздысы, осы қатынаста сақталынатын деректер бір бірімен қалай байланысқан. Бұл байланыс пәндік саланың семантикасымен анықталынады және мынадай фразамен сипатталады: "Жеткізушілер Жеткізуді орындайды ", "Детальдар Жеткізу арқылы жеткізіледі ". Бұл екі өзара байланыс тікелей "Жеткізушілермен" және "Детальмен" арасындағы жаңа өзара байланысты анықтайды: "Деталь Жеткізушілермен жеткізіледі ". Бұл фразалар әртүрлі типті өзара байланысты кескіндейді. Пәндік саланы дәлірек көрсету үшін, фразаларды басқаша қалыптастыруға болады: " Бір Жеткізуші бірнеше Жеткізуді орындай алады", " Бір Деталь бірнеше Жеткізумен жеткізіледі". Бұл өзара байланыс мысалы "бірдің-көпке" типінде. "Жеткізушілермен" және "Детальдармен" арасындағы байланысты былай қалыптастыруға болады: " Бірнеше Деталь бірнеше Жеткізушімен жеткізіледі". Бұл өзара байланыс мысалы "көпке-көп" типінде. Реляциялық деректер қорында негізгі болып "бірдің-көпке" типіндегі өзара байланыс табылады. "Көпке-көп" типіндегі өзара байланыс, бірнеше "бірдің-көпке" типіндегі өзара байланысын қолданып таратылады. "Бір" жағынан байланысқа кіретін қатынас (мысалы, "Жеткізушілер"), аталық қатынас деп аталынады. "Көп" жағынан байланысқа кіретін қатынас (мысалы, "Жеткізу"), балалық қатынас деп аталынады. "Бірдің –көпке" өзара байланысын тарату механизмі мынада, балалық қатынасқа аталық қатынастың кілттік атрибутына сілтеме болатын атрибуттар үстемеленеді. Бұл атрибуттар аталық қатынас кортежі балалық қатынастың қандай кортежімен байланысып тұрғаның анықтайтын сыртқы кілттер болады. Мұндай атрибуттарды тағы да аталық қатынастан мигрирленген деп атайды. Сонымен, жеткізушілер және жеткізілетін деталь жөніндегі біздің мысал келесі түрде болады: "Жеткізу" қатынасында "Жеткізуші нөмірі" және "Деталь нөмірі" атрибуттары "Жеткізушілер" және "Детальдар" қатынасының кілттік атрибуттарына сілтеме болады, және сонымен бірге сыртқы кілт болып табылады. Ескеріп кетеміз, қатынас деректері жоғарыда сипатталған кемшіліктен бос, барлық деректерді бір қатынаста сақтау ұсынылды.

Жеткізуші нөмірі Деталь нөмірі Жеткізілетін саны
1 1  
1 2  
1 3  
2 1  
2 2  
3 3  

7-кесте. "Жеткізу" қатынасы.

Шындығында, жеткізуші мен деталь аталуын өзгерту кезінде, бұл өзгерту тек бір орында болады. Егер жеткізуші барлық детальды жеткізуді бітірсе, онда "Жеткізу" қатынасында тиісті кортеждер жойылады, жеткізуші жөніндегі деректер өзгеріссіз қалады. Нақты анықтама береміз.

2 Анықтама. қатынасы берілсін. қатынасының бағыныңқы көпмүше атрибутының сыртқы кілт деп атаймыз, егер:

1. потенциальды кілтті ( жәнеәртүрлі міндетті емес қатынасы бар.

2. қатынасындағы әрбір мәні ылғи қатынас кортежіндегі мәнімен ұқсас болады, болмаса null-мәнді болады.

қатынасы аталық қатынас, балалық қатынас деп аталынады.

Сыртқы кілт тұтастығы

Сыртқы кілттер басқа қатынастағы (немесе сондағы) кортежге сілтеме болады, онда бұл сілтемелер жоқ объектілерге көрсетпеу керек. Бұл келесі сыртқы кілттер тұтастығы ережесін анықтайды: Сыртқы кілттер тұтастық ережесі. Сыртқы кілттер келісілмеген болмау керек, одан әрі сыртқы кілттің әрбір мәні үшін аталық қатынастағы алғашқы кілттің тиісті мәні болу керек.

7.2 "Мән-байланыс" (ER- әдісі) әдісімен жобалау.

Жоғарыдағы бөлімде айтылған, қалпына келтіру алгоритмі көмегімен деректер қоры құрылымын модельдеуде көптеген кемшіліктер бар:

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

2. Атрибуттардың толық тізімін бірден анықтау мүмкін емес. Пайдаланушылар бір затты әртүрлі атпен атай береді және керісінше әртүрлі затты бір атпен атайды.

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

Деректер қоры құрылымын жобалау кезінде семантикалық модельдеу әдісі қолданылады. Семантикалық модельдеу деректер мағынасына сүйенетін деректер құрылымын модельдеу болады. Семантикалық модельдеу құралы болып мән-байланыс диаграммасының (ER - Entity-Relationship) әртүрлі варианттары қолданылады. Мән-байланыс моделінің бірінші вариантты 1976 жылы Питер Пин-Шэн Ченмен ұсынылды [37]. Кейіннен көптеген авторлармен осыған ұқсас модельдердің өз варианттары құрылды (Мартина нотациясы, IDEF1X нотациясы, Баркер нотациясы және т.б.). Сонымен қатар, бір нотацияны тарататын әртүрлі программалық құралда өзінің мүмкіндіктерімен ерекшелену керек. Мән-байланыс диаграммасының барлық варианттары бір идеядан шығады – сурет ылғи мәтіндік сипатаманың көрнекті құралы. Мұндай барлық диаграммалар пәндік сала мәнінің, олардың қасиетінің және мән арасындағы өзара байланыстың графикалық кескінің қолданады. Біз ER-диаграмма жұмысын Баркер нотациясына жақындау сипаттаймыз, негізгі идеяларды жеңіл түсіну үшін.

ER-диаграмманың негізгі түсініктері:

1 Анықтама. Мән - бұл біртипті объектілер класы, олар жөніндегі ақпарат модельде ескерілуі керек. Әрбір мән аталуы жекеше түрдегі зат есімнен тұруы керек. Мән мысалына мынадай объектілер класы жатады "Жеткізуші", "Қызметкер", "Накладной". Әрбір мән модельде аталуымен тікбұрыш түрінде бейнеленеді:

2 Анықтама. Мән экземпляры - бұл берілген мәннің нақты мүшесі. Мысалы, "Қызметкер" мәнінің мүшесіне "Қызметкер Иванов" жатады. Мән экземплярларының ерекшеліктері болу керек, мәнде осы мәннің әр экземплярына ерекше қасиеті болу керек.

3 Анықтама. Мән атрибуты - мәннің қасиеті болатын аталған сипаттама. Атрибут аты жекеше түрдегі зат есімнен тұруы керек. Мысалы, "Қызметкер" мәнінің атрибуттары, ол мынадай атрибуттар "Табель нөмірі", "Фамилия", "Аты", "Әкесінің аты", "Қызметі", "Еңбек ақысы" және т.б. жатады.

4 Анықтама Мән кілті - бұл атрибуттар жиынының артықшылығы, олардың мәні топталған кезде мәннің әр экземпляры үшін ерекше. Артықшылық қорытындыланады, егер кез келген атрибутты кілттен жойса, онда оның ерекшелігі бұзылады. Мәннің бірнеше әртүрлі кілті болуы мүмкін.

5 Анықтама. Байланыс - бұл екі мән арасындағы кейбір ассоциация. Бір мән екінші мәнмен немесе өзімен өзі байланысады. Байланыстар бір мәнмен байланысқан екінші мәді табуға мүмкіндік береді. Мысалы, мән арасындағы байланыс келесі түрдеі фразамен баяндалады - "ҚЫЗМЕТКЕРДЕ бірнеше БАЛА болады", "әр ҚЫЗМЕТКЕР тура бір БӨЛІМДЕ ғана тіркеледі ".

Әр байланыста екі соңы және бір немесе екі аталуы болады. Аталуы көбінесе анықталмаған етістік түрінде баяндалады: "болады", "жатады" және т.б. Әр ат байланысты ңөз соңына қатысты. Кейбір кезде аталуы айқын түрде жазылады.

Әр байланыс келесі бір байланыстың типіне ие бола алады:

Бірге-бір типіндегі байланыс мынаны білдереді, бірінші мәннің (сол) бір экземпляры екінші мәннің (оң) бір экземплярымен байланысады. Бірге-бір байланысынды көбінесе біз екіге дұрыс бөлінбеген бір мәнге ие боламыз.

Бірдің-көпке типіндегі байланыс мынаны білдереді, бірінші мәннің (сол) бір экземпляры екінші мәннің (оң) бірнеше экземплярымен байланысады. Бұл көп қолданылатын байланыс типі. Сол жақтағы мән ("бір" жағынан ) аталық, оң жақтағы ("көп" жағынан) - балалық деп аталады.

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

Әр байланыс екі байланыс модалдығының біреуіне ғана ие бола алады:

" Мүмкін " модалдығы мынаны білдіреді, бір мәннің әр экземпляры басқа мәннің бір немесе бірнеше экземплярымен байланысуы мүмкін, ал ешқандай экземплярмен байланысы болмауда мүмкін.

" Болу керек " модалдығы мынаны білдіреді, бір мәннің экземпляры басқа мәннің кем дегенде бір экземплярымен байланысуы міндетті болу керек.

Байланыста әртүрлі шеттерден әртүрлі модалдығы болады.

Сипатталған графикалық синтаксис фрзаның келесі тұрғызылуын қолданып, диаграмманы оқуға мүмкіндік береді:

<1 Мәннің әр экземпляры> <байланыс модалдығы> <байланыс аталуы> <байланыс типі> <2 мән экземпляры>.

Әр байланыс солдан оңға қарай, оңнан солға қарай оқылады. 4 суеттегі байлаыс былай оқылады:

Солдан оңға қарай: "әр қызметкерде бірнеше бала болады".

Оңнан солға қарай: "Әр бала бір қызметкерге ғана жатады".

Қарапайым ER-модель құру мысалы.

Бізге ER-модель құру үшін пәндік сала жөнінде келесі ақпаратты алуымыз керек:

1. Пәндік саланың мән тізімі.

2. Мән атрибутының тізімі.

3. Мән арасындағы өзара байланысты сипаттау.

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

Мысалы біздің алдымызда қандай да бір көтерме сауда фирмасының сұранысы бойынша ақпараттық жүйе құру керек тұр. Біз біріші кезекте процесстерді және пәндік саланы оқып үйренеміз. Ол үшін біз фирма қызметкерлерінен сұрастырамыз, құжаттарды оқимыз, накладной және сұраныс формаларын оқимыз және т.б.

Мысалы, сатумен айналысатын менеджермен әңгімелесу кезінде, белгілі болды, менеджер жобалау кезінде келесі әрекеттер орындалу керек деп ойлайды:

· Сатып алушы жөніндегі ақпаратты сақтау.

· Жіберілген тауарға накладной басып шығару.

· Қоймадағы тауар санның бақылап отыру.

Осы сөйлемдегі барлық зат есімдерді белгілейміз, бұл мән мен атрибутқа потенциальды кандидаттар болады және оларды талдаймыз (түсініксіз терминдерді сұрақ белгісімен белгілейміз):

· Сатып алушы – мәнге нақты кандидат.

· Накладной - мәнге нақты кандидат.

· Тауар - мәнге нақты кандидат.

· (?)Қойма – негізінен, фирмада қанша қойма болады? Егер бірнеше болса, онда ол жаңа мәнге кандидат болады.

· (?)Тауар саны – бұл атрибут, бірақ қандай мән атрибуты?

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

 
 

 


7-сурет.

Менеджерге қосымша сұрақ қоя отырып, біз білдік, фирмада бірнеше қойма бар. Бірақ, әр тауар бірнеше қоймада сақталына алады және кез келген қоймадан сатыла береді.

"Накладной" және "Қойма" мәндерін қайда орналастыруға болады және оларды немен байланыстыру керек? Өзімізден сұраймыз, бұл мәндер бір бірімен және "Сатып алушы" мен "Тауар" мәндерімен қалай байланысқан? Сатып алушылар тауар сатып алады, сол кезде накладной алады, онда сатып алынған тауар жөнінде оның бағасы мен саны енгізілген деректер бар. Әр сатып алушы бірнеше накладной алуы мүмкін. Әрбір накладной бір сатып алушыға ғана жазылады. Әрбір накладной бірнеше тауар санына тұруы керек (бос накладной болмайды). Әрбір тауар, өз кезегінде, бірнеше сатып алушыға бірнеше накладной арқылы сатылуы мүмкін. Соынмен қатар, әрбір накладной нақты бір қоймадан жазылуы керек, кез келген қоймадан бірнеше накладной жазылуы мүмкін. Сонымен, дәлдеп білгеннен кейін, диаграмма келесі түрде болады:

Мән атрибуттары жөнінде де ойлану кезі келді. Біз фирма қызметкерлерімен әңгімелесе отырып, келесіні білдік:

· Әр сатып алушы жеке тұлға және оның аты, адресі, банктік реквизиттері болады.

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

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

· Әрбір қойманың өз аталуы болады.

· Потенциальды атрибут болатын, қайтадан барлық зат есімдерді жазып және оларды талдаймыз:

· Жеке тұлға - риторикалық термин, біз жеке тұлғамен жұмыс істемейміз. Көңіл бөлмейміз.

· Сатып алушы аталуы - сатып алушының нағыз сипатамасы.

· Адресі - сатып алушының нағыз сипатамасы.

· Банктік реквизиттер - сатып алушының нағыз сипатамасы.

· Тауар аталуы - сатып алушының нағыз сипатамасы.

· (?)Тауар бағасы - бұл тауар сипатаммасына ұқсас. Бұл сипаттаманың накладнойдағы бағамен айырмашылыға бар ма?

· Өлшем бірлігі - сатып алушының нағыз сипатамасы.

· Накладной нөмірі - накладнойдың ерекше нағыз сипатамасы.

· Накладнойдағы күн - накладнойдың нағыз сипатамасы.

· (?) Накладнойдағы тауар тізімі - тізім атрибут бола аламайды. Негізінен бұл тізімді жеке мәнге ерекшелеу керек.

· (?)Накладнойдағы тауар саны - бұл нағыз сипаттама, бірақ ненің сипаттамасы? Бұл сипаттама "тауардікі" ғана емес, а "накладнойдағы тауардікі".

· (?)Накладнойдағы тауар бағасы - бұл тағы тауардың жай сипаттамасы емес, накладнойдағы тауар сипаттамасы. Бірақ тауар бағасымен жоғарыда кездестік – бұл дәл сол?

· Накладной қосындысы - накладнойдың нағыз сипаттамасы. Бұл тәуелді емес сипаттама. Накладной қосындысы накладнойға кіретін барлық тауарлардың бағасының қосындысына тең.

· Қойма аталуы - қойманың нағыз сипатамасы.

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

Пайда болған "Накладнойдағы тауар тізімі" түсінігімен бәрі белгілі болды. "Накладной" және "Тауар" мәндері бір бірімен көпке-көп типімен байланысқан. Мұндай байланысты, біз алдында қалай қарастырдық, бірге-көп типіндегі екі байланысқа қатысты. Ол үшін қосымша мән қажет болады. Мұндай мән болып "Накладнойдағы тауар тізімі" мәні табылады. "Накладной" және "Тауар" мәндерінің байланысы келесі фразалармен сипатталады - "әрбір накладной накладнойдағы тауар тізімінен бірнеше жазбасы болу керек", "накладнойдағы тауар тізімінің әрбір жазбасы бір накладнойға міндетті түрде қосылуы керек", "әрбір тауар накладнойдағы тауар тізіміндегі бірнеше жазбаға қосылуы мүмкін", " накладнойдағы тауар тізіміндегі әрбір жазба міндетті түрде бір тауармен байланысты болу керек". "Накладнойдағы тауар саны" және "Накладнойдағы тауар бағасы" атрибуттары "Накладнойдағы тауар тізімі" мәнінің атрибуттары болады.

Дәл осылай "Қойма" және "Тауар" мәндерін біріктіретін байланыспен жасаймыз. Қосымша "қоймадағы тауар" мәннің енгіземіз. Бұл мән атрибуты "Қоймадағы тауар саны" болады. Сонымен, тауар кез келген қоймада тіркеледі және әр қоймадағы оның саны жеке болады. Осының бәрін диаграммаға енгізуге болады.

Концептуальды және физикалық ER-модельдер.

Жоғарыда келтірілген ER-диаграмма мысалы концептуальды диаграмма мысалы болып табылады. Бұл нені білдіреді, диаграмма нақты ДҚБЖ ерекшелігін есептемейді. Берілген концептуальды диаграммамен физикалық диаграмма тұрғызуға болады. Ол ДҚБЖ мынадай ерекшеліктерін есептейді, рұқсат етілген типтері және кесте мен өріс атаулары, тұтастықты шектеу және т.б. 8-суретте келтірілген диаграмманың физикалық нұсқасы, мысалы келесі түрде болуы мүмкін:

8-сурет.

Берілген диаграммада әрбір мән деректер қоры кестесін білдіреді, әрбір атрибут тиісті кестенің бағаны болады.

9-сурет.

Көңіл бөлеміз, көптеген кестелерде, мысалы, "Накладнойдағы тізім жазбасы" және "Қоймадағы тауар" мәндеріне қатысты концептуальды модельде болмаған жаңа атрибуттар "CUST_DETAIL" және "PROD_IN_SKLAD" пайда болды - бұл аталық кестелердің кілттік атрибуттары. Ол балалық кестеге мигрирленген, себебі сыртқы кілт арқылы кесте арасындағы байланысты қамтамсыз ету үшін.

Негізгі әдебиет [1], бет 77-85

Қосымша әдебиет [2], бет 92-101

Бақылау сұрақтары

1. Деректердің құрылымдық типтері не үшін арналған?

2. Деректердің сілтеме типі не үшін арналған?

3. Деректердің қандай типтері қарапайым болып табылады?

4. «Домен» дегеніміз не?

5. Потенциальды кілт дегеніміз не?

 

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

8.2 Қалыптастыру: бірінші, екінші және үшінші қалыпты формалар. Бойс-Кодтың қалыпты формасы.

1ҚФ.(Бірінші қалыпты форма).

Бірінші қалыпты форма түсінігі 2 бөлімде қарастырылған. Бірінші қалыпты форма (1ҚФ) бұл- қарапайым қатынас. Біздің анықталатын қатынасымызға келісімді қандай да болмасын қатынас автоматты түрде 1ҚФ қалыптасады.

Қатынастың қысқаша қасиетін еске түсіреміз(бұл болады 1ҚФ қасиеті):

· Қатынастарда бірдей кортеж жоқ;

· Кортеждер реттелмеген

· Қасиеттер реттелмеген және аты бойынша ерекшеленеді

· Қасиеттердің барлық мәні атомарлы.

Логикалық моделдеудің бірінші қадамының жүрісінде деректер қорымендің бірінші қатынаста сақталуы ұсынылған және келесі қасиеттерді қамтиды.

ҚЫЗМЕТКЕРЛЕР_БӨЛІМДЕР_ЖОБАЛАР_Н_ЗАДАН мұндағы

Н_СОТР -қызметкердің табель номері.

ФАМ - қызметкердің фамилиясы.

Н_ ОТД -қызметкердің есептелетін бөлім номері.

ТЕЛ - қызметкер телефоны. Н_ПРО - қызметкер жұмыс жасайтын бөлім номері.

ПРОЕКТ - қызметкер жұмыс жасайтын жоба атауы.

Н_ЗАДАН - қызметкер жұмыс жасайтын тапсырма номері.

Сондықтан да әр қызметкер әр жобада таза бір жұмыс жасайды және потенциалды түйін есебінде 2 қасиет алу қажет болады {Н_СОТР,Н_ПРО}

Ағымдағы уақытта пәндік аймақ қасиеті келесі фактлермен бейнеленеді.

· 1 бөлімде жұмыс істейтін қызметкер Иванов бірінші жобада 1 тапсырманы және 2 жобада “Климат”1 тапсырманы орындайды.

· 1 бөлімде жұмыс істейтін қызметкер Петров “Космос”1 жобада 2 тапсырманы орындайды.

· 2 бөлімде жұмыс істейтін қызметкер Сидоров “Космос”1 жобада 3 тапсырманы және “Климат” екінші жобасында 2 тапсырманы орындайды.

Бұл қасиет кестеде көрсетіледі: кілттік қасиеттер курсивпен белгіленген:

Н_СОТР ФАМ Н_ОТД ТЕЛ Н_ПРО ПРОЕКТ Н_ЗАДАН
1 Иванов   11-22-33 1 Космос  
1 Иванов   11-22-33 2 Климат  
2 Петров   11-22-33 1 Космос  
3 Сидоров   33-22-11 1 Космос  
3 Сидоров   33-22-11 2 Климат  

8-кесте - ҚЫЗМЕТКЕРЛЕР_БӨЛІМДЕР,ЖОБАЛАР қатынасы.

Ауытқу жаңаруы.

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

Әзірге ешқашдай қимыл қатынаспен өндірілмейді, бұл қорқынышты емес. Бірақ пән аумағының жайы өзгерген шақта осы әрекетпен құжат базасының жайын өзгертуде үлкен қолайсыздық пайда болады.Тарихи тұрғыдан бұл қолайсыздықтар жаңару ауытқуы деген атқа ие.Аномияға қатал түсінік беру құжаттар базасында толық қанағаттанарлықболып табылмайды. Ауытқудың бұл жұмысында пән аумағының моделі құжаттардың физикалық моделі арасындағы қарама-қайшылық ашық. Біздің пйн аумағы жөнінде біліміміз белгісіз себептермен ДҚ кестесінде жеткіліксіз болғанда немесе солармен қарсылықта кірген жағдайда ауытқу пайда болады. Біз өзге көзқарасты ұстанамыз. Есте сақталған автордың анықтауыштың ойында ауытқу жоқ, онда құжаттардың пәндік аумағының моделі бар немесе ДҚБЖ әрекеттерімен пәндік аумақтың шектеулігін таратудағы бірнеше қосымша еңбектер бар. Ауытқу туралы түсінікті тереңірек талқылау сол жұмыс барысында шығады.

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

· Орнату ауытқуы.(INSERT)

· Жаңарту ауытқуы (UPDATE)

· Өшіру ауытқуы (DELETE)

Қатынаста Жоба Бөлімінің Қызметкерлері мына ауытқуларға мысал келтіруге болады:

Орнату ауытқуы.(INSERT)

Қатынаста Жоба Бөлімінің Қызметкерлері әлі бірде бір жобаға қатынаспаған қызметкерлер жөнінде құжаттарды қоюға болмайды.Мысалы, егер екінші бөлімде жаңа қызметкер пайда болса, айталық Пушников, және ол бірде бір жобаға қатынаспаса, онда біз қатынас сызбасына қоюға тиіспіз.(4, Пушников 62, 33-22-11,null, null, null).

Н_ПРО жоба номері потенциалдық кілт құрамына кіреді және де ол null мағынасына ие бола алмайды, сондықтан мұны жасау мүмкін емес.

Дәл сол сияқты,әзірше бірде-бір қызметкер жұмыс істемейтін жоба туралы деректер қорыменді қоюға болмайды.

Жаңарту ауытқуы (UP DATE).

Қызметкерлер фамилиясы, жоба атауы, телефондар номері қатынастың көп тізбелерінде қайталанады. Сондықтан, егер қызметкер фамилиясын өзгерсте, немесе жоба атауы өзгерсе, немесе телефон номері өзгерсе, онда мұндай өзгерістер бір уақытта барлық жерде өзгеруі керек, фамилиясы атауы немесе телефон номері дегендер кездескен жерлерде, болмаса бұл қатынастар дұрыс емес болып табылады.(мысалы бір жоба әртүрлі тізімдерде әртүрлі аталуы мүмкін).Осылайша, берілген деректер қорымен жиынын бір амалмен өзгерту мүмкін емес. Бір жазбаны жаңарту кезінде, басқа жерлердегі деректер қорыменді дұрыс түзету үшін, қатынастарды тұтас күйінде ұстайтын триггер жазу керек.

Декомпозиция болғанға дейінгіге қарағанда жағдай қиындап кеткен сияқты болады.

Бірақ та қамтамасыз етушінің атауы өзгереді, ол телефон номері өзгермейді деп саналы түрде ойлағанымыздан осындай сезім пайда болады. Егер қамтамасыз етушілердің номері де өзгереді деп жорамалдасақ,(неге жоқ- директор қамтамасыз етушілерді нөмірлеуді бұйырды!), онда бірінші декомпозиция екінші декомпозиция сияқты “нашар” болып табылады-қайталанбалы номерлерді бір уақытта бір ғана жерден, екі қатынаста да ауыстыруға тура келеді. Шындығында мұнда ешқандай қайшылық жоқ. “Қойылатындар 3” қатынасында “қамтамасыз етушілер” мен байланыс қызметіндегі “қамтамасыз етуші” атауы (PNAME) атрибуты сыртқы түйін болып табылады. Сондықтан қамтамасыз етуші атауын өзгерткен кезде бұл өзгеріс “қамтамасыз етушілер” қатынасында жүргізіледі және каскадты түрде (3 бөлімдегі сілтемелік тұтастықты қолдау стратегиясын қараңыз) “Қойылатындар 2” қатынасында “қамтамасыз етушілер” номерін өзгертуі таралғандай каскадты түрде “Қойылатындар 3” қатынасында таралады. Сондықтан формальды түрде екі декомпозиция да тең құқылы. Нақты жұмыс кезінде өңдеуші әрине, бірінші декомпозицияны таңдайды, бірақ мұнда оның таңдауы қалыпты түрдің жалған теориясына қатынасы жоқ мүлдем басқа ойларға негізделгенін айта кету қажет.

2 мысал. Бізге бұрынғыдай қойылатындарды ескеру қажет болсын, бірақ әр қою актісі бірқатар номерге ие болсын деп жорамалдайық. Қатынас келесі түрге ие болады:

Қамтамасыз етуші номері PNUM Деталь номері DNUM Қойылатын саны VOLUME Қамтамасыз етушілердің өтпелі номері NN
       
       
       
       
       
       

9-кесте. “Нөмірмен қою қатынасы”.

Берілген қатынастың потенциалды түйіні болып, { PNUM,DNUM } атрибуттар жұбы табылады.

Басқа түйіні ретінде өтпелі номер атрибуты NN алынады. Берілген қатынас келесі функционалдық тәуелділіктерге ие:

Қатынастың бірінші түйіннен атрибуттардың тәуелділігі:

{ PNUM, DNUM }à VOLUME,

{ PNUM, DNUM }à NN.

Қатынастың екінші түйіннен атрибуттың тәуелділігі:

NNà PNUM

NNà DNUM

NNà VOLUME

Қатынас түйіндерінен тәуелділіктердің салдары болып табылатын тәуелділіктер:

{ PNUM, DNUM }à VOLUME, NN},

NNà{PNUM, DNUM },

NNà{PNUM, VOLUME},

NNà{DNUM, VOLUME},

NN à{PNUM, DNUM, VOLUME}.

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

Негізгі әдебиеттер[1],бет 130-142.

Қосымша әдебиет[2],бет 92-101.

Бақылау сұрақтары

1. Берілген деректер қорымен түрін құрылымдау не үшін қажет?

2. Берілген деректер қорымендің сілтеме түрі не үшін қажет?

3. Қандай деректер қорымен түрі қарапайым болып саналады?

4. “Домен” дегеніміз не?

5. Потенциадық түйін дегеніміз не?

 

Дәріс 9. Реляциялық алгебра. Негізгі амалдар.

9.1 Берілген деректер қорымен моделінің реляциялық базисі: реляциялық алгебра, реляциялық операциялардың интерпретациясы, теориялық-көбейткіштік операциялардың семантикасының ерекшеліктері.

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

Нақты реляциялық МҚБЖ-да шындығында қазір реляциялық алгебра да реляциялық есептеулер де таза күйінде қолданылмайды. Реляциялық деректер қорымен жиынына стандартты қатынау SQL(Structured Query Language). SQL тілі реляциялық алгебраның операторлар қоспасынан және синтаксис қолданатын, ағылшын тілінің фразасына жақын реляциялық алгебра мен реляциялық есептеуде кездеспейтін реляциялық есептеу өрнектерінен тұрады.

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

Реляциялық алгебраның тұйықтылығы.

Реляциялық алгебра қатынастарды аргумент ретінде және қайтаратын қатынастарды нәтиже ретінде көрсететін операторлар жиынынан тұрады. Осылайша, реляциялық оператор f қатынастармен аргумент ретінде функция түрінде беріледі. R=f (r1,r2,…,rn).

Реляциялық алгебра тұйық болып табылады, яғни аргумент ретінде реляциялық операторға типі бойынша сәйкес келетін басқа реляциялық операторларды қоюға болады.

R=f(f1,(R11,R12,…),f2(R21,R22)




Поделиться с друзьями:


Дата добавления: 2014-10-15; Просмотров: 1989; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.268 сек.