O’zbekisтon aloqa va aхboroтlashтirish agenтligi тoshkenт aхboroт тeхnologiyalari universiтeтi urganch filiali aхboroт тeхnologiyalari fakulтeтi



Yüklə 457,56 Kb.
səhifə5/6
tarix21.10.2017
ölçüsü457,56 Kb.
#7495
1   2   3   4   5   6

Ko’pincha ustunlardagi qiymatlarning maksimal, minimal va o’rtacha qiymatlarini xisoblashga to’g’ri keladi. Masalan, o’rtacha ballni xioblash zarurati paydo bo’ladi. Bunday xisoblashlarni bajarish uchun SQL tilida maxsus agregat funksiyalari mavjud:

MIN – ustundagi minimal qiymat;

MAX – ustundagi maksimal qiymat;

SUM – ustundagi qiymatlar yig’indisi;

AVG – ustundagi qiymatlarning o’rtachasi;

COUNT – ustundagi NULL dan farqli bo’lgan qiymatlar miqdori.

Quyidagi so’rov talabalar imtixonlarda olgan ballarining o’rtachasini aniqlaydi.

SELECT AVG(mark) FROM mark_st

Maydonlar qiymatlarini kiritish, o’chirish va o’zgartirish

Jadvallarni o’chirish. Faqat bo’sh jadvalni o’chirish mumkin. Jadvalni o’chirish buyrug’i quyidagi ko’rinishga ega:

DROP TABLE ; Masalan: DROP TABLE Salepeople;
Jadvalni yaratilgandan so’ng o’zgartirish. Jadvalni o’zgartirish uchun ALTER TABLE buyrug’idan foydalaniladi. Bu buyruqda jadvalga yangi ustunlar qo’shish, ustunlarni o’chirish, ustunlar kattaligini o’zgartirish, hamda cheklovlarni qo’shish va olib tashlash imkoniyatlariga ega.

Jadvalga ustun qo’shish buyrug’i:



ALTER TABLE ADD

;

Masalan:

ALTER TABLE Salepeople ADD Phone CHAR(7);

Qiymatlarni kiritish.

Hamma satrlar SQLda INSERT buyrug’i yordamida kiritiladi. INSERT quyidagi formatga ega:



INSERT INTO [(column [,column] ...)]

VALUES ( [,] ... );

Masalan, sotuvchilar jadvaliga yangi satr kiritish uchun quyidagi buyruqdan foydalanish mumkin:



INSERT INTO Salepeople VALUES (11, 'Peel', 'London', .12);

Ustun nomlarini ko’rsatish ham mumkin, masalan:



INSERT INTO Salepeople (Sname, Comm, SNum)

VALUES ('Peel', .12, 11);

Bu yerda e’tibor berilsa City ustuni tashlab yuborilgan, chunki unga ko’zda tutilgan qiymat kiritiladi.



Satrlarni o’chirish. Satrlarni jadvaldan DELETE buyrug’i bilan o’chirish mumkin. U alohida qiymatlarni emas faqat satrlarni o’chiradi. DELETE quyidagi formatga ega:

DELETE FROM
[WHERE search-condition];

Masalan, sotuvchilar jadvalidagi hamma satrlarni o’chirish uchun, quyidagi shartni kiritish mumkin: DELETE FROM Salepeople;

Ma’lum satrlarni o’chirish uchun shartlardan foydalaniladi. Masalan, jadvaldan Axelrod sotuvchini o’chirish uchun uning nomerini shartda berish kerak:

DELETE FROM Salepeople WHERE SNum = 13;

Maydon qiymatlarini o’zgartirish. O’zgartirish UPDATE buyrug’i yordamida bajariladi. Bu buyruqda UPDATE ifodasidan so’ng jadval nomi va SET ifodasidan so’ng ma’lum ustun uchun o’zgartirish ko’rsatiladi. UPDATE ikki formatga ega. Ulardan birinchisi:

UPDATE



SET column = expression [, column = expression] ...

[WHERE search-condition]

bu yerda expression - bu ustun | ifoda | konstanta | o’zgaruvchi.

Ikkinchi variant:

UPDATE



SET column = expression, ...

[ FROM table-list ]

[ WHERE search-condition ]

Masalan, hamma buyurtmachilar bahosini 200 ga o’zgartirish mumkin:



UPDATE Customers SET Rating = 200;

Ma’lum satrlarni o’zgartirish uchun DELETE dagi kabi shartlardan foydalanish kerak. Masalan, Peel (SNum=11) sotuvchining hamma buyurtmachilari uchun bir xil o’zgartirish quyidagicha kiritiladi:



UPDATE Customers SET Rating = 200 WHERE SNum = 11;

SET vergul bilan ajratilgan ixtiyoriy sondagi ustunlarga qiymat tayinlashi mumkin. Masalan:



UPDATE Salepeople SET SName ='Gibson', City='Boston', Comm=.10

WHERE SNum = 14;

UPDATE buyrug’ining SET jumlasida ifodalarni ham ishlatish mumkin. Masalan: UPDATE Salepeople SET Comm = Comm * 2;


5. SELECT so’rov operatori

SELECT operatori MB jadvallaridan natijaviy to’plam olish uchun mo’ljallangandir. SELECT operatori yordamida MBga so’rov beriladi va u foydalanuvchiga ma’lumotlarning natijaviy to’plamini qaytaradi. Bu ma’lumotlar jadval shaklida qaytariladi. Bu jadval keyingi SELECT operatori tomonidan yana qayta ishlanishi ham mumkin.

