Введение в системы БД (542480), страница 185
Текст из файла (страница 185)
Дополнительно поддерживается действие ЯЕТ ОЕРАОЕТ, требующее установки заданного значения по умолчанию. Для простоты изложения подробное обсуждение этой проблемы здесь опущено. Заинтересованный читатель может обратиться к [4.191. 714 Часть р". дополнительные аспекты Внедренные Я)1 -операторы ° Индикаторные переменные.
Рассмотрим конкретный пример внедренного Я121.- выражения. (Он уже приводился в главе 4 при описании однострочного оператора ЯЕЬЕСТ.) ЕХЕС ЯЯЬ ЯЕЬЕСТ ЯТАТНЯ, С1ТУ 1ИТО :РАНК, :С1ТУ УНОМ Я ННЕНЕ БФ = нЯ1ЧЕИИ 1 Предположим, что для некоторых поставщиков атрибут ЯТАТВЯ может содержать неопределенное значение. Тогда выполнение приведенного выше оператора ЯЕЬЕСТ завершится неудачей, если в выбранном кортеже атрибут БТАТУЯ будет содержать неопределенное значение (в переменную БСЬЯТАТЕ будет помещен код ошибки 22002). В общем случае, когда существует вероятность, что выбираемое значение может оказаться неопределенным, для данного атрибута пользователь должен указать, помимо целевой, еще и индикаюорную переиенную.
Пример определения индикаторной переменной приведен ниже. ехес ясь Беьест БтАТВБ, с1ту тито ~ВАНЕ 1иптсйтон ~РАик1НВ, ~стту РКСМ Я ННЕЕЕ ЯФ = иБ17ЕИЯФ 1Р НАИК1ИВ = -1 ТНЕИ ..... /* Атрибут ЯТАТВБ содержит величину ИВЬЬ 1/1 ЕИЭ 1Р; Если значение, которое нужно выбрать, является неопределенным и для данного атрибута задана индикаторная переменная, то в эту переменную будет помещено значение -1 (значение, помешаемое в целевую переменную, зависит от реализации). ° Упорядочение. Для упорядочения строк, полученных в результате вычисления табличного выражения, в определении курсора используется фраза ОНВЕН ВУ.
(Безусловно, она может использоваться и при вводе интерактивных запросов.) Возникает вопрос; "Каков относительный порядок двух скалярных значений А и В, если либо А является неопределенным значением, либо В является неопределенным значением, либо оба они одновременно являются неопределенными значениями?". В стандарте языка БОЕ на этот вопрос даются следующие ответы. 1. В процессе упорядочения все неопределенные значения считаются равными одно другому. 2. В процессе упорядочения все неопределенные значения считаются либо большими всех остальных значений, либо меньшими их всех (реальный выбор одной из этих возможностей зависит от конкретной реализации). 18.8.
Резюме В этой главе обсуждались проблема отсутствующей информации и выбранный в настоящее время подход к ее решению, базирующийся на использовании неопределенных значений и трехзначной логики. Было показано, что неопределенное значение на самом деле значением не является, хотя так принято говорить (например, говорят, что 715 Глава /о'. Отсутствующая информация некоторый атрибут кортежа содержит "значение МВЬТР).
Результатом любых операций сравнения, в которых один из операндов содержит неопределенное значение, служит третье логическое значение ипИпои п (сокращенно — ипМ), поэтому такая логика называется трехзначной. Кроме того, отмечалось, что, по крайней мере концептуально, информация может отсутствовать по целому ряду причин, поэтому существуют различные виды неопределенных значений (ВОЬБ). Для одного из видов неопределенных значений — "значение не определено" — было предложено удобное сокращение 0ЕК. Далее исследовалось влияние использования величины 0ЕК и трехзначной логики на вычисление логических выражений, кванторов РОЕвъЬ и ЕХ1БТБ, вычисляемых выражений и реляционных операторов произведения, выборки, проекции, объединения, пересечения и вычитания, а также на выполнение операторов обновления 1ЕБЕВТ и 0РВАТЕ.
В этой главе были представлены оператор 18 0ЕК (проверяющий наличие величины 0ЕК), оператор 1Р 0ЕК (для преобразования величины 0ВК в логическое значение, отличное от 0ЕК) и оператор МАТВЕ (лля преобразования значения ипА в ггие). Дополнительно обсуждалась проблема кортежей- дубликатов с учетом присутствия величины 0МК. Кроме того, было особо полчеркнуто, что величина 0ЕК и логическое значение ипй — это не одно и то же.
Затем рассматривались некоторые следствия изложенных идей. Было показано, что некоторые эквивалентности двухзначной логики не являются эквивалентностями в трехзначной логике. В результате пользователи и программы-оптимизаторы СУБД могут совершать ошибки в процессе преобразования выражений. Но даже без учета названных ошибок трехзначная логика обладает одним очень серьезным недостатком— она не соответствует реальному миру, т.е, результаты операций в трехзначной логике не всегда корректны по отношению к ситуации в реальном мире. После описывались последствия присутствия неопределенных значений в первичных и внешних ключах (в частности, упоминались правила поддержки целостности сущностей и пересмотренное правило подлержки ссылочной целостности).
Было сделано отступление для описания внешнего соединения. Отмечалось, что автор не является сторонником прямой поддержки этой операции (по крайней мере, в ее обычном смысле), так как считает, что существует лучшее решение той проблемы, которую призвано решать внешнее соединение. В частности, автор предлагает использовать решения на основе атрибутов со знпченияии-отношенияии. Также кратко рассматривалась возможность существования и других "внешних" операций, в частности операции внешнего объединения. В данной главе проанализирована поддержка изложенных идей в стандарте языка Б(.6.. В трактовке проблемы отсутствия информации в стандарте языка Я.П.
широко используется трехзначная логика, но эта трактовка вносит множество осложнений, описание которых выходит за рамки данной книги. И действительно, в дополнение к собственным недостаткам трехзначной логики ([18.6), (18.10)) стандарт языка БО(. вносит свои недостатки. Более того, эти дополнительные недостатки, по сути, выступают как факторы замедления процесса оптимизации (более подробно это обсуждается в конце главы 7).
В заключение попытаемся кратко сформулировать некоторые дополнительные замечания. ° Читатель, безусловно, согласится, что проблемы, связанные с использованием неопределенных значений и трехзначной логики, описаны в книге несколько сжато. Тем не менее здесь представлен достаточно большой объем материала, позволяющего убедиться в том, что "преимушества", достигаемые при использовании трехзначной логики„более чем сомнительны. 716 Часть е'. Дополнительные аспекты ° Следует также заметить, что даже если читатель не слишком озабочен проблемами, связанными с использованием трехзначной логики, ему все же рекомендуется избегать применения соответствующих возможностей языка Я П. из-за упоминавшихся выше "дополнительных недостатков". ° Исходя из всего сказанного, автор рекомендует пользователям СУБД полностью игнорировать все средства поддержки трехзначной логики, предоставленные разработчиком выбранного им продукта.
Вместо них целесообразно использовать более строгий механизм "специальных значений" (благодаря своей строгости остающийся в рамках двухзначной логики). Подобная схема подробно описана в [18.! 2]. ° И наконец повторим важное утверждение, сформулированное в разделе !8.6. Очень нестрого говоря, если значение данного атрибута данного кортежа данного отношения "является неопределенным", то в этой позиции атрибута вообше ничего не содержится. Это означает, что данный "атрибут" уже не является атрибутом, что этот "кортеж" уже не является кортежем, что это "отношение" уже не является отношением и для обоснования наших дальнейших действий (какими бы они ни были) использовать математическую реляционную теорию уже нельзя. Упражнения 18.1.
Укажите логические результаты вычисления следуюших выражений, если А = б, В = 5, С = 4 и0 содержитвеличинуОЕК. а) й=ВОК( В>САВВА>0) б) А > В А80 ( В < С Ой 1Я ОНК ( А — 0 ) ) в) А < С Ой В < С Ой ВОТ ( А = С ) г) В<ООВВьООКВ>0 л) ВАХВЕ ( А>ВЕКОВ>С ) е) ИАХВЕ(1ЯОВК(0) ) ж) ИАХВЕ ( 1Я ОЕК ( А + В ) ) з) 11 Ойк ( О, А ) > В АКВ 1Е ОЕК ( С, 0 ) < В 18.2. Отношение г содержит следующие кортежи.
( б, 5, 4 ) ( ОМК, 5, 4 ) ( б, ОМК, 4 ) ( ОВК, ОНК, 4 ) ( ОВК, ОЕК, ОЕК ) Как было сказано выше в этой главе, предположим„что три атрибута в указанном порядке слева направо называются А, В и С соответственно и каждый атрибут имеет тип 18ТЕОЕК. Укажите логические результаты вычисления следуюших выражений, где Ч вЂ” переменная диапазона, принимаюшая значения из отношения г. а) ЕХ1ЯЧЯ Ч ( Ч.В > 5 ) б) ЕХ1ЯЧЯ Ч ( Ч.В > 2 АКО Ч.С > 5 ) 717 Глава 18.
Оглсутс>пвующая информация А В 18.6. 18.7. 718 18.3. 18.4. 18.5. в) ЕХХЯЧБ Ч ( ВАХВЕ ( Ч.С > 3 ) ) г) ЕХ1БЧЯ Ч ( ИАХВЕ ( 18 ОМК ( Ч.С ) ] ) д) РОВАНОВ Ч ( Ч.А > 1 ) е) РОВАНЕ Ч ( Ч.В > 1 Ой 1Я ОВК ( Ч.В ) ) ж) РОВАНЕ Ч ( МАХВЕ ( Ч.А > Ч.В ) ) Строго говоря„оператор 1Я ОКК не нужен. Почему? В [13.6) Кодд предложил?шауЬе"-версии для некоторых операторов реляционной алгебры. Например, тауЬе-выборка отличается от обычного оператора выборки тем, что возвращает кортежи, для которых условие выборки принимает значение иий, а не гсие.
Тем не менее, строго говоря, подобные операторы не нужны. Почему? В двухзначной логике существует только два логических значения — ггие и5аЬе. Следствием этого является существование ровно четырех возможных унарных логических операторов: один преобразует оба значения в ггие, второй преобразует оба значения в5аЬе, третий преобразует ггие в РаЬе и наоборот (т.е. это оператор ВОТ) и четвертый сохраняет значение операнда неизменным.
Кроме того„ существует ровно 16 возможных бинарных логических операторов (см. таблицу истинности, приведенную ниже). С С С С С С С С 1 1 1 Г 1 1 С С С С Г Г 1 1 С С С С 1 1 Г Х С С 1 1 С С Г Х С С 1 Г С С Х Х С 1 С 1 С Х С 1 С Х С Х С 1 С Докажите, что все четыре унарных оператора и все шестнадцать бинарных операторов можно записать с помощью комбинаций операторов МОХ, АКВ и ОЕ (следовательно, нет необходимости явно поддерживать все двадцать операторов).
Сколько логических операторов может быть в трехзначной логике? А в четырехзначной? А для более общего случая — в п-значной логике? (Взято из (18.5).) На рис. 18.5 приведен набор данных для очередного варианта базы данных поставщиков и деталей. Этот вариант отличается от предыдущих тем, что в отношение ЯР включен атрибут ЯЕ1Р1 (номер партии), а атрибут Р$ в этом отношении определен как разрешающий использование величины ЧИК. (Отношение Р в данном примере не используется и в упражнении не описывается.) Рис.
18.5. Вариант базы данных поставщиков и деталей Рассмотрим следующее выражение реляционного исчисления. Часть р: дополнительные аспекты 18.8. Список литературы 18.1 Глава 18. Отсутствующая информация 18.2. ! 8.3. 18.4. Б НБЕНЕ НОТ ЕХ1ЯТЯ ЯР ( БР.Я$ = Я.Я$ АН0 ЯР.Р1 = Р1 ( Рг ) ) Здесь Б и ЯР— это неявные переменные диапазона. Какая из следующих интерпретаций запроса будет корректна (если таковая вообще существует)? а) Получить сведения о поставщиках, которые не поставляют деталь с номером 'Р2'.
б) Получить сведения о поставщиках, о которых неизвестно, поставляют ли они деталь с номером ' Р 2 '. в) Получить сведения о поставщиках, о которых известно, что они не поставляют деталь с номером 'Р2'. г) Получить сведения о поставщиках, о которых либо известно, либо не известно, что они поставляют деталь с номером 'Р2'. Спроектируйте схему физического представления базовых Б('.)(.-таблиц, допус- кающих использование неопределенных значений.