ДЕРЕКТЕР ҚОРЫН ҚОРҒАУ ЖӘНЕ ЖОБАЛАУ. SQL Server 2008

Коммерциялық емес акционерлік қоғам

Алматы энергетика және байланыс университет

Компьютерлік технологиялар кафедрасы

 

ДЕРЕКТЕР ҚОРЫН ҚОРҒАУ ЖӘНЕ ЖОБАЛАУ. SQL Server 2008

5В070400 - Есептеу техникасы және бағдарламалық қамтамасыз ету
мамандығы бойынша зертханалық жұмыстарды орындауға арналған әдістемелік нұсқаулар

 

 

Алматы 2013

Құрастырушылар: Аманбаев А.А., Сатимова Е.Г. және Карымсакова Н.Т.  Деректер қорын қорғау және жобалау. SQL Server 2008:  5В070400 – «Есептеу техникасы және бағдарламалық қамтамасыз ету»  мамандығы бойынша зертханалық жұмыстарды орындауға арналған әдістемелік нұсқаулар.   -Алматы: АЭжБУ, 2013. – 58 б.

 

Әдістемелік құрал Microsoft SQL Server 2008 орнату және зерттеуге бағытталған бес зертханалық жұмысты өткізуге арналған дайындықтан тұрады, әрбір зертханалық жұмыстың сипаттамасы келтірілген, орындалу реті және әдістемесі берілген, әр тақырыптың соңында бақылау сұрақтары және ұсынылған әдебиеттер тізімі көрсетілген.

Зертханалық жұмыстардың орындалуы «Деректер базасын құру және қорғау» курсы бойынша Microsoft SQL Server 2008 инструменталды ортасын игерудің іргелі негізін анықтайды. «Деректер базасын құру және қорғау» курсының оқыту пәні Microsoft SQL Server 2008 ортасында әртүрлі деңгейдегі деректер базасын құру және жобалаудың негізгі қағидаларын меңгеру болып табылады. Берілген деректер қорын басқару жүйесінде  қалай жұмыс істеу және деректер базасын, кестелерді, сұраныстарды және объектілерді Microsoft SQL Server 2008 құрылғылары арқылы құруды түсіну студент үшін маңызды. Есептеу техникасы бакалавры құру, енгізу, талдау және қамтамасыз етумен айналысатындықтан оның кәсіби дайындығы әртүрлі деректер қорын басқару жүйесімен дұрыс жұмыс жасай білуді талап етеді. Берілген  пәнді оқыту Microsoft SQL Server 2008 деректер қорын басқару жүйесі болып табылады.

Әдістемелік құрал 5B070400 мамандығының барлық оқыту формаларындағы студенттерге арналған. Сонымен қатар бұл әдістемелік құрал басқа мамандықтарға арналған ұқсас пәндердің  сәйкес тақырыптарына құрылған зертханалық жұмыстарын ұйымдастыруға қолдануға болады.

Без. - 15, әдебиет көрсеткіші – 10 атау.

 

Пікір беруші: аға оқытушы  Темырканова Э.К.

 

«Алматы энергетика және байланыс университеті»  коммерциялық емес акционерлік қоғамының 2012 жылға арналған басылым жоспары бойынша шығарылады.

© «Алматы энергетика және байланыс университеті» ҚЕАҚ, 2013 ж.

2012 ж.  жинақтық жоспары, реті 233

 

Мазмұны

Кіріспе

4

1 Зертханалық жұмыс №1. Microsoft SQL Server 2008 орнату және баптау

           5

1.1  Зертханалық жұмысқа тапсырмалар

 

5

1.2 Зертханалық жұмысты орындауға арналған әдістемелік нұсқаулар

 

5

2 Зертханалық жұмыс №2. Деректер файлын және транзакция журналын құру

         16

2.1 Зертханалық жұмысқа тапсырмалар

16

2.2    Зертханалық жұмысты орындауға арналған әдістемелік нұсқаулар

 

16

3 Зертханалық жұмыс №3. Кестелерді құру 

23

3.1 Зертханалық жұмысқа тапсырмалар

23

3.2 Зертханалық жұмысты орындауға арналған әдістемелік нұсқаулар

 

23

3.3 Бақылау сұрақтарының тізімі

 

32

4 Зертханалық жұмыс №4. Сұраныстар мен сүзгілерді құру

32

4.1   Зертханалық жұмысқа тапсырмалар

32

4.2  Зертханалық жұмысты орындауға арналған әдістемелік нұсқаулар

 

32

5 Зертханалық жұмыс №5. Сақталынатын процедуралардың көмегімен динамикалық сұраныстарды құру

 

         48

5.1   Зертханалық жұмысқа тапсырмалар

 

48

5.2  Зертханалық жұмысты орындауға арналған әдістемелік нұсқаулар

 

49

Әдебиеттер тізімі

 

58

 

Кіріспе

 

Әдістемелік нұсқауға  «Деректер базасын қорғау және жобалау» курсын оқыту кезіндегі Microsoft SQL Server 2008 ортасында әр түрлі деңгейдегі деректер базасын құру және жобалаудың негізгі қағидаларын студенттермен бірге меңгеруге арналған зертханалық жұмыстар енгізілген.

Зертханалық жұмыстарды орындау сатылары: теориялық бөлігін талдау, жұмыс тапсырмасын орындау, қорытынды жасап және оны оқытушыға қорғау. Жұмыс тапсырмасында қарастырылатын тақырып бойынша берілген тапсырманы орындау жұмыстары енгізілген. Практикалық тапсырмаларды орындау студенттің білімі мен біліктілігін арттыруға мүмкіндігін береді. Әдістемелік құрал  Microsoft SQL Server 2008 ортасында орындалған деректер қоры бойынша зертханалық тапсырмалардан тұрады. Студенттерге бірінші зертханалық жұмысты қатар орындау ұсынылады. Қалған зертханалық жұмыстарды студенттерге берілген нұсқа бойынша орындау  керек.

Әрбір зертханалық жұмыс есебі жұмыстың орындалу реті бойынша орындалуы тиіс. Нәтижелер АЭжБУ стандартына сәйкес орындалу керек. Орындалған жұмыс бойынша есеп келесі бөлімдерден тұру керек:

-  Титулдық бет.

-  Жұмыстың мақсаты және тапсырмасы.

-  Тақырыбы және мазмұны.

-  Кіріспе.

-  Зертханалық жұмыстың сипаттамасы.

-  Жұмысты орындау тапсырмасы.

-  Бақылау сұрақтарына жауап (теориялық дайындалу қорытындысы).

-  Орындалған жұмыстың нәтижесі (жұмыс тапсырмасының әрбір пунктіне принскрин және анықтама).

-  Өз сөзімен қорытынды (қандай жаңалықтар білді, тапсырмада не орындалды немесе орындалмады).

-  Қорытынды.

-  Әдебиеттер тізімі.

 

1 Зертханалық жұмыс 1. Microsoft SQL Server 2008 орнату және баптау

 

Жұмыстың мақсаты: Microsoft SQL Server 2008-ді орнату және бастапқы баптауды меңгеру.

 

1.1  Зертханалық жұмысқа тапсырмалар

 

1 Windows-ке VmWare виртуалды машинасын орнату.

2Microsoft SQL Server 2008-ді виртуалды машинаға орнату.

 

1.2 Зертханалық жұмысты орындауға арналған әдістемелік нұсқаулар

 

Аппараттық қамтамасыз етуге қойылатын минимальды талаптар:

-    Процессор: Intel (немесе қазіргі өмір талабына сай) Pentium III 1000 МГц немесе жоғары;

-    жады: 512 МБ немесе одан көп;

-    қатқыл диск: 20 ГБ немесе одан көп.

Ұсынылатын аппараттық талаптар:

-    процессор: Intel Pentium4 3000 МГц немесе  одан жоғары;

-    жады: 2 ГБ немесе одан жоғары;

-    қатқыл диск: 100 ГБ немесе одан көп.

Бағдарламалық қамтамасыз етуге қойылатын талаптар

Орнатылатын пакеттердің болу қажет: Microsoft dotNET Framework 3.5 SP1, Windows Installer 4.5 және Windows PowerShell 1.0.

Операциондық жүйе: MS Windows 2003 Server SP2 (Standard Edition, Enterprise Edition, Data Center Edition), MS Windows 2003 Small Business Server SP2 (Standard Edition, Premium Edition), MS Windows 2008 Server (Standard Edition, Enterprise Edition, Data Center Edition, Web Edition).
сонымен қатар, кейбір SQL Server 2008 редакцияларды, соның ішінде тегін редакцияларды (Express Edition), келесі операциялық жүйелерге орнатуға болады: MS Windows XP SP2 (Home Edition, Professional Edition, Media Center Edition, Tablet Edition), MS Windows Vista (Home Basic Edition, Home Premium Edition, Business Edition, Enterprise Edition, Ultimate Edition).

Ескерту. SQL Server 2008-дің 64-разрядты редакциясы аппараттық-бағдарламалық қамтамасыз етуге басқаша талаптар қояды.

MS SQL Server 2008-ді орнату.

1. Компьютерде администратор рұқсатымен бағдарлама-орнатушыны іске қосу  (тегін версия әдетте SQLEXPRADV_x86_RUS.exe деп аталады).

2. «Планирование» бөлімінен «Средство проверки конфигурации» пунктін басу.

MS_SQL_2008_image001

 

1.1сурет - SQL Server-ді орнатуға арналған бірінші терезе

 

3.  «Показать подробности» батырмасын басу және тексеру, дұрыс жүргеніне көз жеткізу. Егер белгілі бір мәселелер туындаса оларды шешіп және «Включить заново» батырмасының көмегімен кері тексеруге жіберу. Содан кейін  «ОК» арқылы берілген терезені жабу.

 

        MS_SQL_2008_image002

 

1.2 сурет - Орнату ережелерін қолдаудың бірінші терезесі

 

4.  «Установка» бөліміне басу және содан кейін «Новая установка изолированного SQL Server или добавление компонентов к существующему экземпляру» бөлімін таңдау.

MS_SQL_2008_image003

 

1.3 сурет - SQL Server-ді орнатуға арналған екінші терезесі

 

5. «Показать подробности» батырмасын басып, барлық тексерулер сәтті өткеніне көз жеткізу. Егер қандай да болсын келеңсіздіктер табылған болса, оларды жойып қайтадан «Включить заново» батырмасы арқылы тексеру қажет. Содан соң берілген терезені «ОК» батырмасы арқылы жабу.

       

     MS_SQL_2008_image004

 

1.4 сурет - Орнату ережелерін қолдаудың екінші терезесі

 

6.  Өнімнің алынған кілтін енгізу (тегін түрі үшін қажет емес), содан кейін «Далее» батырмасын басу.

7.  Лицензияны оқып, түртпе орнату және «Далее» батырмасын басу.

8.  «Установить» батырмасын басу.

 

MS_SQL_2008_image005 

1.5 сурет - SQL Server-ді орнатуға қолданатын кіліттерді енгізу терезесі

 

MS_SQL_2008_image007 

1.6 сурет - SQL Server-ді орнату бағдарламаларын қолдайтын файлдар терезесі

 

9.  «Показать подробности» батырмасын басып, барлық тексерулер сәтті өткеніне көз жеткізу. Егер қандай да болсын келеңсіздіктер табылған болса, оларды жойып қайтадан «Включить заново» батырмасы арқылы тексеру қажет. Содан соң берілген терезені «Далее» батырмасы арқылы жабу.

Ескерту.  Егер «Брандмауэр Windows» жолында ескерту пайда болса, оны ескермеуге болады – ол тек жай ғана сіздің есіңізге SQL Server-ге басқа компьютерлардан қол жеткізу үшін қосымша «Брандмауэра Windows» баптауы қажет екенін салады.

MS_SQL_2008_image008 

1.7 сурет - Орнату ережелерін қолдаудың үшінші терезесі

 

10.  Орнату үшін компоненттерді таңдау («Выделить все» батырмасын қолдануға болады), содан кейін «Далее» батырмасын басу.

 

MS_SQL_2008_image009

 

1.8 сурет - SQL Server-ді орнату бағдарламаларына керекті  компоненттерін таңдайтын терезе

 

Назар аударыңыз! Компоненттер қызыметі дұрыс жұмыс жасау үшін міндетті түрде «Полнотекстовый поиск» компонентін орнату қажет. Сонымен қатар, SQL Server – дің өзін басқару үшін міндетті түрде  «Средства управления – основные»! компонентін орнату қажет.

11.  «Экземпляр по умолчанию» опциясын таңдау және «Далее» батырмасын басу.

MS_SQL_2008_image010 

1.9 сурет - SQL Server-ді орнату бағдарламаларына керекті  даналарын баптайтын терезе

 

12.  «Далее» батырмасын басу.

MS_SQL_2008_image011 

1.10 сурет - SQL Server-ді орнату бағдарламаларына керекті  бос орындарды бақылайтын терезе

 

13. 1.11-суретте көрсетілгендей етіп опцияларды таңдау, содан кейін «Параметры сортировки» белгісіне өту.

MS_SQL_2008_image012

 

1.11 сурет - SQL Server-ді орнату бағдарламаларына керекті  сервердің конфигурацияларын бақылайтын бірінші терезе

 

14.  Келесі суретте көрсетілгендей опцияларды таңдап, «Далее» батыр-масын басу.

 

MS_SQL_2008_image013 

