Классика баз данных - статьи

       

Нотация для множества констант была


Нотация для множества констант была показана в примере Q3. Кортеж констант обозначается, как показано в следующем примере:

<'CLERK',50>

Множество кортежей констант может быть представлено следующим образом:

(<'CLERK',50>, <'CLERK',52>, <'PROGRAMMER',52>)

Угловые скобки (<, >) могут также использоваться для обозначения подкортежа атрибутов, выбранных из кортежа в базе данных, как в запросе Q17.

Q17. Перечислить имена служащих, которые имеют те же задание и зарплату, что и Смит. SELECT NAME FROM EMP WHERE <JOB,SAL> = SELECT JOB,SAL FROM EMP WHERE NAME = 'SMITH'

В SEQUEL 2 допускается существование в базе данных неизвестных, или null-значений. На null-значение можно сослаться с помощью ключевого слова NULL. Null-значения игнорируются при вычислении всех встроенных функций, за исключением COUNT (например, в вычислении AVG(SAL) не участвуют неизвестные зарплаты).

AND F  ? 
TTF?
FFFF
??F?


 OR  T  F  ? 
TTTT
FTF?
?T??


NOT    
TF
FT
??


IF X THEN YY=TY=FY=?
X=TTF?
X=FTTT
X=?T??
Рис. 2. Таблицы истинности для трехзначной логики

При определении, удовлетворяет ли данный кортеж разделу WHERE запроса, предикатам, тестирующим атрибуты, для которых кортеж содержит null-значение, присваивается неизвестное значение истинности (обозначаемое как "?"). Затем вычисляется значение истинности всего раздела WHERE с использованием трехзначной логики для вычисления результатов операций AND и OR (см. Рис. 2). Кортеж считается удовлетворяющим разделу WHERE, если итоговым истинностным значением раздела является TRUE, а не FALSE или ?. Например, кортеж со значением DNO, равным 50, и неопределенной зарплату будет удовлетворять разделу WHERE запроса Q18, но не запроса Q19.

Q18. SELECT * FROM EMP WHERE DNO = 50 OR SAL > 15000

Q19. SELECT * FROM EMP WHERE DNO = 50 AND SAL > 15000

Исключение из перечисленных выше правил делается в случае предикатов, которые явно ищут null-значения, например, WHERE SAL = NULL.В этих предикатах null-значение обрабатывается так же, как и любое другое значение.


Содержание  Назад  Вперед