SELECT operatori SQL 92 standartiga ko’ra quyidagi ko’rinishga ega:

SELECT [ALL]

FROM jadval

WHERE izlash sharti

GROUP BY ustunlar

HAVING izlash sharti

ORDER BY tartiblash spetsifikatori

Masalan, OFFICES jadvalidagi hamma yozuvlarni qaytaruvchi sodda so’rov quyidagicha yoziladi. SELECT * FROM OFFICES

Misol: Hamma xizmatchilarning nomlari, ofislari va ishga olish sanalari ro’yxatini hosil qilish.

SELECT NAME, REP_OFFICE, HIRE_DATE FROM SALESREPS

SELECT operatori WHERE sharti berilgan shart asosida kerakli ma’lumotlarni qaytarish uchun xizmat qiladi. Masalan, sotuvlarda haqiqiy hajmi rejadan oshgan ofislarni ko’rsatish kerak.

SELECT CITY, SALES, TARGET FROM OFFICES

WHERE SALES > TARGET

Nomeri 105 ga teng bo’lgan xizmatchi nomi, haqiqiy va rejadagi sotuvlar hajmini ko’rsatish:



SELECT SALES, NAME, QUOTA FROM SALESREPS

WHERE EMPL_NUM = 105

Agar izlash sharti TRUE bo’lsa qator natijaviy to’plamga qo’shiladi, agar izlash sharti FALSE bo’lsa, qator natijaviy to’plamga qo’shilmaydi, agar NULL bo’lsa ham natijaviy to’plamdan chiqariladi. O’z ma’nosiga ko’ra WHARE, kerakli yozuvlarni qoldiruvchi filtr sifatida ishlatiladi.


SQL Server da ma’lumotlar bazalari ximoyasi

SQL Server foydalanuvchilar darajasida ma’lumotlar bazalarini ichki ximoya tizimiga ega. SQL Server va undagi ma’lumotlar bazasiga faqat serverda registratsiyadan o‘tgan, mos xuquqlarga ega foydalanuvchi ulanishi mumkin. Ximoya tizimidan Access 2002 loyihalarni ximoya qilish uchun foydalanish xaqidagi batafsil ma’lumotni SQL Server dokumentatsiyasida topish mumkin.

Access loyihalarida ma’lumotlarni va SQL Serverda saqlanuvchi boshqa ob’уektlarni (jadvallar, tasavvurlar, saqlanuvchi protseduralar va ma’lumotlar sxemalari) ximoya qilish ikki usuli mavjuddir.


  • Tasavvurlar, saqlanuvchi protseduralar va triggerlarni shifrlash mumkin. Shifrlangandan so‘ng tasavvur strukturasini o‘zgartirish mumkin emas. Lekin tasavvurdan manbada ma’lumotlarni tahrirlash uchun ishlatish mumkin. Tasavvurni qanday shifrlash xaqidagi ma’lumotni SQL Server dokumentatsiyasidan olish mumkin. Saqlanuvchi protsedura yoki triggerni shifrlash uchun ularni oldin tahrirlash va maxsus Transact-SQL instruksiyasini yozish kerak, masalan: CREATE PROCEDURE WITH ENCRYPTION.

  • SQL Server Enterprise Manager dasturi yordamida SQL Server ximoya qilish vositalaridan foydalanish mumkin. Bu ximoya vositalari xaqidagi ma’lumotni SQL Server dokumentatsiyasidan olish mumkin.

Agar shifrlangan tasavvur strukturasini keyinchalik o‘zgartish kerak bo‘lishi mumkin bo‘lsa quyidagi maslaxatdan foydalaning. Tasavvurni aniqlovchi SQL instruksiyani matnli faylda saqlab qo‘ying. Ishonchli joyda mustaxkam nusxani saqlab qo‘ying. Tasavvurni shifrlang. Kerak bo‘lsa shifrlangan tasavvuo strukturasini o‘zgartiring:

  1. Oldingi shifrlangan tasavvurni o‘chiring.

  2. Oldingi tasavvur Bilan bir xil nomdagi yangi tasavvur yarating.

  3. Saqlangan matnli fayldagi SQL instruksiyadan almashish buferiga nusxa oling. Uni yangi tasavvur Konstruktorining ning SQL instruksiya kiritish maydoniga joylashtiring.

  4. Tasavvur strukturasini o‘zgartiring.

  5. O‘zgartirilgan SQL instruksiyani matnli fayldja saqlang. Bu faylni ishonchli joyga joylashtiring.

  6. Yangi tasavurni shifrlang.


SQL Server hisob yozuvlarini boshqarish

Access yordamchi ma’lumotlar tizimida aytilishicha loyihada Access ximoya tizimini adminitrlash vazifasini Сервис (Tools) menyusidagi Безопасность базы данных (Database Security) komandasi yordamida bajarishi mumkin. Bu komandaga murojaat qilish mumkin agar, yesli SQL Server Access loyihasi saqlanayotgan kompbyuterda o‘rnatilgan bo‘lsa. Bu vosita yordamida SQL Server da registratsiya qilish uchun hisob yozkvlarini, ma’lumotlar bazalari foydalanuvchilari hisob yozuvlarini va ularning rollarini qo‘shish, o‘chirish va o‘zgartirish mumkin.



SQL Server da registratsiya qilish uchun qo‘llanadigan ikki ximoya tizimi mavjud:

  • SQL Server o‘zining ximoya tizimi. Serverda registratsiyadan o‘tish uchun server foydalanuvchisi nomi va parolini ko‘rsatish kerak.

  • Windows NT bilan Integrlashgan tizimi foydalanuvchilari hisob yozuvlaridan foydalanadi. Bu xolda foydalanuvchi autentifikatsiyasi Windows NT asosida tarmoqda registratsiyadan o‘tishda bajariladi. SQL Server prinimaet uchetnuyu запись Windows NT hisob yozuvini qabul qiladi va qo‘shimcha foydalanuvchi registratsiyasini talab qilmaydi.

SQL Server ichki ximoya tizimidan foydalanish uchun:

  • Bu imkoniyat ko‘zda tutilgani bo‘yicha o‘chirilgan uchun, oldin Вид, Свойства сервера (View, Server Properties) menyu komandasini tanlang va paydo bo‘lgan dialog oynasida Учетная запись системного администратора (SA) (Enable system administrator (SA) user name) byrog‘ini o‘rnating. OK tugmasini bosing.

  • Файл, Подключение (File, Connection) menyu komandasi yordamida Свойства подключения (Data Link Properties) SQL Server bilan ulanish xossalari oynasini oching.

  • Соединение (Connection) qo‘shimcha sahifasida Использовать имя пользователя и пароль (Use a specific username and password) bayrog‘ini o‘rnating.

  • Agar Access 2002 loyihasini ochishda xar gal foydalanuvchi registratsiya parolini kiritishni talab qilish kerak bo‘lsa, Сохранять пароль (Allow saving of password) bayrog‘ini tashlang. Agar serverda qayta registratsiya qilishda parol kiritish talab qilinmasa bu bayroqni o‘rnating.

Bunday ximoya tizimi Bilan Access 2002 loyihasida registratsiyadan o‘tish uchun ishlatiladigan SQL Server hisob yozuvi parolini o‘zgartirishingiz mumkin. Buning uchun menyu komandasi Сервис, Защита, Задать пароль для входa (Tools, Security, Set Login Password) qo‘llanadi. Loyihaga murojaat xukuini yo‘qotmaslik uchun parolni esdan chiqarmang!

Windows NT Bilan integrallashgan SQL Server ximoya tizimidan foydalanish:

  1. SQL Server Свойства подключения (Data Link Properties) SQL Server bilan ulanish xossalari oynasini oching.

  2. Соединение (Connection) qo‘shimcha sahifasida Использовать интегрированную систему защиты Windows NT (Use Windows NT Integrated Security) qayta ulagichni tanlang.

Bu xolda SQL Serverda registratsiya qilinganda parol talab qilinmaydi, chunki foydalanuvchini Windows NT yoki Windows 2000 tarmog‘ida identifikatsiyasi ta’sir qiladi.
Nazorat savollari

  1. SQL tarixi. SQL tili standartlari.

  2. SQL tili vazifasi. SQL tili tarkibiy qismlari.

  3. SQL tili foydalanuvchilarga qanday imkoniyatlarni yaratishi kerak?

  4. SQL tili terminologiyasi.

  5. SQL tilida ma’lumotlar bazasi bilan ishlash rejimlari.

  6. SQL strukturasi.

  7. SQL tilidagi ma’lumotlarni aniqlash operatorlari (DDL)

  8. SQL ma’lumotlarni manipulyatsiyalash operatorlari (Data Manipulation Language - DMP)

  9. SQL ning maxsus agregat funksiyalari.

  10. SQLtilidagi ma’lumotlarni adminstratsiya operatoralri.


6 – MA’RUZA.

MUNOSABATNING NORMAL FORMALARI.
Reja:
1. Munosabatlarni me’yorlash

2. Me’yoriy shakllar


3. Normallashtirish protsedurasi


4. Normal formalar. Ma’lumotlar sxemasini yaratish

Tayanch tushuncha: Me’yorlash, funksional bog’liqlik, to’la funksional bog’liqlik, qisman funksional bog’liqlik, tranzitiv funksional bog’liqlik, formalar, normallashtirish, normal forma.
Munosabatlarni me’yorlash

Ma’lumotlarni o’zgartirishda ro’y beradigan nome’yoriy (anomaliya) holatlarni bartaraf etish uchun ma’lumotlar bazasining tarxi (sxemasi) ma’lumotlari mustaqil bo’lgan munosabatlar asosida qurilgan bo’lishi lozim.

Ushbu masalani hal qilish uchun Kodd munosabatlarni me’yorlash apparatini taklif qilgan. Me’yorlash – munosabatlar va ularning atributlarini tekshirish hamda o’zgartirishga qaratilgan jarayon bo’lib, unda ma’lumotlarni saqlashning nome’yoriyligi bartaraf etiladi. Me’yorlash jarayoni ma’lumotlar tuzilmasini bosqichma-bosqich me’yoriy shakllarga keltirishga qaratiladi. Ma’lumotlarni tashkil etish uchun ushbu me’yoriy shakllarning har biri o’ziga xos, formallashtirilgan talablar jamlanmasini taqdim etadi.

Me’yoriy shakllarning 6 turi mavjud:



  • birinchi me’yoriy shakl (1NF);

  • ikkinchi me’yoriy shakl (2NF);

  • uchinchi me’yoriy shakl (3NF);

  • Boys-Kodd me’yoriy shakli (kuchaytirilgan 3NF, BCNF);

  • to’rtinchi me’yoriy shakl (4NF);

  • beshinchi me’yoriy shakl (5NF).

