Читайте также:
|
|
Кейбір операцияларды орындау барысында қатынастар бірдей үйлесімді сызбада болуы тиіс, яғни олардың дәрежелеріне сәйкес атрибуттарының типтері бірдей болуы керек.
Бастапқы қатынастарды R1, R2 және т.с.с, нәтижелік қатынасты Т әрпімен белгілейік. Қарастыратын операцияларды мүмкін болған жағдайларда xBase бағдарламалау тілінің командаларымен сүйемелдеп отырамыз.
1. Біріктіру (үйлесімді қатынастар үшін)-нәтиже бірінші қатынастың барлық кортежін және екінші қатынастан жетіспейтін кортеждерді алады. T=R1UR2
2. Қиылысу (үйлесімді қатынастар үшін)-нәтиже тек екі қатынаста да бар кортеждерден тұрады. T=R1∩R2
3. Айырма (үйлесімді қатынастар үшін)-нәтиже екінші қатынаста жоқ бірінші қатынастың кортеждерінен тұрады.T=R1\R2
Бұл үш операция үшін xBase тілдерінде арнайы құрал жоқ. Оларды тілдің бірнеше командасымен орындауға болады.
Мысалы: R1,R2 қатынастары берілсін.
|
| ||||||||||||
Төменде осы R1 және R2 кестелерімен жасалған келесі операциялардың орындалу барысында шыққан нәтижелік кестелер берілген: Т1-бірігу, Т2-қиылысу, Т3-айырма.
----------------
4. Декарттық көбейту (қатынастардың сызбасы әр түрлі болуы мүмкін). Нәтижелік қатынастың дәрежесі операнд қатынастарының дәрежесінің суммасына, ал қуаты олардың қуаттарының көбейтіндісіне тең. Т=R1ØR27
|
СТУДЕНТТЕР
Фамилия |
Ахметов Асанов Омаров |
Бұл екі қатынастың декарттық көбейтіндісі келесідей болады:
ВЕДОМОСТЬ
Фамилия | Пән атауы | Күні |
Ахметов Ахметов Асанов Асанов Омаров Омаров | Математика Физика Математика Физика Математика Физика | 10.01.05 15.01.05 10.01.05 15.01.05 10.01.05 15.01.05 |
5. Бөлу. Бөлгіш қатынаста (R2) бөлінетін қатынастың (R1) атрибуттар жиыны болуы керек. Нәтижелік қатынаста бөлгіш те жоқ атрибуттар болады. Т=D(R1,R2).
Мысалы, ТІЗІМ деп аталатын бастапқы қатынас берілсін.
|
Си және Паскаль тілдерін бірдей меңгерген программистердің фамилияларын бөліп алу
қажет.
Тіл=”Паскаль”. AND. Тіл=”Си” шарты бойынша қажет жолдарды теріп алу мағынасыз болады, себебі бағдарламалаудың екі тілі туралы ақпарат ешқандай жолда жоқ.
Бейне операциясын анықтап көрейік. Т(А,В) қатынасында А атрибутының а мәнінің бейнесі болып В атрибутының мәндер жиыны табылады және осы жиынның әрбір b элементі а атрибутымен бірге Т қатынасының қандай да бір жолын (немесе жолының бөдігін) құрайды.
Бұл операция келесі түрде көрсетіледі:
im B(a)={b1,b2 …,bk},
мұндағы im-“бейне“ орерациясының белгілі, а-бейнесі анықталып жатқан мән, В- а мәнінің бейнесі үшін атрибут атауы,b1,b2,…,bk-B атрибутының мәндері.
Алдымызда тұрған мәселе “Паскаль” мен “Си” мәндерінің бейнелерін табу және табылған бейнелердің қиылысуын анықтау арқылы шешіледі.
Im Фамилия (“Си”)={“Ахметов”,”Асанов”}
Im Фамилия (“Паскаль”)={“Ахметов”,”Асанов”,”Омаров”}
Im Фамилия (“Си”)∩ im Фамилия (“Паскаль”)={“Ахметов”,”Асанов”}
Бейнені табу және алынған жиындарды қиылыстыру операцияларының мұндай байланысы жиі қолданылады,сондықтан бөлу операциясы енгізілген.
Біздің мысалымызда бөлгіш қатынасты ПТ деп белгілейік.
Тіл |
Си Паскаль |
Фамилия |
Ахметов Асанов |
Бөлу операциясының нәтижесінде ТІЗІМ бөлінгіш-қатынастың негізінде есептелген Пт бөлгіш қатынастың барлық жолдарының қиылысынан тұратын ТІЗІМІ деп аталатын қатынас пайда болады.
6. Проекция. Бастапқы қатынастың операция шартында көрсетілген бағандарын нәтижелік қатынасқа алып баратын операция. Нәтижесінде қайталанатын кортеждер болмауы тиіс. T=R[X], xBase тілінде бұл операция келесі командалар тізбегімен орындалады (F1-,бастапқы файл,F2-нәтижелік):
Use F1
Copy to F2 fields <проекцияланатын өрістер тізімі>
7. Теріп алу (селекция,шектеу). Бастапқы қатынастың теріп алу шартын (ТШ) қанағаттандыратын жолдарын нәтижелік қатынасқа алып баратын операция.Т=R[ТШ].
Шарт терудің әрбір жолында тексеріледі де, бірнеше жолдан тұратын ақпаратты қамти алады.Оның қарапайым 2 түрі бар:
1)Атрибут_атауы <салыстыру белгісі>константа;
2)Атрибут_атауы1<салыстыру белгісі> арибут_атауы2.
Мысалы: Баға > 100,Жоспар < Есеп.
xBase тілінде бұл операция келесі командалар тізбегімен орындалады:
ШТАТ
Use F1
Copy to F2 for<теріп алу шарты>
Атап өтетін жағдай,Copy командасында поекциялау және теріп алу шарттары бір уақытта болуы мүмкін.
Проекциялау және теріп алу операцияларына мысалдар:
ШТАТ деп аталатын бастапқы қатынас берілсін.,
ШТАТ
Фамилия | Таб номер | Жынысы | Қызметі | Жалақысы |
Абдуллаев Бакушев Рахметова Майлин Мамекова | М М Ж М Ж | Инженер Директор Экономист Электрик Бухгалтер |
Т=ШТАТ [Фамилия,Таб_номер,Қызметі] проециясын жасайық:
Фамилия | Таб номер | Қызметі |
Абдуллаев Бакушев Рахметова Майлин Мамекова | Инженер Директор Экономист Электрик Бухгалтер |
Қатынастан Т=ШТАТ [Жынысы=”M”] шартымен теріп алу:
Фамилия | Таб номер | Жынысы | Қызметі | Жалақысы |
Абдуллаев Бакушев Майлин | М М М | Инженер Директор Электрик |
8. Қосылу. Бастапқы екі қатынаспен орындалады. Бірінші қатынастың әрбір жолы кезегімен екінші қатынастың барлық жолдарымен салыстырылып шығады.Егер қосылу шарты (ҚШ) орындалса, онда нәтижелік қатынаста бір-біріне қосылған кезекті жол пайда болады. Операцияның белгіленуі-T=R1[ҚШ]R2. Қосылу келесі түрде болады:
Атрибут_атауы1 <салыстыру белгісі>Атрибут_атауы2,
Мұндағы атрибут1 бірінші бастапқы қатынаста болса,атрибут2 екіншісінде болады.
Әдетте, іс жүзінде жиі кездесетін жағдай натурал натурал(немесе табиғи)қосылу деп аталады да, келесі ерекшеліктерге ие болады:
- Қосылу шартындағы салыстыру белгісі-теңдік;
- Атрибут_атауы1, Атрибут_атауы2 параметрлері сәйкес келуі тиіс;
-Нәтижелік қатынастың атрибуттар тізімі бастапқы қатынастардың тізімдерінің бірігуі нәтижесінде жасалып, сәйкес келетін атрибуттар қайталанып жазылмайды; сонымен нәтижелік қатынастың дәрежесі бастапқы қатынастардың дәрежелерінің қосындысынан 1-ге кем болады.
Мысалы екі бастапқы қатынас берілсін:
ТІЗІМ ЖАЛАҚЫ
Фамилия | Таб номер | Қызметі |
Абдуллаев Бакушев Рахметова Майлин Мамекова | ер Директор Экономист Электрик Бухгалтер |
Қызметі | Жалақысы |
Инженер Директор Бухгалтер |
ТІЗІМІ қатынасында осы екі қатынастың “Қызметі” атрибуты бойынша натуралды қосылуын орындайық:
ТІЗІМІ
Фамилия | Таб номер | Қызметі | Жалақысы |
Абдуллаев Бакушев Рахметова Майлин Мамекова | Инженер Директор Экономист Электрик Бухгалтер |
Қосылудың натуралдыдан басқа тағы екі түрі бар:
Тетақосылу, мұнда нәтижелік қатынастың дәрежесі бастапқы қатынастардың дәрежелерінің қосындысына тең(яғни қосылу атрибуттарының екеуі де нәтижелік қатынасқа енеді), ал қосылу шарты кез келген болуы мүмкін. Егер қосылу шартында теңдік белгісі болса,онда тетақосылуды эквиқосылу деп атайды.
Композиция, мұнда қосылу атрибуттары нәтижелік қатынастың атрибуттар тізіміне енбейді, яғни нәтижелік қатынастың дәрежесі бастапқы қатынастардың дәрежелерінің қосындысынан 2-ге кем болады.
Келтірілген мысалдардың xBase тілінде жазылуы төмендегідей болады: мұндағы ТІЗІМ, ЖАЛАҚЫ-сәйкесінше 1-ші және 2-ші облыстарда ашылатын кестелерді өзінде сақтайтын берілгендер қорының атаулары, ал ТІЗІМІ-қосылу нәтижесі орналасатын файл атауы, келесі командалар тізбегі орындалады:
Select 1
Use ТІЗІМ
Select2
Use ЖАЛАҚЫ
Select 1
Join with ЖАЛАҚЫ to ТІЗІМІ;
For Қызметі=ЖАЛАҚЫ Қызметі;
Fields Фамилия,Таб_номер,Қызметі,ЖАЛАҚЫ.Жалақысы
Натурал қосылуды қосылатын қатынастар құрылымы бойынша сәйкес келмейтін және ортақ атрибуттары жоқ кезде де орындауға болады.
Бірінші жағдайда шын мәнінде қатынастардың қиылысын аламыз,ал екінші жағдайда қосылу шарты кез келген салыстырылатын жолдар жұбы үшін орындалған деп саналып қосылу операциясы бірінші қатынастың әрбір жолына екінші қатынастың барлық жолдарын тіркестіреді.
Дата добавления: 2015-09-06; просмотров: 310 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Атынастардың қасиеттері | | | Дәріс 6 . Ақпараттық жүйелердің динамикалық бейнеленуі . |