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

Өгөгдлийн сангийн харилцаанууд нь харилцан хамаарал бүхий бүх өгөгдлийн сангуудын нуруу юм

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

Харилцан холболтыг бий болгох гадаад түлхүүр ажил

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

Гадаад түлхүүр үг нь өөр нэг хүснэгтийн өгөгдөл рүү холбоход хэрэглэгддэг өөр нэг түлхүүрийн түлхүүр (үндсэн түлхүүр биш) юм.

Жишээ нь, багш аль чиглэлд зааж байгааг олж мэдсэн эдгээр хоёр хүснэгтийг авч үзье.

Энд Курсын хүснэгтний үндсэн түлхүүр нь Course_ID юм. Түүний гадаад түлхүүр нь Teacher_ID:

Курсууд
Курс_ID Course_Name Багш нар
Course_001 Биологи Багш_001
Course_002 Математик Багш_001
Course_003 Англи хэл Багш_003

Курс дахь гадаад түлхүүр нь Багш нарт анхан шатны түлхүүртэй тохирч байгааг та харж болно:

Багш нар
Багш нар Багшийн нэр
Багш_001 Кармен
Багш_002 Вероника
Багш_003 Жорж

Багш нар багшийн хүснэгтүүдтэй харилцах харилцааг тогтооход багшийн ID түлхүүр нь тусалсан гэж хэлж болно.

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

Гадны түлхүүр эсвэл бусад нэр дэвшигч түлхүүрийн хэрэглээг ашиглан хүснэгтүүдийн хоорондын гурван төрлийн харилцааг хэрэгжүүлж болно:

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

Үндсэн түлхүүр нь зөвхөн ганцхан бичлэг эсвэл өөр нэг хүснэгтэд хамаарна. Жишээ нь, гэрлэхэд нөхөр бүр ганцхан эхнэртэй байдаг. Энэ төрлийн харилцаа нэг хүснэгтэнд хэрэгжиж болох тул гадаад түлхүүр хэрэглэдэггүй.

Нэгээс олон : Нэгээс олон харилцан хамаарал нь нэг хүснэгтийн нэг бичлэгийг олон хүснэгтээс өөр хүснэгтэд хамааруулахыг зөвшөөрдөг.

Хэрэглэгч, захиалгын хүснэгт бүхий мэдээллийн баазтай бизнесийг авч үзье.

Нэг худалдан авагч олон захиалгыг худалдан авч болох боловч нэг захиалгыг олон хэрэглэгчтэй холбож чадахгүй. Тиймээс захиалгын хүснэгт нь хэрэглэгчийн хүснэгтийн үндсэн түлхүүрийг тохируулсан гадаад түлхүүрийг агуулсан байхад хэрэглэгчийн хүснэгт нь захиалгын хүснэгт рүү чиглэсэн гадаад түлхүүр байхгүй болно.

Олон-олон : Энэ нь хүснэгтийн олон бүртгэлүүд өөр олон ширээн дээр олон бичлэгийг холбож болох цогц харилцаа холбоо юм. Жишээ нь, манай бизнес магадгүй Хэрэглэгчид болон Захиалгын хүснэгтүүд хэрэгтэй ч гэсэн Бүтээгдэхүүний хүснэгт хэрэгтэй болно.

Дахин хэлэхэд, Хэрэглэгчийн захиалгын хүснэгт хоорондын харьцаа нь нэгээс олон тооны байх боловч Захиалга ба Бүтээгдэхүүний хүснэгт хоорондын хамаарлыг авч үзье. Захиалга нь олон тооны бүтээгдэхүүнийг агуулж болох ба бүтээгдэхүүнийг хэд хэдэн захиалгаар холбож болно: хэд хэдэн худалдан авагч нь ижил төрлийн бүтээгдэхүүн агуулсан захиалгыг гаргаж болно. Энэ төрлийн харилцаа нь доод тал нь 3 хүснэгт шаарддаг.

Мэдээллийн баазад ямар чухал вэ?

Өгөгдлийн сангийн хүснэгтүүдийн хоорондын уялдаа холбоог бий болгох нь өгөгдлийн бүрэн бүтэн байдлыг хангах бөгөөд мэдээллийн санг хэвийн болгоход хувь нэмэр оруулна. Жишээлбэл, бид ямар нэгэн хүснэгтийг гадны түлхүүрийн холбоосоор холбосонгүй, оронд нь зөвхөн Курсууд болон Багш нарын хүснэгтийн датаг хослуулсан:

Багш, сургалт
Багш нар Багшийн нэр Курс
Багш_001 Кармен Биологи, Математик
Багш_002 Вероника Математик
Багш_003 Жорж Англи хэл

Энэ загвар нь уян хатан биш бөгөөд өгөгдлийн сангийн хэвийн ажиллагааг хангах анхны хэлбэр болох First Normal Form (1NF). Энэ нь хүснэгтийн нүд бүрт нэг, салангид өгөгдлийг агуулсан байх ёстой гэж заасан байдаг.

Эсвэл бид 1NF-ийг хэрэгжүүлэхийн тулд Кармен-д хоёр дахь бичлэгийг нэмэхээр шийдсэн:

Багш, сургалт
Багш нар Багшийн нэр Курс
Багш_001 Кармен Биологи
Багш_001 Кармен Математик
Багш_002 Вероника Математик
Багш_003 Жорж Англи хэл

Энэ нь хэвийн бус зохион байгуулалт, хэрэгцээгүй давхардал, өгөгдөл оруулах аномали гэж нэрлэгддэг бөгөөд энэ нь зөрчилтэй өгөгдөлд хувь нэмрээ оруулах боломжтой гэсэн үг юм.

Жишээлбэл, хэрэв багш олон бүртгэлтэй бол хэрэв зарим өгөгдөл засварлах шаардлагатай бол, гэхдээ өгөгдлийг засаж байгаа хүн олон бүртгэлтэйг мэддэггүй. Дараа нь хүснэгтэд тухайн хүнийг ялгаж таних эсвэл зайлсхийх тодорхой арга замгүй өөр өөр өгөгдлийг агуулна.

Энэ хүснэгтэд хоёр хүснэгтэнд хуваагдан Багш нар ба Сургалтууд (дээрх дүрслэгдсэнээр) өгөгдлийг хооронд нь зөв холбож, улмаар өгөгдлийн нийцэмж, үнэн зөв байдлыг хангахад тусалдаг.