Пример описания словаря данных



Рассмотрим фрагмент словаря данных, созданного для информационной системы библиотеки:

       КНИГА

                   ШИФР КНИГИ

                   НАЗВАНИЕ

                                          ПЕРЕВОДЧИК

                                          РЕДАКТОР

                                          ТОМ

                                          НАЗВАНИЕ ТОМА

                                          КОЛИЧЕСТВО ЭКЗЕМПЛЯРОВ

                                          ЭКЗЕМПЛЯРОВ В НАЛИЧИИ

                                          АННОТАЦИЯ

                                      НОМЕР СТЕЛЛАЖА

                                          ЦЕНА

 

Имя элемента Формат Допустимый диапазон значений
Шифр книги числовой 0-9999999
Название текстовый  
Переводчик текстовый  
Редактор текстовый  
Том числовой  
Название тома текстовый  
Количество экземпляров числовой  
Экземпляров в наличии числовой  
Аннотация текстовый  
Номер стеллажа числовой 1–10
Цена денежный  

 

Приведенное описание дает исчерпывающее представление о логической структуре заявки.

Приложение 4

Пример модели «сущность -­ связь»

В нашем примере основными объектами являются:

· книга со всеми ее реквизитами,

· журнал,

· формуляр читателя,

· бланк подписки журналов,

· счет на покупку изданий в магазине.

Для построения информационной модели будущей системы, как можно более полно описывающей информационные особенности предметной области, используем стандартное средство моделирования — аппарат моделей “сущность–связь”, или ER – модель. Это позволит представить информационные потребности в виде, наглядном и удобном для восприятия.

Основными сущностями моделируемой области являются “КНИГА”, “ЖУРНАЛ”, “ЧИТАТЕЛЬ”, “СЧЕТ”, “ПОДПИСКА”, “РЕДАКЦИЯ”. Графическое изображение этих сущностей со всеми присущими им атрибутами представлено на рис. 9.

Для сущностей “КНИГА” и “ЖУРНАЛ” введем дополнительные атрибуты “Код книги” и “Код журнала”, возникающие при индексации каждого экземпляра книги или журнала в картотеке.

Рис. 9. Основные объекты инфологической модели библиотеки

 

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

Для экземпляров сущности “КНИГА” ключевым атрибутом может быть атрибут “Код книги”, так как он уникален для каждой конкретной книги.

Для сущности “ЧИТАТЕЛЬ” в качестве ключевого атрибута можно использовать “Номер читательского билета”, так как среди читателей могут оказаться однофамильцы, а следовательно, атрибут “Фамилия читателя” не может являться ключевым. Экземпляры сущности “СЧЕТ” могут быть идентифицированы значением атрибута “Номер счета”, “ЖУРНАЛ” — атрибутом “Код журнала”. Экземпляры сущности “РЕДАКЦИЯ” вполне различаются значением атрибута “Название редакции”, а для сущности “ПОДПИСКА” ключом может стать только комбинация атрибутов: “Название журнала”, “Год подписки”, “Месяц начала подписки” и “Месяц окончания подписки”.

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

Для сущности “КНИГА” значения атрибута “Дата рождения автора” являются желательными, но не обязательными, для сущности “ЧИТАТЕЛЬ” такой необязательной информацией является “Домашний телефон”.

Все остальные атрибуты являются обязательными.

Установим связи между сущностями, учитывая следующие закономерности:

· каждый читатель может заказать несколько книг, а отдельные экземпляры одной книги выдаются разным читателям; следовательно, между сущностями “КНИГА” и “ЧИТАТЕЛЬ” устанавливается связь типа М:М (многие ко многим);

· каждый читатель может заказать несколько журналов, а отдельные экземпляры журнала выдаются разным читателям; кроме того, один и тот же экземпляр может в разные моменты времени может выдаваться разным читателям; следовательно, между сущностями “ЖУРНАЛ” и “ЧИТАТЕЛЬ” устанавливается связь типа М:М (многие ко многим);