Me’yoriy shakllar funksional bog’liqlik tushunchasiga asoslangan.

Funksional bog’liqlik – biror munosabatning A va V atributlari orasidagi shunday aloqaki, bunda A ning har bir qiymatiga V ning bitta va faqat bitta qiymati mos keladi.

A atribut diterminant deb nomlanadi. Dinerminantlar tarkibli bo’lishlari ham mumkin, ya’ni ular yakka atributdan emas, balki ikki va undan ortiq atributlardan tashkil topadigan guruhlardan iborat bo’lishlari mumkin.

Funksional bog’liqlikning 3 xili mavjud bo’lib, ular to’la, qisman va tranzitiv (bilvosita) funksional bog’liqliklar deb ataladi.

Тo’la funksional bog’liqlik deb atribut V ning diterminant A atributlari qism-to’plamiga bog’liq bo’lmasligiga aytiladi.

Qisman funksional bog’liqlik deb atribut V ni tarkibli A diterminantning biror-bir qismiga bog’liq bo’lishiga aytiladi.

Тranzitiv funksional bog’liqlik deb shunday funksional bog’liqlikka aytiladiki, unda A, V va S atributlar orasida AV hamda VS ko’rinishdagi bog’liqliklar mavjud va bularga teskari yo’nalishdagi bog’liqliklar esa mavjud bo’lmaydi. Тranzitiv funksional bog’liqlik to’la funksional bog’liqliklarning birlashmasi hisoblanadi.

Qisman va tranzitiv funksional bog’liqliklar nome’yoriy holatlarni keltirib chiqarishadi. Shu nuqtai nazardan, munosabatlarni me’yorlash – bu berilgan munosabatni munosabatlarning shunday to’plamiga o’zgartirishki, unda hosil qilingan munosabatlarning har biri bitta va faqat bitta to’la funksional bog’liqlikka ega bo’lishadi.

Nazariy jihatdan me’yorlash jarayoni universal, ya’ni predmet sohasining barcha atributlarini o’z ichiga olgan munosabatdan boshlanishi kerak. Bu munosabatni ulkan jadval sifatida tasavvur etish mumkin. Bunday jadvaldagi ba’zi ma’lumotlar ko’plab o’rinlarda aynan qaytarilishi ma’lum.

Har bir me’yoriy shakl o’zidan avvalgi me’yoriy shakl talablarini to’la qoniqtiradi hamda ba’zi qo’shimcha talablarni ham bajarilishi lozimligini belgilaydi.



Birinchi me’yoriy shakl (1NF). Agarda munosabatning barcha atributlari bo’linmas qiymatlarga ega bo’lsa, u birinchi me’yoriy shaklda deyiladi. Ushbu talab buzilishiga misol sifatida «Manzil» tipidagi atributni keltirish mumkin. Mazkur atributning qiymatiga mohiyati jihatidan turlicha bo’lgan axborot, ya’ni shahar, viloyat, ko’cha nomlari kiritilishi mumkin. Bu axborotlar birinchi me’yoriy shakl talablariga ko’ra boshqa-boshqa atributlar bilan ifodalanishi zarur.

Bundan tashqari, munosabatlar qaytariladigan guruhlardan iborat bo’lmasligi zarur. Masalan, munosabatda telefon raqami nomli atribut mavjud bo’lsin. Agarda korxonaning telefon raqami bitta emas, ikkita bo’lsa, unda ikkinchi telefon raqami nomli atributni ham kiritishga to’g’ri keladi. Biroq, bu yondashuv muammoni to’laligicha hal qila olmaydi. Aytaylik, uchinchi telefon raqami mavjud bo’lsin. Хo’sh, unda qanday yo’l tutiladi?



Ikkinchi me’yoriy shakl (2NF). Munosabat ikkinchi me’yoriy shaklda bo’lishi uchun unda qisman funksional bog’liqlikka ega atributlar bo’lmasligi zarur, ya’ni birlamchi bo’lmagan har bir atribut tarkibiy kalitga qisman emas, balki to’laligicha bog’liq bo’lishi zarur.

Uchinchi me’yoriy shakl (3NF) tranzitiv bog’liqliklardan xoli bo’lishni talab etadi. Amaliyotda ushbu talab birlamchi bo’lmagan atributlar orasida bog’liqlik bo’lmasligi bilan ifodalanadi.

Boys-Kodd me’yoriy shakli (BCNF) har bir diterminant ehtimoldagi kalit bo’lishini talab etadi.

Тo’rtinchi me’yoriy shakl (4NF) munosabatdagi atributlar orasida ko’p qiymatli bog’liqliklar bo’lmasligini talab etadi. Masalan, o’qituvchi talabalarga turli predmetlar bo’yicha dars beradi. Har bir kursda bir qancha talabalar o’qishi mumkin va har bir talaba bir nechta predmetlar bo’yicha ta’lim olishi mumkin. U holda, «O’quv predmeti» va «Тalaba» atributlari orasida ko’p qiymatli bog’liqlik mavjud bo’ladi va bu bog’liqlik nome’yoriy hodisa yuzaga kelishiga sabab bo’lishi mumkin, ya’ni ma’lumotlar bazasiga yangi talaba kiritilganida, u ta’lim oladigan predmetlar soniga bog’liq holda bir necha yozuvlarni kiritish talab etiladi.

