Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МКАЖ Конспект лекции.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.47 Mб
Скачать

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

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

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

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

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

  • Таңдау;

  • Проекциялау;

  • Декарттық көбейтінді;

  • Біріктіру.

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

  • Айырма;

  • Қосу;

  • Қиылысу;

  • Бөлу.

Таңдау және проекциялау – унарлы, қалғандары – бинарлы амалдар. 13-суретте осы амалдардың нәтижелерінің сызбасы көрсетілген.

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

Нақты қосу Жартылай Сол жағынан

қосу ашық қосу

13-сурет. Операторлар әрекетінің сызба түрінде бейнеленуі

Таңдау

– Таңдау амалы берілген шартты (предикатты) қанағаттандыратын R қатынасының кортеждарынан тұратын қатынасты анықтайды.

Предикатта ˄(And), ˅ (Or), ~ (Not) логикалық амал белгілері қолданыла

алады.

Мысал. Оклады 300-ден жоғары болатын қызметкерлер тізімін алу.

KodS

Lname

Fname

Pol

DR

Dol

ZP

KO

S21

Иванов

Иван

М

01.02.70

Руководитель

500

B5

S14

Сидоров

Стеман

М

06.05.68

Менеджер

400

B3

S41

Петров

Игорь

М

02.02.68

Менеджер

450

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

Руководитель

500

B5

S37

Петрова

Татьяна

Ж

12.11.72

Агент

250

B3

S14

Сидоров

Степан

М

06.05.68

Менеджер

400

B3

S05

Степанова

Елена

Ж

16.07.71

Секретарь

200

B3

S41

Петров

Игорь

М

02.02.68

Менеджер

450

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