· каждый счет может включать в себя оплату по нескольким книгам; с другой стороны, нельзя исключать случая многократной покупки одной и той же книги; следовательно, между сущностями “КНИГА” и “СЧЕТ” устанавливается связь типа М:М (многие ко многим);

· редакция может выпускать несколько журналов, на которые проводится подписка; в свою очередь, подписка на конкретный журнал, выпускаемый редакцией, проводится только в одной редакции; следовательно, между сущностями “ПОДПИСКА” и “РЕДАКЦИЯ” устанавливается связь типа 1:М (один ко многим, один со стороны сущности “ПОДПИСКА”), связь со стороны сущности "ПОДПИСКА" является ключевой, так как экземпляры сущности "ПОДПИСКА" не могут быть однозначно идентифицированы без связи с соответствующими экземплярами сущности "РЕДАКЦИЯ";

· подписка на журналы проводится периодически, но на каждое издание выписывается один бланк; следовательно, между сущностями “ЖУРНАЛ” и “ПОДПИСКА” устанавливается связь типа 1:М (один ко многим, один со стороны сущности “ЖУРНАЛ”), связь со стороны сущности "ПОДПИСКА" является ключевой, так как экземпляры сущности "ПОДПИСКА" не могут быть однозначно идентифицированы без связи с соответствующими экземплярами сущности "ЖУРНАЛ".

Связь отражает в модели отношение между объектами, послужившими прототипами сущностей. При переходе к физической структуре БД обработка связей приводит к копированию атрибутов связанных сущностей из таблицы, создаваемой для одной сущности, в таблицу, создаваемую для другой. Поэтому в эскизе модели, приведенном на рис. 9 после установления связей должны быть устранены “лишние” атрибуты. Так, например, связь между сущностями “КНИГА” и “СЧЕТ” позволяет устранить избыточные атрибуты для сущности “СЧЕТ” : “Шифр книги”, “Название книги”, “Автор книги”, “Издательство” и “Стоимость”, которые являются также атрибутами сущности “КНИГА”; для бланка подписки связь с сущностью “ЖУРНАЛ” позволяет не дублировать название журнала.

С учетом описанных связей и внесенных уточнений модель приобретет вид, показанный на рис. 10.

Связи типа «многие ко многим» (М:М) не могут быть представлены в реальной схеме данных. Преобразуем их в соответствии с правилами.

Экземпляр книги, выданный читателю, переходит из состояния “хранится в библиотеке” в состояние “находится у читателя” и может характеризоваться дополнительными атрибутами. С учетом этого обстоятельства, введем в модель сущность “КНИГА У ЧИТАТЕЛЯ” с атрибутами “Дата выдачи” и “Дата возвращения” и установим соответствующие связи с сущностями “КНИГА” и “ЧИТАТЕЛЬ”. Связи со стороны сущности “КНИГИ У ЧИТАТЕЛЯ” помечаются как ключевые, так как экземпляры этой сущности не могут быть однозначно идентифицированы вне связи с соответствующими экземплярами сущностей “КНИГА” и “ЧИТАТЕЛЬ”. Тип описываемой связи 1:М (многие со стороны сущности “КНИГИ У ЧИТАТЕЛЯ”) представлен на рис. 11.

 

Рис.10. Установление связей между объектами модели библиотеки

Рис.11 Разрешение связи “многие ко многим” между сущностями “КНИГА” и “ЧИТАТЕЛЬ”

 

Аналогичная ситуация возникает при анализе связи «журнал – читатель». Введение дополнительной сущности “ЖУРНАЛЫ У ЧИТАТЕЛЕЙ” позволит устранить связь “многие ко многим” (рис. 12).

 

Рис. 12. Разрешение связи “многие ко многим” между сущностями “ЖУРНАЛ” и “ЧИТАТЕЛЬ”

 

