Mavzu: cheklanishlar, taqdimotlar va tranzaksiyalar



Yüklə 24,86 Kb.
tarix29.11.2023
ölçüsü24,86 Kb.
#139455
mb ni boshqarish


Mavzu: cheklanishlar, taqdimotlar va tranzaksiyalar

Reja:



  1. Kirish

  2. Jadvallar uchun cheklanishlar

  3. SQL muhitida tranzaksiya tushunchasi

  4. SQL muhitida tranzaksiyalani boshqarish

  5. Xulosa

SQL tilida jadvallar CREATE TABLE buyruqsi bilan yaratiladi.


Bu buyruq qatorlarsiz bo‘sh jadval yaratadi. CREATE TABLE
buyruqsi jadval nomini va jadval o‘zini ma’lum tartibda ko‘rsatilgan
ustunlar nomlari ketma-ketligi ta’rifi ko‘rinishida aniqlaydi. U
ma’lumotlar tiplari va ustunlar o‘lchovini aniqlaydi. Har bir jadval
juda bo‘lmaganda bitta ustunga ega bo‘lishi kerak.
CREATE TABLE buyruqsi sintaksisi:
CREATE TABLE
( < maydon tipi>[(< maydon o‘lchami>)],
< maydon nomi > [(< maydon o‘lchami>)], ... )
Argument qiymati kattaligi ma’lumot turiga bog‘liqdir. Agar siz
maxsus ko‘rsatmasangiz, tizim avtomatik qiymatni o‘rnatadi.
Misol uchun talabalar jadvalini yaratishni ко’rib chiqamiz:
Create Table Talabalar
([ID] integer,
[Familiya] text (25),
[Ism] text,
[T_Sana] date,
[Telefon] text,
[Izoh] memo);
Jadvalni o‘chirish buyruqsi quyidagi ko‘rinishga ega:
DROP TABLE < jadval nomi >;
Masalan: DROP TABLE Talabalar
Jadvalni yaratilgandan so‘ng o‘zgartirish. Jadvalni o‘zgartirish
uchun ALTER TABLE buyruqsidan foydalaniladi. Bu buyruq
jadvalga Yangi ustunlar q o‘shish, ustunlarni o‘chirish, ustunlar
kattaligini o‘zgartirish hamda cheklanishlarni qo‘shish va olib tashlash
imkoniyatlariga ega. Bu buyruq ANSI standart qismi emas, shuning
uchun har xil tizimlarda har xil imkoniyatlarga ega.
Jadvalga ustun qo‘shish uchun buyruqning tipik sintaksisi:
ALTER TABLE < jadval nomi > ADD <
maydon tipi> < maydon o‘lchami>;
Masalan ALTER TABLE Talabalar ADD TelefonN integer
171
Cheklanishlarni kiritish. Ko‘p hollarda ustunga kiritilgan
qiymatlar bir-biridan farq qilishi kerak. Agar ustun uchun UNIQUE
cheklanishi o‘rnatilsa, bu ustunga mavjud qiymatni kiritishga urinish
rad etiladi. Bu cheklanish b o‘sh bo‘lmaydigan (NOT NULL) deb
e’lon qilingan maydonlarga q o‘llanishi mumkin. (MS Access dagi
ma’lumotlar tipining “Счетчик” qiymatiga mos keladi).
Masalan:
Create Table Talabalar
([ID] integer NOT NULL UNIQUE,
[Familiya] text (25),
[Ism] text,
[T_Sana] date,
[Telefon] integer,
[Izoh] memo);
Unikalligi talab qilinadigan maydonlar (birlamchi kalitlardan
tashqari) nomzod kalitlar yoki unikal kalitlar deyiladi.
Birlamchi kalitlar cheklanishlari. SQL birlamchi kalitlarni
to‘g‘ridan to‘g‘ri birlamchi kalit (PRIMARY KEY) cheklanishi orqali
ta’riflaydi. PRIMARY KEY jadvaln i yoki ustunlarni cheklashi
mumkin. Bu cheklanish UNIQUE cheklanishi kabi ishlaydi, jadval
uchun faqat bitta birlamchi kalit (ixtiyoriy sondagi ustunlar uchun)
aniqlanishi mumkin bolgan holdan tashqari. Birlamchi kalitlar NULL
qiymatga ega bo‘lishi mumkin emas.
Misol:
Create Table Talabalar
([ID] integer NOT NULL PRIMARY KEY,
[Familiya] text (25),
[Ism] text,
[T_Sana] date,
[Telefon] integer,
[Izoh] memo);

Tranzaksiya– bu ma’lumotlar bilan manipulyatsiya qilib ketma ket operatsiyalar yordamida MBBTga ta’sir etishdir. Tranzaksiya


