2-mavzu. Ma’lumotlar bazasida tashqi bog’lanish va birlashmalar


Download 440.01 Kb.
Pdf ko'rish
bet24/37
Sana08.01.2022
Hajmi440.01 Kb.
#237443
1   ...   20   21   22   23   24   25   26   27   ...   37
Bog'liq
2-maruza

QUL 

JADVALLARINGA 

QAYTARIShNI 

TAShKIL 

ETADIGAN 

KEYITLAR 

Yuqorida  aytib  o'tganimizdek,  FOREIGN  KEY  cheklovi  ushbu  shaxsiy  jadvalni  ularga 

asosiy kalit jadvallari sifatida taqdim etishi mumkin. Oddiy bo'lishdan uzoq, bu xususiyat foydali 

bo'lishi  mumkin.  Deylik,  menejer  maydoniga  ega  bo'lgan  xodimlar  jadvalimiz  bor.  Ushbu 

maydon xodimlarning har birining raqamlarini o'z ichiga oladi, ularning ba'zilari ma'mur hamdir. 

Ammo  har bir ma'mur bir vaqtning o'zida xodim bo'lib qolishi sababli, u tabiiy  ravishda ushbu 

jadvalda  ham  ishtirok  etadi.  Xodimning  raqami  (empno  deb  nomlangan  ustun)  birlamchi  kalit 

deb  e'lon  qilingan  va  administrator  uni  tashqi  kalit  deb  ataydigan  jadval  yarataylik:  JADVAL 

XODIMLARI  (empno  integer  NOT  NULL  PRIMARY  KEY,  name  char  (10)  NOT  NULL 

UNIOUE) , menejerning butun soniga YO'LLANILGAN MA'LUMOTLAR Xodimlar); (Chet el 

kaliti jadvalning havola qilingan asosiy kaliti bo'lgani uchun ustunlar ro'yxati chiqarib tashlanishi 

mumkin.)  Ushbu  jadvalning  mazmuni  quyidagicha:  EMPNO  NAME  MANAGER  _____ 

________  _______  1003  Terrence  2007  2007  Atali  NULL  1688  McKenna  1003  2002  Collier 

2007  Ko'rib  turganingizdek,  ularning  har  biri  (  lekin  Atali  emas),  jadvaldagi  boshqa  xodimni 

uning ma'muri deb ataydi. Jadvaldagi eng yuqori raqamga ega Atali NULL-ga o'rnatilishi kerak. 

Bu mos yozuvlar yaxlitligining boshqa printsipini beradi. Shaxsiy jadvalga murojaat qilgan chet 

el  kaliti  \u003d  NULL  qiymatlariga  ruxsat  berishi  kerak.  Agar  yo'q  bo'lsa,  birinchi  qatorni 

qanday kiritasiz? Ushbu birinchi satr o'ziga tegishli bo'lsa ham, tashqi kalit qiymati kiritilganda 

ota-ona qiymati allaqachon o'rnatilgan bo'lishi kerak. Ushbu tamoyil, agar tashqi kalit to'g'ridan-

to'g'ri  shaxsiy  jadvalga  murojaat  qilmasa  ham,  boshqa  jadvalga  havola  orqali,  keyin  esa  tashqi 

kalitlar  jadvaliga  murojaat  qiladi.  Masalan,  bizning  Sotuvchilar  jadvalida  Mijozlar  jadvaliga 

tegishli  bo'lgan  qo'shimcha  maydon  mavjud,  masalan,  quyidagi  CREATE  TABLE  bayonotida 

ko'rsatilgandek,  har  bir  jadval  boshqasiga  murojaat  qiladi  deb  taxmin  qiling:  JABBA 

Sotuvchilarni  yaratish  (snum  integer  NOT  NULL  PRIMARY  KEY,  sname  char  (10)  NOT 

NULL,  city  char  (10),  comm  declmal,  cnum  integer  ADABIYoTLAR  Mijozlar);  JADVAL 

MUZALARINI  YARATISH  (cnum  integer  NULL  PRIMARY  KEY,  cname  char  (10)  NOT 

NULL,  city  char  (10),  reyting  integer,  snum  integer  ADABIYOTLAR  Sotuvchilar);  Bunga 

o'zaro  bog'liqlik  deyiladi.  SQL  buni  nazariy  jihatdan  qo'llab-quvvatlaydi,  ammo  amalda  bu 

muammoli  bo'lishi  mumkin.  Birinchisi  tomonidan  yaratilgan  ikkitaning  har  qanday  jadvali, 

boshqasi  uchun  hali  mavjud  bo'lmagan  ma'lumotnoma  jadvali.  O'zaro  bog'lanish  uchun,  SQL 

aslida  bunga  imkon  beradi,  ammo  ikkalasi  ham  yaratilish  jarayonida  hech  qanday  jadval 

ishlatilmaydi. Boshqa tomondan, agar ikkita jadval turli xil foydalanuvchilar tomonidan tuzilgan 

bo'lsa, muammo yanada qiyinlashadi. O'zaro bog'liqlik foydali vosita bo'lishi mumkin, ammo bu 

noaniqlik  va  xavf-xatarlardan  xoli  emas.  Masalan,  avvalgi  misol  to'liq  foydalanishga  yaroqsiz: 

chunki u sotuvchini bitta mijoz bilan cheklaydi va bundan tashqari, bunga erishish uchun o'zaro 

bog'liqlikdan  foydalanish  kerak  emas.  O'zaro  faoliyat  ma'lumotlarning  yaxlitligini  yaratish 

tizimidan oldin uni  ishlatishda ehtiyot  bo'lishingizni  va dasturlaringizni  o'zgartirish va o'chirish 

effektlarini,  shuningdek  so'rovlarning  imtiyozi  va  dialog  bilan  ishlashini  qanday  boshqarishini 

tahlil  qilishni  tavsiya  etamiz.  (Imtiyozlar  va  interaktiv  so'rovlarni  qayta  ishlash  22-bobda 

muhokama qilinadi.) 




Download 440.01 Kb.

Do'stlaringiz bilan baham:
1   ...   20   21   22   23   24   25   26   27   ...   37




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