1.12 сурет - SQL Server-ді орнату бағдарламаларына керекті  сервердің конфигурацияларын бақылайтын екінші терезе

 

Ескерту. Опцияны өзгерту үшін қасында орналасқан «Настройка» батырмасын басып, келесі суретте көрсетілгендей параметрларды орнатыңыз.

MS_SQL_2008_image014

 

1.13 сурет - SQL Server-ді орнату бағдарламаларына керекті  сервердің конфигурацияларын бақылайтын үшінші терезе

 

Назар аударыңыз. Осы баптауды орнатқаннан кейiн өзгертуге болмайды. Мұқият болыңыз!

13-ші бөлімге ескерту. Егер сiз басқа компьютерде дерек қорының файлдарының жүйелi резервтегi көшiрмесiн алуды өзіңіздің жергілікті желіңізде (ұсынылады) орындау үшiн «SQL Server Agent» (кiрiстiрiлген тапсырмаларды жоспарлаушы, тегiн болжамға кiрмейдi) пайдаланғыңыз келсе және сiздiң желiңiз Windows NT домендi қолданып құрастырылса, онда сіздің доменіңізде арнайы есептік жазба ашып, оған тиiстi қорларға (толық мәлiметті SQL Server-дың анықтама жүйесiнде табуға болу) құқық беруге керек. Мұндай конфигурацияда бұл терезеде «Имя учетной записи» және «Пароль» жолдарына жасалған есептік жазбаның («Домен/Имя» түрінде) атын және паролін енгізу қажет, кем дегенде «SQL Server Agent» қызметі үшін.

15.  «Смешанный режим» опциясын таңдау және «sa» (бұл есептік жазба SQL-дегі барлық функцияларға және объектілерге   максимальды ) администраторының орнатылған есептік жазбасы үшін пароль беру. Сонымен қатар SQL Server-ге максимальды рұқсаты бар Windows-тың қолданушыларының есептік жазбаларын немесе Windows-ты қолданушылардың бүтін топтамаларын көрсетуге болады (мысалы, «Администраторы» орнатылған топтамасын). Сосын «Каталоги данных» тізбелеріне өту.

MS_SQL_2008_image015

 

1.14 сурет - SQL Server-ді орнату бағдарламаларына керекті  сервердің конфигурацияларын бақылайтын төртінші терезе

 

16.  «Корневой каталог данных» жолына деректер базасының файлдары орналасатын папкага жолды енгізу, одан әрі «Далее» батырмасын басу.

 

MS_SQL_2008_image016

 

1.15 сурет - SQL Server-ді орнату бағдарламаларына керекті  сервердің конфигурацияларын бақылайтын бесінші терезе

 

17.  1.16-суретте корсетілгендей опцияларды таңдап, «Далее» батырмасын басу.

MS_SQL_2008_image017

 

1.16 сурет - SQL Server-ді орнату бағдарламаларына керекті  Reporting Services қызыметін баптайтын терезе

 

18.  1.17-суретте көрсетілгендей опцияларды таңдап, «Далее» батырмасын басу.

MS_SQL_2008_image018

 

1.17 сурет - SQL Server-ді орнату бағдарламаларына керекті  қателердің есебін бақылайтын терезе

 

19.  «Показать подробности» батырмасын басып, барлық тексерулер сәтті өткеніне көз жеткізу. Егер қандай да болсын келеңсіздіктер табылған болса, оларды жойып қайтадан «Включить заново» батырмасы арқылы тексеру қажет. Содан соң берілген терезені «ОК» батырмасы арқылы жабу.

 

MS_SQL_2008_image019

 

1.18 сурет - SQL Server-ді орнату ережелерін бақылайтын терезе

 

20.  «Установить» батырмасын басу.

21.  Орнату аяқталғаннан кейін  «Далее» батырмасын басыңыз.

MS_SQL_2008_image021 

1.19 сурет - SQL Server-ді орнатудың орындалу барысын бақылайтын терезе

 

22.  «Закрыть» батырмасын басу. Экранда Microsoft SQL Server 2008-дің сәтті орнатылуы туралы хабарлама пайда болады.

 2 Зертханалық жұмыс 2. Деректер файлын және транзакция журналын құру

 

Жұмыстың мақсаты: Microsoft SQL Server 2008 негізгі компоненттерінің жүйесін зерттеу, деректер файлын құру үрдісін түсіну, T-SQL тілінің командаларының көмегімен деректер қорын басқаруды меңгеру.

 

2.1 Зертханалық жұмысқа тапсырмалар

 

 «D:\Students.mdf» файлында орналасқан және файлдың алғашқы көлемі  1мб., максимальды көлемі 100 мб болатын «Students» дерек қорларды құру. Деректер файлының ұлғаю қадамы 1мб-қа тең. Берілген дерек қорлардың транзакция журналының файлсы  «StudentsLog» деген атқа ие және  «D:\Students.ldf» файлында орналасқан. Бұл файлдың алғашқы көлемі 1мб-қа, максимальды көлемі  100 мб-қа тең. Ұлғаю қадамы 1мб.

 

2.2 Зертханалық жұмысты орындауға арналған әдістемелік нұсқаулар

 

Microsoft SQL Server 2008 негізгі компоненттері. Microsoft SQL Server 2008-дің барлық компоненттері «Пуск \ Программы \ Microsoft SQL Server 2008 мәзірі арқылы іске қосылады және келесі компоненттер кіреді:

1)      Deployment Wizard – серверде сақталған ақпаратты шығарудың шебері;

2)      SQL Server Installation Center – SQL Server 2008 орнатуының орталығы;

3)      Reporting Services Configuration Manager – есеп берулерді баптау қызметінің менеджері;

4)      SQL Server Configuration Manager – серверді баптау менеджері;

5)      SQL Server Error and Usage Reporting – сервер жұмысын хаттамалау қызметі және қателіктер туралы есеп беру қызметі;

6)      Microsoft Samples Overview – Microsoft корпорациясының сайтына сілтеме. Мұнда сервермен жұмыс жасаудың мысалдарын көруге болады;

7)      SQL Server Books Online – Microsoft SQL Server 2008 бойынша толық анықтамалық жүйе. Мұнда программалау бойынша ғана емес, сондай-ақ серверді басқару туралы да анықтамалар бар;

8)      SQL Server Tutorials – сервермен жұмыс істеу бойынша оқулықтар;

9)      Data Profile Viewer – деректермен жұмыс істеу профильдерін қарастыру;

10)   Execute Package Utility – деректерді қысу құралдары;

11)   Database Engine Tuning Advisor – деректер қорының ядросын баптау шебері;

12)   SQL Server Profiler – деректермен жұмыс істеу профильдерін баптау;

13)   Import and Export Data – деректердің импорты және экспорты;

14)   SQL Server Business Intelligence Development Studio – Business Intelligence Development Studio интегралданған өңдеу ортасы;

15)   SQL Server Management Studio – серверді басқаруға және деректер қорын өңдеуге арналған графикалық қабықша.

Деректер файлын құру. Жаңа деректер қорын T-SQL тілінің стандартты командаларын қолдана отырып құруға болады. Жаңа деректер қорын құру үшін «Master» деректер қорын активтендіру қажет. Мұны құрал-саймандар бетіндегі деректер қорының құламалы тізімінен таңдау арқылы немесе жаңа сұраныстың қосымшасында USE Master командасын теру арқылы жасауға болады.

Ескерту: T-SQL тілінің барлық командалары жаңа сұраныстың қосымшасында теріледі (SQLQuery).

Жаңа сұранысты жасау үшін құрал-саймандар бетіндегі "New Query" батырмасын, T-SQL тілінің командаларын орындау үшін құрал-саймандар бетіндегі "Execute" мына батырмасын басу қажет. Немесе жаңа сұраныстың қосымшасында GO командасын теру қажет.

Ескерту: Microsoft SQL Server-де  деректер қоры екі бөлімнен тұрады:

- деректер файлы – кеңейтілімі mdf болатын файл. Мұнда барлық кестелер мен сұраныстар орналасқан ;

- транзакция журналының файлы – кеңейтілімі ldf болатын файл. деректер қорымен барлық әрекеттер сақталатын журналдан тұрады. Берілген файл деректер қорын істен шыққан жағдайда қалпына келтіруге арналған.

Жаңа деректер файлын құру үшін CREATE DATABASE командасы қолданылады. Оның синтаксисі келесідей:

 

CREATE DATABASE <дерек қор аты>

(Name=<Логикалық ат>, FileName=<Файлдың аты>

[Size=<Алғ.көлем>,][Maxsize=<Макс.көлем>,][FileGrowth=<Қадам>])

[LOG ON

(Name=< Логикалық ат >, FileName=< Файлдың аты >

[Size=< Алғ.көлем >,][Maxsize=< Макс.көлем >,][FileGrowth=<Қадам>])

 

мұндағы:

- деректер қорының аты – құрылатын деректер қорының аты,

- логикалық ат– деректер қорының логикалық атын анықтайды. Ол бойынша деректер файлысына қаратпа жүргізіледі;

- файлдың аты – деректер файлысына толық жолды анықтайды;

- алғ.өлшем – Мб-тағы файлдың алғашқы өлшемі;

- макс.өлшем –Мб-тағы файлдың максимальды өлшемі;

- қадам – деректер файлының ұлғаю қадамы (Мб-пен немесе %-бен).

LOG ON бөліміндегі параметрлер CREATE DATABASE бөліміндегі параметрлерге ұқсайды. Алайда олар транзакция журналының параметрлерін анықтайды.

 

T-SQL тілінің командаларының көмегімен деректер қорын басқару.

T-SQL сұраныстар тілінде деректер қорымен келесі әрекеттер жасалуы мүмкін:

1)  деректер қоры  туралы мәліметтердің кескінделуі : EXEC sp_helpdb <дерек қор аты>;

2)  деректер қорының параметрлерін өзгерту: EXEC sp_dboption < дерек қор аты>, <Параметр>, <Мән>;

3)  деректер қорына кіретін жаңа файлдарды қосу, жою және атын өзгерту:

ALTER DATABASE <дерек қор аты >

ADD FILE (<Параметрлер>)|REMOVE FILE <Файлдың логикалық аты>|

MODIFY FILE (<Параметрлер>)

мұндағы ADD FILE  бөлімі файл қосады, REMOVE FILE  жояды, ал MODIFY FILE бөлімі файлдың параметрлерін өзгертеді;

4)  барлық дерек қорларды қысу: DBCC SHRINKDATABASE <дерек қор аты>;

5)  дерек қор нақты файлысын қысу: DBCC SHRINKFILE <Файлдың логикалық аты>;

6)  дерек қордың атын өзгерту: EXEC SP_RENAMEDB <дерек қор аты>,<Жаңа дерек қор аты >;

7)  дерек қорды жою: DROP DATABASE <дерек қор аты>.

Ескерту: жоғарыда аталған командалар келесі  параметрлерді қолданады:

- <дерек қор аты> - әрекет жүргізілетін дерек қор аты;

- <Параметр> - өзгертілетін параметр;

- <Мән> - өзгертілетін параметрің жаңа мәні;

- <Параметрлер> - дерек қор файлысының параметрлері. Олар CREATE DATABASE командасында қолданылатын параметрлерге ұқсас;

- <Файлдың логикалық аты> - дерек қорға кіретін файлдың логикалық аты;

- <Жаңа дерек қор аты> - дерек қордың жаңа аты.

«SQL Server Management Studio»  өңдеу ортасын іске қосу үшін «Пуск» мәзірінде «Программы\Microsoft SQL Server 2008\SQL Server Management Studio» пунктін таңдаймыз.

Өңдеу ортасын іске қосқаннан кейін серверге қосылу терезесі «Connect to Server» пайда болады. Бұл терезеден «Connect» батырмасын басу қажет (2.1 суретті қараңыз).

Ескерту: егер «Microsoft SQL Server 2008» орнату кезінде серверге қосылу логині және паролі берілген болса, онда «Connect» батырмасын басудың алдында  «Authentication» құламалы тізімінде «SQL Server Authentication» таңдау қажет, ал содан кейін орнату кезінде берілген логин мен парольді енгізу қажет.

«Connect» батырмасын басқаннан кейін «SQL Server Management Studio»өңдеу ортасының терезесі пайда болады (2.2- суретті қараңыз).

Берілген терезе келесі құрылымға ие:

1)  Терезелік мәзір серверді басқаруға және басқа да түрлі әрекеттерді орныдауға арналған командалардың толық жиынынан тұрады.

2)  Саймандар панелі жиі жасалатын әрекетерді орындауға арналған батырмалардан тұрады. Берілген панельдің сыртқы келбеті жасалатын әрекетке тәуелді.

3)  «Object Explorer» панелі – объектілер шолушысы. Объекттер шолушысы – сервердің барлық объектілерін көрсететін ағаш тәріздес құрылымды панель. Ол сондай-ақ түрлі әрекеттерді сервердің өзімен де, дерек қорымен де жасауға мүмкіндік береді. Объектілер шолушысы дерек қорды өңдеудің негізгі құралы болып табылады.

4)  Жұмыс аймағы. Жұмыс аймағында дерек қорымен барлық әрекеттер орындалады, сондай-ақ оның құрамы көрсетіледі.

02-02 

 

 

 

02-03sm2.1 сурет - Серверге қосылу терезесі

 

 

2.2 сурет - «SQL Server Management Studio» өңдеу ортасының терезесі

 

