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

       

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


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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

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

    Рис. 5.2. Инфологическая модель базы данных "Библиотека", построенная с помощью языка "Таблицы-связи"

    [] [] []


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