Tartib raqami
|
FISH
|
Lavozimi
|
Bo’lim
|
1
|
Anvar Ergashev
|
Dasturchi
|
1
|
2
|
Zokir Karimov
|
Buxgalter
|
2
|
3
|
Islom Kenjayev
|
Menedjer
|
3
|
Uchinchi normal shaklda “Bo’limlar” jadvali.
Bo’lim raqami
|
Bo’lim
|
Bo’lim tavsifi
|
1
|
Ishlab chiqish bo'limi
|
Ilovalar va saytlarni ishlab chiqish va ularga xizmat ko'rsatish
|
2
|
Buxgalteriya
|
Buxgalteriya hisob-kitoblarini amalga oshirish
|
3
|
Amalga oshirish bo’limi
|
Mahsulot sotilishini tashkil etish
|
85. Boyz-Codd normal shakli (BCNF)
Ma'lumotlar bazasi jadvallarini Boyes-Codd normal shakliga o'tkazishga misol
Tasavvur qilaylik, bizda turli xil loyihalarni amalga oshiradigan tashkilot bor. Bundan tashqari, har bir loyihada bir nechta funksional yo'nalishlar bo'yicha ishlar olib boriladi, ularning har biri o'z rahbariga ega. Xodim faqat o'zi ixtisoslashgan sohada rahbar bo'lishi mumkin, ya'ni agar xodim dasturchi bo'lsa, u loyihadagi buxgalteriya bo'limiga rahbarlik qila olmaydi.
Aytaylik, har bir yo'nalish bo'yicha barcha loyihalar rahbarlari to'g'risida ma'lumotlarni saqlashimiz kerak.
Quyidagicha jadval berilgan:
Loyiha
|
Yo’nalish
|
Rahbar
|
1
|
Ishlab chiqish
|
Sultonov A.
|
1
|
Buxgalteriya
|
Ne’matov B.
|
2
|
Ishlab chiqish
|
Sultonov A.
|
2
|
Buxgalteriya
|
Niyozov S.
|
2
|
Amalga oshirish
|
Nurbekov A.
|
3
|
Ishlab chiqish
|
Avazov O.
|
Bizning jadvalimiz uchinchi oddiy shaklda, chunki bizda birlamchi kalit mavjud va kalit bo'lmagan ustun uning biron bir qismiga emas, balki butun kalitga bog'liq.
Ammo bu holda jadval Boyes-Codd normal shaklida emas, aslida rahbarni bilib, biz uning qaysi yo'nalishda mas'ul ekanligini bilmaymiz. "Yo'nalish" kalit bo'lmagan atributga bog'liq, ya'ni. "Rahbarga".
Rahbarlar jadvali.
Rahbar identifikatori
|
FISH
|
Yo’nalish
|
1
|
Sultonov A.
|
Ishlab chiqish
|
2
|
Ne’matov B.
|
Buxgalteriya
|
3
|
Niyozov S.
|
Buxgalteriya
|
4
|
Nurbekov A.
|
Amalga oshirish
|
5
|
Avazov O.
|
Ishlab chiqish
|
Rahbarlar va Loyihalar jadvali orasidagi munosabat
Proyekt
|
Rahbar
|
1
|
1
|
1
|
2
|
2
|
1
|
2
|
3
|
2
|
4
|
3
|
5
|
87. Relyatsion ma’lumotlar modeli ustunlik darajasiga ko’tarilishining yana bir sababi bu kuchli va moslashuvchan so’rovlar tili. Ma’lumotlar bazasi dasturlarining aksariyati Structured Query Language (SQL) dan foydalanadi, bu foydalanuvchiga qanday bajarilishini ko’rsatmasdan nima qilish kerakligini aniqlashga imkon beradi. RMBBT SQLdan foydalanuvchi so’rovlarini so’ralgan ma’lumotlarni olish bo’yicha ko’rsatmalarga tarjima qilish uchun foydalanadi. SQL ma’lumotlarni boshqa har qanday ma’lumotlar bazasi yoki fayl muhiti bilan solishtirganda kamroq kuch sarflash bilan olish imkonini beradi.
Iste’molchi nuqtai nazaridan, SQLga asoslangan har qanday aloqador ma’lumotlar bazasi ilovasi uchta qismni o’z ichiga oladi: foydalanuvchi interfeysi, ma’lumotlar bazasida saqlanadigan jadvallar to’plami va SQL "mexanizmi". Ushbu qismlarning har biri quyidagicha izohlanadi:
• Foydalanuvchi interfeysi. Asosan, interfeys foydalanuvchiga ma’lumotlar bilan o’zaro ishlashga imkon beradi (avtomatik ravishda SQL kodini yaratish orqali). Har bir interfeys dasturiy ta’minot sotuvchisi ma’lumotlar bilan mazmunli o’zaro ta’sir o’tkazish g’oyasi mahsulidir.
• Ma’lumotlar bazasida saqlanadigan jadvallar to’plami. Relyatsion ma’lumotlar bazasida barcha ma’lumotlar jadvallarda saqlanadigan deb qabul qilinadi. Jadvallar shunchaki tushunarli tarzda ma’lumotlarni foydalanuvchilarga “taqdim etadi”. Har bir jadval mustaqil. Turli jadvallardagi satrlar umumiy atributlardagi umumiy qiymatlar bilan bog’liq.
88. SQL “mexanizmi”. SQL mexanizmi barcha foydalanuvchilardan yashirin bo’lib, barcha so’rovlarni yoki ma’lumotlarga bo’lgan talablarni bajaradi. Yodda tutingki, SQL mexanizmi MBBT dasturining bir qismi.
Foydalanuvchi jadval tuzilmalarini yaratishi va ma’lumotlarga kirish va jadvallarga texnik xizmat ko’rsatish uchun SQLdan foydalanadi. SQL mexanizmi foydalanuvchilarning barcha so’rovlarini - asosan “sahna ortida” va foydalanuvchidan xabarsiz ko’rib chiqadi. Shunday qilib, SQL deklarativ til bo’lib, nima qilish kerakligini aytadi, ammo qanday bajarilishini emas.
Bunday holda, SQL vakili ma'lumotlarni o'chirish yoki o'zgartirish to'g'risidagi so'rovni shakllantiradi va uni bajarish algoritmi to'liq ma'lum bir MBBTga tegishlidir. Agar bir xil natijani turli xil so'rovlar yordamida olish mumkin bo'lsa-da, dasturchi MBBTga kamroq yuk keltiradigan natijani tanlash yaxshidir. Dasturchi uchun ma'lumotlar bazasi qanday ishlashi haqida tasavvurga ega bo'lish maqsadga muvofiqdir.
SQL ma'lumotlar bazasini boshqaruvchi vositadir. Bunday holda, asosiy operatsiyalar jadvallar yaratish, jadvallarga eslatmalar qo'shish, yozuvlarni o'zgartirish va o'chirish, jadvallardan yozuvlarni tanlash, jadvallarning tuzilishini o'zgartirish kabilar bo’ladi.
89. 1983 yilda Xalqaro standartlashtirish tashkiloti (ISO) va Amerika milliy standartlar instituti (ANSI) SQL tili uchun standart ishlab chiqishni boshladilar. 1986-yilda ANSI X3.135-1986 Database Language SQL deb nomlangan standartning birinchi versiyasini taqdim etdi. Norasmiy ravishda ushbu SQL-86 standarti SQL1 deb nomlanadi. Bir yil o'tgach, ISO 9075-1987 standartida xuddi shu nom bilan ish olib borildi. Ushbu standartni ishlab chiqish TC97 Texnik qo'mitasi homiyligida amalga oshirildi, uning faoliyat sohasi hisoblash va axborotni qayta ishlash edi. Bu SQL1 (SQL-86) uchun ISO va ANSI standartlarining identifikatori uchun kalit bo'lgan standartni ishlab chiqishni boshqargan SC21 kichik qo'mitasi deb nomlangan uning bo'linmasi edi.
SQL1 standarti ikki darajaga bo'lindi. Birinchi daraja butun hujjatni to'liq tavsiflovchi ikkinchi darajali to'plam edi. Ya'ni, bunday tuzilma SQL1 standartining barcha xususiyatlari birinchi darajaga kirmasligi sharti bilan ta'minlangan. Shunday qilib, ushbu standartni qo'llab-quvvatlashni talab qiladigan sotuvchi SQL tilini amalga oshiradigan darajani e'lon qilishi kerak edi. Bu standartni qabul qilish va qo'llab-quvvatlashga katta yordam berdi, chunki ishlab chiqaruvchilar uni qo'llab-quvvatlashni ikki bosqichda amalga oshirishlari mumkin edi.
Hozirgi vaqtda 2003 yilda qabul qilingan standart (SQL: 2003) keyinchalik kiritilgan kichik o'zgarishlar bilan (SQL: 2008) kuchga kiradi.
90. SQL tilining operatorlar guruhi. SQL tilining o'zi operatorlar, iboralar va hisoblangan funktsiyalardan iborat. Odatda operatorlar tomonidan ishlatiladigan zaрiralangan so'zlar odatda katta harflar bilan yoziladi. Ularni kichik harflar bilan emas, balki katta harf bilan yozish xatoga olib kelmaydi.
Operatorlar quyidagi guruhlarga bo'lingan:
Ma'lumotni aniqlash operatorlari (Data Definition Language, DDL) iboralari:
Ma'lumotlar manipulyatsiyasi tili (Data Manipulation Language, DML) operatorlari
Ma'lumotni boshqarish tili (Data Control Language, DCL) operatorlari
O‘tkazmalarni boshqarish tili (Transaction Control Language, TCL)
SQL standartlari turli xil ma'lumotlar bazalari o'rtasida ma'lumotlar bazalarini ko'chirish imkoniyatini beradi. Turli ma'lumotlar bazalari o'zlarining SQL sintaksisidan foydalanadilar. Masalan, SQLite bir qator ma'lumotlar turlarini tushunmaydi.
Turli xil ma'lumotlar bazalarida SQLni "protsessual" qilish uchun o'z kengaytmalari mavjud. Ular saqlanadigan protseduralar va protsessual qo'shimchalar tillari. Masalan, Oracle ma'lumotlar bazasida PL/SQL, PostgreSQL PL/pgSQLdan foydalanadi.
Dialektlarning mavjudligiga qaramay, faqat DDL va DML-ni o'z ichiga olgan so'rovlar odatda turli xil ma'lumotlar bazalari o'rtasida ko'chiriladi.
91. Ma'lumotni aniqlash operatorlari (Data Definition Language, DDL) iboralari:
CREATE ma'lumotlar bazasi obyekti yaratadi (ma'lumotlar bazasi, jadval, ko'rinish, foydalanuvchi va boshqalar).
ALTER obyektni o'zgartiradi
DROP obyektni olib tashlaydi
92. Ma'lumotlar manipulyatsiyasi tili (Data Manipulation Language, DML) operatorlari
SELECT belgilangan shartlarga javob beradigan ma'lumotlarni tanlaydi
INSERT yangi ma'lumotlar qo'shadi
UPDATE mavjud ma'lumotlarni tahrirlaydi
DELETE ma'lumotlarni yo'q qiladi
93. Ma'lumotni boshqarish tili (Data Control Language, DCL) operatorlari
GRANT foydalanuvchi yoki guruhga obyektda muayyan operatsiyalarni bajarishga ruxsat beradi
REVOKE avval berilgan ruxsatlarni bekor qiladi
DENY ruxsatdan ustun bo'lgan taqiqni belgilaydi
94. O‘tkazmalarni boshqarish tili (Transaction Control Language, TCL)
COMMIT tranzaktsiyani qo'llaydi
ROLLBACK joriy operatsiya doirasida qilingan barcha o'zgarishlarni qaytaradi
SAVEPOINT tranzaktsiyani kichik qismlarga ajratadi
95. SQL dasturi - bu SQL ko'rsatmalarining oddiy chiziqli ketma-ketligi. O'zining sof shaklida SQL tilida ma'lumotlar bazasiga so'rovlarni bajarish tartibini (sikllar, tarmoqlar, o'tishlar) boshqarish uchun operatorlar mavjud emas.
SQL iboralari quyidagilar yordamida tuzilgan:
zahiralangan kalit so'zlar;
jadvallar va jadval ustunlarining identifikatorlari (nomlari);
ma'lumotlar bazasida ma'lumot qidirish mezonlarini shakllantirish va natijada olingan jadvallardagi yacheykalar qiymatlarini hisoblash uchun foydalaniladigan mantiqiy, arifmetik va satrli iboralar;
iboralarda ishlatiladigan operatsiyalar va funktsiyalarning identifikatorlari (nomlari).
Barcha kalit so'zlar, funksiya nomlari va, qoida tariqasida, jadval va ustun nomlari 7 bitli ASCII belgilar bilan ifodalangan (boshqacha aytganda, lotin harflarida).
SQL katta va kichik harflarni farq qilmaydi, masalan SELECT, Select, sELECT, select satrlari bir xil kalit so'zni ifodalaydi.
96. Ma'lumki, ma'lumotlar bazalari xuddi konteynerga o'xshaydi, uning asosiy maqsadi aloqalar ko'rinishida taqdim etilgan ma'lumotlarni saqlashdir.
Siz bilishingiz kerak, ularning tabiati va tuzilishiga qarab, munosabatlar quyidagilarga bo'linadi.
1) asosiy (bazaviy) munosabatlar;
2) virtual munosabatlar.
Bazaviy munosabatlar faqat mustaqil ma'lumotlarni o'z ichiga oladi va boshqa hech qanday ma'lumotlar bazasi bilan bog'lanish orqali ifodalanmaydi.
Tijorat ma'lumotlar bazasini boshqarish tizimlarida virtual munosabatlar tushunchasiga mos keladigan qarashlardan farqli o'laroq, asosiy munosabatlar odatda jadvallar deb ataladi. Ushbu kursda biz faqat asosiy aloqalarni, ular bilan ishlashning asosiy texnik va printsiplarini batafsil ko'rib chiqamiz.
97. Ma'lumotlarning bazaviy turlari
Ma'lumotlar bazasi turlari - bu ma'lumotlar bazasini boshqarish tizimlarida dastlab o'rnatilgan har qanday ma'lumotlar turi, ya'ni ular odatdagidek mavjud (maxsus ma'lumotlar turidan farqli o'laroq, biz ularni bazaviy ma'lumot uzatgandan so'ng darhol tahlil qilamiz).
Haqiqiy asosiy ma'lumotlar turlarini ko'rib chiqishga kirishishdan oldin, qanday ma'lumotlarning umumiy turlarini sanab o'tamiz:
1) raqamli ma'lumotlar;
2) mantiqiy ma'lumotlar;
3) satrli ma'lumotlar;
4) sana va vaqtni belgilaydigan ma'lumotlar;
5) identifikatsiya ma'lumotlari.
Jimlik bo’yicha, ma'lumotlar bazasini boshqarish tizimlari bir nechta eng keng tarqalgan ma'lumotlar turlarini taqdim etadi, ularning har biri ro'yxatga olingan ma'lumotlar turlaridan biriga tegishli.
98. . Raqamli ma'lumotlar turiga quyidagilar kiradi:
1) Integer. Ushbu kalit so'z odatda butun ma'lumot turini bildiradi;
2) haqiqiy ma'lumotlar turiga mos keladigan Real;
3) Decimal (n, m). Bu o'nlik ma'lumotlar turi. Bundan tashqari, tavsifda n - bu raqamning umumiy sonini aniqlaydigan raqam va m - o'nlik kasrdan keyin ularning qancha belgilari borligini ko'rsatuvchi raqam;
4) Pul ma'lumotlari turidagi ma'lumotlarni taqdim etish uchun maxsus kiritilgan Money yoki Currency.
2. Mantiqiy ma'lumotlar turida odatda bitta baza turi ajratiladi, bu Logical.
99. . Satrli ma'lumotlar turi to'rtta asosiy turga ega:
1) Bit (n). Bular uzunligi n bo'lgan fiksirlangan bitlar;
2) Varbit (n). Bular ham satrli bit, ammo uzunligi n bitdan oshmaydigan o’zgaruvchi;
3) Char (n). Bular doimiy uzunligi n bo'lgan belgilar qatorlari;
4) Varchar (n). Bular uzunligi n harfdan oshmaydigan o'zgaruvchan belgilar qatoridir.
100. . Sana va vaqt turi quyidagi asosiy ma'lumotlar turlarini o'z ichiga oladi:
1) Date – sana ma'lumotlar turi;
2) Time - kunning vaqtini aks ettiruvchi ma'lumotlar turi;
3) DateTime - bu sana va vaqtni ham aks ettiradigan ma'lumotlar turi.
5. Identifikatsiya ma'lumotlari turi ma'lumotlar bazasini boshqarish tizimiga jimlik bo'yicha kiritilgan faqat bitta turni o'z ichiga oladi va bu GUID (global noyob identifikator).
Shuni ta'kidlash kerakki, barcha asosiy ma'lumotlar turlari turli xil ma'lumotlarni taqdim etish oralig'iga ega bo'lishi mumkin. Masalan, integer to'rt baytli ma'lumotlar turi sakkiz bayt (bigint) yoki ikki bayt (smallint) bo'lishi mumkin.
101. . Foydalanuvchi ma'lumotlar turlari
Foydalanuvchi tomonidan belgilangan ma'lumotlar turi bazaning barcha turlaridan farq qiladi, chunki u dastlab ma'lumotlar bazasini boshqarish tizimiga kiritilmagan, odatiy ma'lumotlar turi sifatida tavsiflanmagan. Ushbu turni o'zi uchun istalgan foydalanuvchi va ma'lumotlar bazasi dasturchisi o'zlarining talablari va talablariga muvofiq yaratishi mumkin.
Shunday qilib, foydalanuvchi tomonidan belgilanadigan ma'lumotlar turi ba'zi bazaviy turlarning pastki turidir, ya'ni haqiqiy qiymatlar to'plamida ba'zi cheklovlarga ega bo'lgan baza turi.
Psevdokodda, quyidagi standart operator yordamida maxsus turdagi ma'lumotlar yaratiladi:
Do'stlaringiz bilan baham: |