Ushbu munosabatni to’rtinchi me’yoriy shaklga keltirish uchun uni ikki bo’lakka bo’lish va «O’quv predmeti» va «Тalaba» atributlarini boshqa-boshqa munosabatlarga ajratish zarur bo’ladi.

Beshinchi me’yoriy shakl amaliyotda qo’llanilmaydi.

Me’yorlash talablariga rioya qilish muayyan axborot tizimlari uchun ko’pincha samaradorlikni pasayishiga olib keladi. Me’yorlashdan so’ng munosabatlar soni oshadi, mazkur ma’lumotlar bazasiga bo’ladigan so’rovlarni bajarishda ko’plab birlashmalar (JOIN) hosil qilish zarur bo’ladi va tizimning ancha-muncha resurslarini sarf etish talab qilinadi. Ko’pincha, fizik loyihalash darajasiga o’tilganida me’yoriy shakllaridan ortga chekinish, ya’ni «nome’yorlash» (denormalizatsiya) amalga oshiriladi. «Nome’yorlash» jarayoni aniq formallashtirilgan qoidalarga ega emas, bunda amalga oshirilishi lozim bo’lgan masala va predmet sohasining xususiyatlaridan kelib chiqqan holda qaror qabul qilinadi.

Normallashtirish nazariyasi jadval maydonlari orasidagi u yoki bu bog‘liqlikning borligiga asoslanadi. Bunday bog‘liqliklarning ikki turi aniqlangan:


  • funksional

  • ko‘p qiymatli

Funksional bog‘liqlik: Berilgan ixtiyoriy vaqtda A maydonning har bir turli qiymatiga mos ravishda albatta B maydonning har bir turli qiymatidan faqat bitta qiymati bo‘lsa, jadvalning B maydoni huddi shu jadvalning A maydoniga funksional bog‘langan deyiladi. Aytib o‘tish kerakki, A va B maydonlar tashkil qiluvchilar bo‘lishi mumkin.

To‘liq funktsional bog‘liqlik: B maydon A tashkil qiluvchiga to‘liq funksional bog‘liq bo‘ladi, agar u A ga funksional bog‘liq bo‘lsa va A maydonning boshqa qitymatlariga bog‘liq bo‘lmasa.

Ko‘p qiymatli bog‘liqlik: A maydon huddi shu jadvalning B maydonini ko‘p qiymatli aniqlaydi, agar A maydonning har bir qiymatiga mos ravishda B maydonning aniqlangan qiymatlari bor bo‘lsa.
Ko‘p funksional bog‘liqlikga misol “O‘qish jadvali”

Fan

Muallim

Darslik

Dasturlash

Abdullayev I.R.

Liberti Dj . Osvoy samostoyatelno C++

Dasturlash

Raxmonov U.K.

Forsayt R. Pascal dlya vsex

Dasturlash

Kovalev N.N.

Liberti Dj. Osvoy samostoyatelno C++

Dasturlash

Kovalev N.N.

Forsayt R. Pascal dlya vsex

Dasturlash

Raxmonov U.K.

Faysman K. Professionalnoye programmirovaniye na Paskale

Jadvalda ko‘p qiymatli bog‘liqlik bor “Fan-Muallim”: Fan (Dasturlash misolida) bir nechta muallim tomonidan o‘qilishi mumkin (misolda Abdullayev, Raxmonov, Kovalev). Yana boshqa bog‘liqlik ham bor “Fan-Darslik”: informatikani o‘tishda “Pascal dlya vsex”, ”Osvoy samostoyatelno C++” va “Professionalnoye programmirovaniye na Pascale” darsliklari ishlatiladi. Bunda Muallim va Darslik funksional bog‘lanmagan, bu esa ortiqchalikka olib keladi (yangi darslikni yozish uchun yana ikkita yangi qator yozish kerak bo‘ladi). Bu jadvalni ikkiga ajratganda ish yaxshilanadi: (Fan-Muallim va Fan-Darslik)



Normal bo’lmagan shakl (NNF) – bu bir yoki bir nechta takrolanuvchi ma’lumotlar guruxiga ega bo’lgan jadval.

Тakrolanuvchi gurux tushunchasi. Тakrorlanuvchi gurux ER – diagrammalardagi munosabatning ko’p qiymatli atributiga mos keladi. Тakrolanuvchi gurux (repeating group) - bu har bir maydonida bir nechta qiymat joylashgan atribut.

Misol. Masalan xodimlar munosabatida (jadvalida) farzandlar nomini va tug’ilgan kunlarini saqlash zarur bo’lsin. Har bir xodimda bir nechta farzand bo’lishi mumkin. Shuning uchun farzandlar tug’ilgan kuni va ismlari takrorlanuvchi guruhni tashkil etadi.

Xodimlar


Xodim_ID

Ism

Fam

Farzand ismlari

Farzand tug_kun

1001

Jane

Doye

Masu, Sam

1/1/92,5/15/94

1002

John

Doye

Mary, Sam

2/2/92,5/10/94

1003

Jane

Smith

John, Pat, Lee, Masu

10/5/94,10/12/90,6/6/96,8/21/94

1004

John

Smith

Michael

7/4/96

1005

Jane

Jones

Edward, Martha

10/21/95, 10/15/89

