Определение атрибутов сущностей предметной области.
При определении атрибутов по каждой из сущностей необходимо руководствоваться не полным перечислением всех их возможных вариантов, а определением того набора, который потребуется в конкретном случае, применительно к данной предметной области.
Определим атрибуты для каждой сущности применительно к рассматриваемой предметной области.
1. Книга. При определении атрибутов данной сущности нужно учесть следующие моменты: с их помощью читатель должен определится с выбором книги, а библиотекарь с размером, занимаемым книгой на полке (может учитываться при приобретении новых книг) и определением ущерба в случае потери или порчи книги. В соответствии с этим вводим следующие атрибуты сущности Книга:
- название: как правило, в названии отражена суть данной книги, это позволяет читателю ориентироваться в ее выборе;
- вид (сборник, справочник, монография и т.п.): может служить ориентиром при поиске книги (например, необходимо найти именно ПОВЕСТЬ Чехова);
- тематика: используется для поиска необходимой литературы;
- количество страниц: может служить примерным ориентиром общего объема, занимаемого книгами библиотеки;
- год издания: читателю может понадобиться книга определенного года издания;
- стоимость: определяет ущерб, принесенный библиотеке в результате потери или порчи книги.
Данные атрибуты ни в единственном числе, ни в связке не могут однозначно идентифицировать конкретную книгу, поэтому не могут использоваться в качестве ключа данной сущности. Вводим искусственный ключ, коим будет целое число, определяющее порядок приобретения книги в библиотеку.
2. Автор. Атрибуты данной сущности служат для поиска читателем необходимой ему книги. Вводим следующие атрибуты сущности Автор:
- имя: читателю может быть необходима книга конкретного автора;
- дата рождения,
- дата смерти: читателю могут понадобиться книги авторов определенной эпохи;
- национальность: читателю могут понадобиться книги, например русских или английских авторов.
Так как имена авторов могут быть достаточно громоздкими (М.Е. Салтыков-Щедрин, Франсуа Рене де Шатобриан, Остен Жюль Жан-Батист Ипполит и т.п.) и будут многократно встречаться в разных изданиях, то их целесообразно нумеровать и ссылаться на эти номера. Поэтому в качестве ключа вводится целочисленный атрибут, который будет автоматически наращиваться на единицу при "появлении" в библиотеке нового автора.
3. Издательство. Используется читателями для поиска нужной книги. Можно выделить следующие атрибуты данного субъекта:
- наименование;
- город (населенный пункт, в котором располагается издательство).
Как и для субъекта Автор, логичнее в качестве ключа использовать целочисленный атрибут.
4. Читатель. Атрибуты данного субъекта должны позволять библиотекарю идентифицировать каждого конкретного читателя при передаче ему в пользование книг из библиотеки. Для этого определим следующие атрибуты данному субъекту:
- ФИО;
- номер читательского билета;
- домашний адрес;
- домашний телефон;
- место работы;
- рабочий телефон.
Для данного атрибута в качестве ключевого вполне реально использования атрибута Номер читательского билета (допустим, что в рассматриваемой библиотеке в качестве такового выступает целое число, которое генерируется путем увеличения на единицу номера последнего зарегистрированного читателя).
5. Место хранения. Атрибуты данного субъекта должны определять координаты нахождения книг и закрепленную за ними тематику. В нашем случае таковыми будут:
- номер комнаты;
- номер стеллажа;
- номер полки.
Вполне реально в данном случае использовать составной ключ, состоящий из всех трех атрибутов одновременно, однако удобней использовать целочисленный ключ.
6. Выдача книг. Атрибуты данного субъекта должны содержать время выдачи книги читателю, срок и время ее возвращения:
- дата выдачи книги;
- срок возврата;
- дата возврата книги.
В качестве ключевого водим искусственный атрибут - целое число, увеличивающееся на единицу после каждой выдачи книг.