Программирование >>  Хронологические базы данных 

1 ... 137 138 139 [ 140 ] 141 142 143 ... 348


ные-отношения обычно не рекомендуется, поскольку для них характерна асимметричность (не говоря уже о том, что их предикаты, как правило, весьма сложны) и эта асимметричность способна вызвать разные проблемы практического характера. Например, для случая, показанного на рис. 11.17, сведения о поставщиках и деталях представлены асимметрично. Рассмотрим два приведенных ниже симметричных запроса.

1. Получить список номеров поставщиков (S#) детали с номером Р1.

2. Получить список деталей (Р), поставляемых поставщиком с номером S1.

Из-за асимметричности переменной-отнощения SPQ их формулировки оказываются соверщенно различными

1. ( SPQ WHERE PI ( PI ) IN PQ { PI } ) { SI }.

2. ( ( SPQ WHERE SI = SI ( Sl ) ) { PQ } ) { Pl }

В данном примере предполагается, что SPQ - это переменная-отнощение, допустимыми значениями которой являются отнощения, аналогичные показанному на рис. 11.17.

P2 P6

300 200

100 1

Puc и 17 Переменная-отношение SPQ с атрибутом, содержащим в качестве значений другое отношение

Еще хуже обстоит дело с операциями обновления. Рассмотрим следующие две операции обновления.

1. Ввести сведения о новой поставке 500 деталей типа Р5 поставщиком с номером S6.

2. Ввести сведения о новой поставке 500 деталей типа Р5 поставщиком с номером S2.

Фактически подобные переменные-отношения ранее даже не были узаконены и назывались ненормализованными, т е такими, которые не находятся даже в первой нормальной форме [10 4] (см также главу 5)



При работе с обычной переменной-отношением SP между двумя подобными обновлениями нет никакой принципиальной разницы, так как в обоих случаях речь идет о вставке в переменную-отношение единственного кортежа. В противоположность этому при работе с переменной-отношением SPQ выполняемые обновления будут существенно отличаться (не говоря уже о том, что в данной ситуации обе эти операции будут намного сложнее, чем при работе с переменной-отношением SP).

1. INSERT INTO SPQ RELATION

{ TUPLE { St SI ( S6 ),

PQ RELATION { TUPLE { Pi ( P5 ),

QTY QTY ( 500 ) } } } };

2. UPDATE SPQ WHERE S = Si ( S2 )

INSERT INTO PQ RELATION {TUPLE { Pt ( P5 ),

QTY QTY ( 500 ) } };

Переменные-отношения (no крайней мере, базовые переменные-отношения) предпочтительнее создавать без использования подобных атрибутов, принимающих в качестве значений другие отношения, так как в этом случае они обладают более простой логической структурой, что существенно упрощает выполнение с ними различных операций. Однако это замечание следует воспринимать лишь как рекомендацию, но не как обязательное правило. На практике вполне могут существовать такие ситуации, когда имеет смысл использовать атрибут со значениями-отношениями в некоторой переменной-отношении и даже в базовой переменной-отношении. Например, на рис. 11.18 показано (частично) возможное содержимое переменной-отношения каталога RVK, в которой хранятся сведения о переменных-отношениях некоторой базы данных с указанием их потенциальных ключей. Атрибут СК в этой переменной-отношении содержит значения-отношения. Причем он одновременно является компонентом единственного потенциального ключа переменной-отношения RVK! Определение этой переменной-отношения может выглядеть так, как показано ниже.

VAR RVK BASE RELATION

{ RVNAME NAME, СК RELATION { ATTRNAME NAME } } KEY { RVNAME, CK };

Замечание. В ответе к упр. 11.3 показано, как можно исключить атрибуты со значениями-отношениями, если такое исключение является желательным (что обычно имеет место на практике). См. также обсуждение оператора UNGROUP в главе 6 (раздел 6.8).

11.7. Резюме

На этом заканчивается первая из двух глав, посвященных дальнейшей нормализации. В ней обсуждались концепции первой, второй и третьей нормальных форм, а также нормальной формы Бойса-Кодда. Разные нормальные формы (включая четвертую и пятую нормальные формы, речь о которых пойдет в следующей главе) образуют общее

Это действительно возможно! Следует отметить, что это невозможно в случае переменной-отношения RVK, по крайней мере непосредственно (т.е. без введения некоторой разновидности атрибута CKNME, предназначенного для указания имени потенциального ключа ).



упорядочение в том смысле, что каждая переменная-отношение на некотором уровне нормализации автоматически находится на всех более низких уровнях нормализации, тогда как обратное утверждение неверно, т.е. на каждом уровне нормашизации могут быть переменные-отношения, которые не находятся на всех более высоких уровнях нормаши-зации. Более того, всегда можно выполнить приведение к НФБК (а на самом деле к 5НФ), т.е. любую заданную переменную-отношение всегда можно заменить эквивалентным набором переменных-отношений, которые находятся в НФБК (или же в ЗНФ). Такое приведение используется для того, чтобы избежать избыточности и, следовательно, возникновения некоторых аномалий обновления.

RVNAME

ATTRNAME

ATTRNAME

MARRIAGE

ATTRNAME

HUSBAND

DATE

MARRIAGE

ATTRNAME

DATE

WIFE

MARRIAGE

ATTRNAME

WIFE

HUSBAND


Puc. 11.18. Переменная-отношение RVK, входящая в каталог некоторой базы данных

Процесс приведения (декомпозиции) заключается в замене данной переменной-отношения некоторым набором ее проекций, составленным таким образом, чтобы обратное соединение этих проекций позволяло вновь получить исходную переменную-отношение. Иначе говоря, этот процесс является обратимым (или декомпозиция всегда выполняется без потерь информации). Также было показано, что решающую роль в этом процессе ифают функциональные зависимости. Теорема Хита прямо утверждает, что если некоторая декомпозиция выполняется в соответствии с определенной ФЗ, то она будет выполнена без потерь. Такое положение дел может рассматриваться как еше одно подтверждение сделанного в главе 10 заявления о том, что понятие ФЗ является если и не совсем фундаментальным, то весьма близким к этому .

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



1 ... 137 138 139 [ 140 ] 141 142 143 ... 348

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика