ҚАЗАҚСТАН РЕСПУБЛИКАСЫ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ
СЕМЕЙ қаласының ШӘКӘРІМ АТЫНДАҒЫ СЕМЕЙ МЕМЛЕКЕТТІК УНИВЕРСИТЕТІ
|
3 деңгейлі СМК құжаты
|
ОӘК
|
ПОӘК
042-14.2.07.1.20.5/03-2013
|
«Деректер базасының теориясы» пәнінің оқу-әдістемелік кешені
|
02.09.2010 ж
№1 басылым
орнына
03.09.2013
№2 басылым
|
«ДЕРЕКТЕР БАЗАСЫНЫҢ ТЕОРИЯСЫ»
пәнінен оқу-әдістемелік кешен
«5В060200» - « Информатика » мамандығына арналған
ОҚУ-ӘДІСТЕМЕЛІК МАТЕРИАЛДАР
Семей
2013
мазмұны
1. Глоссарий
2. Дәрістер
3. Зертханалықу сабақтары
4. Студенттің өздік жұмысы
глоссарий
Бұл ОӘМ-да келесі терминдер және оларға түсініктемелер қолданылған:
1.1. Деректер базасы (ДБ) – бұл қандайда бір пәндік облысқа жататын құрылымдық деректердің аталынған жиынтығы.
1.2. Деректер базасын басқару жүйесі (ДББЖ) – бұл деректер базасын құру үшін, оларды актуалды жағдайда қолдау мен қажетті ақпаратты іздеуді ұйымдастыру үшін қажет программалық және тілдік әдістер кешені.
1.3. Өріс – ақпараттық бөлінбейтін өлшемі – реквизиттерге сәйкес келетін деректерді логикалық ұйымдастырудың элементарлық бірлігі.
1.4. Жазба - өрістердің логикалық байланысқан жиынтығы. Жазбаның көшірмесі – оның өрістерінің нақты мәндері құрамына кіретін жазбаларды жеке өңдеу.
1.5. Файл (кесте) – бір құрылымның жазбалар көшірмесінің жиынтығы.
1.6. Деректер моделі – деректер құрылымы мен оларды өңдеу операциялары жиынтығы.
1.7. Торап – қандайда бір объектіні сипаттайтын деректер атрибуттарынының жиынтығы.
1.8. Концепция жалпы мағынада процестер мен құбылыстарды зерттеудің қандай да бір жүйесін көрсетеді. Концепцияның құрама бөліктеріне принциптер мен әдістемелер жиынтығы жатады.
1.9. Әдістеме –мәселелерді шешу әдістерінің жиынтығы.
2. Дәрістер
Дәріс сабағының құрылымы:
Дәріс №1.
Дәріс тақырыбы: Деректер базасының архитектурасы
Деректерді интеграциялау концепциясына негізделген қазіргі ақпараттық жүйелер үлкен көлемді және құрылымы жағынан күрделі болып келеді. Олар көптеген пайдаланушылардың әртүрлі деңгейдегі талаптарын қанағаттандыруы тиіс. Кеңінен түсіндірер болсақ, деректер базасы дегеніміз – шынайы өмірдегі белгілі бір сала бойынша бар объектілер жайлы мағұлматтар жиынтығы. Шынайы өмірдің бір бөлігін пәндік аймақ деп айтуға болады. Бұл бөлік басқарудағы ұйымдастыру мәселелерін зерттеу үшін және соңында оның жұмыстарын автоматтандыру үшін қажет. Мысалы, кәсіпорын, жоғарғы оқу орындары және т.б. Деректер базасын құрғанда пайдаланушы әртүрлі белгілері бойынша реттеп, одан көптеген басқа да белгілердің жинақталуы бойынша таңдау жүргізе алады. Мұндай жұмысты деректер құрылымы тәртіптелген жағдайда ғана жүргізуге болады.
Қажетті деректер базасын жылдам жасауға рұқсат ететін әртүрлі программалар жиыны бар: Microsoft Access, Microsoft FoxPro, Paradox, dBase, InterBase, Oracle. Олардың ішінде Paradox пен dBase-да деректер базасы папкалар сияқты, ал әрбір кесте жеке файл сияқты анықталады, ал Access, InterBase және SQL-серверлерінің көпшілігі деректер базасынан тұратын бір үлкен файлды қолданады.
Деректер базасы – белгілі бір пәндік аумаққа жататын құрылымдық түрі бар деректердің атауы бар жинақ.
Деректер базасы үшін ақпаратты өңдеу және рұқсат алу тәсілдері бойынша, сонымен қатар деректер базасының орналасқан орны бойынша қосымшалар архитектурасы бірнеше түрлерге бөлінеді.
-
Жергілікті архитектура – программа және деректер базасы бір компьютерде орналасқан.
-
Файл-серверлік архитектура – деректер базасы сервер деп аталатын желідегі негізгі (орталық) болып бөлінген компьютерде орналасады. Ал клиенттік программалар орнатылған дербес компьютерлер оған жергілікті желі бойынша қосылған. Бұл архитектура бірнеше пайдаланушыларға бір деректер базасымен бір уақытта жұмыс істеу мүмкіндігін береді.
-
Клиент-серверлік архитектура – деректер базасы серверде сақталады және мұнда пайдаланушылар сұраныстарын өңдейтін деректер базасын басқару жүйесі (ДББЖ) жұмыс істейді. Бұл архитектурада пайдаланушылар деректер базасымен қойылған тапсырмаларды орындайтын және алынған нәтижені қайтаратын ДББЖ арқылы жұмыс істейді. Табылған деректер клиентке желі бойынша серверден клиентке қарай жіберіледі. Клиент – сервер архитектурасының ерекшелігі SQL – құрылымдық сұраныстар тілін пайдалану болып табылады. Бұл архитектура бірнеше пайдаланушыларға бір уақытта бір деректер базасымен жұмыс істеуге рұқсат етеді.
-
Таратылған архитектура – деректер базасы бірнеше серверлерде сақталады және олардың әрбіреуінде ДББЖ көшірмелері болады. Сонымен деректер базасы және клиенттік қосымшаларға ұқсас архитектурада қосымшалар серверлері және компоненттер қолданылады. Қосымшалар серверлері пайдаланушылар сұраныстарын өңдеуге және желідегі компьютерлер арасындағы жүктемені біркелкі бөлуге рұқсат етеді. Компоненттер – бұл бөлінген серверде күрделі есептеулерді орындау үшін қолданылатын программалар.
-
Интернет-архитектура – деректер базасы және ДББЖ бір компьютерде орналасады, ал оларға рұқсат алу желілік протокол стандарты бойынша броузерлер арқылы жүзеге асады.
«Файл-сервер» және «Клиент сервер» архитектураларының сұлбасы төменде көрсетілген.
1.1-сурет. «Файл-сервер» 1.2-сурет. «Клиент-сервер»
архитектурасы архитектурасы
Дәріс №2.
Дәріс тақырыбы: Деректерді ұсынудың модельдері
70-80 жылдардың соңында деректер базасын басқару жүйесінің дамуы негізінде деректерді ұсынудың әртүрлі модельдері пайда болды. Әрбір модельдің өзінің ерекшеліктері мен жетіспеушіліктері болды.
Деректер моделі деп берілген талаптарға сәйкес мәліметтерді интерпретациялауды жүзеге асыратын құралдарды айтамыз. Сонымен қатар, мәліметтер моделі мәліметтердің мағлұматтық мазмұнын көру мүмкіндігін беретін абстрактілі ұғым болып табылады.
Мәліметтер моделі екі класқа бөлінеді:
-
Мықты типтендірілген моделі, мұнда барлық мәліметтер қандай да бір категорияға қатысты болады.
-
Әлсіз типтендірілген моделі, категорияға қатысты ешқандай болжамдармен байланысты емес.
Деректер моделі деректердің құрылымдарының жиынтығының деректер бүтіндігін шектеу және деректермен операциялар жасау әрекеттерін орындайды.
Жалпы айтқанда, деректер моделі - деректер құрылымы жиынтығы мен оларды өңдеу операциялары. Деректер базасын басқару жүйелері иерархиялық, желілік және реляциялық модельдеуге немесе осы модельдердің белгілі бір жиынындағы комбинациясына негізделген.
Деректер моделінің үш негізгі типін қарастырайық: иерархиялық, желілік, реляциялық.
Иерархиялық деректерді моделдеу . Иерархиялық құрылым бір-бірімен белгілі бір ережелер бойынша байланысқан элменеттер жиынтығын береді. Иерархиялық байланыстағы объектілер бағытталған граф (төңкерілген ағаш) құрады. Оның түрі суретте бейнеленген.
Иерархиялық құрылымның негізгі ұғымдарына мыналар жатады: деңгей, элемент (түйін), байланыс. Түйін дегеніміз белгілі бір объектіні сипаттайтын деректер атрибуттарының жиынтығы. Сұлбада иерархиялық ағаштың түйіндері граф төбелері ретінде бейнеленген. Төменгі деңгейдегі әр түйін, жоғары деңгейдегі әр түйінмен ғана байланысқан. Иерархиялық ағаштың ешқандай төбеге бағынбаған, ең жоғарғы деңгейде орналасқан бір түйіні бар (ағаш түбірі). Бағыныңқы түйіндер екінші, үшінші т.б. деңгейлерде орналасады. Деректер базасындағы ағаштар саны түбір жазбалары санымен анықталады. Деректер базасы әрбір жазбаға түбір жазбадан тек бір жол болады (иерархиялық). Мысалы: 2.6.1-суретінде көрсетілгендей С4 жазбасы үшін өтетін жол А және В3 жазбалары арқылы өтеді.
1-сурет.Иерархиялық құрылымды деректер базасының графикалық бейнеленуі
Желілік деректерді моделдеу. Желілік құрылымда алдыңғы аталған негізгі ұғымдардағы (деңгей, түйін, байланыс) әр элемент кез-келген басқа элементпен байланыста бола алады. Иерархиялық модельдің жақсартылған түрі болып табылатын желілік модель көп қолданушылық режимде құрылатын модель. Деректерді желілік ұсыну элементарлы мәліметтер және олардың арасындағы қатынастар бағытталған желі түрінде көрсетіледі (төбелері – мәліметтер, доғалар - қатынастар). Мысалы, деректер базасында тапсырыстарды сақтауға арналған бір тапсырыс әртүрлі үш байланысқа қатынаса алады.
2-сурет. Желілік құрылымды деректер базасының бейнеленуі
Реляциялық деректерді моделдеу. Иерархиялық және желілік модельдердің жетіспеушіліктері деректердің реляциялық моделінің пайда болуына әкелді. Реляциялық модель әрекеті деректер базасының құрылымын оңайлатты. Мұндағы барлық мәліметтер жолдар мен бағандардан құралған қарапайым кесте түрінде көрсетілген.
Реляциялық деген ұғым (ағыл.relation - қатынас) деректер базасы жүйелерінің маманы белгілі американдық ғалым Е.Коддонның есімімен байланысты.
Бұл модельдер деректер құрылымының қарапайымдылығымен, пайдаланушыға ыңғайлы кесте түрінде сипаттайды және бұл модельде қатынастардың және деректерді өңдеуде реляциялық есептеулердің формальды алгебралық аппаратын қолдану мүмкіндігі бар.
Реляциялық модель деректерді екі өлшемді кесте түрінде ұйымдастыруға бағытталған. Әр реляциялық кесте екі өлшемді массив түрінде беріледі де, мына қасиеттерге ие болады:
-
кестенің әр элементі деректердің бір элементі;
-
кестедегі бағандардың барлығы біркелкі, яғни бағандағы барлық элементтер бір типке (сандық, таңбалық т.б.) және бәрінің ұзындығы бірдей;
-
әр бағанның өзіне тән аты бар;
-
кестеде бірдей жолдар жоқ;
-
кестеде жолдар мен бағандардың орналасу тәртібі әркелкі.
Қатынастар кесте түрінде беріледі. Кестедегі жолдар мен кортеж немесе жазба деп, ал бағандар қатынастар атрибуты немесе домен, өрістер деп аталады. Бір мәні жазбаны анықтайтын өрісті – қарапайым кілт (кілттік өріс) деп атайды. Егер жазбалар бірнеше өрістермен анықталса, онда мұндай кестенің құрамды кілті бар деп есептеледі. Екі реляциялық кестені ұйымдастыру үшін бірінші кестенің кілтін екінші кестенің кілтінің құрамына енгізу керек (кілттер бір-бірін қайталуы мүмкін). Басқа жағдайда бірінші кестенің құрылымына сыртқы кілтті енгізу қажет. Сыртқы кілт екінші кестенің кілті болады.
Дәріс №3.
Дәріс тақырыбы: Ақпараттық жүйелер және оның негізгі ұғымдары
Есептеу техникасы көптеген салалардың ішінен әсіресе, екі салада кең қолданылады. Бірінші сала - өте ұзақ немесе қолмен есептеуге келмейтін сандық есептеулердің орындалуы. Екінші сала – бұл ақпаратты өңдеуге арналған ақпараттық жүйе болып табылады.
Ақпараттық жүйе (АЖ) – ақпараттарды сақтауға, өңдеуге және көрсетуге қолданылатын, бір – бірімен байланысқан құралдардың, әдістер мен персоналдардың жиыны.
Мұндай жүйелер көлемі үлкен ақпараттармен жұмыс істейді және бұл ақпараттың құрылымы күрделі болып келеді.
Ақпараттық жүйенің классикалық мысалы ретінде банк жүйесін, авиация және теміржол билетін, қонақ үйде орынды алдын – ала сатып алу және т.с.с. автоматтандырылған жүйелерді қарастыруға болады.
Ақпараттық жүйе (АЖ) – ақпараттарды сақтауға, өңдеуге және көрсетуге қолданылатын, бір-бірімен байланысқан құралдардың, әдістер мен персоналдардың жиыны. Мұндай жүйелер көлемі үлкен ақпараттармен жұмыс істейді және бұл ақпараттың құрылымы күрделі болып келеді.
Жалпы ақпараттық жүйенің функциялары:
-
ақпаратты сақтау,
-
ақпаратты енгізу және өзгерту;
-
ақпаратты көру және іздеу;
-
берілген критерий бойынша ақпаратты іріктеу;
-
кез – келген формада есеп құжатын алу;
-
ақпараттың дұрыстығын қадағалау.
АЖ – ні екі класқа бөлуге болады.
-
Ақпаратты іздеу жүйесі – берілген іздеу критериі бойынша жалпы жиыннан мәліметтерді іздеуге бағытталған. Қолданушыға мәліметтердің өңдеу технологиясы емес, тек алынатын ақпарат ғана керек. Мысалы, қаладағы анықтау қызметіне телефон шалғанда, қолданушыға нақты ақпарат ғана керек.
-
Мәліметтерді өңдеу жүйесі – мәліметтерді өңдеуге бағытталған. Бұл жүйеде өңдеуден шығатын ақпарат болмауы немесе жүйе өңделген ақпараттың нәтижесін ғана беруі мүмкін. Мұндай жүйенің мысалы ретінде барлық региондардан мәліметтер жинайтын метереология қызметінің ақпарат жүйесін алуға болады. Қолданушыға бастапқы мәліметтер емес, олардың нәтижесі, яғни ауа – райы болжамы керек.
Дәріс №4.
Дәріс тақырыбы: Ақпараттық жүйенің түрлері
Ақпараттық жүйелер келесі түрлерге бөлінеді: фактографиялық, құжаттық, құжаттық – фактографиялық.
-
Фактографиялық жүйеде нақты өмірдегі объект жайлы мәліметтердің (атрибуттардың) дәл мәндері тіркеледі. Бұл жүйенің негізгі идеясы – объект жайлы барлық деректер (адамдардың аты – жөндері және заттардың атаулары, сандар, мерзім КК.АА.ЖЖЖЖ түрінде) беріледі. Фактографиялық АЖ – дегі ақпараттар қатаң құрылыммен беріледі, өйткені бұл компьютерге мәліметтерді бір – бірінен айыруға мүмкіндік туғызады. Сондықтан фактографиялық жүйе қойылған сұрақтарға бірмәнді жауап береді.
-
Құжаттық ақпараттық жүйесінде қандай да бір формалданған іздеу аппараты бар құжаттық жүйе мәтіндік құжаттар (статьялар, кітаптар, рефераттар, заң мәтіндері және т.б.) мен графикалық объектілерден құралады, бірақ қойылған сұрақтарға бірмәнді жауап бермейді. Жүйенің мақсаты – қолданушының сұранысына жауап ретінде сұраныстағы шартты қанағаттандыратын құжаттардың тізімін беру болып табылады. Мысалы, «синергетика» сөзі бар барлық статьялардың тізімін беру.
-
Құжат – фактографиялық жүйеде аралас жүйенің мәліметтері бөлек мәліметтерден, сонымен қатар, бүтін құжаттардан тұрады.
Сонымен, ақпараттық жүйенің мақсаты нақты өмірдегі объектілердің өзара байланысын ескере отырып, объектілер жайлы деректерді өңдеу болып табылады. Мәліметтер қоры теориясында мәліметтерді атрибуттар, ал объектілерді маңыздылықтар деп атайды. Объект, атрибут және байланыс – АЖ – нің іргелі түсініктері болып табылады.
-
Объект (маңыздылық) – бұл нақты өмірде бар және бір – бірінен айыруға болатын «нәрсе», яғни аталуы және өзіне ұқсастардан айыратын тәсілдерден тұратын «нәрсені» объект деп атауымызға болады. Мысалы, әрбір мектеп бұл объект. Объект ретінде сондай – ақ адам, мектептегі сынып, фирма, химиялық қосындылар және т.с.с. бола алады. Нақты өмірді бейнелейтін абстрактілі түсініктер де объект бола алады. Мысалы, оқиға, өнер шығармасы, театр қойылымы, кітаптар, кинофильмдер және т.с.с.
-
Атрибут (мәліметтер) – бұл объектіні сипаттайтын анықталған көрсеткіш және бұл объектнің нақты экземпляры үшін санды, мәтінді немесе басқа мәндерді қабылдайды. Мысалы, фирма шығаратын өнім объект болсын. Бұл өнімнің мәліметі ретінде оның аталуы, түсі, салмағы және т.с.с. бола алады.
Объект жайлы ақпарат құрылымды болуы тиісті, өйткені компьютерде құрылымды ақпаратты өңдеу оңай. Құрылымды ақпарат – бұл мәліметтердің көрініс тәсілдеріне қандайда бір келісімді енгізу болып табылады. Мысалы, мәтіндік файлдар компьютердің ұтымды өңдеуіне жарамсыз болып келетін «құрылымсыз» немесе «әлсіз құрылымды» ақпараттардан тұрады.
Дәріс №5.
Дәріс тақырыбы: Мәліметтердің реляциялық, моделінің элементтері
Мәліметтердің реляциялық, моделінің элементтері мен оларға сәйкес ұғымдар 1 -кестеде көрсетілген. Мәліметтер қорын құрайтын кестенің әрбір жазбасын даралау үшін, яғни кестеде бірдей жазбалардың болмауын қадағалау үшін кестенің бір немесе бірнеше атрибуттарынан кестенің кілтін немесе негізгі кілтін анықтауға болады.
Кесте кілтінің мәні бірде-бір рет кайталанбайтын ерекше болуы шарт, яғни кестеде кілт бағанасындағы (бағаналарындағы) мәндері өзара бірдей екі немесе одан да көп жазбалар болуы мүмкін емес. Бірнеше атрибуттан кұралған жағдайда құрама кілт барынша аз атрибуттардан ықшам анықталғаны дұрыс; мұндай кілттің құрамында оны өшіріп тастаған жағдайда ештеңе өзгермейтін, яғни жазбалардың ерекшелігіне ешқандай әсер тигізбейтін атрибуттар болмағаны жөн.
Мысалы, Student (ҒІО, Special, Datard) кестесінде кілт ретіңде ҒІО немесе Special немесе Datard жеке жиектерін қолдануға болмайтыны түсінікті:
-
FIO жиегінің кілт болмайтын себебі — кестеде аты-жөндері бірдей студенттер болуы мүмкін;
-
Special жиегінің кілт болмау себебі — бір мамандықга бірнеше студентгердің дәріс алатыны;
Datard жиегінің кілт болмайтын себебі — туған күндері бірдей студенттер болуы мүмкін.
Бұл кестенің кілті ретінде FIO, Special жөне Datard жиектерінің жиынын да алуға болмайтыны анық: жоғары оку орнында бір мамандық бойынша бір күнде туылған аты-жөндері бірдей бірнеше білімгерлердің кездеспейтініне кім кепіл? Мұндай жағдайда кестеге әрбір жазбадағы мәні ерекше болатын арнайы жиек енгізген дұрыс; мысалы натурал сандарды кабылдайтын білімгерлердің коды — Kodstud атрибуты: Student(Kod_stud, FIO, Special, Datard) (кілт-жиектің асты сызылған). Әдетте мұндай жиектің мәні қолданбалы программада программалық жолмен немесе мәліметгер қорында автоматтандыру арқылы беріледі.
Кесте кілтінің атқаратын қызметі:
І.Жазбалардың қайталануын болдырмау
2.Кортеждерді кілт жиектің (жиектердің) мөндерінің өсу немесе кему ретімен реттеу
3. Кестедегі жазбаларды окуды тездету
4.Кестелерді өзара байланыстыру.
Реляциялық моделде кестелердің байланысы сыртқы кілттер (Foreign Key — FK) арқылы ұйымдастырылады. Сыртқы кілт — мәңдері басқа бір кестенің жазбалары арқылы көрсетілген, яғни басқа бір кестенің негізгі кілтінің мәндерінен тұратын атрибут. Сыртқы кілті анықталған қатыс (кесте) оған сәйкес атрибуты (жиегі) негізгі кілті болып табылатын екінші бір қатысқа (кестеге) сілтеме жасайды деп айтады, мысалы, Customer және Order (Клиент жене Тапсырыс) кестелерін қарастырайық (1-сурет), мүңцағы Customer — басты
-
(негізгі, аналық) кесте, Order – қосымша (бағыныңқы, балалық) кесте. Мазмұндауды
-
жеңілдету үшін MS Access пакетінің құрамыңдағы Борей немесе NorthWind мәліметтер қорына сүйенейік:
Мәліметгер қорындағы деректер бірмәнді және өзара біртұтас үйлесімді болуы үшін реляциялық моделде шектеуші шартгар анықгалады. Шектеуші шарттар дегеніміз мәліметтердің мүмкін мәндерін қадағалаушы тәртіптер; мұндай үйлесімділік (бүтіңдік) шарттары мәліметтер қорын өңдеу және өзгерту кезінде кетуі мүмкін қателерді болдырмауға мүмкіндік береді.МҚ-ның шектеулері категориялык, бүтіндік және сілтеме
1- cypem. Customer және Order кестелерінің байланысы үйлесімділік болып екі түрден тұрады. Категориялық бүтіндік шектеуінің мағынасы: катыстың кортеждері МҚ-ның нақты объектісінің элементтерін, реляциялық мәліметтер қорын басқару жүйелерінің типіне сәйкес категориясын анықгайды. Мысалы, Кітап кестесінің кезкелген жолындағы жазба нақгы бір кітапты көрсетеді. Кестенің кілті әртүрлі бір кортежді, яғни категорияның әрбір элементін анықгайды. Демек, кестенің бір жолыңдағы мәліметгі оку немесе өзгерту үшін бұл жазбадағы кілттің мәнін білу керек.
Жазбаны кесте кілтінің құрамындағы барлық атрибутгары толық анықгалмағанша МҚ-на жазу, енгізу мүмкін емес. Бұл тәртіп категориялық бүтіндік тәртібі деп аталады және қысқаша былайша тұжырымдалады: кесте кілтінің ешбір атрибуты анықгалмаған болуы мүмкін емес.
Екінші шарт мәліметтер кестелеріндегі біртұтастықты қамтамасыз ету үшін сыртқы кілтке сілтеме үйлесімділік деп аталатын шектеу қояды. Егер екі кесте өзара байланыстырылған болса сыртқы кілттің мәндері екінші кестеде өзімен байланыста тұрған кілттің мәндерінен ғана тұрады, мысалы, 1-суреттегі Customer және Order кестелерін ашып көрсетейік:
Егер сыртьды кілттің мәндерінің растығын МҚБЖ бақыламайтын болса мәліметтердің сілтеме үйлесімділігі бұзылады, мұны келесі мысал арқылы түсіндіруге болады: егер Customer кестесінен Order кестесінің кемінде бір жазбасымен байланысы бар кезкелген бір клиентгі өшірсек, мысалы 3-жазбаны - Айжанды, онда Order кестесінде Customer-де тіркелмеген жоқ клиенттердің жасаған
тапсырыстары туралы мәліметтердің болуына әкеп соқтырады. Тура осындай қате Order кестесінің сыртқы кілті Customer жиегіне Customer кестесінде тіркелмеген клиенттің кодын енгізген жағдайда, мысалы, 4, 5, т.с.с, орын алады.
Категориялық және сілтеме үйлесімділік шарттарын МҚБЖ бақылауы тиіс. Категориялық бүтіндікті қамтамасыз ету үшін жазбаларда кесте кілтінің бірдей мәндері болмаса жеткілікті, ал сілтеме үйлесімділікті камтамасыз ету күрделірек: басқа бір қатысқа сілтеме жасайтын қатысты өзгерткенде осы қатыстағы сыртқы кілтке мүмкін мәндерін енгізсе жеткілікті. Ал сілтеме жасалып тұрған негізгі қатыстан бір кортежді өшіргенде сілтеме үйлесімділікті қамтамасыз ететін келесі үш жағдайдың біреуін қолдануға балады:
-негізгі кестеде қосымша кестеден сілтеме жасалып тұрган ешбір кортежді өшіруге болмайды; ягни алдымен қосымша кестедегі мұндай жазбаларды өшіріп тастау немесе жазбадағы сыртқы кілттің мәнін қажетіне қарай өзгертіп aлy керек;
-қосымша кестеден сілтеме жасалган сәйкес кортежді негізгі кестеден өшіргенде қосымша кестедегі онымен байланыстағы барлық жазбалардағы сыртқы кілттің мәні анықталмамаған мәнге ие болады;
-әсерлі өшіру (Cascade Delete): негізгі кестеден бір жазбаны өшіргенде қосымша кестедегі онымен байланыстағы барлык жазбалар жаппай өшіріледі.
Дәріс №6.
Дәріс тақырыбы: Кестелердің арасындағы байланыс түрлері.
Көп жағдайда бір кесте (қатыс) жеке бір файлда сақталады. Жалпы МҚ алға қойылған мақсатқа сәйкес анықталған бір немесе өзара байланыстағы бірнеше кестелердің жиынынан тұрады, мысалы, MS Access МҚБЖ-де МҚ файлында кестелермен қатар сұрыптамалар, қорытындылар, үлгілер, макростар және модульдер сияқты басқа да МҚ-ның барлық объектілері бірге сақгалады. Реляциялық МҚБЖ-де кестелердің байланысын көрсету үшін оларды әзара байланыстыру амалын қолданады, бұл МҚ-на енгізілген мәліметтердің толықтығын, үйлесімділігін, МҚ-ның біртұтастығын кадағалауға және мәліметтер қорын өңдеу барысында қажетті деректерді тез табуға, жылдам оқуға, көруге, өзгертуге, теріп алуға және қорытынды құжаттарды оңай дайындауға мүмкіндік береді.
Жоғарыда айтылғандай МҚ-ның екі кестесінің арасында бір-біріне тәуелділік қатысы болуы мүмкін; өзара байланыстағы екі кестенің біреуі master— басыңқы (негізгі, аналық), екіншісі detail — бағыныңқы (қосымша, балалык) кесте болып табылады. Реляциялық МҚ-да қатыстардың байланысының негізгі үш түрі кездеседі (2-кесте):
- "бірге-бір " (1:1) — one-to-one relationship;
-"бірге-көп" (1:М) — one-to-many relationship немесе "көпке-бір"(М:1);
-"көпке-көп" (М:М немесе M:N) —many-to-many relationship.
Егер Customer кестесіндегі әрбір клиенттің ешқандай немесе тек қана бір тапсырыс жасау мүмкіндігі болса, онда Customer және Order кестелері "бірге-бір" қатысымен байланыста болады. Ал егер әрбір клиент нөл, бір немесе бірнеше тапсырыс жасай алатын болса, онда бұл кестелер "бірге-көп" немесе master- detail катыста, Customer — master кесте, Order — detail кесте (2-сурет).
"Бірге-бір" байланысы (1:1) екі кестенің де байланыстырушы жиектері олардың кілті болған жағдайда орын алады, сондықган бұл кестелердің өзара дәрежелері бірдей. Бұл байланыс МҚ-да сирек қолданылады, себебі мұндай кестелердегі мәліметтерді ЭЕМ жадын тиімді пайдалану мақсатында бір кестеге біріктіруге болады.
Мәліметтер қорын өндеуді тездету, әртүрлі деңгейдегі қолданушылардың тек өзіне қажетті деректермен ғана жұмыс істеуі арқылы олардың жұмысын жеңілдету, жылдамдату мақсатында кейде бір кестедегі мәліметтерді әдейі екі немесе одан да көп бірнеше кестелерге жіктеуге болады, мысалы, бір мекеменің жүргізіп жатқан ғылыми-зерттеу жұмыстары туралы мәліметтер қорын құру керек болсын: ғылыми жұмыстың тақырыбы, мақсаты, шифры, басталған күні, аяқталған күні, зерттеу кезендерінің саны, басты орындаушы, қосымша мәліметтер. Бұл деректердің кейбіреуі "құпия", кейбіреулері — "жалпы" пайдалану мақсатында болса, оларды екі кестеге жіктеген дұрыс; мысалы, құпия мәліметтерді — жұмыстың шифрын, тақырыбын және басты орындаушыны бір кестеге, қалғандарын — екінші кестеге. Мұндай екі кесте жұмыс шифры атрибуты арқылы байланыстырылады, әрине бірінші кестені рұқсаты жоқ қолданушылардан қорғау керек.
"Көпке-бір" байланысы (М:1) негізгі және қосымша кестені анықгау барысына байланысты МҚ-нда кеңінен қодданылатын "бірге-көп " байланысының (1:М) бір түрі болып табылады.
"Бірге-көп" байланысына (1:М) қоймадан тұтынушыларға жіберілген заттарды есепке алу тарифі бойынша Tovar және Rashod кестелерінің байланысын көрсетуге болады (3,4—суретгер), мұңцағы Tovar— заттың аты, Edjzm — тауардың өлшем бірлігі, Сепа — тауардың бір бірлігінің сату бағасы, Dataras— тауардың жібірілген күні, Kolras — жіберілген заттың саны. Бұл мысалдағы 14.05.04 -не дейінгі мәліметтер бойынша күріш әлі сатылмаған, соңдықган Rashod кестесіңце күрішке сәйкес жазба жок, Rashod кестесінің кілті Tovar және Rashod жиектерінен тұрады.
МҚ құрылымының кең тараған IDEF1X нотациясында "бірге-көп" қатысы "көп" жағында дөңгелекпен аяқталған сызық арқылы көрсетіледі (2,4-суреттер)
"Көпке-көп" байланысы (М:М) негізгі кестенің бірнеше жазбасьша қосымша кестенің бірнеше жазбасы сәйкес болған жағдайда орын алады. 5-суретге "көпке-көп" байланыстағы оку топтарындағы пәндер мен сабақжүргізетін окзытушылар арасындағы катыстар көрсетілген: әрбір топка бірнеше окщушы сабақбереді;
әрбір оқытушы біріншіден, бірнеше пәндерді, екіншіден, әртүрлі топтарда сабақ беруі мүмкін.
Grpred кестесінің бірінші және үшінші жазбаларына Pred_prep кестесінің бірінші жазбасы, ал төртінші жазбасына— екінші және төртінші жазбалары сәйкес келеді. Бұл кестелерді Pred жиектері бойынша біріктіру арқылы әр топтағы пәндерді жүргізетін оқытушылар туралы мәліметгерден тұратьш Gr_pred_prep кестесін алуға болады (6-сурет).
Мәліметтер қорын жобалау барысында бірнеше кесте өзара байланыста болып, бір кесте калған кестелермен әртүрлі қатыста болуы мүмкін. Байланыста тұрған кесте басқа кестелермен тағы да байланысқан жағдайда кестелердің иерархиясы түзіледі.
Дәріс №7.
Дәріс тақырыбы: Деректер базасының стандартты SQL тілі
Қазіргі заманғы компьютерлік өнеркәсіпте SQL тілі ең маңызды тенденция болып отыр. Соңғы жылдары SQL тілі деректер базасының жалғыз тілі болды. Бүгінгі таңда SQL дербес компьютерлерде жұмыс істейтін ДББЖ-нің жүзден астамын қолдайды. SQL тілі деректер базасын басқару жүйелерінің архитектурасындағы маңызды буын болып табылады.
SQL (Structured Query Language) - бұл құрылымдық сұраныстар тілінің қысқартылған атауы. Ол реляциялық деректер базасында мәліметтерді құру және өңдеу құралдарын береді. Компьютерлік технологиялардан ерекшелігінен тәуелсіздігі және SQL-ді реляциялық мәліметтер базасының технологиясы облысындағы өндіріс жетекшілерімен қолдауы оны деректер базасының стандартты тіліне айландырды. SQL тілі деректер базасының реляциялық типімен ғана жұмыс істейді. Төменде SQL жұмысының сұлбасы бейнеленген. Есептегіш жүйеде маңызды ақпарат сақталған деректер базасы болады. Егер есептегіш жүйе кәсіпорынның кадрлар бөліміне қатысты болса, онда деректер базасында кәсіпорында қызмет ететін адамдар жайлы ақпарат (аты-жөні, туған жылы, телефоны, қызметі және т.б.) сақталуы мүмкін.
Деректер базасын басқаратын компьютерлік программа деректер базасын басқару жүйесі (ДББЖ) деп аталады. Егер қолданушыға деректер базасындағы мәліметтерді оқу қажет болса, онда оларды SQL көмегімен ДББЖ-нен сұрау керек. ДББЖ сұраныстарды өңдейді, қажет болған мәліметтерді тауып оларды қолданушыға жібереді. Мәліметтерді сұрау және нәтиже алу процесі деректер базасында сұраныстар деп аталады, яғни сұраныстардың құрылымдық тілі.
Реляциялық ДБ пайда болғанға дейін көптеген ДББЖ үшін құрылған барлық мәліметтерді басқару тілдері, файлдардың логикалық жазулары түрінде берілген мәліметтермен жүргізілетін операцияларға бағытталған. Әрине, бұл қолданушыдан мәліметтердің сақталуын, қандай мәліметтер қажеттігін, олардың қайда орналасқанын және қалай алу жолдарын білуді талап етеді.
Деректер базасында қолданылатын SQL тілі логикалық байланысқан кесте-қатынастар жиынтығы түрінде берілген мәліметтермен операциялар жүргізуге бағытталған. Осы тілдің құрылымының ерекшелігі өңдеу процедурасына емес, мәліметтерді өңдеудің соңғы нәтижесіне бағытталуында. SQL тілі мәліметтердің, индекстердің қайда орналасқанын, және нәтиже алу үшін қандай операциялар тізбегін пайдалану керектігін өзі анықтайды, сондықтан бұларды ДБ сұраныстарында көрсетудің қажеті жоқ.
Реляциялы ДБ-сы теориясының пайда болуы екі кластарға бөлуге болатын, сұраныстар тілінің қатарын өндіруге түрткі болды:
- Қатынастарға қолданылатын, сұраныстарды арнайы операторлармен бейнелеуге мүмкіндік беретін алгебралық тілдер;
- Предикаттарды санау тілдері, берілген қатынастар жиынтығынан жаңа қатынасты анықтайтын, ережелер жиынтығы. Яғни, ДБ-ғы сұранысқа жауап ретінде алынатын қатынастарды анықтау әдісі.
Қазір бұл тіл ДББЖ-сі қолданушыға ұсынатын барлық функциональды мүмкіндіктерді іске асыру үшін қолданылады. Атап айтқанда:
-
Деректерді ұйымдастыру. SQL қолданушыға мәліметтерді ұсыну құрылымын өзгерту, сонымен қатар деректер базасының элементтері арасындағы қатынастарды орнату мүмкіндігін береді.
-
Деректерді оқу. SQL қолданушыға немесе қосымшаға деректер базасынан онда сақталған мәліметтерді оқу және оларды қолдану мүмкіндігін береді.
-
Деректерді өңдеу. SQL қолданушыға немесе қосымшаға деректер базасын өзгерту, яғни оған жаңа мәліметтерді қосу, сонымен қатар онда бар мәліметтерді жаңарту немесе өшіру мүмкіндігін береді.
-
Рұқсат алуды басқару. SQL көмегімен қолданушыға мәліметтерді оқу және өзгерту мүмкіндіктерін шектеуге және оларды бекітілмеген рұқсаттан қорғауға болады.
-
Деректерді біріктіріп қолдану. SQL бір-біріне кедергі жасамас үшін қарама-қарсы жұмыс істеп отырған қолданушыға деректерді біріктіріп қолдануды үйлестіреді.
-
Деректердің бүтіндігі. SQL келісілмеген өзгертулерден немесе жүйенің қабыл алмауын бұзғандардан қорғай отырып, деректер базасының бүтіндігін қамтамасыз етуге рұқсат етеді.
Сондықтан SQL ДББЖ-мен әрекеттесу үшін жеткілікті түрдегі қуатты тіл болып табылады. Сонымен қатар, SQL тілі бүгінгі таңда реляциялық деректер базасымен жұмыс істеуге арналған жалғыз стандартты тіл болып отыр.
SQL тілінің жетістіктері. SQL – деректерді басқаруға арналған әмбебап программалық құрал. SQL тілінің жетістіктерінің негізгі ерекшеліктерін атап өтейік:
-
нақты ДББЖ-нен тәуелсіздігі;
-
бір есептеуіш жүйеден басқасына ауысатындығы;
-
стандарттардың барысы;
-
IBM компаниясымен мақұлдау;
-
Microsoft компаниясы жағынан қолдау;
-
реляциялық негіз;
-
ағылшын тілін еске түсіретін жоғарғы деңгейлі құрылым;
-
арнайы интерактивті сұраныстарды орындау мүмкіндігі;
-
деректер базасына программалық рұқсат алуды қамсыздандыру;
-
деректерді әртүрлі ұсыну мүмкіндігі;
-
деректер базасымен жұмыс істеуге арналған толық құнды тіл;
-
деректерді динамикалық анықтау мүмкіндігі;
-
клиент-сервер архитектурасын қолдау.
Жоғарыда аталған факторлардың барлығы дербес компьютерлерде деректерді басқаруға арналған SQL тілінің стандартты құрал болуының себептері болып табылады.
Дәріс №8.
Дәріс тақырыбы: SQL -командаларының типтері
SQL -тілінің командалары бірнеше топқа бөлінеді. Командалардың негізгі типтері келесідей:
-
DDL(Data Definition Language )- мәліметтердің анықталу тілі. Бұл топтың командалары мәліметтер қорының объектілерінің құрылымын құру және өзгерту(мысалы, кестелерді құру және жою үшін) үшін пайдаланылады.
-
DML(Data Manipulation Language)- мәліметтердә басқару (манипуляция) тілі. DMLкомандалары мәліметтер қоры объектілеріндегі ақпараттарды басқару үшін пайдаланылады.
-
DCL (Data Control Language)-мәліметтерді басқару тілі. Сәйкес командалар мәліметтер қорында сақталған ақпаратқа кіруді басқаруға арналған.
-
DQL (Data Query Language)-тілі. Бұл жиі қолданылатын командалар, мәліиеттер қорына сұранымды құруға арналған.(Сұраным дегеніміз сәйкес ақпаратты алу мақсатында мәліметтер қорына хабарласу.
-
Мәліметтер қорын администрациялау командалары әрекеттердің орындалуына бақылауды жүзеге асыру және өндірілетін операцияларыды анализдеуге арналған.
SQL мәліметтерінің типі.
Стандартты SQL- де пайдаланылатын мәліметтер типтерін келесі топтарға бөлуге болады:
-
Жолдық типтер;
-
Сандық типтер;
-
Дата мен уақытты көрсетуге арналған типтар.
Бұл типтердің нақтырақ сипаттамасы.
Жолдық типтер.
SQL-де екі жолдық типтер анықталған:
-
Белгіленген ұзындықты символдық жолдар;
-
Айнымалы ұзындықты символдық жолдар.
Белгіленген ұзындықты символдық жолдар.
Белгіленген ұзындықты символдық жолдар түрінде сақталған мәліметтер, өріске енгізілгенжолдың нақты өлшемінен тәуелсіз, жадының бір ғана көлемін алады. ANSI-SQL-92-ге сәйкес белгіленген ұзындықты символдық жолдарды хабарлау түрі келесідей:
Character(n)
Мұндағы n бұл хабарлау қатысты болатын өріс өлшемін анықтайтын жол ұзындығы.
Белгіленген ұзындықты жолдарды пайдаланғанда , әдетте, бос жолдар пробелдармен толтырылады. Мысалы, егер өлшемі 10 тең өріс беріліп, ал оған 3 символдан тұратын жол енгізілсе, онда 7 символ пробелдармен толтырылады.
Айнымалы ұзындықты символдық жолдар.
Айнымалы ұзындықты жолдың ұзындығы барлық мәліметтер үшін тұрақты емес, ол мәліметтер қорының кестесі өрісінде сақталған жолдың нақты өлшеміне тәуелді. Айнымалы ұзындықты жолды хабарлау келесі түрде болады:
Varchar(n)
n-максималды мүмкіндікті жолды анықтайтын сан.
Character типінен айырмашылығы Varchar пайдалану дискідегі кеңістікті үнемді шығындауды қамтамасыз етеді. Хабарландыруда көрсетілген жол өлшеміне қарамастан, өріс, енгізілген ақпаратты сақтауға қанша орын қажет болса, сонша алады. Мысалы, егер Varchar(10) өрісі хабарланып және оған 3 символдан тұратын жол енгізілсе, онда бұл жолды сақтау үшін белгіленген ұзындықты жол жағдайындағы сияқты 10 емес, 3 байт қана пайдаланылады.
Сандық типтер.
Сандық типтер былай бөлінеді:
-
Бүтін санды типтер;
-
Белгіленген нүктелі заттық типтер;
-
Жүзуші нүктелі заттық типтер;
-
Белгіленген және айнымалы ұзындықты екілік жолдар;
Бүтін санды типтер.
ANSI SQL стандартымен екі бүтін санды типтер орнатылады:
-
INTEGER-4 байтты пайдаланатын таңбалы бүтін сан. 2147483648-ден 2147483647-ге дейінгі диапазондағы сандарды бере алады;
-
SMALLINT–2 байтты пайдалантын таңбалы қысқа бүтін сан. 32768-ден 32647-ге дейінгі диапазондағы бүтін сандарды бере алады.
Белгіленген нүктелі заттық типтер.
Белгіленген нүктелі заттық типтер бөлшек сандарды нақты беру үшін арналған. Көп жағдайда бұл типтер қателіктер жіберілмейтін екілік формада жүзгімелі нүктелі заттық сандарды беруде пайдаланылады. (Мысалы, ақшалай шамадағы мәндерді сақтауда). Белгіленген нүктелі заттық типтер шын мәнісінде ондық нүкте түрінде бейнеленетін бүтін санды типтер болып табылады.
Белгіленген үтірлі типті хабарлау синтаксисі келесідей:
DECIMAL (n.m)
Мұндағы n-дәлділік; m-масштаб
Дәлділік -ол сандық мәннің жалпы ұзындығы, масштаб-ол ондық нүктеден оң жақта орналасқан белгілер саны.
Жүзгімелі нүктелі заттық типтер.
Жүзгімелі нүктелі типтер әдетте ғылыми және инженерлік есептеулерде пайдаланылады. Бұл типтерді пайдалануда қандай да бір санды жүзгімелі нүктелі екілік формаға өзгерту кезінде мәліметтер қорына енгізуде үнемі қандай да бір қателік жіберіледі. Бұл қателік өте аз болса да, кейбір жағдайларда кешірілмейді және үлкен қателік әкелуі мүмкін, мысалы, үлкен санды мәндерді сомалауда. Сондықтан, жүзгімелі нүктелі типтер ақшалай шамалы мәндерді сақтауға қолданылмайды.
Көп жағдайда екі жүзгімелі нүктелі заттық типтер пайдаланылады:
-
FLOAT-бірлік дәлділікті сандар;
-
DOUBLE-екілік дәлділікті сандар.
Екілік жолдар.
Екілік жолдар салыстырмалы сирек қолданылады. Әдетте мұндай типті өрістер жалаулар немесе екілік маскалар ретінде қолданылады.
Символдық жолдар сияқты, екілік жолдар белгіленген және айнымалы ұзындықты болады. Белгіленген ұзындықты екілік жолдар келесі жолмен хабарланады:
BIT (n)-
Мұндағы n-байтпен берілген жол ұзындығы.
Айнымалы ұзындықты жолды хабарлау түрі мынадай:
BIT VARYING (n)
Мұндағы n- байтпен берілген жолдың максималды ұзындығы.
Дата мен уақытты берілген типтер.
Аты айтып тұрғандай бұл типтер дата мен уақытқа қатысты ақпараттарды сақтау үшін пайдаланылады.
SQL-стандартында дата мен уақыт туралы ақпаратты сақтауға арналған келесі мәліметтер типтері анықталған:
-
DATE-датаны сақтау үшін пайдаланылады;
-
TIME-уақытты сақтау үшін пайдаланылады;
-
TIME STAMP-дата мен уақытты сақтайды;
-
INTERVAL-екі дата мен уақыт моментіндегі уақыт аралығын сақтайды.
Дәріс №9.
Дәріс тақырыбы: Мәліметтер қорының объектілерін басқару.
Мәліметтер қорының объектісі дегеніміз мәліметтер қорында анықталған және ақпаратты сақтауда немесе ақпаратқа хабарласуда пайдаланылатын кез-келген объект. Мәліметтер қорының объектісінің мысалдары ретінде кестелер, ұсыныстар мен индекстер қызмет етеді.
Мәліметтер қорының объектілерін басқару үшін SQLтілінің DDL командаларының жиындары пайдаланылады.
Кестелерді құру, түрлендіру және жою.
Кесте, ақпаратты реляционды мәліметтер қорында сақтаудың негізгі объектісі болып келеді. Кестені құруда міндетті түрде кестедегі өріс аты, және өрістерге сәйкес мәліметтер типі көрсетіледі. Сондай-ақ, кестені құру кезінде өрістер үшін үндемей қабылданатын шекаралық шарттар мен мәндер ескертілуі мүмкін.
Шектік шарттар- мәліметтер қорының кестесінің өрісінде шама мәнін шектейтін ереже.
Үндемей қабылданатын мәндер- жаңа жазу қосқанда, егер пайдаланушы осы өрістің мәнін көрсетпесе, мәліметтер қорының кестесінің өрісіне автоматты түрде енгізілетін шама.
CREATE TABLE операторы.
Кестені құру үшін CREATE TABLE операторы пайдаланылады. Бұл оператордың синтаксисі келесі түрде болады:
CREATE TABLE имя_таблицы (
Имя_поля_1 тип_данных.
Имя_поля_2 тип_данных.
имя_поля_N тип_данных)
Мысал, ФИЗИЧЕСКИЕ ЛИЦА кестесін құру операторы мына түрде болады:
CREATE TABLE STUDENTS
SNUM INTEGER.
SIMA CHAR (25).
SFAM CHAR (25).
SOTCH CHAR (25).
SROZH DATE.
SADR CHAR (25).
STEL VARCHAR (25).
ALTER TRABLE операторы.
Құрылған кестені ALTER TABLE операторын пайдаланып түрлендірге болады. Осы оператор көмегімен кестеге жаңа өрістерді қосуға және жоюға, өрістер мәліметтерінің типін өзгертуге, шектеулерді қосып немесе жоюға болады.
Жалпы түрде ALTER TABLE операторының синтаксисі былай болады:
ALTER TABLE имя_таблицы [MODIFY][имя_поля тип_данных]
[ADD][имя_поля тип_данных]
[DROP][имя_поля тип_данных]
ALTER TABLE операторымен орындалатын әрекет кесте атынан кейін көрсетіоіп негізгі сөзбен анықталады:
-
MODIFY- өріс анықтамасын береді;
-
ADD- кесмтеге жаңа өріс қосады;
-
DROP-кестеден өрісті жояды.
Өрістің мәліметтерінің типін өзгерту үшін ALTER TABLE операторының келесі синтаксисі пайдаланылады:
ALTER TABLE имя_таблицы ADD (имя_поля тип_данных)
Мысалы,STUDENTS кестесінестуденттің электронды почтасынан тұратын өрісті қосу үшін келесі операторды пайдаланған жөн:
ALTER TABLE STUDENTS ADD (E-mail CHARACTER (25))
Егер бар өрістің мәліметтерінің типін өзгерту қажет болса, ALTER TABLE операторымен бірге MODIFY негізгі сөзін пайдаланған жөн:
ALTER TABLE имя_таблицы MODIFY(имя_поля тип_данных)
Мысалы, STUDENTS кестесіне E-mail өрісін енгізгеннен кейін CHARACTER типінің пайдаланылуының тиімсіздігі анықталады-студенттердің көбінде электронды почта жоқ, сондықтан дискілік кеңістіктің бөлігі пайдаланылмай, бос қалады. Бұл өріс үшін VARCHAR мәліметтер типін қолданған дұрыс. Мәліметтер типін өзгерту үшін ALTER TABLE операторын пайдаланамыз:
ALTER TABLE STUDENTS MODIFY(E-mail VARCHAR(25))
Бар өрісті өшіру үшін ALTER TABLE операторын DROP негізгі сөзбен бірге шақыруды орындаумен жүзеге асырылады:
ALTER TABLE имя_таблицы DROP (имя_поля)
DROP TABLE операторы.
Кестелерді жою үшін DROP TABLE операторы пайдаланылады. Бұл оператордың синтаксисі мына түрде болады:
DROP TABLE имя_таблицы [RESTRICT |CASCADE]
Егер DROP TABLE операторын шақыру кезінде RESTRICT негізгі сөзі пайдаланылып, және жойылатын кестеге қандай да бір ұсыныс немесе шектеу сілтелінсе, онда кестені жою операторы орындалуы кезінде қате туралы хабарлама шығарылады (генерацияланады). Егер де CASCADE негізгі сөзін пайдаланса, онда кестені жою орындалады және кестемен бірге оған сілтелінетін ұсыныстар мен шектеулер де жойылады.
Дәріс №10.
Дәріс тақырыбы: Индекстарды құру және жою.
Қазіргі кезде ANSI стандарты индекстарды қолдамайды. Сонда да индекстар барлық мәліметтер қорында кең қолданылады, сондықтан олармен жұмысты назардан тыс қалдыруға болмайды. Индексті құру операторының синтаксисі пайдаланылатын SQL таратуына қарай өзгешеленуі мүмкін. Индексті құру командасының келесі синтаксистік формасы жиі кездеседі:
CREATE INDEX имя_индекса
ОN имя_таблицы (имя_поля_1.[имя_поля_2...])
Қарапайым индекс құру.
Қарапайым индекс индекстардың өте қарапайым және сонымен қатар кең таралған түрі болып табылады. Қарапайым индекс кестенің бір ғана өрісінен (бағанынан) түрады. Сондықтан оны көбінде бірбағандық индекс деп атайды.
Қарапайым индекс құру командасының типтік синтаксисі келесідей:
CREATE INDEX имя_индекса
ОN имя_таблицы (имя_столбца)
Мысалы, СТУДЕНТЫ кестесі үшін келесі оператор көмегімен, студенттер фамилиясынан тұратын өріс бойынша индекс құруға болар еді:
CREATE INDEX NAME_IDX
ОN Физические_лица (Фамилия)
Керемет инлекстер (уникальные).
Керемет индекстер кестеге қайталанатын мәндердің енгізілуін болдырмайды. Сонымен, керемет индекстер өнімділігін жоғарылату мақсатында ғана емес, мәліметтердің тұтастығын қолдау үшін де пайдаланылады.
Керемет индекстерді құру операторының типтік синтаксисі келесі түрде болады:
CREATE UNIQUE INDEX имя_индекса
ON имя_таблицы (имя_поля)
Мысалы, ДОЛЖНОСТЬ кестесі үшін келесі команданың көмегімен "Должность" өрісі бойынша керемет индекс құруға болады:
CREATE UNIQUE INDEX POST_IDX
ON Lдолжности (Должность)
Құрамдас индекстер. Құрамдас деп екі немесе одан да көп өрістер бойынша құрылған индекстерді айтады. Құрылған индексті қарағанда, құрылған индексте өрістердің тізбектелу реті мәліметті іздеу жылдамдығына әсер ететінін ескеру қажет. Жалпы жағдайда индексте өрістерді шектеу мәндерінің азаю ретімен орналастырған жөн.
Құрылған индексті беру синтаксисі жалпы түрде келесідей:
CREATE INDEX имя_индекса
ОN имя_таблицы (имя_поля_1.имя_поля_2...)
Біздің мысалымызда СТУДЕНТЫ кестесінің "Фамилия" және "Имя" өрістері үшін құрылған индекстарды құрудың мағынасы бар. Мұндай индекс құру операторының түрі келесідей:
CREATE INDEX FULLNAME_IDX
ON Физические_лица (фамилия,имя)
Индекстарды жою.
Индекстарды жою ешқандай қиындық туғызбайды.Жою үшін индекс атын білу қажет. Индексты жою операторының синтаксисі келесі түрде болады:
DROP INDEX имя_индекса
Индексті жою индекстелген өрістерге еш әсер етпейді. Жоюдан кейін индекс қайтадан құрылуы мүмкін.
Дәріс №11.
Дәріс тақырыбы: Ұсыныстармен жұмыс.
Ұсыныс (VIEW) мәліметтер қорының объектісі. Онымен жұмыс қарапайым кестемен жұмыстан өзгешеленбейді. Ұсыныстардың кестелерден айырмашылығы келесіде. Мәліметтер қорының қарапайым кестелері мәліметтерден тұрады. Ұсыныстар мәліметтерден тұрмайды, ал олардың мазмұны басқа кестелерден таңдалынады (немесе басқа ұсыныстардан). Ұсыныстар тұжырымдалатын кестелер (немесе ұсыныстар) базалық кестелер (немесе базалық ұсыныстар) деп атау қабылданған.
Шындығында ұсыныстар әрбір хабарласқан сайын орындалатын сұраныс болып табылады. Әрбір уақыт мезетінде осы сұраныстың орындалу нәтижесі ұсыныс мазмұны болып табылады. Ұсыныстың базалық кестесіндегі мәліметтерді өзгертсе ұсыныс мазмұны да өзгереді.
Ұсыныс мазмұнын өзгертсе, осы ұсынысты құруда негізге алынған кесте мазмұны да өзгереді. Төменде ұсыныстың тұжырымдалу процесінің схемасы берілген:
1.2 сурет. Ұсыныстың тұжырымдалу схемасы.
Ұсынысты пайдалану кесетені пайдаланудан өзгешеленеді. Ұсыныс- тардан мәліметтерді таңдау қарапайым кестедегі сияқты орындалады. Сондай-ақ ұсыныстың мәліметтермен басқару операцияларына рұқсат етіледі, бірақ ол мұнда кейбір шектеулер болады.
Ұсыныстар кестелерден айырмашылығы дискілік кеңістіктен орын алмайды (немесе дәлірек айтсақ, ұсыныс алатын дискілік кеңістік өте кішкентай-тек сұранысты сақтауға қажеттілері).
Ұсыныстың қолданылу облыстары.
Ұсыныстар көбінде екі жағдайда қолданылады:
-
Мәліметтерді қорғау мақсатында,
-
Қорытынды мәліметтерді тұжырымдау үшін.
-
Бірінші жағдайда ұсыныстар бүкіл кестеден емес, тек кейбір өрістеріндегі ақпараттарды беру үшін қолданылады.
Келесі мысалды қарастырайық. Мысалы, "СОТРУДНИКИ " кестесінің "Рейтинг" өрісінде сақталатын қызметкерлердің рейтингтері туралы ақпарат құпиялы болып есептелсін, және оларға кіру хұқы тек ұжым жетекшілерінде ғана болсын. Бірақ осы кестеде сақталатын ақпарат бөләгә кадрлар бөлімінің жұмысшыларына қажет-қызметкерлердің аты туралы және жұмысқа қабылдау күні туралы мәліметтер. Бұл жағдайда бір кестеге кіру рұқсатын шексіздеу үшін кадрлар бөлімінің қызметкерлерінде кіруге рұқсат болуға тиістіақпараттарды ғана таңдап ұсынысты пайдаланған ыңғайлы. Сонда олар өз қызметтік міндетін толық көлемде орындай алады және құпиялы ақпаратқа кіру рұқсаты болмайды.
Ұсыныстар өрістерге ғана емес, сондай-ақ кесте жазуларына кіру рұқсатына шек қою үшін пайдаланылады. Ол үшін ұсынысты құруда негізге алынатын мәліметтерді таңдау сұранысында сәйкес шектеулік шарттарды көрсетсе болғаны. Мысалы, жоғарыда көрсетілген кадрлар бөлімінің жұмысшыларының мысалында ұсыныс құруда ұсыныстан қандай да міндетті алып тұратын жұмысшыларды шығарып тастау шартын беруге болады.
Сондай-ақ ұсыныстар есептерді тұжырымдауда қорытынды нәтижелерді тұжырымдау үшін де пайдаланылады. Өзгермелі ақпаратты кесет негізінде тұжырымдалатын есептерді жиі баспаға шығару қажет болған жағдайда, ұсыныстарды пайдаланған ыңғайлы.
Ұсыны, сұраныс негізінде құрылуы мүмкін болғандықтан ақпаратты базалық кестелер қатарынан алатын және қажеттілікпен топтайтын ұсыныс құруға болады, ал есепті шығарар кезде осы ұсынысқа қарапайым кесте сияқты хабарласуға болады. Бұл жағдайда есепті шығарған сайын күрделі SQL-сұраныс құрудың қажеті жоқ. Сондай-ақ, бұл жағдайда логиканың бөлігі мәліметтер қорының сервер жағына шығарылып тасталады, өйткені есептің тұжырымдалуы клиенттік қосымшадан тәуелді болмайды.
Ұсыныстарды құру.
Ұсыныстарды құру үшін CREATE VIEW операторы пайдаланылады. Ұсыныс бір немесе бірнеше ұсыныстар негізінде құрылуы мүмкін. Ұсынысты құрудың операторының типтік синткасисінің түрі келесідей:
CREATE VIEW имя_представления AS
{оператор выборки данных}
Ұсыныс құрылған соң онымен ұсыныс аты ретінде берілген аты бар қарапайым кесте сияқты жұмыс істеуге болады. Қандай да бір өзгешелігі топтау сөйлемі бар ұсыныстар. Мұндай ұсыныстар үшін мәліметтер таңдауда ешқандай шектеу жоқ, бірақ оларға мәліметтерді басқару операторын қолданбайды.
Ұсыныстарды жою.
Ұсыныстарды жою DROP VIEW операторының көмегімен орындалады, оны шақырғанда RESTRICT және CASCADE параметрлері көрсетілуі мүмкін. Бұл параметрлер басқа ұсыныстар және/немесе шектеулер сілтелетін ұсыныстарды жою кезіндегі әрекеттерді анықтайды. RESTRICT вариантын падаланғанда, бұл жағдайда қате туралы хабарлама шығарылады, және жою орындалмайды. Егер CASCADE режимі пайдаланылса, онда DROP VIEW операторының орындалуы, базалық ұсыныстардың және шектеулердің жойылуына әкеледі.
DROP VIEW операторының типтік синтаксисі келесі түрде болады:
DROP VIEWимя_представления [RESTRICT | CASCADE]
Дәріс №12.
Дәріс тақырыбы: Сақталатын процедуралар, оларды құру, орындау және жою
Сақталатын процедуралар (Stored Procedure)- олар байланысқан SQL-операторларының топтары. Сақталатын процедураларды пайдалану мәліметтер қорымен жұмыстың қосымша икемділігін қамтамасыз етеді, өйткені сақталатын процедураларды орындау SQL жеке операторлар тізбегінен әлдеқайда қарапайымдау.
Сақталатын процедуралар орындалудың жоғары жылдамдығын қамтамасыз ететін мәліметтер қорында компиляцияланған түрде сақталады.
Сақталатын процедураларға кіретін параметрлер ала-алады, қосымшаға мәндерді қайтарады және қосымшадан шақырылады.
Сақталатын процедураларды пайдаланудың негізгі артықшылықтары келесіде қорытындыланады:
-
Сақталатын процедуралар логика бөлігін мәліметтер қорының серверіне шығаруға мүмкіндік береді. Ол ақпараттық жүйенің мәліметтер қорының клиенттік бөлігінен тәуелділігін әлсіретеді;
-
Сақталатьын процедуралар жобаның модульдігін қамтамасыз етеді. Олар бір мәліметтер қорына хабарланатын клиенттік қосымшалар үшін жалпы болады, ол кодтың қайталануын болдырмайды және қосымша өлшемін кішірейтеді;
-
Сақталатын процедуралар қосымшалардың бәрге жүруін оңайлатады:процедуралар жаңартқан кезде өзгерулер автоматты түрде барлық қосымшаларда бейнеленеді;
-
Сақталатын процедуралар ақпараттық жүйенің жұмысының тиімділігін арттырады:олар клиентпен емес, желілік трафикті төмендететін сервермен орындалады;
-
Сақталатын процедуралардың орындалу жылдамдығы жеке SQL операторлар тізбегінен жоғары. Ол сақталатын процедуралардың серверде компиляцияланған түрде сақталуына байланысты.
Сақталатын процедуралардың екі түрін бөледі:
-
Таңдау процедуралары қосымшалар оларды мәліметтерді таңдау операторында кесте немесе ұсыныстар орнына пайдалануы мүмкін;
-
Орындалатын процедуралар олар арнайы операторлар пайдаланылып шақырылады. Орындалатын процедура шақырылатын программаның нәтижелерін қайтармауы мүмкін.
Сақталатын процедураларды құру.
Сақталатын процедураларды құру үшін CREATE PROCEDURE опрераторы пайдаланылады.
CREATE PROCEDURE операторы мәліметтер қорынан жаңа сақталатын процедураны анықтайды. Процедуралар тілі SQL таратуларынан тәуелді, бірақ ереже бойынша SQL барлық инструкцияларын және мыналарды қосады:
-
Шартты операторлар;
-
Цикл операторларының әртүрлі түрлерін;
-
Ерекше жағдайларды өңдеу мүмкіндіктерін.
Сақталатын процедуралар тақырыптан және денесінен тұрады. Процедураның тақырыбы:
-
Мәліметтер қорындағы кесте мен процедура аттарының ішінде ерекше болуы тиіс процедура атынан;
-
Процедура шақырылатын программадан қабылдайтын кіретін параметрлер және олардың мәліметтері типтерінің тізімінен;
-
Шығатын параметрлер және олардың мәліметтері типтерінің тізімінен тұрады, егер процедура мәндерді шақырылатын программаға қайтарса.
Процедура денесі мыналардан тұрады:
-
Жергілікті айнымалылар және олардың мәліметтері типтерінің тізімінен (егер олар процедура кодында пайдаланылса);
-
BEGIN және END кілттік сөздерінің арасында қорытылған процедуралар және триггерлер тіліндегі инструкция блогынан.
Сақталатын процедураларды орындау.
Сақталатын процедураны орындауға жіберетін оператор процедураға тәуелді болады. Таңдау процедурасы оларға SELECT -мәліметтерді таңдау операторының көмегімен хабарласқанда орындалады.
Орындалатын процедураны шақыру үшін арнайы EXECUTE операторын пайдаланған жөн.
Сақталатын процедураларды жою.
Сақталатын процедураларды жою үшін DROP PROCEDURE операторы пайдаланылады. Бұл оператор синтаксисі келесі түрде болады:
DROP PROCEDUREимя_хранимой_процедуры
Дәріс №13.
Дәріс тақырыбы: Триггерлер, құру және жою операторлары
Триггерлер сақталатын процедуралардың бір түрі. Бірақ сақталатын процедуралардан айырмашылығы триггерлердің орындалуы SQL операторын шақыру нәтижесінде емес, мәліметтер қорына өзгерістер енгізетін мәліметтерді басқару операторларының бірінің орындалуы кезінде орындалады. Мұнда триггерлер мәліметтерді басқару операторларының орындалуына дейін де орындалады.
Триггердер қорда мәліметтердің сілтемелік тұтастығын қамтамасыз ету үшін пайдаланылады. Олардың келесі мүмкіндіктері бар:
-
Пайдаланушы кесте өрістеріне рұқсат етілген мәндерді енгізгеніне кепілдік беру үшін енгізілетін мәліметтерді бақылау мүмкіндігі;
-
Триггерлермен байланысқан кестелерді пайдаланатын қосымшаларда триггелердегі өзгерту көрінетін бірге жүретін қосымшаларды оңайлату;
-
Кестелердің өзгертулерін автоматты құжаттау қосымша өзгерістер журналын кестеде өзгеріс болған сайын орындалатын триггерлер көмегімен басқару.
Триггерлерді құру.
Триггерлерді құру үшін CREATE TABLE операторы пайдаланылады. Сақталатын процедуралар сияқты триггерлер де тақырып пен денесінен тұрады. Триггер тақырыбы мынадан тұрады:
-
Триггер аты,мәліметтер қоры ішінде керемет;
-
Триггер байланысқан кесте аты;
-
Триггер қашан орындалатынын анықтайтын инструкциялар;
Триггер денесі мыналардан тұрады:
-
Жергілікті айнымалылар және мәліметтердің типтерінің тізімінен (егер олар триггер кодында пайдаланылмаса);
-
BEGIN және END кілттік сөздерінің арасында қорытылғагн процедуралар мен триггерлер тіліндегі инструкция блогынан. Блоктың ішінде басқа блок болуы мүмкін.
Сонымен триггер мен сақталатын процедураның айырмашылығы тек тақырыбында.
Триггер кестемен байланысқан. Кестеге бөлінген артықшылықтары бар кесте иесі мен кез-келген пайдаланушы онымен байланысқан триггерлерді автоматты түрде орындауға хұқы бар.
Триггерлерді жою.
Триггерлерді жою үшін DROP TRIGGER операторы пайдаланылды. Бұл оператордың жалпы түрдегі синтаксисі төмендегідей:
DROP TRIGGER имя_триггера
Дәріс №14.
Дәріс тақырыбы: Мәліметтерді басқару, кестедегі берілгендерді өзгерту
Мәліметтер қорында сақталатын мәліметтерді басқару үшін, командалардың жеке типтері ретінде бөлінетін және мәліметтерді басқару тілі (DML-Data Manipulation Language ) деп аталатын SQL операторларының типтері пайдаланылады. DML операторларының көмегімен қолданушы кестеге жаңа мәліметтерді жүктеп, бар мәліметтерді түрлендіруге және жоюға болады:
SQL тілінде тек қана 3 негізгі DML операторы анықталған:
Достарыңызбен бөлісу: |