Ўвядзенне ў базы дадзеных адносін

Тэрмін базы дадзеных «рэляцыйных» або «адносіны» апісвае спосаб, якім дадзеныя ў табліцах звязаныя.

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

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

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

Ёсць тры рознага тыпу адносін базы дадзеных, кожны з якіх названы ў адпаведнасці з колькасцю радкоў табліцы, якія могуць быць ўцягнутыя ў адносінах. Кожны з гэтых трох тыпаў адносін існуе паміж двума табліцамі.

Автореферентные Адносіны: Спецыяльны раздзел

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

Стварэнне адносін з знешнімі ключамі

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

Разгледзім зноў прыклад Настаўнікі і табліцы Студэнты. Табліца Настаўнікі ня ўтрымлівае ідэнтыфікатар, імя і калонкі курса:

настаўнікі
InstructorID TEACHER_NAME курс
001 Джон Доу англійская
002 Джэйн чмо матэматычны

У табліцы Студэнты ўключае ў сябе ідэнтыфікатар, імя і ключавой слупок замежны:

студэнты
StudentID Student_Name Teacher_FK
0200 Lowell Smith 001
0201 Brian Short 001
0202 скарынкі Mendez 002
0203 Моніка Джонс 001

Teacher_FK слупок табліцы Students спасылаецца на значэнне першаснага ключа інструктара ў табліцы настаўнікаў.

Часта, праекціроўшчыкі баз дадзеных будуць выкарыстоўваць «ПК» або «FK» у імя слупка лёгка вызначыць першасны ключ або слупок вонкавага ключа.

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

Адносіны і спасылачныя цэласнасці

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

рэалізацыя Адносіны

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

Калі вы пішаце SQL непасрэдна, вы павінны спачатку стварыць Настаўнік табліцы, абвяшчаючы слупок ID ў якасці першаснага ключа:

CREATE TABLE Настаўнікаў (

InstructorID INT AUTO_INCREMENT PRIMARY KEY,
TEACHER_NAME VARCHAR (100),
VARCHAR курс (100)
);

Пры стварэнні табліцы Students, вы абвясьцеце слупок Teacher_FK быць знешніх ключом, якія спасылаюцца на слупок InstructorID ў табліцы Настаўнікаў:

CREATE TABLE Студэнты (
StudentID INT AUTO_INCREMENT PRIMARY KEY,
Student_Name VARCHAR (100), Teacher_FK INT,
FOREIGN KEY (Teacher_FK) ЛІТАРАТУРА Настаўнікі (InstructorID))
);

Выкарыстанне Адносіны для аб'яднання табліц

Пасля таго як вы стварылі адзін або некалькі адносін у базе дадзеных, вы можаце выкарыстоўваць сваю ўладу з дапамогай SQL JOIN запытаў аб'яднаць інфармацыю з некалькіх табліц. Найбольш распаўсюджаны тып злучэння з'яўляецца SQL INNER JOIN, ці проста далучыцца. Гэты тып аб'яднанне вяртае усе запісы, якія задавальняюць ўмова злучэння з некалькіх табліц. Напрыклад, гэта ўмова JOIN вяртае Student_Name, TEACHER_NAME, і курс, дзе знешні ключ у табліцы Students адпавядае першаснаму ключу ў табліцы настаўнікаў:

ВЫБРАЦЬ Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
ад студэнтаў
INNER JOIN Настаўнікі
ПА Students.Teacher_FK = Teachers.InstructorID;

Гэта зацвярджэнне стварае табліцу нешта накшталт гэтага:

Вяртаецца табліцу з SQL Statement Рэгістрацыя

Student_NameTeacher_NameCourseLowell SmithJohn DoeEnglishBrian ShortJohn DoeEnglishCorky MendezJane SchmoeMathMonica JonesJohn DoeEnglish