Логическое проектирование системы
В результате анализа предметной области разработана средствами ERWin логическая модель данных, которая представлена на рисунке Б.1.
Определены следующие сущности:
а) сущность «Каталог», атрибутами которой являются: шифр УДК, название УДК;
б) сущность «Книга», атрибутами которой являются: шифр книги, шифр УДК, название книги, автор, издательство, год издания, количество страниц, количество иллюстраций, количество экземпляров;
в) сущность «Книгохранилище», атрибутами которой являются: номер книгохранилища, название книгохранилища, телефон.
г) сущность «Хранение», атрибутами которой являются: регистрационный номер книги, шифр книги, номер книгохранилища;
д) сущность «Факультет», атрибутами которой являются: шифр факультета, название факультета;
е) сущность «Группа», атрибутами которой являются: шифр группы, шифр факультета;
ж) сущность «Карточка студента», атрибутами которой являются: номер читательского билета, шифр группы, фамилия, имя, отчество, адрес, телефон;
з) сущность «Формуляр», атрибутами которой являются: регистрационный номер книги, номер читательского билета, дата выдачи, дата возврата, дата фактического возврата.
Для однозначной идентификации каждого экземпляра отдельной сущности устанавливаются первичные ключи.
Сущность «Каталог» – первичный ключ «Шифр УДК».
Сущность «Книга» – первичный ключ «Шифр книги».
Сущность «Книгохранилище» – первичный ключ «Номер книгохранилища».
Сущность «Хранение» – первичный ключ «Регистрационный номер книги».
Сущность «Факультет» – первичный ключ «Шифр факультета».
Сущность «Группа» – первичный ключ «Шифр группы».
Сущность «Карточка студента» – первичный ключ «Номер читательского билета».
Сущность «Формуляр» – первичный ключ составной, содержащий атрибуты «Регистрационный номер книги» и «Номер читательского билета».
5.3 Разработка структуры связей
Связи между сущностями устанавливаются через внешние ключи.
Между сущностями «Каталог» и «Книга» устанавливается связь «один ко многим», так как в одном каталоге могут быть различные книги и в то же время конкретная книга может принадлежать только одному каталогу. Связь неидентифицирующая, поэтому первичный ключ сущности «Каталог» – «Шифр УДК» – мигрирует в качестве внешнего ключа в основные атрибуты сущности «Книга».
Между сущностями «Книга» и «Хранение» устанавливается связь «один ко многим». Связь неидентифицирующая, поэтому первичный ключ сущности «Книга» – «Шифр книги» – мигрирует в качестве внешнего ключа в основные атрибуты сущности «Хранение».
Между сущностями «Книгохранилище» и «Хранение» устанавливается связь «один ко многим», так как в одном книгохранилище хранятся различные книги и, с другой стороны, отдельная книга принадлежит конкретному книгохранилищу. Связь неидентифицирующая, поэтому первичный ключ сущности «Книгохранилище» – «Номер книгохранилища» – мигрирует в качестве внешнего ключа в основные атрибуты сущности «Хранение».
Между сущностями «Факультет» и «Группа» устанавливается связь «один ко многим», так как на факультете много групп и отдельная группа принадлежит только одному факультету. Связь неидентифицирующая, поэтому первичный ключ сущности «Факультет» – «Шифр факультета» – мигрирует в качестве внешнего ключа в основные атрибуты сущности «Группа».
Между сущностями «Группа» и «Карточка студента» устанавливается связь «один ко многим», так как в одной группе учится много студентов и отдельный студент принадлежит только одной группе. Связь неидентифицирующая, поэтому первичный ключ сущности «Группа» – «Шифр группы» – мигрирует в качестве внешнего ключа в основные атрибуты сущности «Карточка студента».
Между сущностями «Карточка студента» и «Формуляр» устанавливается связь «один ко многим», так как для одного студента может составляться несколько формуляров и, с другой стороны, формуляр оформляется для одного конкретного студента. Связь идентифицирующая, поэтому первичный ключ сущности «Карточка студента» – «Номер читательского билета» – является внешним ключом и частью составного первичного ключа для сущности «Формуляр».
Между сущностями «Хранение» и «Формуляр» устанавливается связь «один ко многим», так как одна и та же книга может быть указана в нескольких формулярах, но при этом один формуляр составляется только на одну конкретную книгу. Связь идентифицирующая, поэтому первичный ключ сущности «Хранение» – «Регистрационный номер книги» – является внешним ключом и частью составного первичного ключа для сущности «Формуляр».
5.4 Нормализация отношений
Все отношения нормализованы, так как находятся в третьей нормальной форме:
а) Отношения «Каталог», «Книга», «Книгохранилище», «Хранение», «Факультет», «Группа», «Карточка студента» и «Формуляр» находятся в 1НФ, поскольку все их атрибуты атомарны и каждое из отношений имеет первичный ключ.
б) 2НФ требует, чтобы неключевые атрибуты отношений зависили от первичного ключа в целом, но не от его части. 2НФ применяется к отношениям с составными ключами, т.е. к таким отношениям, первичный ключ которых состоит из двух и более атрибутов.
Таким отношением является «Формуляр», первичный ключ которого состоит из атрибутов «Регистр_номер книги» и «Номер читательского билета». Неключевые атрибуты данного отношения зависят от данного первичного ключа в целом, а не от его части, поэтому можно сделать вывод, что данное отношение находится во 2НФ.
Остальные отношения («Каталог», «Книга», «Книгохранилище», «Хранение», «Факультет», «Группа», «Карточка студента») находятся в 1НФ и первичные ключи у них несоставные, поэтому автоматически данные отношения находятся и во 2НФ.
в) Ни в одном из отношений не существует транзитивных зависимостей, т.е. неключевые атрибуты не зависят функционально друг от друга, поэтому отношения находятся в 3НФ.