Адносіны базы дадзеных

адносіны базы дадзеных з'яўляюцца асновай усіх рэляцыйных баз дадзеных

Адносіны усталёўваецца паміж двума табліцамі базы дадзеных , калі адна табліца мае знешні ключ, якія спасылаюцца на першасны ключ іншы табліцы. Гэта асноўная канцэпцыя тэрміна рэляцыйнай базы дадзеных.

Як знешні ключ працуе Пабудова узаемаадносін

Давайце разгледзім асновы першасных і знешніх ключоў. Першасны ключ адназначна ідэнтыфікуе кожны запіс у табліцы. Гэта тып кандыдата ключа , які, як правіла, першы слупок табліцы і можа быць аўтаматычна генераваны базай дадзеных , каб пераканацца , што яна ўнікальная.

Знешні ключ з'яўляецца яшчэ адным кандыдатам ключ (не першасны ключ), які выкарыстоўваецца для звязвання запісу з дадзенымі ў іншы табліцы.

Напрыклад, разгледзім гэтыя дзве табліцы, якія вызначаюць, якія настаўнік вучыць, які курс.

Тут першасны ключ табліцы курсаў з'яўляецца Course_ID. Яго знешні ключ Teacher_ID:

курсы
Course_ID COURSE_NAME Teacher_ID
Course_001 біялогія Teacher_001
Course_002 матэматычны Teacher_001
Course_003 англійская Teacher_003

Вы можаце бачыць, што знешні ключ у курсах адпавядае першаснаму ключу настаўнікаў:

настаўнікі
Teacher_ID TEACHER_NAME
Teacher_001 Кармэн
Teacher_002 вераніка
Teacher_003 Jorge

Можна сказаць , што знешні ключ Teacher_ID дапамагае ўсталяваць сувязь паміж курсамі і табліцамі настаўнікаў.

Тыпы адносін базы дадзеных

Выкарыстанне знешніх ключоў або іншых магчымых ключоў, вы можаце рэалізаваць тры тыпу адносін паміж табліцамі:

Адзін на адзін: Гэты тып адносін дазваляе толькі адзін запіс на кожным боку адносін.

Першасны ключ ставіцца толькі да аднаго запісу - ці ніхто - у іншы табліцы. Так, напрыклад, у шлюбе, кожны з мужа і жонкі мае толькі адзін другому з iх. Такога роду адносіны могуць быць рэалізаваны ў адной табліцы і таму не выкарыстоўвае знешні ключ.

Адзін-да-шматлікім: адзін-да-шматлікім дазваляе аднаго запісу ў адной табліцы , каб быць звязана з некалькімі запісамі ў іншай табліцы.

Разгледзім бізнес з базай дадзеных, якая мае кліентаў і заказаў табліцы.

Адзін кліент можа набыць некалькі заказаў, але адзін загад не мог быць звязаны з некалькімі кліентамі. Таму табліца Orders будзе ўтрымліваць знешні ключ, які адпавядаў першасны ключ табліцы Customers, у той час як табліца Кліенты не будуць мець знешні ключ, якія спасылаюцца на табліцу Orders.

Многія-да-шматлікім: Гэта складаныя адносіны , у якіх шмат запісаў у табліцы можна звязаць з вялікай колькасцю запісаў у іншы табліцы. Напрыклад, наш бізнес, верагодна, мае патрэбу не толькі кліентаў і заказаў табліцы, але, верагодна, таксама мае патрэбу ў табліцы Products.

Зноў жа, сувязь паміж табліцай кліентаў і заказаў з'яўляецца адзін-да-шматлікім, але разгледзець сувязь паміж табліцай заказаў і прадуктаў. Заказ можа ўтрымліваць некалькі прадуктаў, і прадукт можа быць звязаны з некалькіх заказаў: некалькі кліентаў могуць падаць заяўку, якія змяшчаюць некаторыя з адных і тых жа прадуктаў. Такога роду адносіны патрабуе як мінімум трох табліц.

Якія адносіны базы дадзеных важна?

Ўсталяванне ўзгодненых адносін паміж табліцамі базы дадзеных дапамагае забяспечыць цэласнасць дадзеных, што спрыяе нармалізацыі баз дадзеных. Напрыклад, што калі мы не звязвалі ніводнай табліцы з дапамогай вонкавага ключа, а замест гэтага проста аб'ядналі дадзеныя ў курсах і табліцах настаўнікаў, напрыклад, так:

Выкладчыкі і курсы
Teacher_ID TEACHER_NAME курс
Teacher_001 Кармэн Біялогіі, матэматыцы
Teacher_002 вераніка матэматычны
Teacher_003 Jorge англійская

Такая канструкцыя з'яўляецца нягнуткая і парушае першы прынцып нармалізацыі баз дадзеных, Першая нармальная форма (1nf), у якім гаворыцца, што кожная вочка табліцы павінна ўтрымліваць адзін, дыскрэтны фрагмент дадзеных.

Ці, магчыма, мы вырашылі проста дадаць другую запіс для Кармэн, у мэтах забеспячэння захавання 1nf:

Выкладчыкі і курсы
Teacher_ID TEACHER_NAME курс
Teacher_001 Кармэн біялогія
Teacher_001 Кармэн матэматычны
Teacher_002 вераніка матэматычны
Teacher_003 Jorge англійская

Гэта па - ранейшаму слабы дызайн, прадстаўляючы непатрэбнага дубліравання і , што называецца ўстаўкі дадзеных анамалій, якія проста азначае , што ён можа ўнесці свой уклад у няўзгодненасці дадзеных.

Напрыклад, калі настаўнік мае некалькі запісаў, што, калі трэба адрэдагаваць некаторыя дадзеныя, але асоба, якая ажыццяўляе рэдагаванне дадзеных не разумее, што існуе некалькі запісаў? Табліца будзе ўтрымліваць розныя дадзеныя для адной і той жа асобы, без якога-небудзь выразнага спосабу вызначыць гэта ці пазбегнуць яго.

Пераадольваючы гэтую табліцу на дзве табліцы, настаўнік і курсы (як візуалізуецца вышэй), стварае правільныя суадносіны паміж дадзенымі і, такім чынам, дапамагае забяспечыць ўзгодненасць і дакладнасць дадзеных.