Какие знаешь виды связей в реляционных БД

«Какие знаешь виды связей в реляционных БД» — вопрос из категории Базы данных, который задают на 27% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В реляционных БД основные виды связей:

  1. Один к одному (1:1)
    Одна запись в таблице А связана с одной записью в таблице Б.
    Пример: ПользовательПаспортные данные.

  2. Один ко многим (1:N)
    Одна запись в таблице А связана с несколькими записями в таблице Б.
    Пример: АвторКниги (один автор может написать много книг).

  3. Многие ко многим (M:N)
    Реализуется через промежуточную таблицу.
    Пример: СтудентыКурсы (студенты могут посещать много курсов, курсы могут иметь много студентов).

-- Пример связи M:N
CREATE TABLE Students (id INT PRIMARY KEY, name VARCHAR(100));
CREATE TABLE Courses (id INT PRIMARY KEY, title VARCHAR(100));
CREATE TABLE Student_Courses (
    student_id INT REFERENCES Students(id),
    course_id INT REFERENCES Courses(id),
    PRIMARY KEY (student_id, course_id)
);