Сущности “ЖУРНАЛ У ЧИТАТЕЛЯ” и “КНИГА У ЧИТАТЕЛЯ” могут быть сведены к одной — “ИЗДАНИЕ У ЧИТАТЕЛЕЙ”, если помимо атрибутов “Дата выдачи” и “Дата возвращения” сущность “ИЗДАНИЕ У ЧИТАТЕЛЕЙ”, будет иметь атрибут, позволяющий отличать экземпляры книг от журналов, — “Книга или Журнал”.

Но тогда сущность “ИЗДАНИЕ У ЧИТАТЕЛЕЙ” будет иметь две взаимоисключающие связи с сущностями “ЖУРНАЛ” и “КНИГА”.

Ситуация, когда две или более связи от одной и той же сущности могут быть взаимоисключающими, на ER - диаграмме представляется с помощью исключающей дуги, пересекающей каждый конец взаимоисключающих связей ( рис.13).

 

Рис.13. Исключающая дуга для связей между сущностями “КНИГА”, “ЖУРНАЛ” и сущностью “ИЗДАНИЕ У ЧИТАТЕЛЯ”

 

Между сущностями “КНИГА” и “СЧЕТ” существует связь типа М:М.

Счет представляет собой ряд пунктов, каждый из которых описывает реквизиты одного издания с указанием количества экземпляров; следовательно, для конкретизации отношений «книга-счет» необходимо ввести дополнительную сущность “ПУНКТ СЧЕТА”, атрибутом которой станет “Количество экземпляров” каждого наименования.

Связь со стороны сущности “Пункт счета” помечается как ключевая, так как экземпляры этой сущности не могут быть однозначно идентифицированы вне связи с соответствующими экземплярами сущностей “КНИГА” и “СЧЕТ” (рис.14).

 

Рис. 14. Разрешение связи “многие ко многим” между сущностями “КНИГА” и “СЧЕТ”

 

Эскиз модели, представленный на рис.10, необходимо уточнить внесением всех рассмотренных изменений (см. рис. 11-14). Уточненный эскиз модели рассмотрен на рис.15.

 


 

Рис. 15. Эскиз инфологической модели библиотеки с устраненными связями “многие ко многим”


Процесс нормализации модели позволяет устранить избыточность хранения информации и аномалии при добавлении, удалении, изменении данных.

В процессе нормализации модель должна быть последовательно приведена к 1НФ, 2НФ, 3НФ (нормальным формам).

Приведение к 1НФ состоит в исключении множественных или повторяющихся атрибутов.

Все сущности модели, кроме одной – “КНИГА”, соответствуют 1НФ, так как не имеют повторяющихся или множественных атрибутов, а сущность “КНИГА” должна быть приведена к 1НФ.

Книга может быть написана несколькими авторами, поэтому сущность “КНИГА” имеет повторяющиеся атрибуты “Фамилия автора”, “Дата рождения” и “Тематика работ автора”.

Повторяющиеся атрибуты выделяются в самостоятельную сущность “АВТОР”, атрибутами которой становятся “Фамилия автора”, “Дата рождения” и “Тематика работ” (рис. 16).

 

Рис. 16. Приведение к 1НФ сущности “КНИГА” – выделение понятия “АВТОР” в самостоятельную сущность

 

Для идентификации экземпляров сущности “АВТОР” одного атрибута “Фамилия” недостаточно, так как среди авторов могут оказаться однофамильцы.

Обсудив с библиографами вопрос идентификации авторов, приходим к выводу, что однофамильцы внутри одной тематики встречаются сравнительно редко. Следовательно, ключ сущности “АВТОР” можно определить как комбинацию двух атрибутов “Фамилия автора” и “Шифр тематики ” (рис. 17).

 

Рис. 17. Определение ключевых атрибутов сущности "Автор"

 

Между сущностями “КНИГА” и “АВТОР” устанавливается связь М:М, так как книга может быть написана группой авторов, а каждый автор может иметь более одной книги (рис. 18).

Рис. 18. Определение связи между сущностями

 

Для устранения такой общей множественной связи необходимо ввести дополнительную межсекционную сущность “АВТОР КНИГИ” (рис. 19).

 

Рис. 19. Разрешение связи “многие ко многим” между сущностями “КНИГА” и “АВТОР”

 

Связь со стороны сущности “АВТОР КНИГИ” помечается как ключевая, так как экземпляры этой сущности идентифицируются только в связи с соответствующими экземплярами сущностей “КНИГА” и “АВТОР”.

Группа повторяющихся атрибутов “Издательство”, “Адрес издательства” и “Телефон издательства” выносится в самостоятельную сущность “Издательство”. Между сущностями устанавливается связь "многие ко многим" (М:М), так как книга может быть выпущена несколькими издательствами, с другой стороны, издательство выпускает множество различных книг (рис. 20).

 

Рис. 20. Приведение к 1НФ сущности “КНИГА” – выделение понятия “ИЗДАТЕЛЬСТВО” в самостоятельную сущность

 

Для устранения множественной связи введем дополнительную сущность “ИЗДАНИЕ”, атрибутами которой становятся: “Число страниц”, “Год издания” и “Цена”; атрибут "Год издания" является ключевым (рис. 21).

 

Рис. 21. Разрешение связи “многие ко многим” между сущностями “КНИГА” и “ИЗДАТЕЛЬСТВО”

 

Для всех сущностей модели были устранены повторяющиеся атрибуты, а следовательно, модель соответствует 1НФ (см. рис. 22).


 
Рис. 22. Эскиз инфологической модели библиотеки, приведенной к 1НФ

 

 

Приведение модели ко 2НФ предполагает выделение атрибутов, которые удовлетворяют требованиям функционально полной зависимости от уникального идентификатора сущности, являющегося составным ключом.

В нашей модели сущность “АВТОР” имеет составной ключ (атрибуты “Фамилия автора” и “Шифр тематики”). Функциональная зависимость является полной, если не ключевой атрибут функционально зависит от составного ключа, но не зависит от любого подмножества атрибутов, образующих ключ. Для всех не ключевых атрибутов сущности “АВТОР” прослеживается функциональная зависимость не только от составного ключа, но и от отдельной его составляющей – атрибута “Фамилия автора”. Для приведения сущности ко 2НФ необходимо проделать следующие шаги:

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

– ключом новой сущности установить часть ключа исходной, от которой имеет место функционально неполная зависимость;

– между новой и исходной сущностями провести связь типа 1:М, ключевую со стороны М (рис. 23).

 

 

Рис. 23. Приведение сущности “АВТОР” к 2НФ

 

Ключевым атрибутом сущности “ТЕМАТИКА” становится атрибут “Код тематики”(см. рис. 23).

В качестве ключевого атрибута сущности “АВТОР” удобнее использовать атрибут “Код автора”, который возникает при сортировке книг одной тематики по фамилиям авторов (рис. 24).

 

 

Рис. 24. Замена ключа сущности “АВТОР” на уникальный код

 

Сущность “ПОДПИСКА” соответствует 2НФ, так как не ключевые атрибуты “Стоимость подписки” и “Количество экземпляров” функционально полно зависят от составного ключа.

Модель, удовлетворяющая требованиям второй нормальной формы (2НФ), приведена на( рис. 25).



Приведение к 3НФ состоит в исключении транзитивных зависимостей атрибутов, не являющихся частью ключа.

В сущностях “ЗАКАЗ” и “СЧЕТ” атрибут “Адрес магазина” транзитивно зависит от не ключевого атрибута “Название магазина”. В соответствии с правилами приведения к 3НФ выделим атрибуты “Название магазина” и “Адрес магазина” в самостоятельную сущность с именем “МАГАЗИН”. Ключевым атрибутом новой сущности является атрибут “Название магазина”, так как от него была обнаружена транзитивная зависимость. Между новой и исходными сущностями устанавливается связь типа 1:М (рис. 26).

 

 

Рис. 26. Исключение транзитивной зависимости

 

В сущности “МАГАЗИН” атрибут “Банковские реквизиты” должен быть уточнен. В расчетном счете указываются атрибуты: название банка, адрес банка, расчетный счет магазина в банке, с указанием МФО и расчетного центра (рис. 27).

Рис. 27. Уточнение составного атрибута “Банковские реквизиты”
 в сущности “МАГАЗИН”

 

Атрибуты “Расчетный счет магазина”, “Адрес банка”, “МФО 1”, “МФО 2” и “Расчетный центр” имеют транзитивную зависимость от не ключевого атрибута “Название банка”; следовательно, их необходимо вынести в отдельную сущность “БАНК”, ключевым атрибутом которой становится атрибут “Название банка”, от которого была обнаружена транзитивная зависимость (рис. 28).

 

Рис. 28. Приведение к 3НФ сущности “МАГАЗИН”

 

До сих пор мы не касались вопроса заказа книг в соответствии с планами издательств.

Реальные объекты: бланк заказа и перечень книг, предполагаемых к выпуску, представим в виде сущностей со всеми присущими им характеристиками.

Между сущностями установим связь типа “многие ко многим”, так как в заказе могут быть перечислены книги, относящиеся к различным издательствам, а план выпуска состоит из перечня изданий (см. рис. 29).

 

Рис. 29. Сущности “ПЛАН ИЗДАТЕЛЬСТВА” и “ЗАКАЗ”
и связь между ними

 

Анализ сущностей “ЗАКАЗ” и “ПЛАН ИЗДАТЕЛЬСТВА” показывает необходимость создания сущности “ВЫПУСКАЕМАЯ КНИГА” с атрибутами: “Шифр книги” , ”Название книги”, “Автор книги”.

Связь со стороны сущности “ВЫПУСКАЕМАЯ КНИГА” помечается как ключевая, так как экземпляры этой сущности не могут быть однозначно идентифицированы без связи с соответствующими экземплярами сущностей “ЗАКАЗ” и “ПЛАН ИЗДАТЕЛЬСТВА”(рис. 30).

Рис. 30. Разрешение связи “многие ко многим”

 

ПЛАН ИЗДАТЕЛЬСТВА # Шифр плана * Издательство * Адрес издательства оТелефон издательства * Планируемое количество экземпляров
ПЛАН ИЗДАТЕЛЬСТВА # Шифр плана * Издательство * Адрес издательства оТелефон издательства * Планируемое количество экземпляров
Атрибуты “Телефон издательства” и “Адрес издательства” сущности “ПЛАН ИЗДАТЕЛЬСТВА” транзитивно зависят от атрибута “Название издательства”. В соответствии с правилами приведения к 3НФ необходимо выделить эти атрибуты в самостоятельную сущность. Ключевым атрибутом новой сущности становится атрибут, от которого была обнаружена транзитивная зависимость.

Наличие в модели сущности “ИЗДАТЕЛЬСТВО”, ключевым атрибутом которой является атрибут “Название издательства”, позволяет исключить транзитивную зависимость атрибутов сущности “ПЛАН ИЗДАТЕЛЬСТВА”. Между сущностями устанавливается связь типа 1:М, что отражет тот факт, что издательство имеет несколько тематических планов. Связь помечается как ключевая со стороны сущности “ПЛАН ИЗДАТЕЛЬСТВА”, так как экземпляры сущности “ПЛАН ИЗДАТЕЛЬСТВА” идентифицируются только в связи с экземплярами сущности “ИЗДАТЕЛЬСТВО” (рис.31).

 

Рис. 31. Исключение транзитивной зависимости

 

Таким образом, для всех сущностей модели транзитивные зависимости не ключевых атрибутов исключены, а следовательно, модель соответствует 3НФ (рис. 32).

 




Приложение 5


Дата добавления: 2018-10-26; просмотров: 799; Мы поможем в написании вашей работы!

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






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