Основы проектирования реляционных баз данных

         

Построение инфологической модели


Анализ определенных выше объектов и атрибутов позволяет выделить сущности проектируемой базы данных и, приняв решение о создании реляционной базы данных, построить ее инфологическую модель на языке "Таблицы-связи" (рис. 5.2).

К стержневым сущностям можно отнести:

  1. Создатели (Код создателя, Создатель).

    Эта сущность отводится для хранения сведений об основных людях, принимавших участие в подготовке рукописи издания (авторах, составителях, титульных редакторах, переводчиках и художниках). Такое объединение допустимо, так как данные о разных создателях выбираются из одного домена (фамилия и имена) и исключает дублирование данных (один и тот же человек может играть разные роли в подготовке разных изданий). Например, С.Я.Маршак писал стихи (Сказка о глупом мышонке) и пьесы (Двенадцать месяцев), переводил Дж.Байрона, Р.Бернса, Г.Гейне и составлял сборники стихов.

    Так как фамилия и имена (инициалы) создателя могут быть достаточно громоздкими (М.Е. Салтыков-Щедрин, Франсуа Рене де Шатобриан, Остен Жюль Жан-Батист Ипполит и т.п.) и будут многократно встречаться в разных изданиях, то их целесообразно нумеровать и ссылаться на эти номера. Для этого вводится целочисленный атрибут "Код_создателя", который будет автоматически наращиваться на единицу при вводе в базу данных нового автора, переводчика или другого создателя.

    Аналогично создаются: Код_издательства, Код_заглавия, Вид_ издания, Код_характера, Код_языка, Номер_билета, Номер_пере- плета, Код_места и Код_издания, замещающие от одного до девяти атрибутов.

  2. Издательства (Код_издательства, Название, Город).


  3. Заглавия (Код_заглавия, Заглавие).

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

  4. Вид_издания (Вид_издания, Название_вида).
  5. Характеры (Код_характера, Характер_переиздания).
  6. Языки (Код_языка, Язык, Сокращение).

    Кроме названия языка хранится его общепринятое сокращение (англ., исп., нем., фр.), если оно существует.

  7. Места (Код_места, Номер_комнаты, Номер_стеллажа, Номер_ полки).

    Один из кодов этой сущности (например, "-1") отведен для описания обобщенного места, находящегося за стенами хранилища книг (издание выдано читателю, временно передано другой библиотеке или организации).

  8. Читатели (Номер_билета, Фамилия, Имя, Отчество, Адрес, Телефон).

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

  1. Издание (Код_издания, Код_заглавия, Вид_издания, Номер_тома, Авторский_знак, Библиотечн_шифр, Повторность, Код_издательства, Год_издания, Аннотация) [Заглавия, Вид_издания, Издательства];
  2. Переплеты (Номер_переплета, Код_издания, Цена, Дата_приобретения)[Издания];

Стержневые сущности и обозначения связаны между собой ассоциациями:

  1. Авторы [Создатели M, Издание N] (Код_создателя, Код_издания).
  2. Составители [Создатели M, Издания N] (Код_создателя, Код_издания).
  3. Редакторы [Создатели M, Издания N] (Код_создателя, Код_издания).
  4. Художники [Создатели M, Издания N] (Код_создателя, Код_издания).
  5. Переводчики [Создатели M, Издания N] (Код_создателя, Код_издания, Язык).
  6. Переиздания [Характеры M, Издания N] (Код_характера, Код_издания).
  7. Размещение [Места M, Переплеты N] (Код_места, Номер_переплета, Дата_размещения, Дата_изъятия).
  8. Выдача [Читатели M, Переплеты N] (Номер_билета, Номер_переплета, Дата_выдачи, Срок, Дата_возврата).

И, наконец, для уменьшения объема часто используемого обозначения "Издания" из него выделена характеристика:

  1. Аннотации (Код_издания, Аннотация) {Издание}.



Содержание раздела