Ескерту: объектілер шолушысында  объектілердің өздері  папкаларда орналасқан. Папканы ашу үшін, кескіннің сол жағындағы «+» таңбасын шерту қажет.

Деректер файлын құруға көшейік. Бұл үшін объектілер шолушысында «Databases» (деректер қоры) папкасында тінтуірдің оң жақ батырмасымен шертіңіз (2.2 суретке қараңыз) және пайда болған мәзірде «New Database» (Жаңа дерек қоры) пунктін таңдаңыз.  «New Database» жаңа дерек қорының деректер файлысның баптаулар параметрінің терезесі пайда болады (2.3 суретке қараңыз). Баптаулар терезесінің сол жағында «Select a page» тізімі орналасқан. Бұл тізім баптаулар топтарының арасында ауысып отыруға мүмкіндік береді.

02-04sm

2.3 сурет - Жаңа дерек қор файлысының баптаулар параметрінің бірінші терезесі

 

«General» негізгі баптауларын реттейік. Негізгі баптауларды таңдау үшін «Select a page» тізіміндегі «General» пунктін тінтуірмен шерту қажет. Терезенің оң жағында негізгі баптаулар «New Database» пайда болады.

Оларды кеңірек қарастырайық. Терезенің жоғарға жағында екі параметр орналасқан: «Database name» (дерек қор аты) және «Owner» (Иегер). «Database name» параметрін «Students»-ке теңестіріңіз. «Owner» параметрін өзгеріссіз қалдырыңыз.

Жоғарыда көрсетілген параметрлердің астында кесте түрінде деректер файлының және транзакция журналының баптаулары орналасқан. Кесте келесі бағаналардан тұрады:

1)  Logical Name – деректер файлының және транзакция журналының логикалық аты. Осы аттар бойынша жоғарыда аталған дерек қор  файлдарына қаратпа жүргізіледі. Ескере кететін жағдай, деректер файлының аты дерек қор атымен бірдей, ал транзакция журналының аты дерек қор атынан және  «_log» суффиксынан құралған.

2)  File Type – файл түрі. Бұл параметр файл транзакция журналы немесе деректер файлы болып табылатынын көрсетеді.

3)  Filegroup –файлдар тобы, файлдың қай топқа жататынын көрсетеді. Файлдар тобы «Filegroups» баптаулар тобында реттеледі.

4)  Initial Size (MB) –  деректер файлының және транзакция журналының мегабайттағы алғашқы көлемі.

5)  Autogrowth – файлдың көлемінің автоүлкеюі. Файл ақпаратқа толған мезетте оның көлемі автоматты түрде «Autogrowth» параметрінде көрсетілген шамаға үлкейеді. Үлкеюді мегабайтпен де, пайызбен де беруге болады. Осы жерде файлдардың максимальды көлемін беруге болады. Бұл параметрді өзгерту үшін «…» батырмасын басу қажет.

6)  Path – файлдар орналасқан папка жолы. Бұл параметрді өзгерту үшін «…» батырмасын басу қажет.

7)  File Name – файлдардың аттары. Үнсіз келісім бойынша файлдардың аттары логикалық аттарға ұқсайды. Алайда деректер файлының кеңейтілімі «mdf», ал транзакция журналы файлынікі –  «ldf».

Ескерту: жаңа деректер файлдарын немесе транзакция журналын қосу үшін «Add» батырмасы пайдаланылады, ал жою үшін  «Remove» батырмасы.

Деректер файлының екінші деңгейлі баптауларын қарастырайық. Осы баптауларға қол жеткізу үшін «Select a page» тізіміндегі «Options»  пунктін шерту қажет. Сонда келесі терезе пайда болады (2.4-суретке қараңыз).

02-05sm 

 

2.4 сурет - Жаңа дерек қорының деректер файлысның баптаулар параметрінің екінші терезесі

 

Терезенің оң жағында біз келесі баптауларды көреміз:

1)  Collation – бұл параметр мәтіндік жолдарды өңдеуге, оларды салыстыруға, іздеуге және т.б.-ға жауап береді. Бұл параметрді «<server default>» ретінде қалдыруға кеңес беріледі. Сонда берілген параметрдің мәні серверді орнату кезіндегі «Collation» қосымшасындағы берілген мәнге тең болады.

2)  Recovery Model – қалпына келтіру моделі. Берілген параметр транзакция файлында сақталатын, дерек қорын қалпына келтіруге арналған ақпарат үшін жауап береді. Дискіде бос орын болған жағдайда бұл параметрдің мәнін «Full» деп қалдыруға кеңес беріледі.

3)  Compatibility level – сәйкестік деңгейі. Деректер файлын сервердің бұрынғы нұсқаларымен сәйкестігін анықтайды. Егер деректерді басқа сервердің бұрынғы нұсқасына көшіру жоспарланса, онда оны осы параметрде көрсету қажет.

4)  Other options – екінші деңгейлі параметрлер. Берілген параметрлердің өзгертілуі міндетті емес болып табылады.

«Filegroups» соңғы баптаулар тобын қарастырайық. Берілген баптаулар тобы файлдар тобы үшін жауап береді. Оны «Select a page» тізімінде шығару үшін «Options» пунктінде тінтуірмен шерту қажет. Файлдар тобының баптаулары кескінделеді (2.5 суретке қараңыз).

2.5 сурет - Жаңа дерек қорының деректер файлысының баптаулар параметрінің үшінші терезесі

 

Файлдар тобы «Rows» кестесінде терезенің оң жағында көрсетілген. Берілген кесте келесі бағаналардан тұрады:

1)  Name –файлдар тобының аты.

2)  Files – топқа кіретін файлдар.

3)  Read only – топтағы файлдарды тек қана оқуға және қарауға болады, бірақ оларды өзгертуге болмайды.

4)  Default – үнсіз келісім бойынша топ. Барлық жаңа деректер файлдары осы топқа енеді.

Ескерту: деректер файлының жаңа топтарын қосу үшін «Add» батырмасы пайдаланылады, ал жою үшін  «Remove» батырмасы.

Дерек қор атын өзгерту үшін объектілер шолушысында оның үстінен тінтуірдің оң жақ батымасымен шертіп, пайда болған мәзірде «Rename» пунктін таңдау қажет. Жою үшін тура осы мәзірден «Delete» пунктін таңдаймыз, жаңарту үшін «Refresh» пункті, ал жоғарыда аталған қасиеттерді өзгерту үшін «Properties» пункті.

 

3 Зертханалық жұмыс №3. Кестелерді құру

 

Жұмыстың мақсаты: жолдардың деректер типі мен кестелерді зерттеп, кестелерді құру және олармен орындайтын негізгі операцияларды игеру.

 

3.1 Зертханалық жұмысқа тапсырмалар

 

«Студент», «Мамандықтар», «Пәндер» және «Бағалар» кестесін құру және толтыру.

 

3.2 Зертханалық жұмысты орындауға арналған әдістемелік нұсқаулар

 

SQL Server-де кестелерді құру үшін біріншіден кесте құрылып жатқан дерек қор-ын активтендіру керек. Ол үшін жаңа сұраныста USE <ДҚ-аты> командасын теруге болады немесе аспаптар бетіндегі түсетін тізімдегі жұмыс істейтін дерек қорын таңдау керек. Дерек қорын таңдаған соң кестелерді құруға болады.

Кестелер мына командалармен құрылады:

CREATE TABLE <Кесте аты>

(<Жол аты1> <Тип1> [IDENTITY NULL|NOTNULL],<жол аты2> <Тип2>, … )

Мұнда:

< Кесте аты > - Құрылатын кесте аты; < Жол аты > - Кесте жолдары аты; <Тип> - жолдар типі; <IDENTITY NULL|NOT NULL> - Санағыш жолы.

Ескерту: егер жол атауында бос орын(пробел)  болса, онда ол тік жақшаға алынады.

Студент коды (біріншілік байланыс жолы, санағыш), Тегі, Аты, Әкесінің аты, Мекенжайы, Мамандық коды (екіншілік байланыс жолы) жолдарын құрайтын «Студент» кестесін құру үшін келесі скрипті тереміз:

CREATE TABLE Студент

([студент коды] Bigint Identity,

Тегі Varchar(20), Аты Varchar(15), Әкесінің аты Varchar(20),

Мекенжай Varchar(100), [Мамандық коды] Bigint)

Ескерту: Егер есептелетін жол құру керек болса, онда Create Table командасында есептелетін жолда деректер типінің орнына өрнек көрсету керек.

Мысал: Үш түрлі бағасы бойынша студенттің орташа балын есептеу.

CREATE TABLE Бағалар

(ТАӘ Varchar(20), Баға1 int, Баға2 int, Баға3 int,

[Орташа балл] = (Баға 1+ Баға2 + Баға 3)/3  

Ескерту: Кесте туралы ақпарат алу мына команданы қолдану арқылы орындалады: EXEC SP_HELP < Кесте аты>. Кестені жою үшін қолданылатын команда: DROP TABLE < Кесте аты>.

Кестелерді толтыру. SQL Server 2008-де кестелерді толтыру келесі команданың көмегімен орындалады:

INSERT < Кесте аты > [(<Жол тізімі>)] VALUES (<Жол мәндері>)

   

Мұндағы < Кесте аты> - деректер енгізілетін кесте, (<Жол тізімі>) – деректер енгізілетін жолдар тізімі, егер көрсетпесек, онда барлық жолдарды толтыру қажет, жолдар тізімінде жолдар үтір арқылы көрсетіледі, (<Жол мәндері>) – жолдардың мәні үтір арқылы.

Мән ретінде Default  тұрақтысын көрсетуге болады, яғни үнсіздік бойынша қабылданған мән қойылады, немесе Select операторын қоюға болады. Мұнда ол формулаларды есептеу аспабы ретінде қолданылады.

Үлгі: «Студент» кестесіне келесі мәнді жолдары бар ТАӘ = Иванов, Мекенжай = Мәскеу, Мамандық коды = 5 қосылған жазбалар.

INSERT Студент(Тегі, Аты, Әкесінің аты, Мекенжай, [Мамандық коды])

VALUES (‘Иванов’, ‘Антон’, ‘Антонович’, ‘Астана’, 5)   

Кестеден бөлек жолдар мен  бөлек бағандарды жою. Кестеден барлық бағандарды немесе бөлек жазбаларды жоюға болады. Олар мына команданың көмегімен орындалады:

DELETE < Кесте аты > [WHERE <Шарт>] 

Мұндағы <Шарт> - жойылатын жазбалар қанағаттандыратын шарт, егер шарт көрсетілмесе, онда кестедегі барлық жолдар жойылады. Егер шарт көрсетілген болса, онда осы шартты қанағаттандыратын жолдар жойылады.

Үлгі: «Студент» кестесіндегі Мекенжай = Астана жолын жою.

DELETE Студенттер WHERE Мекенжай = ‘Астана’   

Кестедегі деректерді өзгерту. Ол үшін келесі команда қолданылады:

UPDATE <Кесте аты >

SET < Жол аты1> = <Өрнек1>, [<Жол аты 2> = <Өрнек2>,]

[WHERE <Шарт>]   

Мұндағы < Жол аты1>, < Жол аты2> - өзгертілетін жолдар аты, <Өрнек1>, <Өрнек2> - не нақты мәндер, не NULL, не SELECT операторы. Мұнда SELECT  функция ретінде қолданылады. <Шарт> - жолдары өзгертілетін жазбалардың қанағаттандыру керек шарты.

Үлгі: «Студент» кестесінде студент Ивановтың мекенжайын Астанадан Таразға ауыстыру, ал мамандық кодын 5-тен 3-ке ауыстыру.

UPDATE Студент SET Мекенжай = ‘Тараз’, [Мамандық коды] = 3 WHERE ТАӘ =‘Иванов’

Ескерту: өрнек ретінде математикалық формулаларды қолдануға болады.

Мысал: SET [Орташа балл]= (Баға1+ Баға2+ Баға3)/3), «Баға1», «Баға2» және «Баға3» жолдарының орташасы ретінде «Орташа балл» жолын есептейді. Сонымен қатар «Баға1», «Баға2» және «Баға3» жолдары бұған дейін болуға тиіс және де «Орташа балл» жолы нақты тип ретінде анықталады (Мысалы Real).

Ескерту:  егер кестеден барлық жазбаларды өшіру керек болса, алайда оның құрылысын сақтап қалу үшін TRUNCATE TABLE  <Жол аты> командасы қолданылады, сонда барлық жазбалар жойылады да, бірақ кестенің өзі қалады.

Дерек қорының барлық кестелерінің объектілерін шолушы терезесіндегі «Students»  папкасының ішіндегі «Tables» папкасында орналасады. (3.1 суретке қараңыз).

3.1 сурет - Дерек қорының барлық кестелерінің объектілерін шолушы терезесі

 

«Мамандықтар» кестесін құрайық. Ол үшін «Tables» папкасының үстінен ПКМ-ді шертіңіз, кейін пайда болған мәзірде «New Table» пунктін таңданыз. Жаңа кесте құру терезесі пайда болады (3.2 суретке қараңыз).

Терезенің оң жақ бөлігінде жаңа кестенің жолдарын анықтау кестесі орналасқан. Берілген кестенің келесі бағандары бар:

1)  Column Name – жол аты. Жолдың аты әрқашан әріптен басталуы керек және жолда әртүрлі символдар мен тыныс белгілерінің болмауы тиіс. Егер жол атауында бос орын (пробел)  болса, онда ол автоматты түрде тік жақшаға алынады.

