Программирование Базы данных
| |
Анализ определенных выше
объектов и атрибутов позволяет выделить
сущности проектируемой базы данных и,
приняв решение о создании реляционной базы
данных, построить ее инфологическую модель
на языке "Таблицы-связи" (рис. 5.2).
К стержневым сущностям можно
отнести:
-
Создатели (Код создателя, Создатель).
Эта сущность отводится для хранения
сведений об основных людях, принимавших
участие в подготовке рукописи издания (авторах,
составителях, титульных редакторах,
переводчиках и художниках). Такое
объединение допустимо, так как данные о
разных создателях выбираются из одного
домена (фамилия и имена) и исключает
дублирование данных (один и тот же
человек может играть разные роли в
подготовке разных изданий). Например, С.Я.Маршак
писал стихи (Сказка о глупом мышонке) и
пьесы (Двенадцать месяцев), переводил Дж.Байрона,
Р.Бернса, Г.Гейне и составлял сборники
стихов.
Так как фамилия и имена (инициалы)
создателя могут быть достаточно
громоздкими (М.Е. Салтыков-Щедрин, Франсуа
Рене де Шатобриан, Остен Жюль Жан-Батист
Ипполит и т.п.) и будут многократно
встречаться в разных изданиях, то их
целесообразно нумеровать и ссылаться на
эти номера. Для этого вводится
целочисленный атрибут "Код_создателя",
который будет автоматически
наращиваться на единицу при вводе в базу
данных нового автора, переводчика или
другого создателя.
Аналогично создаются: Код_издательства,
Код_заглавия, Вид_ издания, Код_характера,
Код_языка, Номер_билета, Номер_пере- плета,
Код_места и Код_издания, замещающие от
одного до девяти атрибутов.
-
Издательства (Код_издательства,
Название, Город).
-
Заглавия (Код_заглавия, Заглавие).
Выделение этой сущности позволит
сократить объем данных и снизить
вероятность возникновения
противоречивости (исключается
необходимость ввода длинных текстовых
названий для различных томов собраний
сочинений, повторных изданий, учебников и
т.п.).
-
Вид_издания (Вид_издания, Название_вида).
-
Характеры (Код_характера, Характер_переиздания).
-
Языки (Код_языка, Язык, Сокращение).
Кроме названия языка хранится его
общепринятое сокращение (англ., исп., нем.,
фр.), если оно существует.
-
Места (Код_места, Номер_комнаты,
Номер_стеллажа, Номер_ полки).
Один из кодов этой сущности (например,
"-1") отведен для описания
обобщенного места, находящегося за
стенами хранилища книг (издание выдано
читателю, временно передано другой
библиотеке или организации).
-
Читатели (Номер_билета, Фамилия, Имя,
Отчество, Адрес, Телефон).
Две ключевые сущности,
описывающие издание и его конкретные
экземпляры, оказываются зависимыми от
других сущностей и попадают в класс
обозначений:
-
Издание (Код_издания, Код_заглавия,
Вид_издания, Номер_тома, Авторский_знак,
Библиотечн_шифр, Повторность, Код_издательства,
Год_издания, Аннотация) [Заглавия, Вид_издания,
Издательства];
-
Переплеты (Номер_переплета, Код_издания,
Цена, Дата_приобретения)[Издания];
Стержневые сущности и
обозначения связаны между собой
ассоциациями:
-
Авторы [Создатели M, Издание
N] (Код_создателя, Код_издания).
-
Составители [Создатели M, Издания
N] (Код_создателя, Код_издания).
-
Редакторы [Создатели M, Издания
N] (Код_создателя, Код_издания).
-
Художники [Создатели M, Издания
N] (Код_создателя, Код_издания).
-
Переводчики [Создатели M, Издания
N] (Код_создателя, Код_издания, Язык).
-
Переиздания [Характеры M, Издания
N] (Код_характера, Код_издания).
-
Размещение [Места M, Переплеты
N] (Код_места, Номер_переплета, Дата_размещения,
Дата_изъятия).
-
Выдача [Читатели M, Переплеты N] (Номер_билета,
Номер_переплета, Дата_выдачи, Срок,
Дата_возврата).
И, наконец, для уменьшения объема
часто используемого обозначения "Издания"
из него выделена характеристика:
-
Аннотации (Код_издания, Аннотация) {Издание}.
Рис. 5.2. Инфологическая модель
базы данных "Библиотека", построенная
с помощью языка "Таблицы-связи"
[ << Назад ] [ Содержание ] [ Далее >> ]
|