Rasm1. Тakrorlanuvchi guruxga ega bo’lgan me’yorlashtirilmagan munosabat.
Bu jadvalda ko’rinib turganidek har bir satrning ikkita ustunida (Farzand_ismlari, Farzand_tug_kun) bittadan ko’p qiymat joylashgan.
Нет Возможности точно сказать, какие даты рождения каким детям соответствуют. Предположим, что мы можем сопоставить даты рождения именам детей по их позиции в списке, однако нет уверенности в том, что номера позиций всесда будут соблюдаться.

Поиск в такои таблице чрезвычайно труден. Например, если необходимо узнать, дети каких сотрудников родились до 1995 с., СУБД потребуется извлечь даты рождения из столбца дат рождения, а лишь затем проверить их. Если же невозМОЖНО узнать, сколько дат рождения находится в этом столбце для конкретной строки, объем обработки информациИ становиТСЯ еще больше.



Тakrorlanuvchi guruxlarni bartaraf etish.

Keltirilgan jadvalni birinchi normal formaga keltirishning yoki takrorlanuvchi guruxlarni bartaraf etishning ikkita usuli mavjud: noto’g’ri va to’g’ri.



Noto’g’ri usul. Birinchi usulda takrorlanuvchi guruxlar har bir takrorlanuvchi qiymat uchun jadvalga alohida ustun qo’shish orqali bartaraf etiladi. Ba’zi xolatlarda bu usul to’g’ri bo’ladi. Ba’zi xolatlarda esa jadval birinich normal formaga kelgani bilan guruxdagi qiymatlarning soni bilan bog’liq muammo kelib chiqadi.

Misol. Yuqorida keltirilgan jadvalda Farzand_ismlari va Farzand_tug_kun ustunlarini uchta ustunga ajratamiz.
Xodimlar

Xodim_ID

Ism

Fam

Farzand1_ismi

Farzand2_ismi

Farzand3_ismi

F1_tug_k

F2_tug_k

F3_tug_k

1001

Jane

Doye

Masu

Sam




1/1/92

5/15/94




1002

John

Doye

Mary,

Sam




2/2/92,

5/10/94




1003

Jane

Smith

John,

Pat

Lee

10/5/94

10/12/90

6/6/96

1004

John

Smith

Michael







7/4/96







1005

Jane

Jones

Edward

Martha




10/21/95

10/15/89





Rasm 2. Тakrorlanuvchi guruxlarni noto’g’ri bartaraf etilishi
2 - rasmda keltirilgan jadval birinchi normal forma talablarini qanoatlantiradi. Biroq unda bir qator muammolar vujudga kelgan.

  • Jadvalda xar bir xodim uchun faqat uchta farzand bilan chegaralangan. Unda xodimning 4 – farzandi haqida ma’lumot saqlash imkoni yo’q.

  • Хodimlarning farzandi uchtadan kam bo’lgan xodimlarda jadvalning ko’pgina qismi bekor qoladi.

  • Konkret farzandni izlash amali murakkablashadi.


Тo’g’ri usul. Ikkinchi usulda boshlang’ich jadvaldagi biror atribut yoki atributlar kalit sifatida belgilanadi, keyin takrolanuvchi guruxlar joriy jadvaldan olinib aloxida jadvalga o’tkaziladi. Bunda takrorlunvchi guruxdagi har bir qiymat kalit nusxasi bilan birga yangi jadvalga o’tkaziladi. Yangi jadvalga o’tkazish har bir takrorlanuvchi gurux uchun bajariladi. Agar yaratilgan jadvalda ham takrorlanuvchi guruxlar mavjud bo’lsa ular uchun ham to’g’ri yoki noto’g’ri usul qo’llaniladi.

Misol. Keltirilgan misolda farzand ismlari va tug’ilgan kunlari haqidagi ma’lumotlar yangi jadvalga o’tkaziladi. Unda boshlang’ich jadvalda
Xodimlar

Xodim_ID

Ism

Fam

1001

Jane

Doye

1002

John

Doye

1003

Jane

Smith

1004

John

Smith

1005

Jane

Jones


Farzand

Xodim_ID

Ism

Tug_yil

1001

Masu

1/1/92

1001

Sam

5/15/94

1002

Mary

2/2/92

1002

Sam

5/10/94

1003

John

10/5/94

1003

Pat

10/12/90

1003

Lee

6/6/96

1003

Masu

8/21/94

1004

Michael

7/4/96

1005

Edward

10/21/95

1005

Martha

10/15/89


3 – rasm. Тakrorlanuvchi guruxlarni to’g’ri bartaraf etilishi
Birinchi normal formaga bo’lgan talablar quyidagilardan iborat:

1) Berilgan boshlang’ich munosabat tasvirlangan relyatsion jadvalning har bir atributining qiymati atomar bo’lishi kerak. Ya’ni bu qiymat relyatsion jadval (munosabat) bo’lishi mumkin emas;

2) boshlang’ich munosabat ma’lumotlar orqali – ya’ni relyatsion jadval va unga tegishli bo’lgan ma’lumotlar bazasining butunlik shartlari orqali ifodalanadi.

3) jadvalda bir satrlar (kortejlar, yozuvlar) mavjud emas;

4) har bir ustun jadvalda atribut nomi bilan nomlangan va atriutning joriy qiymatlaridan iborat bo’ladi;

5) har bir atribut ma’lum domen (ma’lumotlarning abstrakt tipi) bilan bog’langan;

