Практика 2. Построение ER-диаграммы
Задание
Цель: Научиться проектировать ER-диаграммы для описания предметной области.
Описание предметной области: "Библиотека"
Необходимо спроектировать ER-диаграмму для простой системы учета книг в библиотеке. Учитывайте следующие требования:
- В библиотеке есть книги и читатели.
- О каждой книге необходимо хранить её уникальный номер (ISBN), название, автора (или авторов) и год издания.
- О каждом читателе хранится его уникальный номер читательского билета, ФИО и контактный телефон.
- Читатель может взять несколько книг. Книга в один момент времени может находиться на руках только у одного читателя.
- Необходимо фиксировать дату выдачи книги и планируемую дату возврата.
Требования к диаграмме:
- Определите все необходимые сущности.
- Для каждой сущности определите атрибуты. Выделите ключевые атрибуты.
- Установите связи между сущностями и определите их кардинальность (1:1, 1:M, M:M).
Пример решения
Ниже представлен один из возможных вариантов решения. Ваша диаграмма может отличаться, и это нормально, если она логична и соответствует требованиям.
1. Определение сущностей
На основе описания можно выделить следующие основные сущности:
- Читатель (Reader)
- Книга (Book)
- Автор (Author)
Также, поскольку нам нужно хранить данные о факте выдачи книги (дата выдачи, дата возврата), и эта связь соединяет Читателя и Книгу, мы вводим связующую (ассоциативную) сущность:
- Выдача (Loan)
Кроме того, у книги может быть несколько авторов, и автор может написать несколько книг. Это связь "многие-ко-многим", для реализации которой также нужна связующая таблица:
- Авторство (Authorship)
2. Атрибуты и ключи
- Читатель
id_читателя(Первичный ключ, PK)ФИОТелефон
- Книга
isbn(Первичный ключ, PK) - ISBN является хорошим кандидатом в натуральные ключи.НазваниеГод_издания
- Автор
id_автора(Первичный ключ, PK)ФИО_автора
- Выдача
id_выдачи(Первичный ключ, PK)id_читателя(Внешний ключ, FK, ссылается на Читатель)isbn_книги(Внешний ключ, FK, ссылается на Книга)Дата_выдачиПланируемая_дата_возвратаФактическая_дата_возврата(Атрибут может быть NULL, пока книга не возвращена)
- Авторство
isbn_книги(Часть составного PK, Внешний ключ, FK)id_автора(Часть составного PK, Внешний ключ, FK)
3. Связи и кардинальность
- Читатель и Выдача: Один ко многим (1:M). Один читатель может иметь много записей о выдаче, но каждая выдача связана только с одним читателем.
- Книга и Выдача: Один ко многим (1:M). Одна книга может выдаваться много раз (в разное время), но каждая конкретная запись о выдаче относится только к одной книге.
- Книга и Автор: Многие ко многим (M:N). Эта связь реализуется через промежуточную таблицу Авторство.
Форма отчетности
Результат представьте в виде изображения (диаграммы), созданного в любом удобном для вас онлайн-редакторе (например, draw.io) или в виде файла в формате .pdf.