2)  Data Type – жолдың деректер типі.

3)  Allow Nulls – Null рұқсат етілген мәні. Егер жолдың бұл опциясы қосылған болса, онда жолды толтырмау жағдайында оған автоматты түрде Null мәні қойылады, яғни жолды толтыру міндетті болып саналмайды.

Ескерту: жолды анықтайтын кестенің астында бөлінген жолдың қасиеттерінің кестесі «Column Properties» орналасқан. Берілген кестеде бөлінген жолдың қасиеттері бапталады. Кейбіреулерін төменде қарастырамыз.

 

 


3.2 сурет - Жаңа кестелерді құруға арналған бірінші терезе

 

Жолдарды жасау мен олардың қасиеттерін баптауға өтейік. Жолдарды анықтау кестесінде «Column Name», «Data Type» және «Allow Nulls» бағандарының мәндерін беріңіз (3.3 суретке қараңыз).

 3.3 сурете  «Мамандықтар» кестесі үш жолдан тұрады:

1)  Мамандық коды – студенттер кестесімен байланысқа арналған сандық жол.

2)  Мамандық атауы – ұзындығы 50 символдан аспайтын жолдарды сақтауға арналған мәтіндік жол.

3)  Мамандық сипаттамасы – ұзындығы шексіз жолдарды сақтауға арналған мәтіндік жол.

Ескерту: «Мамандық  коды» жолы «Студент» және  «Мамандықтар» кестелерін байланыстыратын сұраныста біріншілік байланыс жолы болғандықтан, біз оны сандық санағыш деп қоюымыз керек, яғни берілген жол автоматты түрде сандық мәндермен толтырылуы және кілттік болуы тиіс.

3.3 сурет - Жаңа кестелерді құруға арналған екінші терезе

 

 «Мамандық коды» жолын санағыш (счетчик) қылайық. Ол үшін жолдарды анықтау кестесінен тінтуірді жай шерту арқылы жолды бөліп алыңыз. Жолдың қасиеттерінің кестесінде «Мамандық коды» жолының қасиеттері көрсетіледі. «Identity Specification» (Ерекшеліктерін баптау) қасиеттерінің топтамасын ашыңыз. «(Is Identity)» (Ерекше) қасиетіне «Yes» (Иа) мәнін қойыңыз. «Identity Increment» (Ерекшеліктерін үлкейту, санағыш қадамы) және «Identity Seed» (Ерекшелік басы, санағыштың бастапқы мәні) қасиеттерін 1-ге тең деп алыңыз (3.3 суретке қараңыз). Бұл баптаулар «Мамандық коды» жолының мәні бірінші жазбада 1-ге тең болатынын, ал екіншісінде 2-ге тең т.с.с. болатынын көрсетеді.

Енді «Мамандық коды» жолын кілттік жол деп алайық. Жолды бөліп алыңыз, содан соң аспаптар бетіндегі кілттің суреті тұрған батырманы басыңыз.

Жолдарды анықтау кестесінде «Мамандық коды» жолының қасында жолдың кілттік екенін көрсететін кілттің суреті пайда болады. Осыдан «Мамандықтар» кестесінің баптауын аяқталды деп санауға болады. Жаңа кесте құрудың терезесін, жолдарды анықтау кестесінің үстінде, оң жақ жоғары бұрышта орналасқан жабу батырмасын басу арқылы жабыңыз.

Кесте толық құрылғанан кейін  сақтауға арналған сұраныс терезесі пайда болады. Бұл терезеде «Yes» (Иә) батырмасын басу керек. Осыдан кейін жаңа кестенің атын анықтауға арналған «Chose Name» (Атын беріңіз) терезесі пайда болады (3.4 суретке қараңыз).

 

3.4 сурет - Жаңа кестенің атын анықтауға арналған «Chose Name» терезесі

 

Бұл терезеде жаңа кестенің атын «Мамандықтар» деп беріңіз де «Ok» батырмасын басыңыз. «Мамандықтар» кестесі «Students» дерек қорындағы «Tables» папкасында орналасқан объектілерді шолушыда көрсетіледі (3.5 суретке қараңыз).

Ескерту: объектілерді шолушыда «Мамандықтар» кестесі «dbo.Мамандықтар» деп көрсетіледі. «dbo» префиксі кестенің дерек қор (Data Base Object) объекті екенін көрсетеді. Келесіде объектілермен жұмыс жасағанда «dbo» префиксін  түсіруімізге болады.

Енді  «Пәндер» кестесін құруға көшейік. «Мамандықтар» кестесі  жағдайындағыдай «Tables» папкасының үстінен ПКМ-ді шертіңіз, кейін пайда болған мәзірде «New Table» пунктін таңдаңыз. Төмендегі суретте көрсетілген жолдарды құрыңыз (3.5 суретке қараңыз).

 

3.5 сурет - Жаңа кестелерді құруға арналған үшінші терезе

 

 «Мамандықтар» кестесінде жасалғандай «Пән коды» жолынан сандық санағыш және кілттік жол жасаңыз. Жаңа кесте құру терезесін жабыңыз. Пайда болған «Chose Name» терезесінде «Пәндер» атын беріңіз (3.6 суретке қараңыз).

«Пәндер»  кестесі объектілерді шолушыда «Tables» папкасында пайда болады ( 3.7 суретке қараңыз).

 3.6 сурет - «Chose Name» терезесі

 

 «Пәндер»  кестесін құрғаннан кейін «Студент» кестесін құрыңыз. 3.7 суретте көрсетілген кестеге ұқсас жаңа кесте құрыңыз.

3.7 сурет - Жаңа кестелерді құруға арналған төртінші терезе

 

Жаңа кестенің жолдарын қарастыра отырып, келесі қорытындыға келуімізге болады:

- «Студент коды» жолы – бұл баға кестесімен байланыстың біріншілік жолы. Демек берілген жолды сандық санағыш және кілттік деп алуымыз керек (жоғарыда «Мамандықтар» кестесінің құрылуын қараңыз);

- «Тегі», «Аты», «Әкесінің аты», «Жынысы», «Ата-анасы», «Мекенжай», «Телефон», «Паспорттық деректер» және «Топ» жолдары әртүрлі ұзындықтағы мәтіндік жолдар болып табылады (Бөлінген мәтіндік жолдың ұзындығын беру үшін, бөлінген жолдың қасиеттерінің кестесінде Length қасиетін жолға максималь енгізілетін таңбаларға тең етіп орнатуымыз керек);

- «Туған жылы» и «Түскен жылы» жолдары жылдарды сақтауға арналған. Сондықтан олардың деректер типі «date»;

-  «Күндізгі оқу түрі» жолы логикалық жол болып табылады. «Microsoft SQL Server 2008»-де мұндай жолдардың деректер типі «bit» болуы тиіс;

- «Сынақ кітапша нөмірі» және «Курс» жолдары бүтін сандық болып табылады. Жалғыз айырмашылықтары жолдарының өлшемі болып табылады. «Сынақ кітапша нөмірі» жолы -263…+263 аралығындағы (деректер типі «bigint») бүтін сандарды сақтауға арналған. «Курс» жолы (деректер типі «tinyint»)  0…255  аралығындағы бүтін сандарды сақтауға арналған;

- «Мамандық коды» жолы – бұл «Мамандықтар» кестесімен байланыстың жолы. Алайда берілген байланыс жолы екіншілік болып табылады, сондықтан оны бүтін етіп алуымызға болады, яғни «bigint».

«Студент» кестесінің жолын анықтағаннан кейін жаңа кесте құрудың терезесін жабыңыз. Пайда болған «Chose Name» терезесінде жаңа кесте атын «Студент»

«Студент» кестесі объектілерді шолушыдағы «Tables» папкасында пайда болады.  Жоғарыда көрсетілгендей «Бағалар» кестесін құрыңыз.

«Бағалар» кестесінде біріншілік байланыс жолдары жоқ. Демек бұл кестеде кілттік жолдары жоқ. «Пән коды 1», «Пән коды 2» және «Пән коды 3» жолдары «Пәндер» кестесімен байланысқа арналған екіншілік байланыс жолдары болып табылады, сондықтан олар бүтіндік болып табылады (деректер типі «bigint»). «Емтихан мерзімі 1», «Емтихан мерзімі 2» и «Емтихан мерзімі 3» жолдары мерзімдерді сақтауға арналған (деректер типі «date»). «Баға1», «Баға2» және «Баға3» бағаларды сақтауға арналған. Бұл жол үшін деректер типін «tinyint» деп беріңіз. Соңында, «Орташа балл» жолы бөлшек сандарды сақтайды және типі «real».

3.8 сурет - Дерек қорының барлық кестелерінің объектілерін шолушы терезесі

 

Жаңа кесте құру терезесін жабыңыз. Пайда болған «Chose Name» терезесінде «Бағалар» атын беріңіз.

Барлық кестелерді құрған соң объектілерді шолу терезесі осындай болады (3.8 суретке қараңыз).

Енді кестелерді бастапқы деректермен толтыру операцияларын қарастырайық.

«Мамандықтар» кестесін толтырайық. Бұл кестені толтыру үшін объектілерді шолушыда тінтуірның оң жақ батырмасымен «Мамандықтар» кестесін шертіңіз (3.9 суретке қараңыз), содан соң пайда болған мәзірде «Edit Top 200 Rows» (Алғашқы 200 жазбаны өзгерту) пунктін таңдаңыз. «Microsoft SQL Server Management Studio» жұмыс істеу аймағында кестелерді толтыру терезесі шығады. «Мамандықтар» кестесін  3.9 суретте көрсетілгендей толтырыңыз.

3.9 сурет - Кестеге ақпараттарды енгізуге арналған терезе

 

Ескерту: «Мамандықтар коды» жолы біріншілік байланыс жолы және кілттік сандық санағыш болғандықтан, ол автоматты түрде толтырылады (оны толтыру қажет емес).

Жоғары оң жақ бұрышта кестенің үстінде орналасқан жабу батырмасын басу арқылы, «Мамандықтар» кестесін толтыру терезесін жабыңыз.

.

«Мамандықтар» кестесін толтырған соң «Пәндер»  кестесін толтырамыз. Оны жоғарыда айтылғандай ашыңыз да, 3.9 суретке ұқсас түрде толтырыңыз.

 «Пәндер» кестесін толтыру терезесін жабыңыз да, «Студент» кестесін толтыруға көшіңіз. «Студент» кестесін толтыруға ашып, оны толтырыңыз.

Ескерту: Мерзімдерді толтыру үшін бөлгіш ретінде «.» таңбасын қолдануға болады. Мерзімдерді мына форматта толтыруға болады «күн.ай.жыл».

«Мамандық коды» жолы екіншілік байланыс жолы болып табылады («Мамандықтар» кестесімен байланыс үшін). Осыдан, бұл жолдың мәндерін «Мамандықтар» кестесіндегі «Мамандық коды» жолының мәндерімен толтыруымыз керек. Біздің жағдайда ол 1-ден 5-ке дейінгі мәндер (3.10 суретке қараңыз). Егер сізде «Мамандықтар» кестесінде мамандықтар коды басқа мәндерді иемденсе,  онда оларды «Студент» кестесіне енгізіңіз. Толтыруды аяқтаған соң «Студент» кестесін толтыру терезесін жабыңыз.

Соңында «Бағалар» кестесін толтырайық, ол 3.10 суретте көрсетілген.

3.10 сурет - Кестеге ақпараттарды еңгізуге арналған терезе

 

«Студент» кестесіндегідей мерзімдері (дата) бар жолдар толтырылады. Ескерту: «Пән коды 1», «Пән коды 2» және «Пән коды 3» жолдары «Пәндер»  кестесімен екіншілік байланыс жолы болып табылады. Сондықтан олар осы кестеден «Пән коды» жолындағы мәндермен толтырылуы керек, яғни  1-ден 5-ке дейінгі мәндермен.

 «Бағалар» кестесін толтыру терезесін жабыңыз. Осыдан біз дерек қор «Students»  кестелерін құру және толтыруды аяқтаймыз.

 

3.3 Бақылау сұрақтарының тізімі

 

3.3.1 Желінің конфигурациясының жалпы сұлбасын сипаттау.

3.3.2 Қандай конфигурациялық файлдар желінің баптауы бойынша жүйеде бар және олар қайда орналасқан?

3.3.3 Қалай Wi-Fi-желіге қосылуға болады, мысалға КТ кафедрасына?

3.3.4 Wi-Fi-желіні қалай жасауға болады?

 

4 Зертханалық жұмыс №4. Сұраныстар мен сүзгілерді құру

 

Жұмыстың мақсаты: сұраныстарды және сүзгілерді құру процесін зерттеу, SELECT операторының көмегімен есептеулер жүргізу процесін түсіну.

 

4.1 Зертханалық жұмысқа тапсырмалар

 

1 «Сұраныс Студент+Мамандықтар» сұранысын құру.

2 «Сұраныс Студент+Бағалар» сұранысын құру.

3 Әр түрлі мамандықтардағы студенттерді көрсететін сүзгілерді құру.

 

4.2 Зертханалық жұмысты орындауға арналған әдістемелік нұсқаулар

 

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

Сұраныстарды жүзеге асыру үшін SQL (Standard Query Language) арнайы сұраныстар тілін қолданады.

АЖ-лерде сұраныстар клиенттік қосымшаның жағында да, сервер жағында да болуы мүмкін. Егер сұраныс клиент жағында сақталса, онда ол байланыс объектісінің ішінде тіркеледі. Бұл жағдайда клиенттік қосымша деректер файлына тәуелді емес. Деректер файлы тек қана кестелерден тұрады, сондықтан біз деректер файлын қозғамай-ақ клиенттік қосымшаны оңай модификациялай аламыз. Бірақ бұл жағдайда сұраныс серверге желі арқылы жіберіледі.

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

Барлық сұраныстар мынадай түрлерге бөлінеді:

1)  статикалық;

2)  динамикалық.

Статикалық сұраныстардың құрылымы бағдарламамен жұмыс істеу кезінде өзгермейді, ал  динамикалық сұраныстар жағдайға байланысты өзгере береді.

Ескерту: әдетте динамикалық сұраныстар тек клиенттің жағында орындалатын сұраныстар арқылы жүзеге асырылуы мүмкін. Егер сервердің жағында орындалатын динамикалық сұраныстарды жүзеге асыру қажет болса, онда бұл жағдайда сақталатын процедураларды қолдану қажет болады.

Сақталатын процедуралар – сервердің жағында сақталатын SQL сұраныс, бұл сұраныс SQL кодтың ішіне енгізілетін параметрлерге ие. Сақталатын процедураларды шақырған кезде оның ішіне параметрдің мәнін жіберу қажет.

Негізінен сұраныс немесе сақталатын процедура кестелер арасындағы байланысты іске асырады немесе деректерді сүзгілейді. Кейбір SQL сұраныстар есептеулер де жүргізе алады.

Кестелерді байланыстыру жағдайында бір кесте әрқашанда біріншілік, ал басқасы екіншілік болады. Араларындағы байланыс, байланыс өрістері арқылы жүреді. Байланыс кезінде байланыс өрістерінің мәндері бірдей жазулар қатар қойылады. Біріншілік кесте әрқашан бірінші толтырылады, ал оның байланыс өрісі автоматты түрде толтырылады (деректер түрі – санауыш). Екіншілік кесте әрқашан біріншілік кесте толтырылғаннан кейін толтырылады. Оның байланыс өрісінің мәні біріншілік кестенің байланыс өрісінің мәнінен алынады. Байланыс өрістері бірдей деректер түріне ие болуға тиісті.

Кестелер арасындағы байланыстың төрт түрі:

1)  бірдің бірге біріншілік кестенің бір өрісіне екіншілік кестенің бір өрісі сәйкес келеді;

2)  бірдің көпке біріншілік кестенің бір өрісіне екіншілік кестенің бірнеше өрісі сәйкес келеді;

3)  көптің бірге  біріншілік кестенің бірнеше өрісіне екіншілік кестенің бір өрісі сәйкес келеді;

4)  көптің көпке біріншілік кестенің бір өрісіне екіншілік кестенің бірнеше өрісі сәйкес келеді немесе керісінше.

Байланысының түрі біріншідей болатын сұраныстар қарапайым деп аталады, ал қалғандары күрделі болып саналады. Егер дерек қорда байланысқан тым болмаса екі кесте бар болса, онда дерек қор реляциялық болады.

Сұранысты құру үшін дерек қорды активтендіру қажет, содан кейін сұраныстар редакторының жұмыс аймағында SELECT командасының көмегімен сұранысты құрамыз.  Синтаксисі келесідей:

SELECT [ALL|DISTINCT][TOP|PERCENT n] <Өрістер тізімі>

[INTO <Жаңа кестенің аты>][FROM  <Кестенің аты >][WHERE <Шарт>]

[GROUP BY <Өріс>][ORDER BY <Өріс > [ASC|DESC]]

[COMPUTE AVG|COUNT|MAX|MIN|SUM(<Өрнек>)]   

 

Мұнда ALL|DISTINCT параметрлері қандай жазулар өңделіп жатқанын көрсетеді: ALL барлық жазуларды өңдейді, DISTINCT қайталанған жазуларды өшіреді.

TOP n өңделі жатқан жазулардың санын анықтайды,  егер PERCENT көрсетілген болса, онда  n жалпы жазулардың пайызын көрсетеді. <Өрістер тізімі> - мұнда кестедегі көрсетілетін өрістер үтір арқылы жазылады.

Ескерту:

1)  егер әртүрлі кестелердегі көрінетін өрістердің аттары қайталанбаса, онда біз өрістерді атамай-ақ, тек қана бағаналарды көрсетсек болады. Егер әр түрлі кестелерден аты бірдей өрістер кескінделсе, кестенің де атын көрсету қажет болады <Өрістің аты>.<Кестенің аты>;

2)  осы жерден өрістерге лақап ат беруге болады <Өріс аты> AS <Лақап ат>;

3)  егер кестеден барлық өрістерді шығару қажет болса, оларды «*» таңбашасымен ауыстыруға болады.

INTO бөлімі. Егер бұл бөлім бар болса, онда сұраныстың нәтижесінің негізінде жаңа кесте құрылады. INTO параметрі - жаңа кестенің аты.

FROM бөлімі. Мұнда жаңа сұранысқа қатысатын кестелер мен сұраныстар үтір арқылы жазылады.

Ескерту: FROM бөлімінде сондай-ақ күрделі байланыстарды беруге болады, мысалы бір кестенің өрісінің басқа кестенің бірнеше өрісімен байланысы. Бұл жағдайда FROM бөлімі келесі түрге ие болады:

FROM <Кесте1> INNER JOIN <Кесте2>

ON <Кесте1>.<өріс1> оператор <Кесте2>.<өріс2> … 

Мұнда  <өріс1> және <өріс2> арқылы екі кесте бір-бірімен байланыс орнатады. Осындай байланыс орнататын INNER JOIN бөлімдері өте көп болуы мүмкін.

WHERE бөлімі. Берілген бөлімді қарапайым сұраныстарды құру үшін қолданады. Біздің жағдайда шарт ретінде байланыстырушы өрістерді көрсетеміз. Немесе бұл бөлімді сүзгілерді құру үшін қолданады. Мұнда таңдау шарты көрсетіледі. Таңдау шарттарында біз стандартты NOT, OR, AND логикалық операторларын қолдана аламыз.

Ескерту: өзінің стандартты түрінде сұраныстар тек статикалық сүзгілерді құра алады, бірақ динамикалықты емес. Динамикалық сүзгілерді құру үшін сақталатын процедуралар қолданылады.

GROUP BY  бөлімі сұраныстағы жазулардың тобы өрісін анықтайды.

ORDER BY  бөлімі сұраныстағы жазулардың сұрыптау өрісін анықтайды. Егер ASC параметрі көрсетілген болса, сұрыптау өсу бойынша жүргізіледі, егер DESC болса – кему бойынша. Үнсіз келісім бойынща өсу ретімен реттейтін сұрыптау қолданылады.

COMPUTE бөлімі сұраныстар бойынша қорытынды есептеулерді шығаруға мүмкіндік береді. Келесі есептеулер түрі болуы мүмкін: AVG – орташа параметр; COUNT – мәні NULL-ге тең емес параметрдің мәндерінің саны; MAX және MIN – параметрдің максимальды және минимальды мәндері; SUM – параметрдің барлық мәндерінің қосындысы. Параметр ретінде әдетте сұранысқа қатысатын кестелердің  қандай да бір өрістері болады.

Мысал: берілген сұраныс Қызметкерлер және Қызметтер кестелерін Код өрісі бойынша байланыстырады. Орындалу кезінде екі кестедегі қызметкерлердің алғашқы 20 пайызын көрсетеді. Қызметкерлер кестесінің барлық өрістері көрсетіледі, ал Қызметтер кестесінен тек қана қызмет өрісі көрсетіледі. Нәтижесінде көрсетілген қызметкерлердің саны шығарылады.

SELECT TOP 20 PERCENT *.Қызметкерлер, Қызмет.Қызметтер

FROM Қызметкерлер, Қызметтер WHERE Код. Қызметкерлер = Код. Қызметтер COMPUTE COUNT (ТАӘ, Қызметкерлер)   

Мысал: берілген сұраныс Операциялар кестесінен Ай өрісінің мәні «Мамырға» тең барлық жазуларды шығарады. Нәтижесінде деректер операция өрісі бойынша топталынады және операцияның қосындысы бойынша сұрыпталады. Нәтиженің соңында мамыр айы үшін таңдалған операциялардың жалпы қосындысы шығады. Берілген сұраныстың нәтижелері «Мамыр айындағы келіссөздер» кестесінде сақталады.

SELECT ALL Операция, Сумма INTO [Мамыр айындағы келіссөздер]

FROM Операциялар WHERE Ай = ‘Мамыр’ GROP BY Операция

ORDER BY Қосындысы COMPUTE SUM (Қосындысы)   

Ескерту: берілген сұраныста белгілеу кезінде кестенің өрістерінің атаулары көрсетілмейді, себебі бір ғана кесте қолданылды.

SELECT операторының көмегімен есептеулер жүргізу. Ішкі функциялар.

SELECT операторы кестелерді байланыстыру мен деректерді таңдаудан басқа есептеулер жүргізуге де қолданыла алады. Бұл жағдайда оның синтаксисі келесідей болады:

SELECT <Өрнек>   

мұндағы <өрнек> - қандай да бір математикалық өрнек немесе функция. Өрнектің  стандартты түрі бар (Visual Basic-тегідей), ол өзіне сервердің ішкі функцияларын қоса алады.

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

SQL Serverде топқа бөлудің келесідей ішкі функциялары бар:

Математикалық функциялар:

-     ABC (numeric) – сан модулі;

-     ACOS/ASIN/ATAN (Float) – радиандағы арккосинус, арксинус, арктангенс;

-     COS/SIN/TAN/COT (Float) – косинус, синус, тангенс, котангенс;

-     CEILING(Numeric) – ең кіші бүтін сан, жақшадағы параметрден үлкен немесе оған тең;

-     DEGREES (Numeric) – радианды градусқа түрлендіреді;

-     EXP(Float) – экспонента, ех;

-     FLOOR(Numeric) – ең кіші бүтін сан, numeric өрнегінен кіші немесе оған тең;

-     LOG(Float) – натуралды логарифм ln;

-     LOG10(Float) – ондық логарифм log10;

-     PI() – пи саны;

-     POWER (Numeric,y) – Numeric өрнегін у дәрежесіне шығарады;

-     RADIANS(Numeric) – градусты  радианға түрлендіреді;

-     RAND() – нөл мен бірдің арасында орналасқан кездейсоқ санды деректердің Float түріне ауыстырады;

-     ROUND(Numeric, Ұзындығы) – Numeric өрнегін берілген ұзындыққа дейін жуықтайды (үтірден кейінгі таңбалардың саны);

-     SIGN (Numeric) – санның +/- таңбасын немесе нөлді шығарады;

-     SQUARE (Float) – Float санының квадратын есептейді;

-     SQRT(Float) – Float санының квадраттық түбірін есептейді.

Математикалық функцияларды қолданудың мысалдары:

-     SELECT ABC(-10) нәтиже 10

-     SELECT SQRT (16) нәтиже 4

-     SELECT ROUND (125.85,0) нәтиже 126

-     SELECT POWER (2,4) нәтиже 16

Ескерту: функциялардың параметрлері ретінде оларға сәйкес мәліметтердің түрін көрсетеміз.

Жолдық функциялар. Жолдық функциялар бір немесе бірнеше жолдармен операциялар орындауға мүмкіндік береді:

-     'Жол1'+ 'Жол2' Жол1-ді  Жол2-ге қосу;

-  ASCII(Char) Char өрнегінің ең сол жағындағы таңбасының ASCII кодын қайтарады;

-     CHAR(Int)  Int өрнегіндегі ASCII кодына сәйкес таңбаны шығарады ;

-     CHARINDEX(Үлгі, Өрнек)  Үлгінің Өрнекте қайда тұрғанын шығарады;

-     DIFFERENCE(Өрнек 1, Өрнек 2)  екі өрнекті салыстырады, 0-ден 4-ке дейінгі сандарды шығарады (0 – өрнектер мүлде әртүрлі, 4 – өрнектер толығымен ұқсайды). Екі өрнектің де деректерінің түрі Char;

-     LEFT(Char, Int)  Char Int жолынан сол жағындағы таңбаларды шығарады;

-     RIGHT(Char, Int)  Char Int жолынан оң жағындағы таңбаларды шығарады;

-     LTRIM(Char)  Char жолынан сол жағындағы бос орындарды жояды;

