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

Практическое занятие проектирование бд (добавить пример введения) (перелопатить всю практическую)

Теоретическая часть

Проектирование базы данных начинается с анализа предметной области — это процесс изучения реальной системы или ситуации, данные о которой должны храниться в БД. Главная цель этого этапа — понять, какие данные нужны, как они связаны и какие задачи решает система.

Понимание предметной области

Предметная область — это совокупность объектов и процессов, которые необходимо отразить в базе данных. Например:

  • в библиотеке — книги, читатели, авторы, заказы;
  • в университете — студенты, преподаватели, дисциплины, оценки;
  • в магазине — товары, клиенты, заказы, поставки.

Задача разработчика базы данных — преобразовать реальные объекты в формальные элементы модели данных: сущности, атрибуты и связи.

Источники информации

Чтобы создать точную модель, нужно собрать достоверные сведения о предметной области. Для этого используют разные источники:

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

Результат этого этапа — список всех данных, которые потенциально могут понадобиться для работы системы.

Этапы сбора информации

  1. Определение цели системы.

    Нужно понять, для чего создаётся база данных и какие задачи она должна решать.

    Пример: «База данных библиотеки должна учитывать выдачу книг и отслеживать задолженности читателей».

    1. Выделение сущностей.

    Сущности — это ключевые объекты предметной области.

    Пример: Книга, Читатель, Заказ, Автор.

    1. Определение атрибутов.

    Для каждой сущности нужно определить свойства, которые необходимо хранить.

    Пример: у сущности «Книга» — Название, Автор, Год издания, ISBN.

    1. Определение связей между сущностями.

    Определите, как объекты связаны между собой.

    Пример: Читатель может оформить несколько заказов; один заказ связан с несколькими книгами.

    1. Выявление бизнес-правил.

    Определите ограничения, действующие в системе.

    Пример: «Книга может быть выдана только зарегистрированному читателю».

Анализ и структурирование информации

После сбора всех данных необходимо:

  • сгруппировать информацию по сущностям;
  • исключить дублирующиеся и несущественные данные;
  • определить зависимости между объектами;
  • выявить возможные иерархии и связи «один ко многим» или «многие ко многим».

На этом этапе часто используют таблицы, схемы и текстовые описания, которые помогут подготовить основу для построения ER-диаграммы.


Практическая часть

Данное практическое задание проводится в несколько этапов и охватывает весь процесс проектирования базы данных — от анализа предметной области до реализации структуры на уровне физической модели.

Этап 1. Сбор и анализ информации (концептуальная модель)

  • Определить цели и назначение будущей базы данных.
  • Составить список основных сущностей (5–10) и их атрибутов.
  • Описать связи между сущностями (1:1, 1:М, М:М).
  • Составить словесное описание предметной области.
  • Построить ER-диаграмму (концептуальная модель данных).

Этап 2. Разработка логической модели данных

  • Преобразовать ER-диаграмму в структуру таблиц.
  • Определить первичные и внешние ключи.
  • Прописать типы данных для всех атрибутов.
  • Проверить модель на наличие избыточности и провести нормализацию (1НФ, 2НФ, 3НФ).
  • Составить схему связей таблиц (логическая структура БД).

Этап 3. Построение физической модели данных

  • Реализовать созданную логическую модель в СУБД.
  • Создать таблицы с типами данных и ограничениями.
  • Настроить связи и целостность данных.
  • Заполнить тестовыми данными (по 5–10 записей в каждую таблицу).

Варианты предметных областей

Ниже приведён список возможных тематик баз данных.

  1. Библиотека и выдача книг.
  2. Магазин товаров и заказы покупателей.
  3. Учёт студентов, преподавателей и дисциплин.
  4. Система бронирования отелей.
  5. Онлайн-магазин электроники.
  6. Учёт автомобилей и владельцев.
  7. Система управления персоналом (HR).
  8. Регистрация пациентов и врачей в поликлинике.
  9. Учёт учебных курсов и расписания занятий.
  10. Система аренды фильмов и медиатеки.
  11. Продажа авиабилетов и управление рейсами.
  12. Учёт товаров на складе.
  13. Система аренды автомобилей.
  14. Регистрация участников конференции.
  15. Учёт страховых полисов и клиентов.
  16. Учёт кредитов и банковских клиентов.
  17. Управление проектами и задачами.
  18. Учёт заказов в ресторане или кафе.
  19. Учёт туристических путёвок и клиентов.
  20. База данных кинотеатра (фильмы, сеансы, билеты).
  21. Учёт строительных объектов и подрядчиков.
  22. Учёт учебных достижений студентов (журнал оценок).
  23. Система выдачи оборудования на предприятии.
  24. Учёт почтовых отправлений и клиентов.
  25. Управление складом строительных материалов.
  26. Учёт пациентов и процедур в стоматологической клинике.
  27. База данных музыкальной школы.
  28. Учёт заявок на ремонт техники.
  29. Система учёта домашних животных и их владельцев.
  30. Учёт воинских частей, состава и техники (военный округ).

Задание

В ходе выполнения практических занятий разрабатывается единый отчёт, который будет постепенно заполняться по мере изучения этапов проектирования базы данных.

Работа выполняется в три этапа, соответствующих уровням моделей данных:

  1. Концептуальная модель — анализ предметной области и построение ER-диаграммы.
  2. Логическая модель — определение таблиц, ключей и связей между ними.
  3. Физическая модель — реализация структуры базы данных в выбранной СУБД.

Порядок выполнения

  1. Выбрать предметную область из предложенных вариантов (или согласовать свою).
  2. Создать раздел «Концептуальная модель» в отчёте и описать:
    • кратко предметную область;
    • список сущностей (не менее 5);
    • атрибуты каждой сущности;
    • типы связей между сущностями (1:1, 1:М, М:М);
    • ER-диаграмму (вставить изображение).
  3. После дополнить отчёт разделом «Логическая модель»:
    • преобразовать сущности в таблицы;
    • указать первичные и внешние ключи;
    • описать типы данных и связи между таблицами;
    • при необходимости выполнить нормализацию.
  4. На заключительном этапе добавить раздел «Физическая модель»:
    • создать таблицы в СУБД (скриншоты);
    • установить связи между таблицами;
    • заполнить тестовыми данными (по 3–5 записей);
    • проверить работу запросами SELECT, JOIN, INSERT, DELETE.
  5. Оформить вывод — сделать краткий анализ проделанной работы и указать, какие принципы нормализации были применены.

Требования к отчёту

  • Отчёт выполняется в одном документе (Word, Google Docs, Notion или PDF).
  • Каждый этап должен быть чётко выделен заголовком и проверяться поэтапно.
  • В отчёт обязательно включаются таблицы, схемы и ER-диаграммы.
  • Итоговый отчёт должен отражать все три модели данных и показывать процесс их взаимосвязи.

Пример структуры отчёта

  1. Титульный лист
  2. Введение (описание предметной области)
  3. Концептуальная модель
    • Сущности и атрибуты
    • Связи
    • ER-диаграмма
  4. Логическая модель
    • Таблицы
    • Ключи и связи
    • Типы данных
  5. Физическая модель
    • SQL-реализация (добавляется после изучения SQL)
    • Скриншоты из СУБД
    • Примеры запросов (добавляется после изучения SQL)
  6. Вывод

Отчёт заполняется постепенно, по мере выполнения практических заданий. В конце формируется единый документ — «Проект базы данных».

[Концептуальная модель](%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5%20%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B1%D0%B4%20(%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D0%BF/%D0%9A%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F%20%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C%2028aa3e4a136b8014b8f9febd964e0c10.md)

[Логическая модель](%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5%20%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B1%D0%B4%20(%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D0%BF/%D0%9B%D0%BE%D0%B3%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C%2028aa3e4a136b80da8185e001628f2b0b.md)

[Физическая модель ](%D0%9F%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5%20%D0%B7%D0%B0%D0%BD%D1%8F%D1%82%D0%B8%D0%B5%20%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B1%D0%B4%20(%D0%B4%D0%BE%D0%B1%D0%B0%D0%B2%D0%B8%D1%82%D1%8C%20%D0%BF/%D0%A4%D0%B8%D0%B7%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BC%D0%BE%D0%B4%D0%B5%D0%BB%D1%8C%2028aa3e4a136b80a08bc6fcdf723b09a5.md)