Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Попытка составить.doc
Скачиваний:
4
Добавлен:
26.11.2019
Размер:
1.25 Mб
Скачать
  1. Пример транзитивной зависимости: а) отношения между объектами с транзитивной зависимостью; б) отношения между объектами без транзитивной зависимости

Пример графического описания связей между отношениями

На рисунке 10 представлены связи между отношениями, характеризующими контрагента.

Рисунок 10 – Связи с отношением Contractor

Во вновь построенных и преобразованных таблицах проверяются первичные ключи. Если первичный ключ таблицы оказывается слишком длинным, неудобным для идентификации строк и для поддержания связей в БД, то в таблицу вводится дополнительное поле – искусственный первичный ключ. Этот ключ может быть известен пользователю и играть роль кода или номера объекта или быть внутренним ключом, автоматически создаваемым СУБД и обрабатываемым приложением. Изменение первичного ключа в одной таблице распространяется на соответствующие внешние ключи связанных таблиц.

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

Затем в логическую структуру БД вносятся связи, заданные между сущностями концептуальной схемы. Способ представления связи в реляционной модели данных зависит от ее типа. Связь типа «один к одному» при обязательном участии каждого объекта в связи означает, что экземпляры связанных сущностей могут появляться только вместе – парами. Например, договор и его смета в схеме, представленной на рисунке 18. В таком случае обычно нецелесообразно разделять эти сущности по отдельным таблицам. Следует образовать одну таблицу с полным набором столбцом и первичный ключ одной из таблиц считать ключом объединяющей таблицы.

Другой возможный тип связи «один ко многим» реализуется созданием в таблице со многими связанными строками (со стороны связи, помеченной «М») дополнительных столбцов, образующих внешний ключ. Столбцами внешнего ключа должны стать столбцы первичного ключа, таблицы с единственной связываемой записью. Например, для реализации связи «один ко многим» между заказчиком с его заявками (см. рисунок 18) в таблицу «Заявка» следует включить внешний ключ – номер заказчика. Если в связи «один ко многим» сущность со стороны помеченной «М» является слабой и обязательно должна быть связана с одним экземпляром сущности со стороны помеченной «1», то для внешнего ключа такой связи устанавливается свойство контроля ссылочной целостности. Для примера связи заказчика с его заявками проверка ссылочной целостности необходима. Обычно связью «один ко многим» с контролем ссылочной целостности реализуется связь справочной таблицы с информационной. При этом одной строке справочной таблицы может соответствовать ноль или несколько строк в информационной таблице.

Последний тип связи «многие ко многим» (M:М) реализуется с помощью дополнительной связывающей таблицы, с которой каждая из исходных таблиц имеет связь «один ко многим». Для этого в связывающую таблицу вводятся в качестве внешних ключей первичные ключи связанных таблиц. Причем их объединение может стать первичным ключом в связывающей таблице. При необходимости структура связывающей таблицы может быть дополнена столбцами, содержащими атрибуты связи. Например, фрагменту концептуальной схемы вида представленному на рисунке 10 соответствует логическая схема, пред-