Избыточность Алгебры A
НОМЕРА_ПРОЕКТОВ
СЛУЖАЩИЕ
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП | ПРО_НОМ |
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Сидоров | 18000.00 | ||
Федоров | 20000.00 | ||
Иванова | 22000.00 | ||
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Сидоренко | 18000.00 | ||
Федоренко | 20000.00 | ||
Иваненко | 22000.00 |
ПРО_НОМ |
СЛУЖАЩИЕ PROJECT {СЛУ_НОМЕР, СЛУ_ИМЯ, СЛУ_ЗАРП}
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП |
Иванов | 22400.00 | |
Петров | 29600.00 | |
Сидоров | 18000.00 | |
Федоров | 20000.00 | |
Иванова | 22000.00 | |
Сидоренко | 18000.00 | |
Федоренко | 20000.00 | |
Иваненко | 22000.00 |
(СЛУЖАЩИЕ PROJECT {СЛУ_НОМЕР, СЛУ_ИМЯ, СЛУ_ЗАРП})
TIMESНОМЕРА_ПРОЕКТОВ
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП | ПРО_НОМ |
Иванов | 22400.00 | ||
Иванов | 22400.00 | ||
Петров | 29600.00 | ||
Петров | 29600.00 | ||
Сидоров | 18000.00 | ||
Сидоров | 18000.00 | ||
Федоров | 20000.00 | ||
Федоров | 20000.00 | ||
Иванова | 22000.00 | ||
Иванова | 22000.00 | ||
Сидоренко | 18000.00 | ||
Сидоренко | 18000.00 | ||
Федоренко | 20000.00 | ||
Федоренко | 20000.00 | ||
Иваненко | 22000.00 | ||
Иваненко | 22000.00 |
((СЛУЖАЩИЕ PROJECT {СЛУ_НОМЕР, СЛУ_ИМЯ, СЛУ_ЗАРП})
TIMESНОМЕРА_ПРОЕКТОВ) MINUS СЛУЖАЩИЕ
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП | ПРО_НОМ |
Сидоров | 9,200 | ||
Федоров | 11,000 | ||
Иванова | 11,000 | ||
Сидоренко | 9,200 | ||
Федоренко | 11,000 | ||
Иваненко | 11,000 |
(СЛУЖАЩИЕ PROJECT {СЛУ_НОМЕР, СЛУ_ИМЯ, СЛУ_ЗАРП}) MINUS ((((СЛУЖАЩИЕ PROJECT{ СЛУ_НОМЕР, СЛУ_ИМЯ, СЛУ_ЗАРП})
TIMESНОМЕРА_ПРОЕКТОВ) MINUSСЛУЖАЩИЕ)
PROJECT { СЛУ_НОМЕР, СЛУ_ИМЯ, СЛУ_ЗАРП})
СЛУ_НОМЕР | СЛУ_ИМЯ | СЛУ_ЗАРП |
Иванов | 11,400 | |
Петров | 14,400 |
Рис. 4.14. Выражение операции DIVIDE BY через другие операции Алгебры A
Тем самым, мы показали, что пяти операций Алгебры A достаточно для выражения всех операций алгебры Кодда из Лекции 3. Но на самом деле число операций можно еще более сократить, что мы и продемонстрируем в следующем разделе.
В формальной математической логике стандартным базисом для выражения всех возможных булевских функций является набор {NOT, AND, OR} (отрицание, дизъюнкция и конъюнкция). Известно, что этот набор традиционен, но избыточен, поскольку верны тождества A AND B º NOT (NOT A OR NOT B) и A OR B º NOT (NOT A AND NOT B). (Эти тождества легко проверяются по таблицам истинности операций.) Оказывается (и это тоже легко проверить, опираясь на определения операций), что аналогичные тождества справедливы для операций <NOT>, <AND> и <OR> Алгебры A. Тем самым, в наборе базовых операций Алгебры A можно оставить операции <AND> и <NOT> (или <OR> и <NOT>).