Въведение в бази данни

Терминът "релационна" или "връзка" на базата данни описва начина, по който са свързани данните в таблиците.

Новодошлите в света на базите данни често трудно виждат разликата между база данни и електронна таблица. Те виждат таблици с данни и разпознават, че базите данни ви позволяват да организирате и да заявявате данни по нови начини, но не разбирате значението на връзките между данните, които дават името на технологията на релационните бази данни.

Връзките Ви позволяват да опишете връзките между различните таблици на база данни по мощни начини. Тези взаимоотношения след това могат да бъдат използвани за извършване на мощни кръстосани заявки, известни като свързвания.

Видове бази данни

Има три различни типа връзки на базата данни, всяка от които е наречена според броя редове от таблици, които могат да бъдат включени във връзката. Всеки от тези три вида взаимоотношения съществува между две таблици.

Самоотнасящи се връзки: специален случай

Връзките със самопрепратка се появяват, когато има само една таблица. Един общ пример е таблицата за служителите, която съдържа информация за супервайзора на всеки служител. Всеки ръководител също е служител и има своя ръководител. В този случай има една от многото взаимоотношения, при които всеки служител има един надзорен орган, но всеки надзорен орган може да има повече от един служител.

Създаване на връзки с чуждестранни ключове

Създавате взаимоотношения между таблици, като посочвате чужд ключ . Този ключ указва на релационната база данни как са свързани таблиците. В много случаи колона в таблица А съдържа първични ключове, които се отнасят към таблица Б.

Обмислете отново примера на таблиците "Учители и ученици". Таблицата "Учители" съдържа само идентификационен номер, име и колона за курса:

учители
InstructorID TEACHER_NAME курс
001 Джон Доу Английски
002 Джейн Шмей Math

Таблицата "Студенти" включва идентификационен номер, име и колона с чужд ключ:

Ученици
StudentID Student_Name Teacher_FK
0200 Лоуъл Смит 001
0201 Брайън Къстър 001
0202 Корки Мендес 002
0203 Моника Джоунс 001

Колоната Teacher_FK в таблицата "Студенти" препраща към стойността на първичния ключ на инструктор в таблицата "Учители".

Често дизайнерите на бази данни ще използват "PK" или "FK" в името на колоната, за да идентифицират лесно колона от първичен ключ или чужд ключ.

Обърнете внимание, че тези две таблици илюстрират взаимоотношенията "един към много" между учителите и учениците.

Отношения и референтна цялост

След като добавите чужд ключ към таблица, можете да създадете ограничение на базата данни, което налага референтна цялост между двете таблици. Това гарантира, че отношенията между таблиците остават съвместими. Когато една таблица има чужд ключ в друга таблица, концепцията за референтна цялост посочва, че всяка чужда ключова стойност в таблица Б трябва да се отнася до съществуващ запис в таблица А.

Внедряване на взаимоотношения

В зависимост от вашата база данни, осъществявате отношенията между таблиците по различни начини. Microsoft Access предоставя съветник, който лесно ви позволява да свързвате таблици и да прилагате и референтна цялост.

Ако пишете SQL директно, първо трябва да създадете таблицата "Учители", като декларирате колона за идентификатори като първичен ключ:

CREATE TABLE Учители (

Инструктор ID INT AUTO_INCREMENT PRIMARY KEY,
Teacher_Name VARCHAR (100),
Курс VARCHAR (100)
);

Когато създавате таблицата "Студенти", декларирате колоната "Teacher_FK" като чужд ключ, който се позовава на колоната "Инструктори" в таблицата "Учители":

CREATE TABLE Студенти (
StudentID INT AUTO_INCREMENT PRIMARY KEY,
Student_Name VARCHAR (100), Teacher_FK INT,
УЧИЛИЩЕ (Teacher_FK) РЕФЕРЕНЦИИ Учители (InstructorID))
);

Използване на връзки за присъединяване към таблици

След като създадете една или повече взаимоотношения във вашата база данни, можете да ги използвате, като използвате SQL JOIN заявки за комбиниране на информация от множество таблици. Най-често срещаният тип свързване е SQL INNER JOIN или просто свързване. Този тип свързване връща всички записи, които отговарят на условието за присъединяване от множество таблици. Например, това условие JOIN ще върне Student_Name, Teacher_Name и Course, където чуждестранният ключ в таблицата Students съвпада с основния ключ в таблицата Teachers:

SELECT Students.Student_Name, Teachers.Teacher_Name, Teachers.Course
От студенти
Вътрешно свързване Учители
ON Students.Teacher_FK = Teachers.InstructorID;

Това изявление създава таблица по следния начин:

Връщана таблица от изявлението за присъединяване на SQL

Student_NameTeacher_NameCourseLowell СмитJohn DoeЕнглискиБриан Кратко Джон ДоуЕнглийскиКорки МендезЖене ШмейMathMonica JonesJohn DoeЕнглийски