Введение в системы БД (542480), страница 234
Текст из файла (страница 234)
Я МАМЕ ООЕХМ6 ( Я$, БМАМЕ, ОУЕ1МО ) Я ЯТАТОБ ООЕ1МО ( Я$, ЯТАТОЯ, ОУЕ1М6 ) Б С1ТУ ООМ1МО ( Б$, С1ТУ, ООЕ1М6 ) К каждому из определений этих трех переменных-отношений можно было бы добавить уточнения 1 КЕУ (Я$, 00Е1М6 ОМГОЕОЕО) и СОАЕЕЯСЕО ООЕ1М6. Замечание. Можно было бы также добавить "основную" переменную-отношение поставщиков. Я$ ООК1МО ( Я$, 00Е1МО ) Эта переменная-отношение могла бы показывать, с какими поставщиками подписывались договора и когда это было. К определению также можно было бы добавить уточнения 1 КЕУ (Я$, ООЕ1МБ ОМГОЬОЕО) и СОА1 ЕЯСЕО ООЕ1М6. Кроме того, ключ (Я$,00Е1МО) мог бы служить хронологическим внешним ключом в каждой из переменных-отношений Я МАМЕ 00М1МО, Я БТАТОЯ 00Е1М6 и Б С1ТУ 00Е1М6 (а также ВР ООЙ1М6), соответствующим хронологическому потенциальному ключу в переменной-отношении Я ООЕ1МО.
Здесь следует отметить еше одну особенность. Чтобы получить историю изменения статуса поставщика для переменной-отношения Я ООЕ1М6, как она изначально была определена, необходимо использовать не совсем тривиальное выражение. В ООЙ1М6 ( Я$, ЯТАТОЯ, 00М1МО ) СОАЬЕБСЕ0 ООЕ1М6 В то же время, чтобы получить значительно менее интересную комбинированную историю, требуется лишь ссылка на зту переменную-отношение. Поэтому в некотором смысле предлагаемая декомпозиция "выравнивает игровое поле" для запросов, или, скорее, упрощает выражение более интересных запросов, и усложняет выражение менее интересных запросов. Однако необходимость декомпозиции переменной-отношения Я Я1МСЕ не так уж и непреодолима.
В частности, отметим, что, поскольку для пополнения трех исторических переменных-отношений могут использоваться триггерные процедуры (например, удале- 890 Часть )'. Дополнительные аспекты ние кортежа из переменной-отношения Я Я1ИСЕ может "автоматически" активизировать обновление переменных-отношений Б() ПОК1ИО, Я ИАИЕ ПОК1ИО, Я ЯТАТОЯ ПОК?ИО и Я С1ТУ ПОК1ИЯ), нет необходимости в декомпозиции переменной-отношения Я Б1ИСЕ, чтобы достичь тех же результатов. 22.12. Резюме В начале главы был отмечен все возрастающий интерес к базам данных, содержашнм не только текушие, но и исторические сведения.
Также было показано, что представление исторических данных с использованием лишь временных отметок (Г(шезгашр) приводит к серьезным трудностям и, в частности, очень усложняет задание некоторых ограничений и формулировку определенных запросов. В качестве лучшею подхода рассматривалось использование скалярных ("инкапсулнрованныхч) интервалов; обсуждался генератор типа 1ИТЕКЧАЬ вместе с несколькими новыми операторамн, необходимыми для обработки интервальных данных, хотя все эти операторы, напомним, представляют собой просто некоторые сокращения. Интервалы и связанные с ними операторы могут быть полезны не только для хронологических данных как таковых; к сожалению, наш пример основывался лишь на типе 1ИТЕКЧАЬ(ПАТЕ). В настояшей главе также приводились примеры хронологических отношений и рассматривались хронологические переменные-отношения с атрибутами этого специфического типа.
Интервальный тип должен определяться через основной точечный тип, а связанная с ним точность должна указываться (при необходимости) именно для такого точечного типа. Кроме того, для данного точечного типа и заданной точности должна быть определена функция следования. Рассмотренные здесь операторы включали операторы для обработки собственно интервалов, операторы дпя обработки множеств интервалов и операторы для обработки хронологических отношений.
К операторам пля обработки интервалов относятся ЯТАКТ и ЕИП, а также операторы Аллена. К операторам дпя обработки множеств интервалов относятся ОИРОЬП и СОАЬЕЯСЕ. К операторам для обработки хронологических отношений относятся реляционные версии операторов ОИРОЬП и СОАЬЕБСЕ. Также здесь обсуждались некоторые специализированные операторы обновления и некоторые специализированные ограничения целостности для хронологических переменных-отношений ("хронологические ключи"). Бьшо показано, что большинство из этих новых операторов могли бы фактически рассматриваться как хронологические аналоги соответствующих обычных конструкций.
Далее были рассмотрены две важные канонические формы для множеств интервалов одного и того же типа — развернутая форма и свернутая форма. Множество интервалов типа 1ИТЕКЧАЬ(РТ) представлено в развернутой форме, если каждый интервал в множестве является единичным интервалом, т.е.
интервалом, содержащим ровно одну точку, где точка — это значение основного точечного типа РТ. Множество интервалов типа 1ИТЕКЧАЬ(РТ) представлено в свернутой форме, если никакие два отдельных интервала в этом множестве не перекрываются и не являются смежными. Обе канонические формы обладают преимуществом освобождения от определенных видов избыточности. Свернутая форма максимально краткая и имеет психологические преимущества, а развернутой формой легче оперировать (избавляют от необходимости 891 Глава 22.
Хронологические базы данньп иметь специальные ограничения и операторы обновления, рассмотренные в разделах 22.9 и 22.10). Затем было показано, как концепции этих канонических форм могут быть расширены до отношений с интервальными атрибутами, что прйводит к новым важным реляционным операторам 0НРОЕО и СОЫЕЯСЕ. Эти операторы использовались для определения хронологических аналогов обычных реляционных операторов проекции и вычисления разности.
И наконец было уделено внимание вопросам проектирования базы данных, связанным с горизонтальной и вертикальной декомпозициями некоторых хронологических переменных-отношений. Упражнения а) В языке Я >Ь тип данных ЧяНСНлй(3) включает все строки длиной до трех символов, входящих в набор символов по умолчанию, под которым подразумевается набор символов кода АЯС!!. Как вы полагаете, можно ли считать тип 1НТЕНЧай(ЧИ(СНЫ(3) ) приемлемым интервальным типом? б) Если ваш ответ на предылуший вопрос — "Да", то выразите закрыто-открытый интервал ['р', 'г)') этого типа с помощью закрыто закрытого обозначения интервала.
22.2. В разделе 22.8 был определен оператор получения «ронологичесной разности 1 Н1008. Операторы хронологического объединения (1 0010Н) и хронологического пересечения (1 1НТЕНБЕСТ) могут быть определены аналогично. Дайте соответствующие определения этим операторам.
22.3. Предположим, что переменная-отношение Б 008106 имеет ограничение, требующее, чтобы она была свернута по атрибуту 008186, и предположим, что необходимо обновить эту переменную-отношение с целью отразить тот факт, что поставщику с номером '81' присвоен статус 20 на период с дня 11 по день ! 5. Приведите оператор, с помощью которого можно получить желаемый результат. При этом нельзя считать, что операторы обновления расширены так, как было предложено в разделе 22.!О. Однако можно считать, что переменная-отношение Б 00Н1Н6 содержит данные о поставщике с номером '81' на день 10, а данные после этого дня для него отсутствуют. Не делайте никаких предположений относительно того, каким може~ быть существующий статус поставщика с номером 'Я1' на день 10.
22лй В этой главе было показано, как определенные операторы, которые применяются к интервальным атрибутам вообще, в частности могут оказаться очень полезными и для хронологических интервалов. Предложите какие-либо иные возможные применения этих операторов для обработки интервалов, которые не являются хронологическими.
22.5. Приведите реальные примеры отношений, у которых имеется более одного интервального атрибута (хронологического или иного типа). 22.6. Еще раз обратимся к переменной-отношению Б 0081Н6. В любое заданное время, если имеются какие-либо поставщики, с которыми на этот период был заключен договор, имеется и некоторый статус адах, такой, что ни один из поставщиков в этот период не имел статус выше статуса адах. С помощью описанных в этой главе 892 Часть )г.
дополнительные аспекты операторов получите свернутое отношение, в котором каждое значение статуса, когда-либо являвшееся значением впал, будет связано с интервалом времени, когда оно имело значение ллах. 22.7. Дано отношение НН с атрибутами НлНЕ, НЕ1ОНТ и НЕ16НТ, представляющими имя, рост и вес некоторого человека. Напишите запрос, который для каждого записанного значения веса покажет все диапазоны значений роста, таких, что для каждого значения роста в этом диапазоне существует по крайней мере один человек с данным ростом и весом. 22.8. Рассмотрим отношение Н с двумя различными интервальными атрибутами П и 12.