Bazasi boshqarish


Download 2.13 Mb.
Pdf ko'rish
bet116/153
Sana20.10.2023
Hajmi2.13 Mb.
#1710944
1   ...   112   113   114   115   116   117   118   119   ...   153
Bog'liq
61dbf61e8b8af1.76566515

Nazorat uchun savollar 


191 
1. Ma’lumоtlar bazasini himoya qilishning qanqay usullarini bilasiz? 
2. Ma’lumotlar bazasida parallel murоjatlarni bоshqarishning maqsadi 
nima? 
3. Loyihalashtirish va ekspluatatsiya deganda nimani tushunasiz? 
4. MB ni himoya qilishning tarkibiy elementlariga nimalar kiradi? 
5. Ma’lumotlar xavfsizligi modellarini tushuntiring. 
6. Ma’lumotlar 
bazasini 
shifrlash 
va 
deshifrlash 
jarayonini 
tushuntiring. 
7. Imtiyozlarni belgilash va bekor qilish jarayoni qanday amalga 
oshiriladi? 
8. GRANT va REVOKE operatorlari nima maqsadda ishlatiladi? 
 
 


192 
XIV BOB. SQL TILIDA FUNKSIYALAR YARATISH 
SQL tilida funksiya va proseduralar yaratish 
SQL tilida proseduralardan foydalanish dasturlar tuzish 
samaradorligini oshiradi. Saqlanuvchi proseduralar (stored protsedure) 
– bu SQL buyruqlar to‘plamidan iborat bo‘lib, bu buyruqlar 
to‘plamini SQL SERVER bir marta kompilyatsiya qiladi. 
Proseduralarning keyingi ishlatilishida saqlangan proseduralar 
kompilyatsiya qilinmaydi. Bu proseduralar xuddi algoritmik tillardagi 
kabi kirish parametrlaridan iborat bo‘lishi ham mumkin. 
Saqlanuvchi proseduralar SQL tilida quyidagi buyruq yordamida 
yaratiladi: 
CREATE PROCEDURE 
[(% birinchi parametr ma’lumoti turi)] …] 
AS SQL-operatorlari; 
Saqlanuvchi proseduralarning ikki turi mavjud: foydalanuvchi 
proseduralari va tizimli proseduralar. 
Foydalanuvchi proseduralari SQL SERVERlarida qo‘llanilib, 
serverni boshqarish, MB va foydalanuchilar haqidagi ma’lumotlarni 
olish uchun ishlatiladi. 
Tizimli proseduralar esa, amaliy dasturlarni bajarish uchun 
yaratiladi. Amaliy dasturlar hech bo‘lmaganda bitta modulni o‘zida 
saqlashi kerak. Modul (MODULE) biror bir algoritmik tilda tuzilgan, 
uzoq muddat saqlanadigan ob’yektdir. 
Modul - modul nomidan (module name), algoritmik til bo‘limidan 
(language clause), modul bo‘limi huquqidan (module authorization 
clause ), kursorlarni tavsiflash (declare cursor) va bir yoki bir nechta 
prosedura (procedure) lardan tashkil topadi. 
Modul sintaksisi quyidagicha: 
 ::=  
 
 
[...] 
< procedure > ... 
::=LANGUAGE{ COBOL | FORTRAN | 
PASCAL | PLI } 


193 
::= AUTHORIZATION 
 
autorization 
identifier> 
::= 

Modullarni yaratushda quyidagi sintaktik qoidalarga rioya qilish 
lozim bo‘ladi: 
Har bir aniqlangan kursorda (cursor declare) hech bo‘lmaganda 
bitta modul (module) va bu modulda hech bo‘lmaganda bitta 
prosedura (protcedure) mavjud bo‘lishi kerak, hamda bu prosedura 
ochish operatori (open statement) va tavsiflashda (cursor declare) 
e’lon qilinadigan kursor nomini (cursor name) o‘zida aks ettishi ozim. 
Amaliy dastur bittadan ortig modul bilan ishlamasligi kerak.
Prosedura o‘z navbatida potsedura nomidan (procedure name), 
parametrlar tavsifi (parametrs declaration) va hech bo‘lmaganda bitta 
SQL operatoridan (SQL statment) tashkil topadi. 
Moduldan tashkil topgan amaliy dastur potseduraga murojaat 
qilish uchun CALL operatoridan foydalanadi. CALL operatori 
potsedura nomidan (procedure name), parametr qiymatalri ketma-
ketligidan, son va ma’lumotlar turidan iborat. 
Proseduraga murojaat prosedurada mavjud bo‘lgan SQL 
operatorlarini bajarishni ta’minlaydi. 
SQL tilida proseduralar quyidagicha yaratiladi. 
< procedure> ::=PROCEDURE 
... 

Bu erda, 
::=
 type> 
 
 ::=SQLCODE 
 ::= 
 
 
 
 
 
 


194 
 
 
 
 
Proseduralarni yaratishda quyidagi sintaktik qoidalarga amal 
qilish lozim: 
1. Prosedura nomi modulda ishtirok etadigan boshqa prosedura 
nomlaridan farq qilishi lozim. 
2. Prosedura paramaetrlari ham boshqa prosedura parametrlaridan 
farq qilishi lozim. 
3. Har bir parametr nomi (parametr declaration) tavsifida 
ko‘rsatilgan bo‘lishi ozim. 
4. Agar SQL operatoridagi ustun nomi (column names) (parametr 
declation) tavsifida ko‘rsatilgan parametr nomi bilan mos tushsa, 
bunday ustun nomlari (column specification) oldiga kvalificator 
(qualifier) qo‘yiladi. 
5. Til bo‘limida (language clause) modulda ishlatiladifan 
algoritmik til nomi ko‘rsatiladi. Har bir algoritmik tilni ishlatishda 
o‘ziga xos qoidalarga rioya qilishga to‘g‘ri keladi. Masalan til 
bo‘limida Pascal tili ishlatilsa, unda: 
1) SQLCODE parametrining turi INTEGER bo‘lishi kerak; 
2) Har qanday ishlatiladigan ma’lumot turlari (data type) CHAR, 
INTEGER va REAL bo‘lishi talab qilinadi; 
3) Agar (parametrs declaration) tavsifida berilgan parametr turi 
(data type) INTEGER yoki REAL bo‘lsa, shu parametrlarga mos 
keluvchi i-parametr turi ham INTESER yoki REAL bo‘lishi kerak. 
Tizimli proseduraga misol keltiramiz. MBdagi detallarni hajm 
jihatidan katta kichikligiga qarab Detallar jadvalidan izlash lozim 
bo‘lsin. Buni quyidagi rekursiv prosedura yordamida amalga 
oshiramiz. 
GET LIST(Kiritilayotgan_detal); 
CALL RECURSION(Kiritilayotgan_detal); 
RETURN; 
RECURSION: PROC(Katta_detal) RECURSIVE; 
DCL Katta_detal CHAR(30); 
DCL Kichik_detal CHAR(30); 
EXEC SQL DECLARE C KURSOR FOR 


195 
SELECT Detal_raqami FROM Detallar 
WHERE Asosiy_detal=Katta_detal 
AND Detal_raqami>Kichik detal 
ORDER BY Asosiy_detal; 
EXEC SQL CLOSE C; 
CALL RECURSION (Kichik_detal); 
END; 
END; 

Download 2.13 Mb.

Do'stlaringiz bilan baham:
1   ...   112   113   114   115   116   117   118   119   ...   153




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling