|
Программирование >> Хронологические базы данных
ные-отношения обычно не рекомендуется, поскольку для них характерна асимметричность (не говоря уже о том, что их предикаты, как правило, весьма сложны) и эта асимметричность способна вызвать разные проблемы практического характера. Например, для случая, показанного на рис. 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.
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НФ), т.е. любую заданную переменную-отношение всегда можно заменить эквивалентным набором переменных-отношений, которые находятся в НФБК (или же в ЗНФ). Такое приведение используется для того, чтобы избежать избыточности и, следовательно, возникновения некоторых аномалий обновления.
Puc. 11.18. Переменная-отношение RVK, входящая в каталог некоторой базы данных Процесс приведения (декомпозиции) заключается в замене данной переменной-отношения некоторым набором ее проекций, составленным таким образом, чтобы обратное соединение этих проекций позволяло вновь получить исходную переменную-отношение. Иначе говоря, этот процесс является обратимым (или декомпозиция всегда выполняется без потерь информации). Также было показано, что решающую роль в этом процессе ифают функциональные зависимости. Теорема Хита прямо утверждает, что если некоторая декомпозиция выполняется в соответствии с определенной ФЗ, то она будет выполнена без потерь. Такое положение дел может рассматриваться как еше одно подтверждение сделанного в главе 10 заявления о том, что понятие ФЗ является если и не совсем фундаментальным, то весьма близким к этому . В данной главе также обсуждалась концепция Риссанена о независимых проекциях и было сделано предположение о том, что в тех случаях, когда существует возможность выбора, исходную переменную-отношение предпочтительнее разбивать именно на независи-
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |