Өгөгдлийн сангийн харилцааны танилцуулга

Агуулгын хүснэгт:

Өгөгдлийн сангийн харилцааны танилцуулга
Өгөгдлийн сангийн харилцааны танилцуулга
Anonim

Өгөгдлийн сангийн харилцааны болон хамаарлын нэр томьёо нь хүснэгт дэх өгөгдөл хэрхэн холбогдож байгааг тодорхойлдог. Харилцааны мэдээллийн сан нь тодорхой түлхүүрээр холбогдсон хоёр ба түүнээс дээш тооны хүснэгтээс бүрдэнэ. Харилцааны мэдээллийн сан нь том өгөгдлийн санаачлагуудад түгээмэл байдаг бүтэцгүй мэдээллийн сангаас ялгаатай. Харилцааны өгөгдлийн сан нь хүснэгтүүдийг хэрхэн тодорхойлох, хүснэгтүүдийн хооронд хүчинтэй харилцааг юу бүрдүүлэх талаар хатуу дүрэм шаарддаг.

Image
Image

Мэдээллийн сангийн харилцааны төрөл

Харилцаа нь өгөгдлийн сангийн хүснэгтүүдийн хоорондын холболтыг хүчтэйгээр дүрслэх боломжийг танд олгоно. Дараа нь эдгээр харилцааг JOIN гэж нэрлэгддэг хүснэгт хоорондын хүчирхэг асуулга явуулахад ашиглаж болно.

Өгөгдлийн сангийн гурван төрлийн харилцаа байдаг бөгөөд тус бүр нь тухайн харилцаанд хамаарах хүснэгтийн мөрүүдийн тоогоор нэрлэгдсэн байдаг. Эдгээр гурван харилцааны төрөл бүр нь хоёр хүснэгтийн хооронд байна.

  • Нэг рүү харьцах харилцаа эхний хүснэгтийн оруулга бүр хоёр дахь хүснэгтэд зөвхөн нэг харьцагчтай байх үед үүсдэг. Бүх мэдээллийг нэг хүснэгтэд оруулах нь илүү үр дүнтэй байдаг тул ганцаарчилсан харилцааг бараг ашигладаггүй. Зарим өгөгдлийн сангийн дизайнерууд өөр хүснэгтийн өгөгдлийн дэд багцыг агуулсан хүснэгтүүдийг үүсгэх замаар энэ харилцааны давуу талыг ашигладаг.
  • Нэгээс олон харилцаа нь мэдээллийн сангийн харилцааны хамгийн түгээмэл төрөл юм. Хүснэгт А-д байгаа бичлэг бүр В хүснэгтийн нэг буюу хэд хэдэн бичлэгтэй тохирч байх үед тэдгээр нь гарч ирдэг, харин В хүснэгтийн бичлэг бүр А хүснэгтийн зөвхөн нэг бичлэгтэй тохирч байна. Жишээ нь, бага сургуулийн багш нарын хүснэгт болон сурагчдын хүснэгтийн хоорондын хамаарал. Оюутан бүр зөвхөн нэг багштай байдаг ч багш бүр хэд хэдэн сурагчтай байдаг тул мэдээллийн сан нь нэгээс олон харьцаатай байх магадлалтай. Энэхүү нэгээс олон загвар нь давхардсан өгөгдлийг арилгахад тусалдаг.
  • Олон-олон харилцаа нь А хүснэгтийн бичлэг бүр Б хүснэгтийн нэг буюу хэд хэдэн бичлэгтэй, харин В хүснэгтийн бичлэг бүр нэг буюу хэд хэдэн бичлэгтэй тохирч байвал үүсдэг. Хүснэгт А. Жишээ нь, Багш бүр нэгээс олон хичээл зааж болох ба курс бүр нэгээс олон багштай байж болох тул Багш нарын хүснэгт болон Хичээлийн хүснэгтийн хоорондын хамаарал олон-олон байх магадлалтай.

Доод шугам

Өөрийгөө лавлах харилцаа нь зөвхөн нэг хүснэгттэй байх үед үүсдэг. Нэг нийтлэг жишээ бол ажилтан бүрийн удирдагчийн талаарх мэдээллийг агуулсан Ажилчдын хүснэгт юм. Удирдагч бүр мөн ажилтан бөгөөд ахлагчтай. Энэ тохиолдолд ажилтан бүр нэг ахлагчтай байдаг ч ахлагч тус бүр нэгээс олон ажилтантай байж болох тул нэгээс олон гэсэн харилцан хамаарал бий.

Гадаад түлхүүрээр харилцаа үүсгэх

Та гадаад түлхүүр зааж өгснөөр хүснэгтүүдийн хооронд харилцаа үүсгэнэ. Энэ түлхүүр нь харилцааны өгөгдлийн санд хүснэгтүүд хэрхэн холбогдож байгааг хэлж өгдөг. Ихэнх тохиолдолд А хүснэгтийн баганад Б хүснэгтээс иш татсан үндсэн түлхүүрүүдийг агуулна.

Багш, сурагчдын хүснэгтийн жишээг авч үзье. Багш нарын хүснэгт нь ID, нэр, курсын багана агуулсан:

Багшийн ID Багшийн_Нэр Хичээл
001 Жон Доу Англи
002 Жэйн Шмое Математик

Оюутны хүснэгтэд ID, нэр, гадаад түлхүүрийн багана орно:

ОюутныID Оюутны_Нэр Багш_ФК
0200 Lowell Smith 001
0201 Брайан Шорт 001
0202 Корки Мендез 002
0203 Моника Жонс 001

Оюутны хүснэгтийн Багш_FK багана нь Багшийн хүснэгтийн багшийн үндсэн түлхүүр утгыг заана. Өгөгдлийн сангийн зохион бүтээгчид үндсэн түлхүүр эсвэл гадаад түлхүүр баганыг тодорхойлохын тулд баганын нэр дэх PK эсвэл FK-г ихэвчлэн ашигладаг.

Эдгээр хоёр хүснэгт нь багш, сурагчдын хоорондын нэгээс олон харьцааг харуулж байна.

Харилцаа ба лавлагааны бүрэн бүтэн байдал

Хүснэгтэд гадаад түлхүүр нэмсний дараа хоёр хүснэгтийн хооронд лавлагааны бүрэн бүтэн байдлыг хангах мэдээллийн сангийн хязгаарлалтыг үүсгэ. Энэ алхам нь хүснэгтүүдийн хоорондын харилцааг тогтвортой байлгахыг баталгаажуулдаг. Нэг хүснэгт нөгөө хүснэгтийн гадаад түлхүүртэй бол лавлагааны бүрэн бүтэн байдал нь Хүснэгт В-д байгаа гадаад түлхүүрийн утгыг Хүснэгт А-д байгаа бүртгэлд хамаарах ёстой.

Харилцаа хэрэгжүүлэх

Өгөгдлийн сангаасаа хамааран та хүснэгт хоорондын харилцааг өөр өөр аргаар хэрэгжүүлэх болно. Microsoft Access нь хүснэгтүүдийг холбох, мөн лавлагааны бүрэн бүтэн байдлыг хангах боломжийг олгодог шидтэнээр хангадаг.

Хэрэв та SQL-г шууд бичиж байгаа бол эхлээд ID баганыг үндсэн түлхүүр гэж зарлаж Багш нар хүснэгтийг үүсгэнэ үү:

ХҮСНЭГТ ҮҮСГЭХ Багш нар (InstructorID INT AUTO_INCREMENT PRIMARY KEY, Багшийн_Нэр VARCHAR(100), Курс VARCHAR(100));

Та Оюутны хүснэгтийг үүсгэхдээ Teacher_FK баганыг Багшийн хүснэгт дэх InstructorID баганыг лавлах гадаад түлхүүр гэж зарлана:

ХҮСНЭГТ ҮЗҮҮЛЭХ Оюутнууд (Оюутны ID INT AUTO_INCREMENT PRIMARY KEY, Оюутны_Нэр VARCHAR(100), Teacher_FK INT, ГАДААДЫН ТҮЛХҮҮР (Багш));

Хүснэгтүүдийг нэгтгэхийн тулд харилцааг ашиглах нь

Өгөгдлийн сандаа нэг буюу хэд хэдэн харилцаа үүсгэсний дараа SQL JOIN асуулгыг ашиглан олон хүснэгтийн мэдээллийг нэгтгэж болно. Хамгийн түгээмэл нэгдэл бол SQL INNER JOIN буюу энгийн нэгдэл юм. Энэ төрлийн нэгдэл нь нэг буюу хэд хэдэн хүснэгтээс нэгдэх нөхцөлийг хангасан бүх бичлэгийг буцаана.

Жишээ нь, энэ НЭГДСЭН нөхцөл нь Оюутны_Нэр, Багшийн_Нэр, Хичээлийг буцаадаг бөгөөд Оюутны хүснэгт дэх гадаад түлхүүр нь Багшийн хүснэгтийн үндсэн түлхүүртэй таарч байна:

Оюутнуудыг СОНГОХ. Оюутны_Нэр, Багш. Багшийн_Нэр, Багш. Курс

Оюутнуудаас

ДОТООД НЭГДСЭН Багш нартON Оюутнууд. Teacher_FK=Багш. ЗаагчID;

Энэ мэдэгдэл нь иймэрхүү хүснэгтийг үүсгэдэг:

Оюутны_Нэр Багшийн_Нэр Хичээл
Lowell Smith Жон Доу Англи
Брайан Шорт Жон Доу Англи
Корки Мендез Жэйн Шмое Математик
Моника Жонс Жон Доу Англи

Зөвлөмж болгож буй: