Перейти к содержанию

Проектирование баз данных: сущности, связи и ER-диаграммы

Начало урока

Проектирование баз данных: сущности, связи и ER-диаграммы

Превратите реальные требования в правильные таблицы ещё до первого запроса

Главная идея: хороший SQL начинается задолго до SELECT. Проект базы данных решает, какие таблицы существуют, что хранит каждый столбец и как таблицы связаны. Верный проект делает запросы короткими и честными; ошибочный - заставляет вечно бороться с данными. В этом уроке вы переведёте требования на обычном языке в сущности (таблицы), атрибуты (столбцы) и связи (внешние ключи и таблицы-связки), а затем нарисуете и прочитаете ER-диаграмму.
К концу урока вы сможете:
  • находить сущности и их атрибуты в требовании,
  • выбирать первичный ключ и связывать таблицы внешним ключом,
  • моделировать связь один-ко-многим (внешний ключ на стороне "многие"),
  • моделировать связь многие-ко-многим через таблицу-связку,
  • и читать ER-диаграмму в нотации "воронья лапка".

1. Сущности и атрибуты

Сущность - это тип вещи, который важен вашему приложению и который нужно запоминать: Студент, Курс, Преподаватель, Заказ. В реляционной базе каждая сущность становится таблицей. Атрибут - это факт о сущности (имя, email, год), и каждый атрибут становится столбцом. Одна конкретная вещь (один конкретный студент) становится строкой.

Весь урок мы будем проектировать небольшую школьную базу данных. Начнём с самой простой сущности - преподавателя:

CREATE TABLE teachers (
    teacher_id  INT PRIMARY KEY AUTO_INCREMENT,
    full_name   VARCHAR(100) NOT NULL,
    email       VARCHAR(120) UNIQUE
);

Уже видны три проектных решения: сущность (teachers), её атрибуты (имя, email) и первичный ключ (teacher_id), который даёт каждой строке уникальную и устойчивую идентичность.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя