Глава 2
Таблица 2.6
(окончание)
Реквизиты
объекта
Признак ключа
Имя
информационного
объекта
Семантика
объекта
НОМ_ДОГ +
КОД_ТОВ +
СРOK_ПОСТ
Составной
уникальный
ПОСТАВКА_ПЛАН
Сведения
о поставках това-
ров по договору
КОЛ_ПОСТ
МИН_ПОСТ
СУММА_ПОСТ
Анализ документа "Накладная".
Рассмотрим функциональные зависимости рек-
визитов общей части накладной. Номер накладной присваивается в порядке подго-
товки нового документа. Этот номер можно считать уникальным только среди всех
номеров накладных, выписанных на данном складе (т. е. он не повторяется на дан-
ном складе). Для уникальной идентификации накладных по всей фирме надо при-
нять составной идентификатор
Номер накладной
+
Код склада
.
Реквизиты
Дата выписки накладной
(отгрузки товаров) и
Номер договора
имеют
единственное значение в накладной и, соответственно, каждый из них однозначно
определяется идентификатором накладной (
Номер накладной +
Код склада
). Общим
идентификатором накладной определяется также однозначно реквизит
Сумма всего
.
Дата заключения договора
однозначно определяется
Номером договора
, что было уже
учтено при анализе договора.
Код покупателя
, выбранный ранее его идентификатором, имеет единственное значе-
ние в накладной, т. е. он однозначно определяется идентификатором накладной.
Однако, как было рассмотрено ранее,
Код покупателя
однозначно определяется в
первичном документе "Договор"
Номером договора
. То есть здесь имеет место тран-
зитивная зависимость идентификатора покупателя от номера договора через иден-
тификатор накладной. Поэтому будем учитывать функциональную зависимость
Кода покупателя
только от
Номера договора
.
ИНН
и
Наименование покупателя
однозначно определяются
Кодом покупателя
, что уже
было учтено при анализе справочника покупателей.
Описательные реквизиты фирмы (
ИНН
и
Наименование фирмы
), выступающей в дан-
ном документе в качестве поставщика, определяются однозначно идентификатором
фирмы —
Кодом фирмы
. Как было принято ранее, объект
ФИРМА
не целесообразно
отображать отдельным объектом в базе данных.
Описательные реквизиты
Наименование склада
и
Отв. лицо
(ФИО ответственного
лица) однозначно определены
Кодом склада
, что уже было учтено при анализе спра-
вочника покупателей.
З
АМЕЧАНИЕ
Код покупателя
,
Номер договора
,
Код склада
играют в документе важную роль связи
накладной с соответствующими справочными и плановыми данными. К этим данным
относятся данные по покупателю (которому отпущен товар), данные по складу (с кото-
Проектирование реляционной базы данных
79
рого отпущен товар), данные по договору (на основании которого выписывается на-
кладная). Как видно из таблиц функциональных зависимостей, реквизиты
Код поку-
пателя
,
Номер договора
с одной стороны являются ключевыми для соответствующих
данных, а с другой — описательными для накладной.
Рассмотрим функциональные зависимости реквизитов табличной части накладной.
Табличная часть содержит реквизиты, имеющие множество значений в соответст-
вующих столбцах, т. к. накладная может содержать несколько наименований това-
ров, отпущенных покупателю. Среди этих реквизитов особую роль играет
Код то-
вара
, который является идентификатором каждой строки в документе.
З
АМЕЧАНИЕ
Поскольку в накладной может быть несколько товаров, идентификатор накладной не
определяет однозначно товар, указанный в документе, и, соответственно, не может
быть установлена функциональная зависимость
Кода товара
от идентификатора на-
кладной.
Описательные реквизиты товара
Наименование
,
Единица измерения
,
Цена
,
Ставка НДС
однозначно определены
Кодом товара
, что уже было учтено при анализе справочни-
ка покупателей.
Реквизиты-основания накладной
Количество отгруженного
товара
и
Сумма за товар
определяют количественные характеристики объекта — отгрузка товаров. Эти рек-
визиты внутри одной накладной идентифицируются
Кодом товара
в соответствую-
щей строке, а полная идентификация на всем множестве накладных образуется до-
бавлением к
Коду товара
идентификатора накладной. Таким образом, реквизиты
Количество отгруженного товара
и
Сумма за товар
однозначно определяются состав-
ным идентификатором
Номер накладной + Код склада + Код товара
.
На рис. 2.12 наглядно представлены все рассмотренные функциональные зависи-
мости реквизитов
накладной.
Номер накладной
Код склада
Номер договора
Дата отгрузки
НОМ_НАКЛ
КОД_СК
НОМ_ДОГ
ДАТА_ОТГР
Реквизиты документа
"Накладная"
Имя реквизита
Функциональные
зависимости
Сумма всего
СУММА_НАКЛ
Код товара
КОД_ТОВ
Количество отгруженного товара
Сумма за товар
КОЛ_ОТГР
СУММА_ОТГР
Рис. 2.12.
Функциональные зависимости реквизитов
накладной
Выделение информационных объектов по накладной.
Проанализировав выяв-
ленные функциональные взаимосвязи реквизитов, установим, от каких реквизитов
зависит каждый реквизит, к которому подходит стрелка. Таким образом, определим
80
Глава 2
соответствие описательных и ключевых реквизитов накладной. Затем сгруппируем
реквизиты, одинаково зависимые от ключевых, и объединим их с ключевыми рек-
визитами в один информационный объект (ИО). Результат группировки по ИО рек-
визитов накладной представлен в табл. 2.7.
Таблица 2.7.
Группировка реквизитов
по информационным объектам документа "Накладная"
Реквизиты ИО
Признак
ключа
Имя ИО
Семантика ИО
(описание)
НОМ_НАКЛ + КОД_СК
Составной
уникальный
НАКЛАДНАЯ
Общие сведения
по накладной
ДАТА_ОТГР
НОМ_ДОГ
СУММА_НАКЛ
НОМ_НАКЛ + КОД_СК + КОД_ТОВ
Составной
уникальный
ОТГРУЗКА
Данные по отгрузке
товара
КОЛ_ОТГР
СУММА_ОТГР
Связи информационных объектов
Следующим шагом проектирования после выявления информационных объектов
является определение связей между ними. Связь устанавливается между двумя ин-
формационными объектами. Наличие связи, как правило, определяется природой
реальных объектов, процессов или явлений, отображаемых этими информацион-
ными объектами. Связь между объектами существует, если логически взаимосвяза-
ны экземпляры этих информационных объектов. Например, связи имеются между
такими парами объектов, как поставщик — товар, склад — товар, кафедра — пре-
подаватель, группа — студент и т. п.
Тип связи информационных объектов
Связи информационных объектов могут быть разного типа:
одно-однозначные (1 : 1);
одно-многозначные (1 : М);
много-многозначные (М : N).
Одно-однозначные связи
(1 : 1) имеют место, когда каждому экземпляру первого
объекта (А) соответствует только один экземпляр второго объекта (В), и наоборот,
каждому экземпляру второго объекта (В) соответствует только один экземпляр
первого объекта (А). Следует заметить, что такие объекты легко могут быть объ-
единены в один, структура которого образуется объединением реквизитов обоих
исходных объектов, а ключевым реквизитом может быть выбран любой из альтер-
Проектирование реляционной базы данных
81
нативных ключей, т. е. ключей исходных объектов. Графическое изображение од-
но-однозначной связи приведено на рис. 2.13. Примерами одно-однозначных связей
являются пары вида: группа — староста, фирма — расчетный счет в банке и т. п.
ОБЪЕКТ
А
ОБЪЕКТ
В
1 : 1
Рис. 2.13.
Графическое изображение одно-однозначных отношений объектов
Одно-многозначные связи
(1: М) — это такие связи, когда каждому экземпляру од-
ного объекта (А) может соответствовать несколько экземпляров другого объек-
та (В), а каждому экземпляру второго объекта (В) может соответствовать только
один экземпляр первого объекта (А). Графическое изображение одно-многозначной
связи приведено на рис. 2.14.
ОБЪЕКТ
А
ОБЪЕКТ
В
1 :
М
Главный
информационный
объект
Подчиненный
информационный
объект
Рис. 2.14.
Графическое изображение одно-многозначных отношений объектов
В такой связи объект А является главным, а объект В — подчиненным, т. е. имеет
место иерархическая подчиненность объекта В объекту А. Простейшими примера-
ми одно-многозначных связей объектов являются пары объектов: подразделения —
сотрудники, кафедра — преподаватель, группа — студент и т. п.
Много-многозначные связи
(М : N) — это такие связи, когда каждому экземпляру
одного объекта (А) могут соответствовать несколько экземпляров второго объек-
та (В), и наоборот, каждому экземпляру второго объекта (В) может соответствовать
несколько экземпляров первого объекта (А). Графическое изображение связи типа
М : N показано на рис. 2.15.
ОБЪЕКТ
А
ОБЪЕКТ
В
М
:
N
Рис. 2.15.
Графическое изображение много-многозначных отношений объектов
Много-многозначные связи не могут непосредственно реализовываться в реляци-
онной базе данных. Поэтому в том случае, когда будут выявлены такие связи, мо-
жет возникнуть необходимость их преобразования путем введения дополнительно-
го объекта "связка". Исходные объекты будут связаны с этим объектом одно-
многозначными связями. Таким образом, объект-связка является подчиненным
82
Глава 2
в одно-многозначных связях по отношению к каждому из исходных объектов. Объ-
ект-связка должен иметь идентификатор, образованный из идентификаторов ис-
ходных объектов
Ka
и
Kb
(рис. 2.16).
ОБЪЕКТ А
ОБЪЕКТ В
М
:
N
ключ Ka
ключ Kb
Объект-связка
ключ Ka + Kb
1 :
М
1 :
N
Рис. 2.16.
Преобразование связи типа М : N с помощью объекта-связки
При рассмотренном подходе к выделению информационных объектов объект-
связка, как правило, выявляется в результате рассмотренного ранее анализа функ-
циональных зависимостей реквизитов. Много-многозначные связи в этом случае не
требуют специальной реализации, т. к. осуществляются через объект, выполняю-
щий роль объекта-связки.
Примером много-многозначных связей является пара вида поставщики — товары,
если один поставщик поставляет разные наименования товаров, а товар одного на-
именования может поставляться несколькими поставщиками.
Определение связей
между информационными объектами
Определение связей между информационными объектами и типы отношений,
которыми они характеризуются, рассмотрим на примере предметной области "По-
ставка товаров".
Связи между объектами
ПОКУПАТЕЛЬ
→
ДОГОВОР
характеризуются одно-многознач-
ными отношениями (1 : М), т. к. с одним покупателем может быть заключено не-
сколько договоров, а один договор всегда заключается с конкретным покупателем.
Поскольку накладные строго привязаны к конкретному договору, а по одному до-
говору может быть оформлено несколько накладных, между объектами
ДОГОВОР
и
НАКЛАДНАЯ
имеет место связь типа 1 : M.
Характерным случаем одно-многозначных связей являются связи объектов, образо-
ванные из документов с табличной частью (спецификацией). В рассматриваемой
предметной области по документу "Договор" был выделен объект
ДОГОВОР
, соответ-
ствующий общей части документа, и объект
ПОСТАВКА_ПЛАН
, соответствующий стро-
кам табличной части документа. Очевидна одно-многозначная связь между этими
объектами
ДОГОВОР
→
ПОСТАВКА_ПЛАН
, поскольку в одном документе всегда содер-
жится некоторое множество строк, а каждая строка принадлежит только одному
документу.
Проектирование реляционной базы данных
83
По документу "Накладная" были выделены два объекта, между которыми также
имеет место одно-многозначная связь
НАКЛАДНАЯ
→
ОТГРУЗКА
.
Очевидно наличие связи между объектами
ТОВАР
→
ПОСТАВКА_ПЛАН
. Эту связь также
определяют одно-многозначные отношения, поскольку каждый экземпляр поставки
(одна из строк спецификации договора) — это данные по одному товару, а товар
одного наименования может участвовать в разных плановых поставках товара (од-
ного или разных договоров).
Аналогично устанавливается связь между объектами
ТОВАР
→
ОТГРУЗКА
, которые
также находятся в одно-многозначных отношениях.
Связь между объектами
СКЛАД
→
НАКЛАДНАЯ
может быть установлена как одно-
многозначная, поскольку по условиям рассматриваемой предметной области на
каждом складе выписывается некоторое множество накладных, но каждая наклад-
ная выписывается на конкретном складе.
Следует отметить, что объект
ПОСТАВКА_ПЛАН
фактически играет роль объекта-связки
в много-многозначных отношениях объектов
ДОГОВОР
и
ТОВАР
, а объект
ОТГРУЗКА
играет роль объекта-связки в много-многозначных отношениях объектов
НАКЛАДНАЯ
и
ТОВАР
(рис. 2.17).
М
:
N
ДОГОВОР
ТОВАР
ПОСТАВКА_ПЛАН
М
:
N
ТОВАР
НАКЛАДНАЯ
ОТГРУЗКА
Рис. 2.17.
Примеры много-многозначных отношений информационных объектов
В табл. 2.8 перечислены все одно-многозначные связи между объектами и, соответ-
ственно, определены
главные и подчиненные
информационные объекты в этих
связях.
Таблица 2.8.
Связи информационных объектов
Главный объект
Подчиненный объект
Тип связи
ПОКУПАТЕЛЬ
ДОГОВОР
1 : M
ДОГОВОР
ПОСТАВКА_ПЛАН
1 : M
84
Do'stlaringiz bilan baham: |