to‘liq bajariladi va ma’lumotlar bazasini bir butun holatdan ikkinchi
172
bir butun holatga o‘tkazadi, biror xatolik yuz bersa, ma’lumotlar
bazasi boshlang‘ich holatiga qaytadi.
Ma’lumotlarni aniqlash operatorlari - ma’lumotlar bazasi
jadvalini tuzish, o‘zgartirish yoki o‘chirish, indeks tashkil qilish
(ma’lumotlarni tez izlab topish vositasi), har xil foydalanuvchilar
bilan ishni tashkil qilish va boshqalarni amalga oshiradi.
Ma’lumotlar ustida manipulyatsiya qilish operatorlari —
ma’lumotlar bazasiga yozuvni q o‘shish, o‘chirish yoki yangilash
imkonini beradi.
SQL tilida tranzaksiya deb, ma’lumotlami tiklashga nisbatan
ajralmas bo‘lgan operatorlar ketma-ketligiga aytiladi. SQL tilidagi har
bir chaqirish moduli tranzaksiyadir. SQL tili tranzaksiyalari biror-bir
modulning proseduralarini bajarishdan boshlanadi. COMMIT yori
ROLLBACK operatorining bajarilishi bilan tugaydi. Agar tranzaksiya
ROLLBACK operatori bilan tugasa, prtoseduradagi barcha qilingan
amallar bekor qilinadi.
Har bir tranzaksiyaning “faqat o‘qish” yoki “o‘qish va yozish”
tartiblari mavjud. Tranzaksiya tartiblari SETTTRANSACTION
operatori yordamida o‘rnatiladi. Jimlik qoidagisa nusbatan ‘‘o‘qish va
yozish” tartibi o‘rnatiladi. “Faqat o‘qish" tartibi doimo saqlanadigan
bazaviy ma’lumotlarga qo‘llaniladi.
Har bir SQL tranzaksiyasi himoyalanish darajasiga ega:
READUNCOMMITTED, READCOMMITTED,
REPEATABLEREAD yoki SERIALIZABLE. SQL tranzaksiyasi
himoyalanish darajalari bajarilayotgan tranzaksiyaning boshqa
parallel bajarilayotgan tranzaksiyalarga ta’sir etish daragasini
aniqlaydi. Tranzaksiyaning aniq darajasini o‘rnatish uchun
SETTRANSACTION operatoridan foydalanishadi. Jimlik qoidasiga
nisbatan SERIALIZABLE tartibi o‘rnatiladi.Himoyalanish daragalari
tranzaksiyalarning parallel bajarilishida yuz berishi mumkin b o‘lgan
hodisalami aniqlaydi.

SQL tilida tranzaksiyalarni maxsus operatorlat yordamida


boshqarish imkoniyati mavjud. Shulardan biri tranzaksiya
parametrlarini o‘rnatish operatori bo‘lib. Uni yozilish formati
quyidgicha:
::=
SET TRANSACTION transaction mode>
[ { transaction mode> }... ]
transaction mode> ::=

|
| «diagnostics size>
«isolation level> ::=
ISOLATION LEVEL «level of isolation>
176
::=
READ UNCOMMITTED | READ COMMITTED i
REPEATABLE READ | SERIALIZAB1 1
transaction access mode>
READ ONLY | READ WRITE
diagnostics size> ::=
DIAGNOSTICS SIZE
::=
Bu yerda:
1. Agar himoya darajalari ko‘rsatilmasa, himoya darajasi
SERIALIZABLE deb tushumniladi.
2. Agar ruxsat tartibi READWRITE kalit so‘zi bilan belgilansa, unda
himoyalanish darajasi READUNCOMMITTED bo‘lmasligi kerak.
3. Agar ruzsat tartibi va himoyalanish darajasi
READUNCOMMITTED deb ko‘rsatilsa, unda beriladigan ruxsat
tartibi READONLY deb tushuniladi, aks hollarda ruxsat tartibi
READWRITE bo‘ladi.
Ko‘pchilik hollarda tranzaksiyalaming bajarilish jarayonida MB
jadvallari stmkturasi buzilishining oldini olish uchun tranzaksiyalarga
faqat o‘qish tartibini o‘rnatish mumkin. Buning uchun quyidagi
operator ishlatiladi:
SET TRANSACTION READ ONLY;
Bu operator tranzaksiya jarayoni boshlanishidan oldin
ko‘rsatiladi.
Masalan, EXEC SQL SET TRANSACTION READ ONLY;
buyurtmalami qabul qilgan sotuvchini aniqlamoqchisiz. Bu ikk i
so‘rovni bir-biridan farq qilishi uchun matn kiritish yo‘li bilan
tashkillashtirisimiz mumkin:
SELECT a.snum, sname, onum, ‘Highest on’, odate FROM
Salespeople a. Orders b WHERE a.snum = b.snum
AND b.amt = (SELECT MAX (amt) FROM Orders с WHERE
c.odate = b,odate)
UNION SELECT a.snum, sname, onum, ‘Lowest on’, odate
FROM Salespeople a, Orders b WHERE a.snum b.snum
AND b.amt = (SEi FCT MIN (amt)FROM Orders с WHERE
c.odate
;
b.odate

Yüklə 24,86 Kb.

Dostları ilə paylaş:




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə