Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПБД_лекц.docx
Скачиваний:
3
Добавлен:
01.04.2025
Размер:
239.15 Кб
Скачать

14 Дәріс. Өңделген реляциялық сұлбаны іске асыру

Дәріс мазмұны:

- белгілі МҚБЖ ортасында мәліметтер қорының өңделген жобасын іске асырудың сұрақтары қарастырылады.

Дәріс мақсаты:

- қазіргі замандағы мәліметтермен әрекеттесу тілдермен танысу.

14.1 Құрылымдасқан сұраныстардың sql тілі

Мәліметтердің реляциялық қорлары пайда болар алдындағы жасалған және дербес компьютерлердің МҚБЖ-рі үшін өңделген мәліметтермен әрекеттесу тілдері файлдардың логикалық жазбалары ретінде көрсетілетін мәліметтерге операцияларды қолдануда негізделген болатын. Сондықтан пайдаланушы мәліметтерді сақтаудың ұйымдасуын толық білуі және олар қандай мәліметтер керек екінін көрсетіп, мәліметтердің орналасқан жерін біліп, тізбектеп оларды алуға көп күш жұмсаулары керек болды. Қарастырылып отырған процедуралық емес SQL (Structured Query Language – құрырымдасқан сұраныстар тілі) тілі логикалық өзара байланысқан кестелер жиындары түрінде көрсетілген мәліметтерге операцияларды қолдануда бағытталған. Осы тілдің сөйлемдерінің ерекшеліктері оның мәліметтерді өңдеудің процедурасына емес, өңдеудің соңғы нәтижесіне бағытталғаны болып табылады. Мәліметтер қайда орнатылғанын, оларды алу үшін қандай индекстерді және ең тиімді болып табылатын операциялар тізбегін қолдану керек екенін SQL өзі шешеді: мәліметтер қорына сұраныста осы детальдарды көрсету қажет емес.

Егер де мәліметтер қорымен тек қана жұмыс жасау әрекеттерін көрсету жеткілікті болса (процестің алгоритмін бейнелемей), тіл процедуралық емес тіл болып табылады. SQL-сұраныстарды өңдеудің барлық алгоритмдері МҚБЖ-ің өзімен генерацияланады және пайдаланушыдан тәуелді емес. SQL тілі келесі категорияларға бөлінетін операторлар топтарынан тұрады:

- Data Definition Language (DDL) — мәліметтер қорында объекттерді жасауға, енгізуге, жоюға мүмкіндік беретін мәліметтерді анықтау тілі;

- Data Manipulation Language (DML) — мәліметтер қорындағы объекттердегі мәліметтерді өзгертуге, енгізуге, жоюға мүмкіндік беретін мәліметтерді басқару тілі;

- Data Control Languages (DCL) — пайдаланушылардың құқықтарын басқаруға қолданылатын тіл;

- Transaction Control Language (TCL) — операторлар топтарымен жасалған өзгертулерді басқару тілі;

- Cursor Control Language (CCL) — курсорларды анықтау, SQL операторлар орындалуыен дайындау және де басқа кейбір операцияларды орындау операторлары.

ХХ ғ. 80-ші жылдарының басында SQL кәсіби реляциялық МҚБЖ үшін осындай тілдердің стандарты болып табылды. 1987 жылы ол мәліметтер қорларының тілінің дүниежүзілік стандарты болып, дербес компьютерлердің барлық тараған МҚБЖ ендіріле бастады.

14.2 Мәліметтер қорының объекттері

14.2.1 SQL-дің кестелері

"Кесте" деген түсініктеме, әдетте, нақты кестемен (CREATE TABLE операторы көмегімен жасалатын) яғни әр жатық жолы үшін компьютердің физикалық жадысында сақталатын кейбір егізі бар кестемен байланысты. Барлық реляциялық МҚБЖ-лер кестелерді сүйемелдейді және олардың өрістерінде әртүрлі типті мәліметтер сақталады. Бірақ SQL тағы да бір сыпыра виртуалды кестелерді жасай алады: елестетулерді, курсорларды және негізгі кестелер мен елестетулерге сұраныстардың нәтижелері орнатылатын аталмаған жұмыс кестелерді. Бұл кестелер мәліметтер қорында жоқ бірақ пайдаланушы көз қарасы жағынан бар болады.

Бір немеше бірнеше нақты кестелерден мәліметтерді ұсынатын виртуалды кесте елестету болып табылады. Нақтылықта оның ешқандай мәліметтері жоқ, ол тек қана мәліметтердің көзін бейнелейді. Жиі жағдайда осындай объекттер мәліметтер қорында күрделі сұраныстарды сақтауға қолданылады. Елестетуді сақталынған сұраныс десек болады. Көптеген қазіргі замандағы МҚБЖ-де елестетулер арнайы визуалды құралдарымен жасалады. Олар экранда қажетті кестелерді көрсетуге, олар арасында байланыстарды орнатуға, көрсетілетін өрістерді таңдауға, жазбаларға шектеулерді орнатуға, т.б. мүмкіндік береді. Жиі жағдайда осы объекттер кестелерге қол жеткізуге рұқсат бермей, олардың көмегімен мәліметтерді қарап шығуға мүмкіндік беріп мәліметтердің қауіпсіздігін қаматамасыздандыруға қолданылады. Сонымен бірге объекттердің кейбір елестетулері әртүрлі мәліметтерді көрсетеді мысалы, пайдаланушы атына тәуелді; ол тек қана оған керек мәліметтерді алуға болады.

Кестелерді жасағанда бастапқы кілттерді анықтаған өте маңызды болады. Жиі жағдайда бастапқы кілттерді МҚБЖ өзі жасайды. Кілтті клиенттік қолданбалыда генерациялағаннан бұл ыңғайлы болып табылады, себебі көп пайдаланушылар жұмысын сүйемелдейтін жүйеде МҚБЖ көмегімен кілттерді генерациялау, олардың кезекті мәндерін алу, кілттердің қайталануынан сақ болудың жалғыз амалы. Әртүрлі МҚБЖ-де кілттерді генерациялау үшін әртүрлі объекттер қолданылады. Осындай объекттердің кейбіреуі бүтін санды және одан кейнгі мәннің генерациялау ережесін сақтайды; әдетте, бұл амал триггерлер көмегімен орындалады. Кейбір МҚБЖ бастапқы кілттер үшін өрістердің арнайы типін сүйемелдейді. Жазбаларды қосқан кезде осындай өрістер автоматты түрде тізбектелген мәндермен (әдетте, бүтін сандармен) толтырылады. Microsoft Access және Microsoft SQL Server жүйелерінде осындай өрістер Identity fields деп аталады. Реляциялық МҚБЖ-ң көбісінде кілттер индекстер деп аталатын объекттер көмегімен іске асырылады. Индекстерді жазбалардың нөмірлер тізімі ретінде елестетуге болады, олар жазбаларды қандай ретімен шығару керектісін көрсетеді.

14.2.2 Шектеулер

Қазіргі замандағы серверлік МҚБЖ-ң көбісінің құрамында шектеулер деп аталатын арнайы объекттер бар. Бұл объекттер өрістердің мүмкін болатын мәндеріне орнатылатын шектеулер туралы мағлұматтардан тұрады. Мысалы, осындай объект көмегімен берілген өрістің мәнінің максималды немесе минималды мәнін орнатуға болады; содан кейін МҚБЖ мәліметтер қорында осы шартты бұзатын жазбаны сақтауға мүмкінді бермейді. Мәліметтердің өзгеру диапазонынан басқа сілтеме жасау шектеулер бар. МҚБЖ барлығы шектеулерді сүйемелдемейді. Осындай жағдайда ұқсастық функционалдығы бар ережелерді іске асыру ұшін басқа объекттерді қолдануға болады (мысалы, триггерлерді) немесе осы ережелерді мәліметтер қорымен жұмыс істейтін клиенттік қолданбалыларда сақтауға болады.

14.2.3 Мәліметтер қорларына сұраныстар

Мәліметтерді модификациялау немесе сұрыптау, метамәліметтерді өзгерту және тағы да басқа операцияларды орындау сұраныстар көмегімен іске асырылады.

Қазіргі кездегі МҚБЖ көбісінде (және колданбалыларды өңдеудің кейбір құралдарында) осындай сұраныстарды жасаудың құралдары бар. Мәліметтермен әрекеттесудің әдісінің бірі «queries by example» (QBE) — үлгі бойынша сұраныс деп аталады. QBE кестелерді байланыстырып, сұраныс нәтижесінде көрсетілетін өрістерді таңдаудың визуалды құралы болып табылады. Сұранысты тікелей SQL тілін қолданып жазуға болады.

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

14.2.4 Транзакциялар

Мәліметтерге қолданылатын операциялар тобы транзакция болып табылады. Олар бірге орындалады немесе бұзылады. Транзакцияға кіретін барлық операциялар табысты орындалып, олардың жұмысының нәтижесі мәліметтер қорында сақталған болса транзакция аяқталды деп есептелінеді. Егер де транзакция құрамына кіретін барлық орындалған операциялар жойылып, осы операцияларға қолданылған мәліметтер қорының объекттері бұрынғы күйіне келсе транзакцияның шегінуі болады. Шегінудің мүмкіндігі болу үшін көптеген операцияларды МҚБЖ log-файлдарға жазып отырады, осы файлдар бастапқы мәліметтерді қалпына келтіруге мүмкіндік береді. Транзакция құрамында бірнеше ішкі транзакциялар болуы мүмкін.

14.2.5 Пайдаланушылар мен рольдер

Мәліметтерді рұқсат етілмеген қол жеткізуден сақтау м аңыздымәселе болып табылады және әртүрлі жолдармен шешіледі. Кестені немесе оның бірсыпыра өрістерін парольмен қорғау ең қарапайымы болып табылады. Қазіргі кезде көп қолданылатын тағы бір әдіс — пайдаланушылардың аттарымен парольдерінің тізімдерін жасау. Кейбір МҚБЖ, әдетте, серверлік пайдаланушылар тізімдерінен басқа рольдерді сүйемелдейді. Ерекше құқықтар жиыны рольдер болып табылады. Егер де пайдаланушы рольге ие болса, е осы рольға меншіктелген барлық құқықтарын қабылдайды.

14.2.6 Жүйелік каталог

Пайдаланушылар мен рольдердің тізімдерін сүйемелдейтін кез келген реляциялық МҚБЖ оларды бір жерде сақтауы керек. МҚБЖ-рі осы тізімдерге қосымша кестелер, индекстер, триггерлер, процедуралар, т.с. тізімдерін және олардың иелері туралы мағлұматтарды сақтап қояды. Осындай тізімдер жүйелік кестелер, ал оған сәйкес мәліметтер қорының бөлігі жүйелік каталог деп аталады. Барлық МҚБЖ жүйелік каталогтарды сүйемелдемейтінін айтып кеткен жөн. Қолданылатын мәліметтер құрылымдары, мәліметтердің логикалық ұйымдастыруы, пайдаланушылардың құқықтары және мәліметтердің физикалық орналасуы туралы мағлұматтар метамәліметтер қоры деп аталады. Осы қорды басқару үшін мәліметтер қорын әкімдеудің арнайы программалық қамтамасыздандыруы бар.

14.2.7 Триггерлер мен сақталынған процедуралар

Қазіргі кездегі серверлік МҚБЖ көбісінде триггерлер мен сақталынған процедуралары орындалатын кодты сақтап қоюға қолданылады.

Мәліметтер қорының серверімен орындалатын процедуралардың арнайы түрі сақталынған процедура болып табылады. Сақталынған процедуралар белгілі МҚБЖ тәуелді процедуралық тілдерде жазылады. Олар бір бірін жұмысқа қосады, кестелерде мәліметтерді өзгертіп оқиды. Оларды мәліметтер қорымен жұмыс істейтін клиенттік қолданбалылардан шақыруға болады. Сақталынған процедуралар әдетте жиі кездесетін есептерді орындауға қолданылады.

Кестедегі мәліметтерді өзгерту, қосу, жою операциялары орындалғанда автоматты түрде жұмысқа қосылатын сақталынған процедуралардың арнайы класы триггер деп аталады. Мәліметтерді өзгерткенде триггер жұмысқа қосылып анықталған әректтерді орындайтын сақталынған процедураны жүктейді. Триггерлерде орындалатын код бар, бірақ оларды клиенттік қолданбалылардан немесе сақталынған процедурадан шақыруға болмайды. Триггер әр кезде белгілі кестемен байланысты және осы кестені редакциялаған кезде триггермен байланысты оқиға пайда болса, ол жұмысқа қосылады.