-     RTRIM(Char Char жолынан оң жағындағы бос орындарды жояды;

-     WCHAR(Int)  Int өрнегін Unicode форматында шығарады;

-     REPLACE(Жол1, Жол2, Жол3) Жол1-де Жол2-нің барлық  элементтерін Жол3-тің элементтеріне ауыстыру;

-     REPLICATE(Char, Int)  Char жолын Int рет қайталайды;

-     REVERSE(Сhar)  Char жолының инверсиясын жүргізеді, яғни таңбаларды кері бағытта қояды;

-     SPACE(Int)  бос орындардың Int шығарады;

-     STR(Float)  Float санын жолға ауыстырады;

-     STUFF(Өрнек1, Басы, Ұзындығы, Өрнек2) Өрнек1-ден Басы  таңбасынан бастап Ұзындық параметріне тең  таңбалар санын жояды, оның орнына  Өрнек2-ні қояды;

-     SUBSTRING(Өрнек, Басы, Ұзындығы) Өрнектен  Басынан бастап берілген Ұзындықтағы жол шығарылады;

-     UNICODE(Char) Char жолындағы алғашқы таңбаның кодын Unicode форматында шығарады;

-     LOWERC(Char) Char жолын кіші әріптерге ауыстырады;

-     UPPER(Char) Char жолын бас әріптерге ауыстырады.

Жолдық функцияны қолданудың мысалдары:

-     SELECT ASCII('G')  -  нәтиже 71,

-     SELECT LOWER(‘ABC’)   - нәтиже abc,

-     SELECT Right(‘ABCDE,3’)   - нәтиже CDE,

-     SELECT REVERCE('МИР')  - нәтиже РИМ.

Ескерту. Барлық жолдық функцияларда түрі Char болатын өрнектің мәні бірлік тырнақшаларға алынады.

Күн функциялары. Кейбір күн функцияларында арнайы таңбалармен кодталатын күндердің бөлігі қолданылады:

-     dd – күндердің саны (1-ден 31-ге дейін);

-     dy –  жылдың күні (1-ден 366-ға дейінгі сан);

-     hh – сағаттың мәні (0-23);

-     ms – секундтардың мәні (0-ден 999-ға дейін);

-     mi – минуттардың мәні (0-59);

-     qq – мән (1-4);

-     mm –айлардың мәні (1-12);

-     ss – секундтардың мәні (0-59);

-     wk – жылдағы апталардың сандарының мәні;

-     dw – апта күндерінің мәні, апта жексенбіден басталады (1-7);

-     yy – жылдардың мәні (1753 -999).

Күн функциялары күндермен немесе уақытпен жұмыс істеуге арналған.  Күн функцияларының келесідей түрлері бар:

-     DATEADD(бөлік, сан, date)  date күніне санға көбейтілген күннің бөлігін қосады;

-     DATEDIFF(бөлік, date1, date2)  date1 және date2  арасындағы бөліктер санын шығарады;

-     DATENAME(бөлік, date)  берілген күнге күннің таңбалық мәндерін (апта күндерінің атауы) шығарады;

-     DATEPART(бөлік, date)  берілген күннен күн бөлігінің сандық мәнін шығарады (айдың нөмірі);

-     DAY(date) берілген уақыттағы күндердің санын шығарады;

-     MONTH (date) берілген уақыттағы айлардың санын шығарады;

-     YEAR(date)  берілген уақыттағы жылдардың санын шығарады;

-     GETDATE()  компьютерде орнатылған ағымдағы уақытты көрсетеді;

Ескерту: күндер Америкалық форматта шығарылады: ай/күн/жыл.

Күндермен жұмыс істеу функциясының мысалдары:

-     SELECT DATEADD(dd,5,11/20/07)  - нәтиже Nov/25/2007;

-     SELECT DATEDIFF(dd,11/20/07, 11/25/07) – нәтиже 5 күн;

-     SELECT DATENAME(mm, 11/20/07) -  нәтиже November;

-     SELECT DATEPART(mm, 11/20/07) -  нәтиже 11.

Ескерту: SELECT операторының өрнегінде салыстыру операцияларын қолдануға болады. Нәтижесінде не ақиқат TRUE, не жалған FALSE болады. Келесі операторларды қолдануға болады: =, <, >, >=, <=, <>, !<(кіші емес), !>(үлкен емес), !=(тең емес). Операцияның дәрежесі дөңгелек жақшамен беріледі.  

Жүйелік функциялар. Жүйелік функциялар деректер қоры және оның құрамы туралы ақпарат алуға арналған. SQL серверде келесі жүйелік функциялар бар:

-     COL_LENGTH(кесте, өріс)  өрістің енін шығарады;

-     DATALENGTH(өрнек)  өрнектің ұзындығын шығарады;

-     GETAHSINULL(ДҚ аты)  NULL мәнін дерек қорда қолдануға болатындығын я болмайтындығын шығарады;

-     IDENTINCR(кесте)  кестедегі санауыш өрісінің ұлғаю қадамын шығарады;

-     IDENT_SEED(кесте)  кестедегі санауыш өрісінің алғашқы мәнін шығарады;

-     ISDATE(өрнек)  өрнек күн болса бірді шығарады, болмаса нөлді шығарады;

-     ISNUMERIC(өрнек)  өрнек сан болса бірді шығарады, болмаса нөлді шығарады;

-     NULIFF(өрнек1, өрнек2) егер өрнек1  өрнек2-ге тең болса нөлді шығарады.

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

-     AVG(өріс) – өрістің орташа мәнін шығарады;

-     COUNT(*) – кестедегі жазулардың санын шығарады;

-     COUNT(өріс) – өрістің барлық мәндерінің санын шығарады;

-     MAX(өріс) – өрістің максимальды мәнін шығарады;

-     MIN(өріс) – өрістің минимальды мәнін шығарады;

-     STDEV(өріс) – өрістің барлық мәндерінің орташа квадраттық ауытқуларын шығарады;

-     STDEVP(өріс) – өрістің әртүрлі мәндерінің орташа квадраттық ауытқуларын шығарады;

-     SUM(өріс) – өрістің барлық мәндерінің қосындысын шығарады;

-     TOP n [Percent] – кестенің алғашқы n жазуларын шығарады, немесе кестедегі жазулардың  n% шығарады;

-     VAR(өріс) – өрістің барлық мәндерінің дисперсиясын шығарады;

-     VARP(өріс) – өрістің әр түрлі мәндерінің дисперсиясын шығарады.

Агрегатты функцияларды қолданудың мысалдары:

-     SELECT AVG(жас) FROM Студент – «Студент» кестесінен студенттердің орташа жасын шығарады.

-     SELECT COUNT(ТАӘ) FROM Студент –«Студент» кестесінен әр түрлі ТАӘ сандарын шығарады.

-     SELECT Top 100 * FROM Студент – «Студент» кестесінен алғашқы 100 студентті шығарады.

 «Microsoft SQL Server 2008» объектілер шолушысында дерек қордың барлық сұраныстары  «Views»  папкасында орналасқан (3.1 суретті қараңыз).

 «Студент» және  «Мамандықтар» кестелерін «Мамандық коды» өрісі бойынша байланыстыратын «Студент+Мамандықтар» сұранысын құрайық. Жаңа сұранысты құру үшін «Students» дерек қор-ның объектілер шолушысында «Views» папкасына тінтуірдің оң жақ батырмасымен шерту қажет. Содан кейін пайда болған терезеде «New View» пунктін таңдаймыз. «Add Table» (Кесте қосу) терезесі пайда болады (4.1 суретті қараңыз).

04-02

4.1 сурет - «Add Table» (Кесте қосу) терезесі

Жаңа сұранысқа «Студент» және «Мамандықтар» кестелерін қосамыз. Ол үшін «Add Table» терезесінде «Студент»  кестесін белгілеңіз де, «Add» (Қосу) батырмасын басыңыз. Тура солай «Мамандықтар» кестесін де қосыңыз. Сұранысқа қатысатын кестелерді қосқаннан кейін «Add Table» терезесін жабыңыз. Сұраныстар конструкторының терезесі пайда болады (4.2 суретті қараңыз).

04-03sm

4.2 сурет - Сұраныстар конструкторының терезесі

 

Ескерту: сұраныстар конструкторының терезесі келесі панельдерден тұрады :

1)   Деректер сұлбасы сұранысқа қатысатын кестелер мен сұраныс-тардың өрістерін көрсетеді, көрінетін өрістерді таңдауға, арнайы байланыс өрістері арқылы сұраныстың қатысушыларының арасында байланыс орнатуға мүмкіндік береді.  Бұл панель саймандар бетіндегі келесі батырма арқылы қосылып өшіріледі

                                                       04-pic01.

2)   Көрсетілетін өрістердің кестесі кескінделетін өрістерді көрсетеді («Column» бағанасы), оларға лақап ат беруге мүмкіндік береді («Alias» бағанасы), бір немесе бірнеше өріс бойынша жазуларды сұрыптаудың түрін таңдауға мүмкіндік береді («Sort Type» бағанасы), сұрыптаудың ретін беруге мүмкіндік береді («Sort Order» бағанасы), сүзгідегі жазуларды таңдаудың шарттарын беруге мүмкіндік береді («Filter» және «Or…» бағаналары). Сонымен қатар бұл кесте сұраныста көрінетін өрістердің ретін ауыстыруға мүмкіндік береді. Бұл панель саймандар бетіндегі келесі батырма арқылы қосылып өшіріледі

                                                        04-pic02.

3)   SQL коды.   T-SQL тілінде құрылатын сұраныстың коды. Бұл панель саймандар бетіндегі келесі батырма арқылы қосылып өшіріледі

                                                      04-pic03.

4)   Нәтиже. Сұраныс орындалғаннан кейінгі оның нәтижесін көрсетеді.  Бұл панель саймандар бетіндегі келесі батырма арқылы қосылып өшіріледі

                04-pic04.

Ескерту: егер  «Add Table» терезесін жаңа кестелер мен сұраныстар қосу үшін ашу қажет болса, онда ол үшін «Microsoft SQL Server 2008» саймандар бетіндегі келесі батырманы басу қажет

       04-pic05.

Ескерту: егер деректер сұлбасынан кестені немесе сұранысты жою қажет болса, тінтуірдің оң жақ батырмасымен шерту қажет және пайда болған терезеде  «Remove» (Жою) пунктін таңдау қажет.  

Енді «Студенттер» және «Мамандықтар»  кестелерін «Мамандық коды» байланыс өрісі бойынша байланыстыруға көшейік. Байланысты құру үшін деректер сұлбасында «Мамандықтар»  кестесінің «Мамандық коды» өрісін «Студенттер» кестесінің тура сондай өрісіне тінтуірмен ауыстыру қажет. Байланыс сынық сызық секілді көрінеді (4.2 суретті қараңыз).

Ескерту: егер байланысты жою қажет болса, онда оның үстінен тінтуірның оң жақ батырмасымен шертіп, пайда болған терезеде «Remove» пунктін таңдау қажет.

Кестелерді байланыстырғаннан кейін T-SQL кодының облысында өңделеиін сұраныстың T-SQL коды кескінделеді.

Сұраныс орындалғанда көрінетін өрістерді анықтап алайық. Көрінетін өрістер деректер сұлбасында қанатшамен белгіленеді, сондай-ақ кестеде де кескінделеді.  Өріс сұраныстың орындалуы кезінде көріну үшін деректер сұлбасында тінтуірмен бос квадраттың үстінен шерту қажет. Квадратта қанатша пайда болады.

Ескерту: егер өріс сұраныстың орындалуы кезінде көрінбеуі үшін деректер сұлбасындағы өріс атының сол жағындағы қанатшаны алып тастау қажет. Ол үшін жай ғана тінтуірмен қанатшадан шертіңіз. Егер кестенің барлық өрістерін көрсету қажет болса, «* (All Columns)» (Барлық өрістер) пунктінің сол жағына қанатшаны орнату қажет.

Біздің сұраныстың көрінетін өрістерін 4.2-суретте көрсетілгендей анықтаңыз.

Осымен жаңа сұранысты баптау аяқталды деп санауға болады. Сұранысты сақтаудың алдында оны орындау арқылы жұмыс қабілеттілігін тексереміз. Сұранысты іске қосу үшін саймандар бетіндегі мына батырманы басамыз

04-pic06.

Немесе сұраныстар конструкторының кез келген жерінде тінтуірнің оң жақ батырмасымен шертеміз және пайда болған мәзірде «Execute SQL» (SQL орындау) пунктін таңдаймыз. Сұраныстың орындалу нәтижесі кесте түрінде нәтиже аймағында пайда болады.  Егер сұраныс дұрыс орындалса, оны сақтау қажет. Сұранысты сақтау үшін сұраныстар конструкторының терезесін жабамыз. Сұранысты сақтау туралы сұрағы бар терезе пайда болады (4.3 суретті қараңыз).

04-04

4.3 сурет -  Сұранысты сақтау арналған конструктор терезесі

 

04-06sm

4.4 сурет - Дерек қорының барлық объектілерді шолушы терезесі

 

Берілген терезеде «Yes» (Иә)  батырмасын басу қажет. «Choose Name» (Есімді таңдаңыз) терезесі пайда болады. Берілген терезеде жаңа сұраныстың «Сұраныс Студент+Мамандықтар» атын береміз және «Ok» батырмасын басамыз. Сұраныс «Students» дерек қорның «Views» папкасында объектілер шолушысында пайда болады (4.4 суретті қараңыз).

Құрылған сұраныстың жұмыс қабілеттілігін тексеру үшін жаңа құрылған «Сұраныс Студент + Мамандықтар» сұранысын сұраныстар конструкторынсыз орындаймыз. Сақталынып қойылған сұранысты орындау үшін тінтуірнің оң жақ батырмасымен сұранысты шертеміз және пайда болған терезеде «Select top 1000 rows» (Алғашқы 1000 жазуды көрсету) пунктін таңдаймыз. Нәтиже 4.4 суретте көрсетілген. «Сұраныс Студент +Бағалар»  сұранысын құруға көшейік. «Students» дерек қорының объектілер шолушысында тінтуірнің оң жақ батырмасымен папкасын шертіңіз, одан кейін пайда болған мәзірде «New View» пунктін таңдаңыз. «Add Table» терезесі пайда болады (4.1 суретті қараңыз).

 

04-07sm

4.5 сурет - Сұраныстар конструкторының  бірінші терезесі

 

«Сұраныс Студент+Бағалар»  сұранысында біз «Студент» және «Бағалар» кестелерін байланыс «Студенттің коды» өрісі бойынша байланыстырайық. Осыдан «Add Table» терезесінде жаңа сұранысқа «Студент» және «Бағалар» кестелерін қосамыз.  Берілген сұраныста «Бағалар» кестесі «Сабақтар» кестесімен бір ғана өріс бойынша емес, үш өріс бойынша байланысады, яғни «Бағалар» кестесінің «Сабақ коды1», «Сабақ коды2» және «Сабақ коды3» өрістері «Сабақтар» кестесінің «Сабақ коды» өрісімен байланысқан. Сондықтан сұранысқа «Сабақтар» кестесінің үш  данасын қосамыз. Соңында сұранысқа «Студент», «Бағалар» кестелері және «Сабақтар» кестесінің үш данасы қатысуға тиісті (сұраныста олар  «Сабақтар», «Сабақтар_1» және «Сабақтар_2» деп аталатын болады). Кестелерді қосқаннан кейін «Add Table» терезесін жабыңыз, сұраныстар конструкторының терезесі пайда болады.

Сұраныстар конструкторының терезесінде кестелер арасында байланысты орнатыңыз және 4.5 суретте көрсетілгендей кескінделетін өрістерді анықтаңыз.

 

04-08sm

4.6 сурет - Сұраныстар конструкторының  екінші терезесі

 

04-10sm

4.7 сурет - Сұраныс нәтижесінің терезесі

 

Енді сұраныстағы көрінетін өрістердің ретін ауыстырайық. Ол үшін кестеде өрістерді тінтуірмен жоғары немесе төмен, жолдың тақырыбының («Column» бағанасының алдындағы бағана) арғы жағына апару қажет. Көрінетін өрістерді орналастырыңыз да, әрбір өріске лақап аттарды беріңіз. 4.5 суретте көрсетілгендей «Alias» бағанасына лақап аттарды жазыңыз.

Жаңа сұраныстың жұмыс қабілеттілігін оны орындау арқылы тексеріңіз. Өрістің шынайы аттары олардың лақап аттарымен ауыстырылғанына назар аударыңыз. Сұраныстар конструкторының терезесін жабыңыз. Пайда болған  «Choose Name» терезесінде жаңа сұраныстың атын «Сұраныс Студент +Бағалар»  деп беріңіз.

Жаңа сұраныстың жұмыс қабілеттілігін конструкторсыз тексеріп көріңіз. Ол үшін сұранысты іске қосыңыз. «Сұраныс Студент+Бағалар»  сұранысының нәтижесі  4.7 суретте көрсетілгендей болуға тиісті.

Сүзгілерді құруды қарастырайық. «Сұраныс Студент + Мамандықтар» сұранысының негізінде әртүрлі мамандықтардың студенттерін көрсететін сүзгілерді құрайық. Жаңа сұраныс құрыңыз. Ол «Сұраныс Студент + Мамандықтар»  сұранысының негізінде құрылғандықтан, «Add Table» терезесінде «Views» қосымшасына өтіңіз де, жаңа «Сұраныс Студент+ Мамандықтар» сұранысын құрыңыз (4.8 суретті қараңыз). Одан кейін «Add Table» терезесін жабыңыз.

 

04-11

4.8 сурет - Жаңа сұраныс терезесі

 

Сұраныстардың конструкторының пайда болған терезесінде көрсетілетін өріс ретінде «Сұраныс Студент+Мамандықтар»  сұранысының барлық өрісін анықтаңыз (4.9 суретті қараңыз).

Ескерту: сұраныстың барлық өрістерін көрсету үшін бұл жағдайда біз «* (All Columns)» пунктін пайдалана алмаймыз (Барлық өрістер). Сондай-ақ жазулардың сұрыптауын жүргізу мүмкін емес.

Сүзгіде жазуларды таңдаудың критерийін орнатайық.  Біздің сүзгі тек қана «ММ» мамандығына ие студенттерді қана көрсетсін делік. Ол үшін кестедегі «Filter» бағанасында шарт беру қажет. Біздің жағдайда шарт «Мамандықтың атауы» өрісіне беріледі. «Мамандықтың атауы»  жолында, «Filter» бағанасында таңдаудың келесі шартын беру қажет «='ММ'» (4.9 суретті қараңыз).

04-12sm

4.9 сурет - Сұраныстар конструкторының  үшінші терезесі

 

Сүзгідегі жазуларды сұрыптауды орнатайық. Сүзгі орындалған кезде жазулардың сұрыпталуы «күндізгі оқу бөлімі» өрісі бойынша өсу ретімен, одан кейін  «Курс» өрісі бойынша кему ретімен орындалсын. Жазулардың сұрыпталуы өсу ретімен жүруі үшін «Күндізгі оқу бөлімі» өрісінде, «Sort Type» (Сұрыптау түрі) бағанасында «Ascending» (Өсуі бойынша) шартын беріңіз, ал «Курс»  өрісінің жолында «Descending» (Кемуі бойынша) шартын беріңіз. «Күндізгі оқу бөлімі» өрісі үшін сұрыптау тәртібін анықтау үшін «Sort Order» (Сұрыптау тәртібі) бағанасында 1-ді қойыңыз, ал «Курс» өрісі үшін 2-ні қойыңыз (4.9 суретті қараңыз), яғни сұраныс орындалғанда жазулар алдымен «Күндізгі оқу бөлімі» өрісі бойынша, одан кейін «Курс» өрісі бойынша сұрыпталады.

Ескерту: таңдау шарттарын және жазуларды сұрыптауды орнатқаннан кейін деректер сұлбасына сәйкес өрістерге қарама-қарсы арнайы белгілер пайда болады.

04-pic08  және   04-pic09

Белгілері өсу және кему реті бойынша сұрыптауды білдіреді, ал белгісі таңдау шартының бар екендігін көрсетеді.

04-pic10

Сүзгідегі жазуларды сұрыптауды орнатқаннан кейін оны орындау арқылы жұмыс қабілеттілігіне тексереміз. Нәтиже 4.9-суретте көрсетілгендей болуы тиіс. Сұраныстар конструкторы терезесін жабыңыз. Жаңа сүзгінің атын «Choose Name» терезесінде «Сүзгі ММ» деп беріңіз және «Ok» батырмасын басыңыз (4.10 суретті қараңыз).

04-13

4.10 сурет - Жаңа сүзгіні анықтау терезесі

 

 «Сүзгі ММ» сүзгісі объектілер шолушысында пайда болады. Құрылған сүзгіні сұраныстар конструкторынсыз қолданыңыз. Нәтижесі 4.11 суретте көрсетілгендей болуға тиісті.

04-14sm

4.11 сурет - Сұраныстар конструкторының  төртінші терезесі

 

Басқа да мамандықтарды көрсететін сүзгілерді құрыңыз. Берілген сүзгілер «Сүзгі ММ» сүзгісі секілді құрылады. Таңдаудың шартының бір ғана айырмашылығы «Мамандықтың аты» өрісіндегі шарт «='ММ'» емес,  «='ПИ'», «='СТ'», «='МО'» немесе «='БУ'» болуы қажет. Сүзгілерді сақтауда олардың аттарын таңдаудың шарттарына сәйкес береміз, яғни «Сүзгі ПИ», «Сүзгі СТ», «Сүзгі МО» немесе «Сүзгі БУ». Құрылған сүзгілерді жұмыс қабілеттілігіне тексеріңіз.

Енді «Сұраныс Студент+ Мамандықтар» сұранысының негізінде бөлек ата-аналары бар студенттерді көрстететін сүзгілерді құрайық. Алдымен ата-анасынан тек «Әке» бар студенттер үшін сүзгіні құрайық. Жаңа сұранысты құрыңыз да, оған «Сұраныс Студент + Мамандықтар» сұранысын қосыңыз. «Add Table» терезесін жапқаннан кейін сұраныстың барлық өрістерін көрінетіндей етіңіз.

Көрінетін өрістердің кестесінде «Ата-ана» жолында, «Filter» бағанасында «='Әке'» шартын беріңіз. Сүзгінің жұмысын оны орындау арқылы тексеріңіз. Сүзгіні орындау нәтижесінде сұраныстар конструкторының терезесі пайда болуы тиіс. Сұраныстар конструкторы терезесін жабыңыз. «Choose Name» терезесінде жаңа сүзгінің атын  «Сүзгі Әке» деп беріңіз.  «Сүзгі Әке» сүзгісін сұраныстар конструкторынсыз қолданыңыз. Нәтижесі сұраныстар конструкторының терезесінде көрсетіліуі тиісті.

Студенттердің ата-аналары туралы басқа нұсқалары бар сүзгілерді құрыңыз. Берілген сүзгілер «Сүзгі Әке» сүзгісіне ұқсас құрылады. Таңдаудың шартының бір ғана айырмашылығы «Ата-аналар» өрісіндегі шарт «='Әке'» емес, «='Ана'», «='Әке, Ана'» немесе «='Жоқ'» болуы қажет. Сүзгілерді сақтауда олардың аттарын таңдаудың шарттарына сәйкес береміз. Құрылған сүзгілерді жұмыс қабілеттілігіне тексеріңіз.

Енді күндізгі және сыртқы оқу бөлімінің студенттерін көрсететін сүзгілерді құрайық. Күндізгі оқу бөлімінен бастайық. Жаңа сұранысты құрыңыз да, оған «Сұраныс Студент+Мамандықтар» сұранысын қосыңыз. Бұрынғыдай сұраныстың барлық өрістерін көрінетіндей етіңіз.

Көрінетін өрістер кестесінде «Filter» бағанасында, «күндізгі оқу бөлімі»  өрісінің жолында «=1»-ге таңдау шартын беріңіз.

Ескерту: «Күндізгі оқу бөлімі» өрісі логикалық өріс болып табылады, ол «True»  немесе «False» мәндерін қабылдай алады. Осы мәндердің синонимі ретінде сәйкесінше 1  мен 0 қолдануға болады.

Курс өрісімен өсу бойынша сұрыптаңыз, «Sort Type» бағанасында «Ascending» мәнін беріңіз. Сүзгіні оны орындау арқылы тексеріңіз.

Сұраныстар конструкторының терезесін жабыңыз. Сүзгіні  «Күндізгі оқу бөлімі сүзгісі» деген атпен сақтаңыз. «Күндізгі оқу бөлімі сүзгісі»  объектілер шолушысында пайда болғаннан кейін сүзгіні сұраныстар конструкторынсыз орындаңыз. «Күндізгі оқу бөлімі сүзгісінің» орындалу нәтижесі сұраныстар конструкторының терезесінде көрсетілуі тиісті.

Сыртқы оқу бөлімінің студенттерін көрсететін сүзгіні құрыңыз. Берілген сүзгі тура «Күндізгі оқу бөлімі сүзгісі» секілді құрылады. Таңдау шартының бір ғана айырмашылығы «Күндізгі оқу бөлімі» өрісіндегі шарт «=1» емес, «=0» болуы қажет. Сүзгіні сақтарда оның атын «Сыртқы оқу бөлімі сүзгісі» деп беріңіз. Құрылған сүзгіні жұмыс қабілеттілігіне тексеріңіз.

 

5 Зертханалық жұмыс №5. Сақталынатын процедуралардың көмегімен динамикалық сұраныстарды құру

 

Жұмыстың мақсаты: Сақталынатын процедуралардың көмегімен динамикалық сұраныстарды құрудың үрдісін зерттеу.

 

5.1 Зертханалық жұмысқа тапсырмалар

 

1. Үш санның орташасын есептейтін процедураны құру.

2. «Студенттер» кестесіндегі студенттерді оларды «ТАӘ»-ы бойынша таңдау үшін сақталынатын процедураны құру.

 

5.2 Зертханалық жұмысты орындауға арналған әдістемелік нұсқаулар

 

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

Ескерту: SQL серверде сақталынатын процедуралар сервердің жағында орындалатын динамикалық сұраныстарды іске асырады.

SQL тілінің командаларының көмегімен сақталынатын процедура-ларды құруды қарастырайық. Жұмыстық дерек қор «Object Explorer» панелінің сақталынатын процедураларын көрсету үшін «Stored Procedures» пунктін бөліп алу керек. SQL тілінің командаларының көмегімен жаңа процедураларды құру үшін  ЛКМ мен аспаптар бетіндегі батырманы шерту керек

http://www.intuit.ru/department/se/pisqlvs2008/9/05-pic01.jpg 

Сервердің жұмыс аймағының терезесінде жаңа қосымша SQLQuery1.sql  пайда болады, мұнда жаңа процедураның кодын теру қажет, оның синтаксисі келесідей:

CREATE PROCEDURE <процедура аты>

[@<Параметр1> <Тип1>[=<мән1>],

@<Параметр2> <Тип2>[=<мән2>], …]

[WITH ENCRYPTION]

AS < SQL Командалары >   

мұндағы:

-  Процедура аты – құрылып жатқан сақталынатын процедура аты.

-  Параметр1, Параметр2, … - процедураға жіберілетін параметрлер.

-  Мән1, Мән2, … - үнсіздік бойынша берілген параметрлер мәні.

-  Тип1, Тип2, … - параметрлердің деректер типі.

-  WITH ENCRYPTION – деректерді шифрлауды қосады.

-  SQL Командалар – процедураларды жібергенде қолданылатын SQL сұраныс.

Ескерту: SQL сұраныс өзіне параметрлерді қосады, егер параметрлер қандай да бір жолдармен не өрнекпен салыстырылса, онда олар осы жолдар не өрнектердің деректер типімен деректер типі бірдей болуы тиіс.

Ескерту: процедура құрылған соң «Object Explorer» бетіндегі ағымдағы дерек қорының Stored Procedures бөліміне орналастырылады. Егер екі рет ЛКМ процедурасын шертсек, ол «SQLQuery» қосымшасында өзгертілу үшін ашылады.

Сақталынатын процедура туралы ақпаратты қарау үшін, мына команданы орындау керек:

EXEC SP_HELPTEXT < процедура аты>

Сақталынатын процедуралар келесі командамен жіберіле алады

   EXEC < процедура аты > [<Параметр1>, <Параметр2>, …]  

 Мұндағы:

-  < процедура аты > - Орындалып жатқан процедура аты;

-  Параметр1, Параметр2, … - параметрлер мәні.

Мысал: Орташа балы берілген өлшемнен жоғары студенттердің атын шығаратын сақталынатын процедура құру.

CREATE PROCEDURE Ортабалл

@X Real

AS

SELECT * FROM Студенттер WHERE (Бага1+ Бага2+ Бага3)/3>@X 

Жоғарыда терілген процедураны шақыру командасы келесідей болады:

EXEC Ортабалл 4

Команда орташа балы 4-тен жоғары барлық студенттерді шығарып береді.

Сақталынатын процедуралармен жұмыс істеу үшін объектілерді шолушыда  дерек қор «Students» та  «Programmability/Stored Procedures» папкасын бөліп алу керек (5.1 суретке қараңыз).

5.1 сурет - Дерек қорының барлық кестелерінің объектілерін шолушы терезесі

 

Үш санның орташасын есептейтін процедураны құрайық. Жаңа сақталынатын процедураны құру үшін  «Stored Procedures» папкасын ПКМ мен шертіңіз (5.1 суретке қараңыз). Пайда болған мәзірден «New Stored Procedure»  пунктін таңдаңыз. Жаңа сақталынатын процедураның кодының терезесі пайда болады ( 5.2 суретке қараңыз).

5.2 сурет - Процедуралардың құрылымының терезесі

 

Сақталынатын процедураның құрылымы келесідей:

1)  Процедура құрылымының параметрлерінің бапталу аймағы. Процедураның кодын теру кезінде пайдалынатын кейбір құрылымдық  ережелерді баптауға мүмкіндік береді. Біздің жағдайымызда бұл:

-  SET ANSI_NULLS ON - ANSI кодировкасында NULL (бос) мәндерін қолдануды қосады;

-  SET QUOTED_IDENTIFIER ON  идентификаторларды анықтау үшін екілік тырнақшаны қолдануға мүмкіндік береді;

2)  процедура атының (Procedure_Name) және процедураға жіберілетін параметрлердің анықталу аймағы (@Param1, @Param2). Параметрлерді анықтаудың құрылымы (синтаксис) келесідей:

@< параметр аты> <деректер типі> = <үнсіздік бойынша мәндер>     

Параметрлер өзара үтірлермен бөлінеді;

3)  процедура денесінің басы, «BEGIN» қызметтік сөзімен белгіленеді;

4)  процедура денесі, T-SQL сұраныстарының программалау тілінің командаларын құрайды;

5)  процедура денесі соңы, «END» қызметтік сөзімен белгіленеді.

Ескерту: Кодта жасыл түспен түсініктер (комментарийлер) бөлінеді. Олар сервермен  өңделмейді, тек кодқа түсініктеме ретінде қолданылады. Түсініктердің жолдары “–“ таңбасынан басталады. Алдағы уақытта біз кодта түсініктерді көрметпейміз, олар оралып тұрады. Түсініктердің бөлімінің сол жағында “+” таңбасы тұрады, оларды шерту арқылы түсініктерді ашып алуға болады.

Үш санның орташасын есептейтін процедураның кодын терейік, ол 5.3 суретте көрсетілген.

5.3 сурет - Процедуралардың кодтарың теретің терезе

 

Берілген процедура кодын толығырақ қарастырайық:

1)  CREATE PROCEDURE [Үш шаманың орташасы] құрылып жатқан процедура атын «Үш шаманың орташасы» деп анықтайды;

2)  @Value1 Real = 0, @Value2 Real = 0, @Value3 Real = 0  процедураның үш параметрін анықтайды Value1, Value2 және Value3. Берілген параметрлерге бөлшек сандарды иелендіруге болады(деректер типі Real), үнсіздік бойынша мәні 0 ге тең;

3)  SELECT 'Орташа мән'=(@Value1+@Value2+@Value3)/3  орташасын есептейді де «орташа мән» деген жазумен нәтижесін шығарып береді.

4)  Кодтың басқа бөліктері жоғарыда қарастырылды (5.2 суретке қараңыз).

Жаңа процедура құру үшін, жоғарыда келтірілген кодты, мына батырманы басу арқылы орындайық.

(Орындау) аспаптар бетінде. Коды бар терезенің төменгі бөлігінде «Command(s) completed successfully.» хабарламасы шығады. Процедура кодының терезесінің оң жақ жоғары бұрышында орналасқан жабу батырмасын тінтуірмен шерту арқылы, коды бар терезені жабыңыз.

                                                

Құрылған сақталынатын процедураның жұмысқа қабілеттілігін тексерейік. Сақталынатын процедураны жіберу үшін жаңа бос сұранысты жасауымыз керек, мына батырманы басу арқылы орындайық.

.

 

(Жаңа сұраныс) аспаптар бетінде. Бос сұраныспен пайда болған терезеде EXEC командасын теріңіз. [Үш шаманың орташасы] 1, 7, 9 сосын батырманы басыңыз.

Коды бар терезенің төменгі жағында жаңа сақталынатын процедураның нәтижесі шығады: Орташа мән 5,66667 (5.4 суретке қараңыз).

 

 

5.4 сурет - Процедуралардың нәтижесін көруге арналған терезе

 

 

5.5 сурет - Процедуралардың кодтарын теретін терезе

 

Енді «ТАӘ» бойынша кестелерден студенттерді таңдауға арналған сақталынатын процедураны құрайық. Ол үшін жаңа сақталынатын процедураны жоғарыда сипатталғандай құрыңыз, сосын жаңа процедура кілтін  5.5 сурет. те көрсетілгендей теріңіз.

«ФИО бойынша студенттерді көрсету» процедурасының кодын толығырақ қарастырайық (5.5 суретке қараңыз):

1)  CREATE PROCRDURE [ФИО бойынша студенттерді көрсету]  құрылып жатқан процедура атын «ФИО бойынша студенттерді көрсету» деп анықтайды;

2)  @FIO Varchar(50)='' процедураның жалғыз FIO параметрін анықтайды. Параметрге ұзындығы 50 символдан аспайтын айнымалы ұзындықты мәтіндік жолдарды иемдендіруге болады (деректер типі Varchar(50)), үнсіздік бойынша мәні бос жолға тең;

3)  SELECT * FROM dbo.Студент WHERE ФИО=@FIO студенттер кестесіндегі (dbo.Студент) барлық жолдарды көрсету(*), мұнда ФИО жолының мәні FIO параметрінің мәніне тең (ТАӘ=@FIO).

Жоғарыды айтылған кодты орындайық та, жоғарыда жазылғандай коды бар терезені жабайық, сосын сақталынатын процедураның жұмысқа қабілеттілігін тексерейік. Жаңа бос сұраныс құрыңыз. Бос сұраныспен пайда болған терезеде EXEC командасын теріңіз. [ТАӘ бойынша студенттерді көрсету] 'Иванов А.И.' сосын аспаптар бетіндегі батырманы басыңыз.

 

img width=786 height=491 src="is_4.files/image066.jpg"> 

 

 

5.6 сурет - Процедуралардың нәтижесін көруге арналған терезе

 

Коды бар терезенің төменгі жағында «ФИО бойынша студенттерді көрсету» сақталынатын процедурасының нәтижесі шығады (5.6 суретке қараңыз).

Енді күрделірек есепке көшейік. Орташа балы берілгеннен жоғары студенттерді көрсету. Жаңа сақталынатын процедураны құрыңыз да, жаңа процедура кодын  5.7 суреттегідей теріңіз.

 «ФИО бойынша студенттерді көрсету» процедурасының кодын толығырақ қарастырайық (5.7 сурет):

1)  CREATE PROCRDURE [Студенттерді орташа балл бойынша көрсету]  құрылып жатқан процедура атын «Студенттерді орташа балл бойынша көрсету» деп анықтайды;

2) @Grade Real=0 Grade процедурасының параметрін анықтайды. Параметрге бөлшек санды иелендірсек болады (деректер типі Real), үнсіздік бойынша мәні 0-ге тең;

3) SELECT * FROM [Сұраныс Студент+Бағалар] WHERE ([бірінші емтихан бағасы]+[Екінші емтихан бағасы]+[үшінші емтихан бағасы]) /3>@Grade сұраныста «Сұраныс Студент+Бағалар» (Сұраныс Студент+ Бағалар) барлық жолдарды көрсету (*), мұнда орташа балл Grade параметрінің мәнінен жоғары (([бірінші емтихан бағасы]+[Екінші емтихан бағасы]+[үшінші емтихан бағасы])/3>@Grade).

5.7 сурет - Процедуралардың кодтарың теретің терезе

 

Жоғарыды айтылған кодты орындайық та, жоғарыда жазылғандай коды бар терезені жабайық, сосын жоғарыда айтылған сұраныстың жұмысқа қабілеттілігін тексерейік. Ол үшін жаңа бос сұраныс құрыңыз да, EXEC командасын теріңіз. [Студенттерді орташа балл бойынша көрсету] 3.5 сосын оны орындаңыз.

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

Қорытындысында күрделірек есепті шешейік – берілген жастан жасы үлкен студенттерді көрсету. Және де жасы туған күніне байланысты автоматты түрде есептелінетін болады.

Жаңа сақталынатын процедураны құрыңыз да, жаңа процедура кодын 5.9 суреттегідей теріңіз.

 

5.8 сурет - Процедуралардың нәтижесін көруге арналған терезе

 

5.9 сурет - Процедуралардың кодтарын теретін терезе

 

«Жасы бойынша студенттерді көрсету» процедурасының кодын толығырақ қарастырайық (5.9 суретке қараңыз):

1)  CREATE PROCRDURE [Жасы бойынша студенттерді көрсету]  құрылып жатқан процедура атын «Жасы бойынша студенттерді көрсету» деп анықтайды;

4)  @Age int=0  Grade процедурасының параметрін анықтайды. Параметрге бүтін санды қоссақ (иелендірсек) болады (деректер типі int), үнсіздік бойынша мәні 0-ге тең;

2)  ТАӘ, [Сұраныс Студент+Мамандықтар].[Туған күні], 'Жас'= DATEDIFF(yy,[ Сұраныс Студент+Мамандықтар].[Туған күні], GETDATE()) «Сұраныс Студент+Мамандықтар» (FROM [Сұраныс Студент+Мамандық-тар]) сұранысынан «ТАӘ» (ТАӘ) және «Туған күні» жолдары көрсетіледі. ([Сұраныс Студент+Мамандықтар].[Туған күні]), сонымен қатар студенттің жасын жылмен (yy) көрсетеді  ('Жас'),  ол студенттің туған күні мен ағымдағы жылды есептеуден шығады (DATEDIFF (yy,[Сұраныс Студент+ Мамандықтар].[Туған күні], GETDATE())). Одан басқа, «Age»  параметрінде анықталған жастан үлкен студенттердің тізімі шығады. (DATEDIFF(yy, [Сұраныс Студент+Мамандықтар].[Туған күні], GETDATE())>@Age).

Ескерту: Екі мерзімнің арасындағы периодтардың санын есептейтін DATEDIFF функциясының құрылымы келесідей:                     

DATEDIFF(<период>,<Бастапқы дата>, <Соңғы дата>)

«Жасы бойынша студенттерді көрсету» сұранысының кодын орындайық та, кейін жоғарыда айтылғандай коды бар терезені жабайық. Сұраныстың қалай жұмыс істейтінін тексерейік. Ол үшін жаңа бос сұраныс құрыңыз да, EXEC [Жасы бойынша студенттерді көрсету] 26 командасын теріңіз, сосын оны орындаңыз.

 

Әдебиетер тізімі

 

1.  Роберт У., Майкл К., Роберт Р., Фабио Ф., Фармер Д.  SQL Server 2008. Ускоренный курс для профессионалов. Вильямс  – Москва, Санкт- Петербург, Киев, 2008 – 768 с.

2.  Проектирование информационных систем в Microsoft SQL Server 2008 и Visual Studio 2008   http://www.intuit.ru/department/se/pisqlvs2008/.

3.  Стивенс Р, Программирование баз данных. - М.: ООО «Бином-Пресс», 2007 – 384 с.

4.    Найт Б., Пэтел К., Снайдер В., Лофорт Р., Уорт С.  Microsoft SQL Server 2008: руководство администратора для профессионалов. Вильямс – Москва – Санкт-Петербург – Киев, 2008 – 855 c.

5.  Жилинский А. Самоучитель Microsoft SQL Server 2008. БХВ-Петербург, 2009 – 240 с.