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

Мэдээллийн сангийн "харилцан хамаарал" эсвэл "харилцан хамаарал" гэсэн нэр томъёо нь хүснэгтэд байгаа өгөгдлүүдийг холбох арга замыг тайлбарладаг.

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

Харилцаа холбоо нь янз бүрийн мэдээллийн баазын хүснэгтийг хүчирхэг аргаар холбох боломжийг танд олгоно. Эдгээр холболтууд нь joins гэгддэг хүчирхэг cross-table queries хийхэд хөшүүрэг болдог.

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

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

Өөртөө холбогдох харилцаа: Тусгай жишээ

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

Гадаад харилцаатай холбоотой харилцаа тогтоох

Гадаад түлхүүр үсгээр хүснэгтийн хоорондын холбоог үүсгэдэг .Энэ түлхүүр нь холбоо хамаарлын өгөгдлийн сан хүснэгтүүд хэрхэн хамааралтайг хэлнэ. Ихэнх тохиолдолд, Хүснэгт А дэх багана нь Хүснэгт B.

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

Багш нар
Сургагч багшид Багшийн нэр Курс
001 Жон Doe Англи хэл
002 Жэйн Шмоу Математик

Оюутны хүснэгтэд ID, нэр, гадаад түлхүүр үг багтана.

Оюутнууд
StudentID Student_Name Багш нар
0200 Лоуэлл Смит 001
0201 Брайн Богино 001
0202 Corky Mendez 002
0203 Моника Жонс 001

Багшийн хүснэгтэд Багшийн хүснэгтэд Багшийн хүснэгтэд заасан багшийн үндсэн гол утгыг харуулсан.

Өгөгдлийн сангийн дизайнерууд нь "PK" эсвэл "FK" гэсэн баганын нэр дээр анхан шатны түлхүүр эсвэл гадаад түлхүүр баганыг амархан тодорхойлох болно.

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

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

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

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

Таны өгөгдлийн сангаас хамааран та хүснэгтүүдийн хоорондын харилцааг янз бүрийн аргаар хийж гүйцэтгэдэг. Microsoft Access нь хүснэгтийн холболтыг хялбарчилж, лавлахад бүрэн бүтэн байдлыг хэрэгжүүлэхийг танд олгодог цонх юм.

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

Багш нар

Сургагч ID INT AUTO_INCREMENT PRIMARY ҮНДСЭН,
Teacher_Name VARCHAR (100),
VARCHAR курс (100)
);

Оюутны хүснэгтийг үүсгэхдээ Багшийн хүснэгт дэх багшийн баганыг зааж өгсөн гадаад түлхүүр болох Teacher_FK баганыг зарлах болно.

ХҮҮХДҮҮДЭД ЗААВАР
StudentID INT AUTO_INCREMENT PRIMARY ҮНДСЭН,
Student_Name VARCHAR (100), Teacher_FK INT,
ГАДААН ГАЗАР (Teacher_FK) АРГА ХЭРЭГСЭЛ Багш нар (Сургагч багшид)
);

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

Мэдээллийн баазад нэг буюу түүнээс дээш тооны харилцаа үүсгэсний дараа та SQL JOIN асуултыг ашиглан олон хүснэгтээс мэдээллийг нэгтгэхийн тулд өөрийн хүчийг ашиглах боломжтой. Хамгийн түгээмэл хэлбэр нь SQL INNER JOIN, эсвэл энгийн нэгдэл юм. Энэ төрлийн нэгдэл нь олон хүснэгтээс нэгдэх нөхцлийг хангасан бүх бүртгэлийг буцаадаг. Жишээ нь, энэ JOIN нөхцөл нь Student_Name, Teacher_Name, Курс нь оюутнуудын хүснэгтийн гадаад түлхүүр нь Багшийн хүснэгт дэх үндсэн түлхүүртэй таарч байгаа тохиолдолд:

Students.Student_Name, Teachers.Teacher_Name, Teachers.Course сонгоно уу
Оюутнуудаас
Дотоод багш нар Багш нар
ON Students.Teacher_FK = Багш.InstructorID;

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

SQL Join Statement-ээс буцах хүснэгт

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish