Термините на базата данни релация и връзка описват начина, по който данните в таблиците са свързани. Релационната база данни се състои от поредица от две или повече таблици, свързани с определен ключ. Релационната база данни се различава от неструктурираните бази данни, които са често срещани в инициативите за големи данни. Релационните бази данни обикновено изискват строги правила за това как се дефинират таблиците и какво представлява валидна връзка между таблиците.
Видове релации на бази данни
Връзките ви позволяват да описвате връзките между таблиците на базата данни по мощни начини. След това тези релации могат да бъдат използвани за извършване на мощни кръстосани заявки, известни като JOINs.
Има три типа релации на бази данни, всяка наречена според броя на редовете на таблицата, включени в релацията. Всеки от тези три типа релации съществува между две таблици.
- Връзки едно към едно възникват, когато всеки запис в първата таблица има само един аналог във втората таблица. Връзките едно към едно рядко се използват, защото често е по-ефективно да поставите цялата информация в една таблица. Някои дизайнери на бази данни се възползват от тази връзка, като създават таблици, които съдържат подмножество от данни от друга таблица.
- Връзките "един към много" са най-разпространеният тип релации на бази данни. Те възникват, когато всеки запис в Таблица A съответства на един или повече записи в Таблица B, но всеки запис в Таблица B съответства само на един запис в Таблица A. Например връзката между таблица Учители и таблица Ученици в начално училище базата данни вероятно ще бъде връзка "един към много", защото всеки ученик има само един учител, но всеки учител има няколко ученици. Този дизайн "един към много" помага за елиминирането на дублирани данни.
- Връзки много към много възникват, когато всеки запис в Таблица A съответства на един или повече записи в Таблица B, а всеки запис в Таблица B съответства на един или повече записи в Таблица A. Например връзката между таблица Учители и таблица Курсове вероятно ще бъде много към много, защото всеки учител може да преподава повече от един курс и всеки курс може да има повече от един инструктор.
Долен ред
Самопрепращащите се релации възникват, когато има само една включена таблица. Един често срещан пример е таблица Employees, която съдържа информация за ръководителя на всеки служител. Всеки ръководител също е служител и има ръководител. В този случай има самореферираща връзка "един към много", тъй като всеки служител има един ръководител, но всеки ръководител може да има повече от един служител.
Създаване на връзки с външни ключове
Създавате релации между таблици, като посочите външен ключ. Този ключ казва на релационната база данни как са свързани таблиците. В много случаи колона в таблица A съдържа първични ключове, които са посочени в таблица B.
Разгледайте примера на таблиците Учители и Ученици. Таблицата с учители съдържа идентификатор, име и колона за курс:
InstructorID | Име_на учителя | Курс |
001 | Джон Доу | английски |
002 | Джейн Шмоу | математика |
Таблицата Students включва ID, име и колона с външен ключ:
StudentID | Student_Name | Teacher_FK |
0200 | Lowell Smith | 001 |
0201 | Брайън Шорт | 001 |
0202 | Корки Мендес | 002 |
0203 | Моника Джоунс | 001 |
Колоната Teacher_FK в таблицата Students препраща към стойността на първичния ключ на инструктор в таблицата Teachers. Често дизайнерите на бази данни използват PK или FK в името на колоната, за да идентифицират първичен ключ или колона с външен ключ.
Тези две таблици илюстрират връзката "един към много" между учителите и учениците.
Връзки и референтна цялост
След добавяне на външен ключ към таблица, създайте ограничение на базата данни, което налага референтна цялост между двете таблици. Тази стъпка гарантира, че връзките между таблиците остават последователни. Когато една таблица има външен ключ към друга таблица, референтната цялост изисква всяка стойност на външен ключ в Таблица Б да препраща към съществуващ запис в Таблица А.
Внедряване на взаимоотношения
В зависимост от вашата база данни ще реализирате връзки между таблиците по различни начини. Microsoft Access предоставя съветник, който ви позволява да свързвате таблици и също така да налагате референтна цялост.
Ако пишете SQL директно, първо създайте таблицата Teachers, като декларирате ID колона като първичен ключ:
CREATE TABLE Teachers (InstructorID INT AUTO_INCREMENT PRIMARY KEY, Teacher_Name VARCHAR(100), Course VARCHAR(100));
Когато създавате таблицата Students, вие декларирате колоната Teacher_FK като външен ключ, препращащ към колоната InstructorID в таблицата Teachers':
СЪЗДАВАНЕ НА ТАБЛИЦА Студенти (StudentID INT AUTO_INCREMENT PRIMARY KEY, Student_Name VARCHAR(100), Teacher_FK INT, FOREIGN KEY (Teacher_FK) РЕФЕРЕНЦИИ Teachers(InstructorID)));
Използване на релации за свързване на таблици
След като създадете една или повече релации във вашата база данни, използвайте тяхната сила, като използвате SQL JOIN заявки, за да комбинирате информация от множество таблици. Най-често срещаният тип присъединяване е SQL INNER JOIN, което е просто присъединяване. Този тип обединяване връща всички записи, които отговарят на условието за обединяване от една или повече таблици.
Например, това условие JOIN връща Име_на_ученик, Име_на_учител и Курс, където външният ключ в таблицата Ученици съвпада с първичния ключ в таблицата Учители:
ИЗБЕРЕТЕ Students. Student_Name, Teachers. Teacher_Name, Teachers. Course
FROM Students
INNER JOIN TeachersON Students. Teacher_FK=Teachers. InstructorID;
Това изявление създава таблица нещо като това:
Student_Name | Име_на учителя | Курс |
Lowell Smith | Джон Доу | английски |
Брайън Шорт | Джон Доу | английски |
Корки Мендес | Джейн Шмоу | математика |
Моника Джоунс | Джон Доу | английски |