Информационно-логическая модель базы данных



Разработка концептуальной модели базы данных

Исходя из описания предметной области, выделим сущности, атрибуты и связи, которые входят в ER-диаграмму. Сущность – это объекты, о которых накапливается информация. Атрибут – поименованная характеристика объекта. Связь – это ассоциирование сущностей между собой.

Связи делятся на типы:

1. Многие ко многим.

2. Один ко многим.

3. Один к одному.

Согласно разработанной IDEF0-диаграмме, пользователем разрабатываемой базы данных являются библиотекарь, а книги и читатели являются входными данными системы. Выделяются стержневые сущности: «Библиотекарь», «Читатель», «Книга».  Данные об этих объектах должны быть занесены в отдельные таблицы. Каждая сущность имеет минимальный набор атрибутов, по значениям которых можно однозначно выбрать требуемый экземпляр сущности, называемый ключом [6].

Сущность «Библиотекарь» отражает данные о библиотекарях – о сотрудниках библиотеки. Для этой сущности характерны следующие атрибуты: фамилия, имя, отчество, номер телефона и код_библиотекаря.

Сущность «Читатель» – это совокупность данных о читателях и их контактная информация. Атрибутами данной сущности являются: фамилия, имя, отчество, дата рождения, город, улица, дом, квартира, номер телефона, номер паспорта, серия паспорта, дата выдачи паспорта, код_читателя.

Сущность «Книга» представляет собой собрание книг, хранящихся в библиотеке. Ей принадлежат следующие атрибуты: автор, название, жанр, количество страниц, издательство, год издания, стоимость, язык, количество экземпляров, ББК, ISBN и код_книги.

Сущности «Библиотекарь» и «Читатель» связаны с сущностью «Книга» связью один-ко-многим. Читатель может взять несколько книг, как и библиотекарь, может выдать несколько книг.

На рисунке 7 отображена ER-диаграмма, которая получилась в ходе работы.

 

Рисунок 7 – Концептуальная ER-модель базы данных «Библиотека»

 

Разработка информационно-логической модели базы данных

Информационно-логическая модель отображает данные предметной области в виде совокупности информационных объектов и связей между ними. Такая модель представляет структуру данных, подлежащих хранению в базе данных [7].

Для создания базы данных и дальнейшей работы с ней первоначально необходимо определить ее логическую структуру.

Выполнение требований нормализации обеспечивает построение базы без дублирования данных и возможность поддержания их связной целостности. Обеспечение целостности данных подразумевает наличие средств, позволяющих удостовериться, что информация в базе данных всегда остается корректной и полной. Целостность данных должна обеспечиваться независимо от того, каким образом данные заносятся в память.

Цель нормализации: исключить избыточное дублирование данных, которое является причиной аномалий, возникаюших при добавлении, редактировании и удалении строк таблицы.

Аномалией называется такая ситуация в таблице БД, которая приводит к противоречию в БД или существенно усложняет обработку БД.

Нормальная форма – требование предъявляемой структуре таблиц в теории реляционных данных для устранения избыточных функциональных зависимостей между атрибутами [8].

Каждой нормальной форме соответсвует некоторый набор ограничений, и отношение находится в некоторой нормальной форме, если удовлетворяет свойственному ей набору ограничений.

Каждая следущая нормальная форма в некотором смысле улучшает свойства предыдущей, и при переходе к следущей нормальной форме свойства предыдущих нормальных форм сохраняются.

Переменная отношения находится в первой нормальной форме (1НФ) тогда и только тогда, когда в любом допустимом занчении отношения каждый его кортеж только одно значение для каждого из атрибутов [9].

Переменная отношения находится во второй нормальной форме (2НФ) тогда и только тогда, когда она находится в первой нормальной форме и каждый неключевой атрибут функционально полно зависит от ее потенциального ключа. Функционально полная зависимость означает, что если потенциальный ключ является составным, то атрибут зависит от всего ключа и не зависит от его частей [9].

Переменная отношения находится в третьей нормальной форме (3НФ) тогда и только тогда, когда она находится во второй нормальной форме, и отсутствуют транзитивные функциональные зависимости неключевых атрибутов от ключевых [9].

Переменная отношения находится в нормальной форме Бойса-Кодда (иначе — в усиленной третьей нормальной форме) тогда и только тогда, когда каждая её нетривиальная и неприводимая слева функциональная зависимость имеет в качестве своего детерминанта некоторый потенциальный ключ [9].

Переменная отношения находится в четвертой нормальнрой форме (4НФ), если она находится в нормальной форме Бойса-Кодда и не содержит нетривиальных многозначных зависимостей [9].

Рассмотрим стержневую сущность «Книга».

Атрибуты сущности «Книга»:

1. Автор.

2. Название.

3. Жанр.

4. Количество страниц.

5. Издательство.

6. Год издания.

7. Стоимость.

8. Язык.

9. Количество экземпляров.

10. ББК.

11. ISBN.

12. Вид содержания.

Для некоторых атрибутов сущности «Книга» можно создать справочники.

Одна и та же книга может быть написана на разных языках и издана в разных издательствах. Следовательно, сформируем таблицы «Издательство» и «Язык».

Сущность «Издательство» будет иметь такие атрибуты: «Код_издательства» и «Название издательства». В таблице «Книга» поле «Издательство» заменим полем «Код_издательства».

Таблица «Издательство» представлена ниже (таблица 1).

 

Таблица 1 – Таблица «Издательство»

Код_Издательства Название издательства
1 АСТ
2 Астрель
3 Симпозиум
4 Strelbytskyy Multimedia Publishing
5 Азбука
6 Reclam Verlag
7 ЛитРес
8 Bradda

 

Сущность «Язык» будет иметь такие атрибуты: «Код_языка» и «Язык». В таблице «Книга» поле «Язык» заменим полем «Код_языка».

Таблица «Язык» представлена ниже (таблица 2).

 

Таблица 2 – Таблица «Язык»

Код_языка Язык
1 Русский
2 Английский
3 Немецкий

 

К одному и тому же жанру могут относиться разные книги, аналогично с разделом ББК и видом содержания. Вследствие этого, создадим таблицы «Жанр», «ББК» и «Вид содержания».

Сущность «Жанр» будет иметь такие атрибуты: «Код_жанра» и «Название жанра». В таблице «Книга» поле «Жанр» заменим полем «Код_жанра».

Таблица «Жанр» представлена ниже (таблица 3).

Таблица 3 – Таблица «Жанр»

Код_жанра Название жанра
1 Роман
2 Детектив
3 Ужасы
4 Рассказ
5 Повесть
6 Драма
7 Комедия
8 Фантастика
9 Исторический

 

Сущность «ББК» (таблица 4) будет иметь такие атрибуты: «Код_ББК», «Индекс ББК» и «Раздел ББК». В таблице «Книга» поле «ББК» заменим полем «Код_ББК».

 

Таблица 4 – Таблица «ББК»

Код_ББК Индекс ББК Раздел ББК
1 84(2) Произведения русской литературы до 1917г.
2 84.(2)6 Произведения русской литературы новейшего времени. (1917-наше время)
3 84(4/8) Произведения литературы зарубежных стран
4 85.03 История искусства
5 85.1 Изобразительное искусство
6 85.11 Архитектура
7 85.13 Скульптура
8 85.14 Живопись
9 85.37 Киноискусство

 

Сущность «Вид содержания» (таблица 5) будет иметь такие атрибуты: «Код_содержания» и «Вид содержания». В таблице «Книга» поле «Вид содержания» заменим полем «Код_содержания».

 

Таблица 5 – Таблица «Вид содержания»

Код_содержания Вид содержания
1 Печатный
2 Электронный
3 Тактильный

 

Справочники к сущности «Книга» находятся в 1НФ, так как в них отсутствуют повторяющиеся записи, находятся в 2НФ, так как каждый неключевой атрбут полностью зависит от первичного ключа.и находятся в 3НФ, так как в них отсутствуют транзитивные зависимости.

Каждая книга в библиотеке может присутствовать в нескольких экземплярах. Необходимо создать дочернюю таблицу «Экземпляр книги» и вынести необходимые атрибуты из сущности «Книга» в новую таблицу. Таблица «Экземпляр книги» (рис. 8) будет иметь следующие атрибуты: код_языка, инвентарный номер, количество страниц, ISBN, код_языка, год издания, стоимость, код_содержания и код_экземпляра.

 

Рисунок 8 – Таблица«Экземпляр книги»

 

Таблица «Экземпляр книги» находится в 1НФ и 2НФ, но не находится в 3НФ, так как в ней присутствует транзитивная зависимость между атрибутами «ISBN» и «Код_издательства».

Между сущностями «Экземпляр книги» и «Книги» определена связь один-ко-многим.

Между сущностями «Экземпляр книги» и «Издательство» определена связь один-ко-многим. Одно издательство может печатать много книг, но каждая книга может быть напечатана только одним издательстовом.

Между сущностями «Экземпляр книги» и «Язык» определена связь один-ко-многим. Книги могут быть написаны на разных языках, но экземпляр книги может быть написан на только одном языке.

Между сущностями «Экземпляр книги» и «Вид содержания» определена связь один-ко-многим.Книги могут иметь разный вид содержания, но каждая книга имеет только один вид содержания.

Между сущностями «Книга» и «Жанр» определена связь один-ко-многим. Книги могут быть отнесены к разным жанрам, но каждая книга имеет свой жанр.

Между сущностями «Книга» и «ББК» определена связь один-ко-многим. Книги могут быть отнесены к разным разделам ББК, но каждая книга относена к конкретнрому разделу ББК.

Таблица «Книга» представлена ниже (таблица 6).

 

Таблица 6 – Таблица «Книга»

Код_книги Количество экземпляров Название Код_жанра Код_ББК
1 2 Зеленая миля 1 84(4/8)
2 3 Сто лет одиночества 1 84(4/8)
3 3 Мастер и Маргарита 8 84.(2)6
4 2 Белая гвардия 9 84.(2)6
5 3 Отцы и дети 1 84(2)
10 3 Грозовой перевал 1 84(4/8)

 

Сформируем справочник авторов книг, создадим таблицу «Автор». Сущность «Автор» (таблица 7) будет иметь такие атрибуты: «Код_автора», «Фамилия», «Имя» и «Отчество».

 

Таблица 7 – Таблица «Автор»

Код_автора Фамилия Имя Отчество
1 Кинг Стивен  
2 Грасиа Меркес Габриэль  
3 Булгаков Михаил Афанасьевич
4 Тургенев Иван Сергеевич
5 Бронте Эмили  

 

Один автор мог написать несколько книг, одна книга могла быть написана несколькими авторами, определена связь многие-ко-многим. Такая связь реализуется путем добавления третьей таблицы.

Так как книга могла быть написана несколькими авторами, создадим связующую таблицу «Авторы книги» (таблица 8), имеющую атрибуты: «Код_автора», «Код_книги» и «Код_авторов_книги».

 

Таблица 8 – Таблица «Авторы книги»

Код_автора_книги Код_книги Код_автора
1 1 1
2 2 2
3 3 3
4 4 3
5 5 4
6 10 5

 

Между стержневыми сущностями «Библиотекарь» (рис. 9) и «Читатель» и дочерней таблицей «Экземпляр книги» связь много-ко-многим. Необходимо создать связующую страницу.

 

Рисунок 9 – Таблица «Библиотекарь»

 

Таблица «Читатель» (рис. 10) и «Библиотекарь» находится в 1НФ и 2НФ, но не находится в 3НФ, потому что атрибуты «Номер паспорта» и «Серия паспорта» имеют транзитивную зависимость с другими полями.

 

Рисунок 10 – Таблица «Читатель»

 

Создадим связующую таблицу «Журнал выдачи» (рис. 11), имеющую атрибуты: «Код_читателя», «Код_экземпляра», «Код_библиотекаря», «Дата выдачи», «Срок сдачи», «Факт возврата» и «Код_выдачи».

 

Рисунок 11 – Таблица «Журнал выдачи»

 

Спректированная информационно-логическая модель представлена ниже (рис. 12).

 

 Рисунок 12 – Информационно-логическая модель базы данных «Библиотека»

 


Дата добавления: 2022-11-11; просмотров: 485; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!