Релационен модел

Свързване на данни чрез Първични (PK) и Външни (FK) ключове

1. Първичен ключ (Primary Key - PK)

Първичният ключ е колона (или комбинация от колони), която уникално идентифицира всеки ред в таблицата.

Правила: PK не може да съдържа NULL стойности и не може да се повтаря.
CREATE TABLE Students (
  StudID INT PRIMARY KEY, -- Това е PK
  FirstName VARCHAR(50)
);

2. Външен ключ (Foreign Key - FK)

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

Пример: В таблица Students имаме колона ClassID. Тя е Външен ключ, който сочи към ClassID в таблицата Classes.

CREATE TABLE Students (
  StudID INT PRIMARY KEY,
  Name VARCHAR(50),
  ClassID INT,
  FOREIGN KEY (ClassID) REFERENCES Classes(ClassID)
);

3. Видове релации

1 към 1 (1:1)

Един човек има един паспорт. (Рядко се използва)

1 към Много (1:N)

В един клас има много ученици. (Най-често срещаната връзка)

Много към Много (N:M)

Един ученик учи много предмети, и един предмет се учи от много ученици.

Лабораторно упражнение
Задание: Реализирайте връзка 1:N
  1. Създайте таблица Teachers с PK TeacherID.
  2. Създайте таблица Subjects, която има FK LeadTeacherID, сочещ към учителя.
  3. Опитайте се да изтриете учител, който има назначен предмет. Какво казва MySQL?

Логически въпрос: Защо не можем да изтрием записа от "родителската" таблица, ако има свързани записи в "дъщерната"? (Понятие за Релационна цялост)