Атынастар. Реляциялық мәліметтер қорындағы негізгі терминдер
Қатынастар деп объектілер арасындағы немесе олардың қасиеттері арасындағы кез келген өз ара байланысты айтады. Объектілер арасындағы, бір объектінің қасиеттері арасындағы және әр түрлі объектілер қасиеттерінің арасындағы өз ара байланыстар болып бөлінеді. Қатынастар өзінің атымен және осы қатынастар байланысқан элементтермен, атрибуттар тізімімен беріледі:
<қатынас аты>(<атрибуттар тізімі>)
Қатынас аты қатынас элементтері арасындағы байланыстардың маңызын түсіндіретіндей болып таңдалады.
Объектілердің немесе байланыстардың кейбір қасиеттерін сипаттау үшін атрибуттар деп аталатын мәліметтердің қарапайым бөлінбейтін элементтері қолданылады.
Атрибуттар атымен, типімен, мәнімен және басқа қасиеттерімен сипатталады.
Атрибут аты – бұл мәліметтерді өңдеу процесіндегі атрибуттың шартты белгіленуі. Ол бір қатынаста және сол қатынастың өзінде уникальды болуы қажет.
Атрибуттың мәні – объектілер мен байланыстардың кейбір қасиеттерін сипаттайтын шама.
Атрибуттар қатынастардағы мәліметтерді біріктіретін, мәндер класына сәйкес келеді. Қатынастар атрибуттарының аттарының тізімі және олардың сипаттамалары қатынас схемасы деп аталады.
Атрибуттар сипаттамалары қатынастың әрбір аргументі үшін мәндерді енгізу облысымен беріледі.
Нақты кортеждің бір мәнді идентификациясы үшін қолданылатын атрибут немесе атрибуттар жиыны қатынастың алғашқы кілті немесе жай кілт деп аталады.
Мәліметтердің реляциялық моделі қазіргі уақытта кең таралымға ие болды және барлық қазіргі МҚБЖ мәліметтердің осындай түрде берілуіне бағытталған.
Реляциялық модельді өз мәліметтерінде қамтитын (кесте түрінді) мәліметтерді қарастырудың ерекше әдісі және олармен жұмыс және әрекет жасау тәсілдері (байланыстар түрінде) ретінде бейнелеуге болады. Реляциялық модель үш концептуалдық элементтің болуын жорамалдайды: құрылым, тұтастық және мәліметтерді өңдеу, айта кететін жағдай, басқа көптеген реляциялық емес модельдерде осы элементтерден тұрды. Бұл элементтерде кейінгі түсіндірулер үшін қажет болатын арнайы ұғымдар бар, оларды қысқаша түсіндіріп өтейік.
Кесте мәліметтердің тікелей «сақтаушысы» ретінде қарастырылады. Реляциялық жүйелерде кестені қалыптасқан дәстүр бойынша қатынас деп атайды. Кестенің жолын кортеж десе, бағанын артибут деп атайды. Оған қоса артибуттардың бірегей атаулары (қатынас шеңберінде) бар. Кестедегі кортеждер саны кардинальды сан деп аталса, атрибуттар саны-дәреже деп аталады.
Қатынас үшін бірегей идентификатор қолданылады, яғни мәндері бір уақытта бірдей болмайтын бір немесе бірнеше атрибуттар, мұндай идентификаторды алғашқы кілт деп атайды. Домен дегеніміз осы немесе басқа атрибут үшін мүмкін біртекті мәндердің жиынтығы болып табылады. Сонымен, домен ретінде аталынған мәліметтер жиынтығын қарастыруға болады, бұл жиынтықтың құрамдас бөліктері логикалық бөлінбейтін бірліктер (домен ретінде, мысалы, мекеменің қызметкерлерінің фамилияларының тізім бола алады, алайда кестеде барлық фамилиялар болмауы да мүмкін) болып табылады.
Қатынас екі бөліктен – тақырыбы (аты) және мазмұнды бөліктен тұрады.
Тақырыбы атрибуттардың шектеулі жиынтығын, ал мазмұнды бөлік (қатынас денесі) атрибут атының жұптары мен оның мәндерінің жиынтығын қамтиды.
Мысалы келесі суретте тақырыбында келтірілген KOD, NAME және SUMM, атрибуттар болып табылады, ал SUMM-25000 немесе KOD-5216 қатынас денесінің элементтері болып табылады.
12-сурет. Реляциялық МҚ ұғымдарын түсіндіру кестесі
Реляциялық мәліметтер қорының (МҚ) басқа модельдерден ерекшелігі– пайдаланушы қалай істеу керектігін емес, оған қандай мәліметтердің қажет екендігін көрсетеді. Осы себепті реляциялық жүйелердегі МҚ бойынша орын ауыстыру және навигация процестері автоматты түрде болады, бұл міндетті МҚБЖ-да оптимизатор атқарады. Сонымен оптимизатор мәліметтердің қандай кестеден таңдалып алынатынын, мұндай кестелерде ақпараттардың қаншалықты көп екендігін, жазбалардың кестеде физикалық реті қандай екендігін және олардың қалай топтасқандарын және т.б. анықтай білуі қажет.
Сонымен қатар, реляциялық МҚБЖ каталог қызметінде атқарады. Каталогта МҚ құралған барлық объектілердің – кестелер, индекстер, триггер және т.б. сипаттамалары сақталады. Бұл бүкіл жүйенің дұрыс жұмыс істеуіне өте қажет, себебі оптимизатор өз жұмысында каталогта сақталынатын ақпаратты пайдаланады. Каталогтың өзі де кестелер жиынтығы болып табылады, сондықтан МҚБЖ ерекше әдістер мен тәсілдерге сүйенбей-ақ, дәстүрлі құралдарды пайдалана алады.
Реляциялық алгебра
Реляциялық алгебра-бір немесе бірнеше қатынастар негізінде берілген қатынастарды өзгертпей басқа қатынасты құруға мүмкіндік беретін амалдардың теориялық тілі.
Амал нәтижесі іштестірілген өрнекті құруға мүмкіндік беретін басқа амал үшін операнда ретінде қолданыла алады(реляциялық алгебраның тұйықтығы).
Реляциялық алгебра барлық корртеждар бір команда арқылы өңделетін тіл болып табылады.
Амалдар жиынын анықтаудың бірнеше варианттары бар. Негізгі бес амалы:
- Таңдау;
- Проекциялау;
- Декарттық көбейтінді;
- Біріктіру.
Осы амалдар негізінде төмендегідей басқа амалдарды алуға болады:
- Айырма;
- Қосу;
- Қиылысу;
- Бөлу.
Таңдау және проекциялау – унарлы, қалғандары – бинарлы амалдар. 13-суретте осы амалдардың нәтижелерінің сызбасы көрсетілген.
Таңдау Проекциялау Декарттық көбейтінді
Нақты қосу Жартылай Сол жағынан
қосу ашық қосу
13-сурет. Операторлар әрекетінің сызба түрінде бейнеленуі
Таңдау
– Таңдау амалы берілген шартты (предикатты) қанағаттандыратын R қатынасының кортеждарынан тұратын қатынасты анықтайды.
Предикатта ˄(And), ˅ (Or), ~ (Not) логикалық амал белгілері қолданыла
алады.
Мысал. Оклады 300-ден жоғары болатын қызметкерлер тізімін алу.
KodS | Lname | Fname | Pol | DR | Dol | ZP | KO |
S21 | Иванов | Иван | М | 01.02.70 | Руководитель | B5 | |
S14 | Сидоров | Стеман | М | 06.05.68 | Менеджер | B3 | |
S41 | Петров | Игорь | М | 02.02.68 | Менеджер | B5 |
Проекциялау
Патр1,…,атрn(R) – Проекциялау амалы атрибуттары атр1, …атрn болатын
және тек унарлы кортеждан құралған қатынасты анықтайды (нәтижеден қайталанатын мәндер алынып тасталынады).
Мысал. Бөлім бар болатын барлық қалалар тізімін алу.
ПCity(Branch)
Нәтиже:
City |
Тюмень |
Нижневартовск |
Ишим |
Надым |
Декарттық көбейтінді
RхS – Декарттық көбейтінді амалы әрбір R қатынасындағы кортежға бір S қатынасындағы кортежді конкатенацияның(яғни жалғастыру) нәтижесі арқылы анықталатын жаңа қатынасты анықтайды.
Егер R қатынасы I кортеж бен M атрибуттан құралса, ал S – J кортеж бен N атрибуттан құралса, онда RхS қатынасы IхJ кортеж бен M+N атрибуттан атрибуттан құралады. Егер кіріс қатынастардағы атрибуттар бірдей атпен аталса, онда қорытынды қатынаста қатынас аты префикс есебінде тіркеліп жазылады(мысалы, Branch.City).
Мысал. Жылжымайтын мүлік обектілерін қарап шыққан арендаторлар тізімін алу
(ПKodR,Name(Renter))х(ПKodR,KodP,Comment(Viewing))
Нәтижесі:
KodR | Name | Viewing.KodR | KodP | Comment |
R76 | Саблев Иван | R56 | P14 | Мала |
R76 | Саблев Иван | R76 | P04 | Далеко |
R76 | Саблев Иван | R56 | P04 | |
R76 | Саблев Иван | R62 | P14 | Дорого |
R76 | Саблев Иван | R56 | P36 | |
R56 | Рубин Степан | R56 | P14 | Мала |
R56 | Рубин Степан | R76 | P04 | Далеко |
R56 | Рубин Степан | R56 | P04 | |
R56 | Рубин Степан | R62 | P14 | Дорого |
R56 | Рубин Степан | R56 | P36 | |
R74 | Кротова Ирина | R56 | P14 | Мала |
Және т.б. |
Бұл түрдегі қатынаста көп артық ақпараттар бар. Мысалы, бірінші кортежда KodR және Viewing.KodR өрістерінің мәндері әртүрлі. Ізделініп отырған қатынасты алу үшін KodR=Viewing.KodR предикатымен таңдау амалын қолдануымыз керек:
σKodR=Viewing.KodR((ПKodR,Name(Renter))х(ПKodR,KodP,Comment(Viewing)))
Бұл амалдардың нәтижесі:
KodR | Name | V.KodR | KodP | Comment |
R76 | Саблев Иван | R76 | P04 | Далеко |
R56 | Рубин Степан | R56 | P14 | Мала |
R56 | Рубин Степан | R56 | P04 | |
R56 | Рубин Степан | R56 | P36 | |
R62 | Зимина Елена | R62 | P14 | Дорого |
Біріктіру
R S - Біріктіру амалы әрбір R және S қатынасының кортеждары қайталанатын мәндері алынып тасталып кірістірілген жаңа қатынасты анықтайды. Мұнда R және S қатынасы біріктіруде үйлесімді болуы – сәйкес домендерінде бірдей атрибуттар болуы тиіс.
Мысал. Агенттіктің бөлімдері немесе жылжымайтын мүлік объектілері бар қалалар тізімін алу..
ПCity(Branch) ПCity(Prorerty_Rent)
Нәтижесі:
City |
Тюмень |
Нижневартовск |
Ишим |
Надым |
Сургут |
Айырма
R-S -Айырма амалы S қатынасында жоқ R қатынасындағы кортеждар кірістірілген жаңа қатынасты анықтайды. Мұнда R және S қатынастары үйлесімді болуы керек.
Мысал. Агенттіктің жылжымайтын мүліктері орналасқан, бірақ бөлімдері жоқ қалалар тізімін алу.
ПCity(Prorerty_Rent) - ПCity(Branch)
Нәтижесі:
City |
Сургут |
Қосу амалы
Егер қолданушыға берілген шартты қанағаттандыратын декарттық көбейтіндінің белгілі бір бөлігі ғана керек болса, негізгі амалдардың бірі қосу амалы қолданылады. Қосу амалының бірнеше түрі бар:
тета – қосу;
нақты қосу;
сыртқы қосу;
жартылай қосу.
Тета-қосу.
R |><| FS - Тета-қосу амалы декарттық көбейтіндіден F предикатын қанағаттандыратын кортеждардан құралған қатынасты анықтайды. F предикаты R.ai S.bi түрінде болады,мұндағы
- < | <= | >= | = | ~= амалдарының бірі.
Егер F предикаты тек = амалынан құралса, онда қосу эквиваленттік бойынша қосу амалы деп аталады.
Қатынасты базалық амалдар негізінде де жазуға болады:
R |><| FS = σF(Rх)
Мысал. Жылжымайтын мүліктерді қарап шыққан арендаторлар тізімін алу
(ПKodR,Name(Renter)) Renter.KodR= Viewing.KodR (ПKodR,KodP,Comment(Viewing))
Нәтижесі: жоғарыда көрсетілген.
Нақты қосу.
R|><|S - Нақты қосу амалы – нәтижеден әрбір жалпы атрибуттың бір экземпляры алынып тасталынатын барлық жалпы атрибуттарда орындалатын
эквиваленттік бойынша қосу амалы.
Мысал. Жылжымайтын мүліктерді қарап шыққан арендаторлар тізімін алу
(ПKodR,Name(Renter)) |><| (ПKodR,KodP,Comment(Viewing))
Нәтижесі:
KodR | Name | KodP | Comment |
R76 | Саблев Иван | P04 | Далеко |
R56 | Рубин Степан | P14 | Мала |
R56 | Рубин Степан | P04 | |
R56 | Рубин Степан | P36 | |
R62 | Зимина Елена | P14 | Дорого |
Сыртқы қосу
R <|S - R қатынасының кортеждарының S қатынасындағы жалпы атрибуттар мәніне сәйкес келмесе, сонымен қатар нәтижелік қатынасқа кірістірілсе сол жағынан сыртқы қосу амалы анықталады. Мәндері болмаса Null мәні қолданылады.
Артықшылығы: сыртқы қосуда R қатынасындағы барлық ақпарат сақталады.
Осыған ұқсас оң жағынан сыртқы қосу және толық сыртқы қосу амалдарын анықтауға болады.
Мысалы. Жылжыматын мұлікті қарап шығу туралы есеп беруді анықтау.
ПKodR,Street,City(Property_Rent) (Viewing))
Нәтижесі:
KodP (код недвижимости) | KodR (код арендатора) | (Заключение) | |
P14 | R56 | 24.05.01 | Мала |
P04 | R76 | 20.04.01 | Далеко |
P04 | R56 | 26.05.01 | |
P14 | R62 | 14.05.01 | Дорого |
P36 | R56 | 28.04.01 |
Жартылай қосу
R |> FS -Жартылау қосу амалы R және S қатынасына да кірістірілетін R қатынанысының кортеждарынан тұратын қатынасты анықтайды.
Жартылай қосу амалын проекциялау және қосу операторлары арқылы
анықтауға болады:
R |> FS = ПA(R |><|FS),
Мұндағы A – R қатынасындағы барлық атрибуттар жиыны.
Мысал. Ақтөбе қласында орналасқан бөлімде жұмыс жасайтын қызметкерлер туралы ақпараттан тұратын есеп беруді құру.
Staff |> Staff.KodO = Branch.KodO and Branch.City=’Тюмень’ Branch
Нәтижесі:
KodS (код) | Lname (фамилия) | Fname (имя) | Pol (пол) | DR (дата р.) | Dol (должность) | ZP (Оклад) | KodO (код отд.) |
S21 | Иванов | Иван | М | 01.02.70 | Руководитель | B5 | |
S37 | Петрова | Татьяна | Ж | 12.11.72 | Агент | B3 | |
S14 | Сидоров | Степан | М | 06.05.68 | Менеджер | B3 | |
S05 | Степанова | Елена | Ж | 16.07.71 | Секретарь | B3 | |
S41 | Петров | Игорь | М | 02.02.68 | Менеджер | B5 |
Қиылысу
R S - Қиылысу амалы R және S қатынасында бар кортеждардан ұралатын қатынасты анықтайды. R және S қатынасы үйлесімді болуы керек.
Қиылысу амалын базалық амалдар арқылы жазуға болады:
R S=R-(R-S)
Бөлу
R S - Бөлу амалы S қатынасындағы барлық кортеждар комбинациясына әйкес келетін С атрибуттар жиынында анықталған R кортеждарынан тұатын қатынасты анықтайды.
Бөлу амалын базалық амалдар арқылы өрнектеп жазуға болады:
T1=ПC( R )
T2=ПC ((SхT1)-R)
R S=T1-T2
Мысал. 4 бөлмелі жылжымайтын мүлік объектлерін қарап шыққан арендаторлар тізімін алу.
(ПkodR,KodP (Viewing)) (ПkodP ( σRooms=4(Property_Rent)))
Нәтиже:
KodR | KodP |
R76 | P04 |
R56 | P04 |
Бақылау сұрақтары:
1. Реляциялық модель деп қандай модельді айтамыз?
2. Реляциялық мәліметтер қорында қолданылатын негізгі терминдер?
3. Реляциялық алгебра дегеніміз не?
4. Реляциялық алгебраның негізгі амалдары қандай?
Әдебиеттер:
[3], [4], [7].