Реляциялық алгебра

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

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

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

Амалдар жиынын анықтаудың бірнеше варианттары бар. Негізгі бес амалы:

  • Таңдау;
  • Проекциялау;
  • Декарттық көбейтінді;
  • Біріктіру.

Осы амалдар негізінде төмендегідей басқа амалдарды алуға болады:

  • Айырма;
  • Қосу;
  • Қиылысу;
  • Бөлу.

Таңдау және проекциялау – унарлы, қалғандары – бинарлы амалдар. 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.KodRKodR,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 кортеждарынан тұатын қатынасты анықтайды.

Бөлу амалын базалық амалдар арқылы өрнектеп жазуға болады:

T1C( R )

T2C ((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].









Дата добавления: 2017-01-29; просмотров: 5857;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.027 сек.