Relyatsion ma'lumotlar model. Malumotlar bazasida munosabatlar


Download 30.74 Kb.
bet3/3
Sana28.12.2022
Hajmi30.74 Kb.
#1009454
1   2   3
Bog'liq
Jabborov.M 971-20

Normallashtirish jadvallarni ma'lumotlarni izchil va to'g'ri tahrir qilish imkonini beradigan shaklga keltirish maqsadida, takrorlanadigan guruhlarni va ma'lumotlarni saqlashdagi boshqa qarama -qarshiliklarni bartaraf etish orqali ma'lumotlarni qayta tashkil etish jarayonidir.
Normallashtirish nazariyasi normal shakllar tushunchasiga asoslanadi. Agar jadval ma'lum talablarga javob bersa, u berilgan normal shaklda deyiladi. Nazariy jihatdan beshta oddiy shakl mavjud, lekin amalda odatda faqat dastlabki uchtasi ishlatiladi. Bundan tashqari, dastlabki ikkita oddiy shakl - bu ma'lumotlar bazasini uchinchi oddiy shaklga o'tkazish uchun oraliq bosqichlar.







Birinchi oddiy shakl
Normallashtirish jarayonini NorthWind ma'lumotlar bazasi ma'lumotlaridan foydalanib misol bilan tasvirlaylik. Aytaylik, biz buyurtma qilingan barcha mahsulotlarni quyidagi jadvalda ro'yxatdan o'tkazamiz. Bu jadvalning tuzilishi quyidagicha (2 -rasm).
Jadval birinchi normal shaklga mos kelishi uchun uning barcha maydon qiymatlari atom va bo'lishi kerak
barcha yozuvlar o'ziga xosdir. Shunday qilib, har qanday munosabatlar jadvali, shu jumladan OrderedProducts jadvali, ta'rifi bo'yicha, birinchi oddiy shaklda.
Biroq, bu jadvalda ortiqcha ma'lumotlar mavjud, masalan, har bir buyurtma qilingan mahsulot uchun rekordda bir xil xaridor ma'lumotlari takrorlanadi. Ma'lumotlarning ko'payishi modifikatsiyadagi anomaliyalarga olib keladi yozuvlarni qo'shish, o'zgartirish yoki o'chirish paytida paydo bo'ladi. Masalan, OrderedProducts jadvalidagi ma'lumotlarni tahrirlashda quyidagi muammolar paydo bo'lishi mumkin:

  • Ma'lum bir xaridorning manzili faqat xaridor kamida bitta mahsulotga buyurtma berganida ma'lumotlar bazasida bo'lishi mumkin.

  • Buyurtma qilingan mahsulot uchun yozuvni o'chirish bir vaqtning o'zida buyurtmaning o'zi va uni joylashtirgan xaridor haqidagi ma'lumotlarni o'chirib tashlaydi.

  • Agar, Xudo ko'rsatmasin, xaridor manzilni o'zgartirgan bo'lsa, unga buyurtma qilingan mahsulotlarning barcha yozuvlarini yangilashga to'g'ri keladi.

Ushbu muammolarning ba'zilari ma'lumotlar bazasini konvertatsiya qilish orqali hal qilinadi ikkinchi oddiy shakl.







Ikkinchi oddiy shakl
Aytishlaricha, munosabatlar jadvali ikkinchi oddiy shakl agar u birinchi oddiy shaklda va uning kalit bo'lmagan maydonlarida bo'lsa butunlay qaram butun asosiy kalitdan.
OrderedProducts jadvali birinchi, lekin ikkinchi oddiy shaklda emas, chunki CustomerID, Address va OrderDate maydonlari faqat birlamchi kalit kalitining (OrderID, ProductID) bir qismi bo'lgan OrderID maydoniga bog'liq.
Birinchi oddiy formadan ikkinchisiga o'tish uchun siz quyidagi amallarni bajarishingiz kerak:

  1. Asosiy kalitni qaysi qismlarga bo'lish mumkinligini aniqlang, shunda ba'zi kalit bo'lmagan maydonlar ushbu qismlardan biriga bog'liq bo'ladi ( bu qismlar bitta ustunda bo'lishi shart emas!).

  2. Kalitning har bir qismi va unga bog'liq bo'lgan maydonlar guruhi uchun yangi jadval yarating va ularni shu jadvalga o'tkazing. Avvalgi asosiy kalitning qismi yangi jadvalning asosiy kalitiga aylanadi.

  3. Jadvaldan chet el kalitlari bo'lmagan jadvallarga ko'chirilgan maydonlarni olib tashlang.

Masalan, OrderedProducts jadvalini ikkinchi normal shaklga keltirish uchun, CustomIDID, Manzil va OrderDate maydonlarini yangi jadvalga o'tkazamiz (buni OrdersInfo deb ataymiz), OrderID maydonini yangi jadvalning asosiy kaliti qilib qo'yamiz (3 -rasm). .
Natijada, yangi jadvallar shunday ko'rinishga ega bo'ladi. Biroq, ikkinchi, lekin uchinchi oddiy bo'lmagan jadvallar hali ham ma'lumotlarni o'zgartirish anomaliyalarini o'z ichiga oladi. Bu, masalan, OrdersInfo jadvali uchun:

  • Ma'lum bir xaridorning manzili, agar xaridor kamida bitta mahsulotga buyurtma bergan bo'lsa, ma'lumotlar bazasida bo'lishi mumkin.

  • OrdersInfo jadvalidagi buyurtma yozuvini o'chirish mijozning o'zi uchun yozuvni o'chirib tashlaydi.

  • Agar mijoz manzilni o'zgartirgan bo'lsa, bir nechta yozuvlarni yangilash kerak bo'ladi (garchi, qoida tariqasida, ular oldingi holatga qaraganda kamroq).

Siz borib, bu anomaliyalarni bartaraf etishingiz mumkin uchinchi oddiy shakl.







Uchinchi oddiy shakl
Aytishlaricha, munosabatlar jadvali uchinchi oddiy shakl agar u ikkinchi oddiy shaklda bo'lsa va uning barcha kalit bo'lmagan maydonlari faqat birlamchi kalitga bog'liq bo'lsa.
OrderDetails jadvali allaqachon uchinchi oddiy shaklda. Kalit bo'lmagan Miqdor maydoni butunlay birlamchi kalitga bog'liq (OrderID, ProductID). Biroq, OrdersInfo jadvali uchinchi oddiy shaklda emas, chunki unda kalit bo'lmagan maydonlar orasidagi bog'liqlik mavjud (u shunday nomlanadi) tranzit qaramliko'tuvchi bog'liqlik) - Manzil maydoni CustomerID maydoniga bog'liq.
Ikkinchi oddiy formadan uchinchisiga o'tish uchun siz quyidagi bosqichlarni bajarishingiz kerak:

  • Boshqa maydonlar bog'liq bo'lgan barcha maydonlarni (yoki maydon guruhlarini) aniqlang.

  • Har bir shunday maydon (yoki maydonlar guruhi) va unga bog'liq bo'lgan maydonlar guruhi uchun yangi jadval yarating va ularni shu jadvalga o'tkazing. Boshqa barcha ko'chirilgan maydonlar bog'liq bo'lgan maydon (yoki maydonlar guruhi) yangi jadvalning asosiy kalitiga aylanadi.

  • Ko'chirilgan maydonlarni asl jadvaldan olib tashlang, faqat chet el kalitlari bo'ladi.

OrdersInfo jadvalini uchinchi oddiy shaklga keltirish uchun yangi mijozlar jadvalini yarating va unga CustomerID va manzil maydonlarini ko'chiring. Dastlabki jadvaldan Manzil maydonini o'chirib tashlaymiz va CustomerID maydonini tark etamiz - endi bu tashqi kalit (4 -rasm). Shunday qilib, dastlabki jadvalni uchinchi oddiy shaklga o'tkazgandan so'ng, uchta jadval mavjud - mijozlar, buyurtmalar va OrderDetails. Ma'lumotlarni o'zgartirish va tanlash, metadatani o'zgartirish va boshqa ba'zi operatsiyalar so'rovlar yordamida amalga oshiriladi. Ko'pgina zamonaviy DBMS (va ba'zi dasturlarni ishlab chiqish vositalari) bunday so'rovlarni ishlab chiqarish vositalarini o'z ichiga oladi. Ma'lumotlar bilan ishlashning bir usuli "namuna bo'yicha so'rovlar" (QBE) deb nomlanadi. QBE - bu jadvallarni vizual tarzda bog'lash va so'rov natijasida ko'rsatiladigan maydonlarni tanlash vositasi. Ko'pgina DBMSlarda (ba'zi ish stoli bundan mustasno), QBE yordamida so'rovni vizual tuzish maxsus so'rovlar tili SQL (Strukturalangan so'rovlar tili) yordamida so'rov matnini yaratishga olib keladi. Siz so'rovingizni to'g'ridan -to'g'ri SQL -da yozishingiz mumkin.








Download 30.74 Kb.

Do'stlaringiz bilan baham:
1   2   3




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