Реляциялық есептеу.
Реляциялық есептеу, реляциялық алгебраға қарағанда, кестені бір
сұраныстың көмегімен анықтайды. Реляциялық есептеуде сұраныс келесі
түрде беріледі:
{мақсаттық тізім: анықтаушы өрнек}
Мақсаттық тізім реляциялық есептеудегі сұраныстың шешімі болып
табылатын кестенің атрибуттарын (бағандарын) анықтайды.
Анықтаушы өрнек шешу кестесінің элементтері қанағаттандыруға тиіс
болатын шарттарды береді. Фигуралы жақшалар шешу кестесіндегі
жолдардың көптігін білдіреді. Еркін түрдегі жолды белгілеу үшін латын
алфавитінің кіші әріптері қолданылады. Мысалы, «Орион» фирмасының
сауда агенттерінің қайсысы Лондонда тұрады деген сұраныс келесі түрде
беріледі:
{r.Summ, r.Sname:=r IN Salespeople AND r.City=”London”}
Сұраныс нәтижесінде келесі кесте пайда болады.
Summ Sname
1001 Pal
1004 Smith
Бұл мысалда реляциялық есептеудің сұранысы реляциялық алгебраның
келесі екі амалына – таңдау және проекцияны құруға теңбе-тең болады.
A=select(Salespeople: City=London), B=A[Summ, Sname]
Тұтастай алғанда жоғарыда көрсетілген мысалдар тәрізді
сұраныстарды, жалғау және бөлу амалдарынан басқа, реляциялық
алгебраның амалдарымен орындауға болады. Реляциялық есептеуде қосу
және бөлу амалдарына ұқсас келетін әрекеттерді орындау үшін сәйкесінше
бар болу кванторы мен жалпыға бірдей кванторы қолданылады.
Реляциялық есептеуде болмыс кванторы дегеніміз – бұл берілген
шартты қанағаттандыратын ең болмағанда бір жолдың болуын білдіретін
өрнек. Егер де, мысалы, 1002 агентіне сұраныс жасаған клиенттерді атап
шығу
қажет етілсе, онда келесідегідей сұраныс жасау қажет:
{r.Cname:=r IN Customers AND EXISTS s IN Orders (s.Cnum=r.Cnum and
s.Snum=1002)}
Мұндай сұраныс реляциялық алгебраның қосу және проекцияны құру
амалдары орындайтын әрекетті орындайды.
Sname
Lewe
Grass
A=Join (Customers Orders: Customers.Cnum=Orders. Cnum and
Orders.snum=1002)
B=[Cname]
Реляциялық есептеудегі жалпыға бірдей кванторы – бұл белгілі типтегі
әрбір жолда қолданылатын шартты білдіретін өрнек. Мысалы, әрбір
клиенттен қай агент тапсырыс алды? Сұраныс келесі түрде болады.
{r.Snum, r.Sname: r IN Salespeople AND s IN Orders AND THERE
EXISTS c IN Customers (r.Snum = s.Snum) AND (c.Cnum = s.Cnum)}
Реляциялық есептеу – қалай қол жеткізуге болатынын емес, нені
орындау қажет екендігін тұжырымдауға мүмкіндік беретін процедуралық
емес тіл. Реляциялық есептеу, реляциялық алгебра сияқты теориялық тіл
болып табылады және логикалық сипаттамаларға негізделген реляциялық
мәліметтер қорының кестелерін, олардың физикалық құрылымына қатыссыз
манипуляциялауға арналған. Реляциялық есептеу лексикалық тұрғыдан
реляциялық алгебраға барабар, яғни ол реляциялық алгебра шешетін есепті
шешуге мүмкіндік береді.
Қалыптандыру.
Мәліметтер қорын әзірлеу, жобалау кезінде кестелер белгілі бір
талаптарды қанағаттандыруы, яғни стандарттық түрге ие болуы тиіс. Бұл
талаптар қалыпты форма деп, ал қалыпты түрге келтіру үдерісі – қалпына
келтіру деп аталады. Қалпына келтірілмеген кестелерді реляциялық
алгебраның әрекеттері дұрыс өңдемейді. Мәліметтер қорының кестелері 4
қалыпты түрге сәйкес келуі тиіс.
Алғашқы қалыпты форма атрибуттардың барлық мәндері жиындар
емес, қарапайым шамалар болуға тиіс болатынын ескереді. Мысалы, келесі
түрдегі жазбаға
0023003 {607.1, 160.09} 10/03/2000 2001 1001
жол берілмейді, себебі ол алғашқы қалыпты формаға сәйкес келмейді.
Екінші қалыпты форма. Егер де ешбір кілттік емес атрибуттар кілттің
бөлігіне тәуелді болмаса, реляциялық кесте екінші қалыпты формада болады.
Осылайша, екінші қалыпты форма бастапқы кілт құрамдас болған жағдайда,
былайша айтқанда, бірнеше атрибуттардың жиыны болған жағдайда ғана
бұзылуы мүмкін. Мысалы, келесі кесте,
Clerk Office Name
1004 312 Smith
1001 312 Pol
1004 515 Smith
1001 460 Pol
1001 435 Pol
ондағы Clerk пен Office бастапқы кілт, екінші қалыпты түрде емес,
себебі Name атрибуты Clerk атрибутына тәуелді.
Кесте екінші қалыпты формада болу үшін оны келесі түрде екі кестеге
бөлу керек
Clerk
Office
Clerk
Name
1004 312 1001 Paul
1001 312 1004 Smith
1004 515