Axborot texnologiyalari kafedrasi «malumotlar bazasini boshqarish»


Relyasion ma’lumot modeli. Ma’lumotlar bazasida


Download 462.24 Kb.
bet8/11
Sana21.01.2023
Hajmi462.24 Kb.
#1106893
1   2   3   4   5   6   7   8   9   10   11
Bog'liq
M B mustaqil ish

Relyasion ma’lumot modeli. Ma’lumotlar bazasida munosabatlar.
Birga – bir (1:1) munosabat. Ikki mohiyat orasida birga bir bog‘lanish mavjud dеyiladi agar birinchi mohiyatning har bir nusxasiga ikkinchi mohiyatning bitta nusxasi mos kеlishi mumkin bo‘lsa, va aksincha. Birga – ko‘p (1:n) munosabat. Ikki mohiyat orasida birga ko‘p bog‘lanish mavjud dеyiladi. Agar birinchi mohiyatning har bir nusxasiga ikkinchi mohiyatning bir nеchta nusxasi mos kеlishi mumkin bo‘lsa, va ikkinchi mohiyatning har bir nusxasiga birinchi mohiyatning bittadan ko‘p bo‘lmagan nusxasi mos kеlishi mumkin bo‘lsa. Ko‘pga – bir (n:1) munosabat. Ikki mohiyat orasida ko‘pga bir bog‘lanish mavjud dеyiladi agar birinchi mohiyatning bir nеchta nusxasiga ikkinchi mohiyatning ko‘pi bilan bitta nusxasi mos kеlishi mumkin bo‘lsa va ikkinchi mohiyatning har bir nusxasiga birinchi mohiyatning bir nеchta nusxasi mos kеlishi mumkin bo‘lsa. Ko‘pga – ko‘p (m:n) munosabat. Ikki mohiyat orasida ko‘pga ko‘p bog‘lanish mavjud dеyiladi, agar birinchi mohiyatning har bir nusxasiga ikkinchi mohiyatning bir nеchta nusxasi mos kеlishi mumkin bo‘lsa va aksincha.

Tranzaksiyalarni boshqarishda SQL so‘rovlari.
SQL tilida tranzaksiyalami maxsus operatorlat yordamida boshqarish imkoniyati mavjud. Shulardan biri tranzaksiya parametrlarini o‘matish operatori bo‘lib,uni yozilish formati quyidgicha:
::=
SET TRANSACTION transaction mode>
[ { transaction mode> }... ]
transaction mode> ::=

|
| «diagnostics size>
«isolation level> ::=
ISOLATION LEVEL «level of isolation>
::=
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 tushuniladi.
2. Agar ruxsat tartibi READWRITE kalit so‘zi bilan belgilansa, unda himoyalanish darajasi READUNCOMMITTED bo‘lmasligi kerak.
3 Agar ruxsat 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 strkturasi buzilishining oldini olish uchun tranzaksiyalarga faqat o‘qish tartibini o‘natish 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 ikki so‘rovni bir biridan farq qilishi uchun matn kiritish yo‘li bilan tashkillashtirishimiz 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);
Shu paytgacha UNION kalit so‘zi yordamida birlashtirilgan so‘rov natijalari qanday tartibda matnga chiqarilishi to‘g’risida gapirmadik. Birlashtirilgan natijalarni ORDER BY kalit so‘zi yordamida tartiblashtirish mumkin.
Yoqoridagi misolni tartub raqamlariga nisbatan tartiblashniko‘rib o‘tamiz.
SELECT a.snum, sname, onum, ‘Highest on’, odate
FROM Salespeople a.
Orders by
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 by
WHERE a.snum = b.snu AND b.amt = (SELECT MIN (amt)
FROM Orders с WHERE c.odate = b.odate)
ORDER BY 3;
Arifmetik operatorlarning ustuvorligi matematikada bo‘lgani kabi bir xil. Agar kerak bo‘lsa, qavslar yordamida operatorlarni qo‘llash tartibi o‘zgartirilishi mumkin - (a + b) * (x / (y-z)). Va yana bir bor takrorlayman, NULL bilan har qanday operatsiya NULL beradi, masalan: 10 + NULL, NULL * 15/3, 100 / NULL – bularning barchasi NULL ga olib keladi. I.e. shunchaki noma'lum qiymatni aytish aniq natijani berolmaydi. So‘rovni tuzishda buni hisobga oling
va agar kerak bo‘lsa, NULL qiymatlarni ISNULL, COALEемент funktsiyalari bilan ishlang:
SELECT
ID,Name,
Salary/100*BonusPercent AS Result1, NULL
Salary/100*ISNULL(BonusPercent,0) AS Result2, ISNULL
Salary/100*COALESCE(BonusPercent,0) AS
FROM Employees

COALESCE funktsiyasi haqida bir oz gaplashamin:
COALESCE (expr1, expr2, ..., exprn) - qiymatlar ro‘yxatidan birinchi NULL bo‘lmagan qiymatni qaytaradi. Misol:
SELECT COALESCE (f1, f1 * f2, f2 * f3) val - bu holda uchinchi qiymat qaytariladi
FROM (SELECT null f1, 2 f2, 3 f3) q



Download 462.24 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   10   11




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