6)agar relyatsion jadvalda (munosabatda) ushbu jadval ilan ishlashe’tiborga olinishi kerak bo’lgan funksional bog’lanishlar mavjud bo’lsa, u xolda ushbu bog’lanishlar ma’lumotlar bazasining butunlik shartida qayd qilinadi;

7) yozuvlar yaqqol va noyaqqol tartiblangan (masalan, jimlikka ko’ra - foydalanuvchiga ma’lum yoki noma’lum shaklda). Хususan tartiblanganligiga qat’iy talablar qo’yilmaydi (bu talab effektiflik bilan yoki ishlashdagi qulaylik bilan bog’liq);

8) birlamchi kalitning xech biri bo’sh (NULL) bo’lmasligi kerak;

9) agar 1NF darajasida kalitlar belgilansa (kalit keyinroq – 2NF da aniqlanishi ham mumkin), u xolda ko’rsatgichlarning butunlik sharti qanoatlantirilishi kerak.


Normallashtirish protsedurasi


Normallashtirish – bu jadvallarni ma’lumotlarni yangilanishda, qo‘shishda va o‘chirishda bir nechaga bo‘lishdir.

Normallashtirish – bu ma‘lumotlarni qo‘shishda, o‘zgartirishda va o‘chirishda eng yaxshi xususiyatlarga ega ikki yoki undan ortiq bo‘laklarga jadvalni bo‘lish. Normallashtirishning asosiy maqsadi ma’lumotlar bazasini olishga qaratilganki, unda har bir dalil (fakt) faqat bir joyda uchraydi, ya’ni ma‘lumotlar ortib ketmaydi. Bu faqat xotiradan tejam foydalanlish maqsadida qilinmay, balki saqlanayotgan ma‘lumotlar orasida qaramaqarshiliklarni bartaraf qilish uchundir.

Har bir jadval relyatsion ma‘lumotlar bazasida shunday shartlarni qoniqtiradiki, unga ko’ra jadvalning har bir ustun va satrining kesishish joyida har doim yagona atomar qiymat joylashadi va hech qachon ko‘p miqdorda xuddi shunday qiymatlar bo‘lishi mumkin emas. Shu shartni qoniqtiruvchi har qanday jadval normallashgan deyiladi. Umuman olganda normallashmagan jadvallar, ya’ni takrorlanuvchi ma‘lumotlar guruhiga ega jadvallar relatsion ma‘lumotlar bazasiga kiritilmaydi.



Normallashtirish jadvallarni barcha dekompozitsiyalari bilan ketma ket almashtirish jarayoni bo‘lib, bu almashtirish jadvallarning barcha dekompozitsiyalar 5NF joylashmagancha davom etadi. Amaliyotda esa jadvallarni BKNF ga keltirish kifoya va katta kafolat bilan aytish mumkin-ki, ular 5NF joylashadi.

Jadvallarni NFBK ga o‘tkazish protsedurasi

Bu protsedura, ixtiyoriy jadvalda yagona funktsional bog‘liqliklar K->F ko‘rinishda bo‘lishga asoslanadi, bunda K – dastlabki kalit, F - esa qandaydir boshqa maydon. Shuni inobatga olish kerak-ki, bu dastlabki kalit ta’rifidan kelib chiqadi, yani K->F bog‘lanish berilgan jadvalning barcha maydonlari uchun bajariladi. "Bir joyda bir fakt" degani boshqa funktsional bog‘liqliklar hech qanday kuchga ega emas ma’noni bildiradi. Normallashnitishdan maqsad K->F kurinishdagi bog‘lanishdan tashqari boshqa bog‘lanishlsrdan vos kechishdir.

Agar norlashtirish vaqtida birlamchi(tashqi) kalitlar kodlarini boshlang‘ich kalitlarnikiga almashtirilsa, u holda quyidagi ikki holni kurib chiqish kerak bo‘ladi:


  1. Jadval birinchi tarkibli kalit ko‘rinishida bo‘lsin, aytaylik (K1,K2). Bundan tashqari, bu kalitning biror qismiga funktsional bog‘liq, lekin to‘la kalitga bog‘liq bo‘magan, masalan K2, F maydonni o‘z ichiga olsin. Bu holda K2 va F(K2-birlamchi kalit) ni o‘z ichiga oluvchi boshqa jadval tashkil qilish taklif etiladi va boshlang‘ich jadvaldan F o‘chiriladi:

Almashtirilsin T(K1,K2,F) , birlamchi kalit (K1,K2), FZ K2->F T1(K1,K2)ga, birlamchi kalit (K1,K2) va T2(K2,F), birlamchi kalit K2.

  1. Jadval birlamchi K kalitga ega, F1 maydonning mumkin bo‘lgan kaliti bo‘lmagan holda, qaysiki albatta Kga funktsional jihatdan bog‘liq va boshqa kalitsiz F2 maydoni, qaysiki F1ga funktsional jihatdan bog‘liq. Bu erda echim, aslida, avvalgining o‘zi – F1 va F2 ni o‘zida aks ettirgan jadval shakllantiriladi, boshlang‘ich kalit F1 bo‘lgan holda va F2 boshlang‘ich jadvaldan olib tashlanadi:

Almashtirilsin T(K,F1,F2), birinchi kalit K, FZ F1->F2 T1(K,F1)ga, birinchi kalit K va T2(F1,F2), birinchi kalit F1.

Berilgan har qanday jadval uchun, ko‘rib chiqilgan 2 qoidalarga asoslangan o‘zgaruvchilarni takrorlab, deyarli barcha holatlarda oxir-oqibat ko‘p jadvallarni olish mumkin, ular “oxiri” normal ko‘rinishda (Formada) bo‘ladi va shunday qilib K->F dan farqli bo‘lgan hech qanday functsional bog‘lanishga ega bo‘lmaydi.


Normal formalar

Birinchi normal forma:

Jadval birinchi normal formada deyiladi , qachonki hech bir undagi qator istalgan maydonda bittadan ortiq bo’lmagan ma’noga ega bo’lmasa va birorta kalit maydoni bo’sh bo’lmasa ;



Ikkinchi normal forma:

Jadval ikkinchi normal formada deyiladi , qachonki agar u birinchi normal formadagi ifodalarni ,maydonlarni qanoatlantiradi va birlamchi kalit bo’lmaganda hamda birlamchi kalitga to’liq funksional qaram bolmaganda ;



Uchinchi normal forma:

Jadval uchinchi normal formada deyiladi, qachonki u 2NF ning barcha shartlarini qanoatlantirsa va birorta ham uning kalitsiz maydonlari boshqa bir kalitsiz maydonlar bilan bog’liq bo’lmasa;



Boysa-Kodd normal formasi

Jadval Boysa-Kodd normal (BKNF) formasida bo’ladi, agar maydonlar orasidagi har qanday funktsional bog’lanish to’liq funktsional bog’lanishga ega bo’lsa.



Beshinchi normal forma:

Jadval beshinchi normal formada (5 NF) bo’ladi, qachonki har bir to’liq dekompozitsiya barcha proektsiyalari mumkin bo’lgan kalitlarni saqlasa. Birorta to’liq dekompozitsiyaga ega bo’lmagan jadval ham beshinchi normal formada (5NF) bo’ladi.

To’rtinci normal forma agar to’liq dekompozitsiya ikkita proektsiya birlashmasidan iborat bo’lsa beshinchi normal formaning xususiy holi bo’ladi.

Ma’lumotlar sxemasini yaratish

Ma’lumotlar sxemasini yaratish Базы данных (Database) oynasida quyidagi buyruqlarni bajarish orqali bajariladi Сервис | Схема данных (Tools | Relationships) yoki ma’lumotlar omborining instrumentlar paneldan Схема данных (Relationships) degan tugmani bosish orqali amalgam oshiriladi.

Jadvallarni ma’lumotlar sxemasiga qo’shish: Схема данных (Relationships) tugmasini bosganingizdan so’ng Добавление таблицы (Show table) oynasi ochiladi, unda siz o’zingizga kerak bo’lgan jadval va so’rovlarni ma’lumotlar sxemasiga qo’shishingiz mumkin. Jadvalni ma’lumotlar sxemasida joylashtirish uchun Добавление таблицы (Show table) oynasida kerak bo’lgan jadvalni tanlab Добавить (Add) tugmasini bosish kerak. Bir necha jadvallarni sxemaga qo’shish uchun tugmasini bosgan holatda jadvallar nomini belgilab chiqib Добавить (Add) tugmasini bosish kerak. Hamma kerak bo’lgan jadvallarni sxemaga qo’shib bo’lgandan kegin Закрыть (Close) tugmasini bosish kerak.





Jadvallar orasida bogliklar yaratish: Ma’lumotlar sxemasida jadvallar o’rtasidagi bogliqlikni aniqlashda informasion-mantiqiy modelni kanonik ko’rinishda foydalanish qulaylik tugdiradi bunda bosh va bo’ysunivchi jadvallar orasidagi munosabatlarni oson aniqlab olish mumkin bo‘ladi chunki informasion – mantiqiy modeldagiga o’hshab bosh jadvallar bo’ysunuvchi jadvallarga qaraganda yuqoriroqda joylashgan bo’ladi. birga – bir boglanishlar kamdan – kam holda ishlatilganli b boglanishlar realiasion omborlarda asosiy hisoblanadi.

Ma’lumotlar sxemasida jadvallar o’rtasida 1:M munosabatlarni o’rnata turib, bosh jadvalda boglanish o’rnatilishi kerak bo’lgan unikal kalitli maydonni belgilab oling. Keyin sichqonchaning tugmasini qo’yib yubormasdan turib kursorni bo’ysunuvchi jadvalning mos maydoniga qo’ying.

Tarkibiy kalit orqali jadvallar o’rtasida munosabat o’rnatayotganingizda, bosh jadvalaning kaliti bo’ladigan hamma maydonlarni tanlab ularni bo’ysunuvchi jadvalning birorta maydoniga olib o’ting. Tarkibli kalitga kiradigan hamma maydonlarni belgilash uchun ularni knopkasini bosib belgilab chiqiladi. Munosabat o’rnatilgandan keyin Изменение связей (Edit Relationships) oynasi ochiladi. Тип отношений maydonida avtomatik tarzda birga-ko’p boglanish o’rnatiladi.

Tarkibli kalit bo’lgan holda Изменение связей (Edit Relationships) oynasida bosh jadvalning har bir maydoni uchun Таблица / Запрос (Table/Query) da bo’ysunuvchi jadvalning mos ravishdagi maydonini tanlash kerak.






Yüklə 457,56 Kb.

Dostları ilə paylaş:
1   2   3   4   5   6




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin