- •Реляционные базы данных
- •Табличное представление
- •Реляционные базы данных
- •Первые разработки
- •Повторяющиеся группы
- •Древовидные структуры
- •Добавления в нормализованной схеме
- •Размещение (номер-здания, номер-отдела)
- •Сетевые структуры
- •Процедура конструирования
- •Пути использования данных
- •Каноническая структура записей (сегментов)
- •Комбинированные овал-диаграммы
- •Устранение избыточности
- •Ключи и атрибуты
- •Вторичные ключи
- •Транзитивные зависимости
- •Отношения между ключами
- •Последовательность записей
- •Три уровня автоматизации
- •Недостатки
- •Заключение. Преимущества реляционной базы
Отношения между ключами
Как мы уже говорили выше, отношения типа М : М между записями (например, групповой брак) обусловливают возникновение некоторых проблем, которых желательно было бы избежать. Каноническая схема не будет содержать отношений М : М между первичными ключами. Более того, она должна быть разработана таким образом, чтобы такие отношения не появлялись и в будущем по мере развития баз данных.
В том случае, когда на овал - диаграмме используются блоки, изображающие сцепленные ключи, для каждого элемента данных, являющегося компонентом сцепленного ключа, изображаются отдельные блоки (рис. 15.1). Компоненты ТИП-КЛИЕНТАМ ШТАТ, ИЗДЕЛИЕ и СКИДКА могут быть соединены непосредственно со сцепленным ключом, состоящим из 4 элементов в том случае, если на диаграмме не представлены другие сцепленные ключи.
Возможно, что некоторые элементы данных, составляющие сцепленный ключ, на результирующем графе уж не будут ключами. СКИДКА на рис. 15.1, например, может сохраниться в качестве атрибута, а не ключа. То же самое можно сказать об элементе ШТАТ. Однако может потребоваться использование структуры СКИДКА, для которой элемент СКИДКА будет ключом) может добавляться такая информация, как налог, которым облагается ШТАТ, и для этой информации ШТАТ служит ключом. Если на результирующем графе СКИДКА и ШТАТ не будут ключами, изображающие их блоки и относящиеся к ним связи могут быть устранены.
Рис. 15.1, Сцепленный ключ и его компоненты на диаграмме. Некоторые из этих компонентов сами по себе могут не быть ключами.
Для решения этой проблемы в том случае, если процедура конструирования устанавливает связи между ключами в одном направлении, добавляются эквивалентные связи в обратном направлении, т. е. связь между ключами изображается двунаправленными стрелками. Теперь, если есть отношение типа М : М между двумя ключами А и В
и путь в любом направлении предположительно может пересечься, вводится третий ключ А+В:
Если использовать такую процедуру, создаваемая каноническая схема не будет содержать отношение типа М:М, исключение составляют те случаи, когда связь не может быть использована в одном направлении.
ПЕРЕСЕКАЮЩИЕСЯ АТРИБУТЫ
Граф, получаемый в результате объединения представлений пользователей о данных, может содержать пересекающиеся атрибуты. Пересекающийся атрибут - это атрибут, который связан с несколькими ключами, т. е. блок, изображающий атрибут, имеет несколько указывающих на него стрелок.
В табл. 15.3 показан пересекающийся атрибут и три способа его представления. На результирующем каноническом графе пересекающиеся атрибуты должны отсутствовать.
Способы преобразования пересекающихся атрибутов
Таблица 15.3
Граф содержит пересекающимся атрибут:
Пересекающийся атрибут можно исключить одним из трех следующих способов:
1.Все связи, кроме одной, заменяются эквивалентными связями с существующим ключом:
2.Каждый избыточный вариант пересекающегося атрибута присоединяется соответствующему ключу:
3.Пересекающийся атрибут превращается в ключ без атрибутов:
ИЗОЛИРОВАННЫЕ АТРИБУТЫ
Изолированный атрибут-атрибут, который не идентифицируется первичным ключом. Он изображается блоком, не имеющим одиночных стрелок, направленных к нему или от него, хотя двойные стрелки могут указывать на него. Изолированный атрибут может обрабатываться одним из следующих способов:
1. Он может быть представлен как повторяющийся атрибут в записи переменной длины.
2. Он может быть обработан как одиночный ключ - запись, состоящая из одного элемента данных.
Часто такой атрибут получается в результате ошибки при интерпретации пользовательских данных, и поэтому правомерность его наличия должна быть тщательно исследована.