База ответов ИНТУИТ

Введение в модель данных SQL

<<- Назад к вопросам

Предположим, что в базе данных поддерживаются две отдельные таблицы RDEMP и RMEMP с такой же структурой, что и таблица EMP, но содержащие данные о служащих, имеющих самый большой доход в своем отделе и среди участников своего проекта соответственно (если для некоторого служащего размер премиальных неизвестен, премиальные не учитываются в общей сумме его дохода). Какие из приводимых ниже определений триггеров обеспечат требуемое наполнение этих таблиц?

(Ответ считается верным, если отмечены все правильные варианты ответов.)

Варианты ответа
CREATE TRIGGER EMP_INSERT AFTER INSERT ON EMP  REFERENCING NEW ROW AS NEW_EMP  FOR EACH ROW   BEGIN ATOMIC    WHEN (NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0)>=       (SELECT RDEMP.EMP_SAL + COALESCE (RDEMP.EMP_BONUS, 0)        FROM RDEMP        WHERE RDEMP.DEPT_NO = NEW_EMP.DEPT_NO)      OR NOT EXISTS (SELECT *           FROM RDEMP           WHERE RDEMP.DEPT_NO = NEW_EMP.DEPT_NO))    BEGIN ATOMIC      DELETE FROM RDEMP      WHERE RDEMP.EMP_NO = NEW_EMP.EMP_NO        AND RDEMP.EMP_SAL + COALESCE (RDEMP.EMP_BONUS, 0) <                    NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0);      INSERT INTO RDEMP         ROW (NEW_EMP.EMP_NO, NEW_EMP.DEPT_NO, NEW_EMP.PRO_NO,          NEW_EMP.EMP_BDATE, NEW_EMP.EMP_SAL,          NEW_EMP.EMP_BONUS);    END;    WHEN (NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0)>=       (SELECT RMDEMP.EMP_SAL + COALESCE (RMEMP.EMP_BONUS, 0)        FROM RMEMP        WHERE RMEMP.DEPT_NO = NEW_EMP.DEPT_NO)      OR NOT EXISTS (SELECT *           FROM RMEMP           WHERE RMEMP.PRO_NO = NEW_EMP.PRO_NO))    BEGIN ATOMIC      DELETE FROM RMEMP      WHERE RMEMP.EMP_NO = NEW_EMP.EMP_NO        AND RMEMP.EMP_SAL + COALESCE (RMEMP.EMP_BONUS, 0) <                    NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0);      INSERT INTO RMEMP         ROW (NEW_EMP.EMP_NO, NEW_EMP.DEPT_NO, NEW_EMP.PRO_NO,          NEW_EMP.EMP_BDATE, NEW_EMP.EMP_SAL,          NEW_EMP.EMP_BONUS);    END;  END;CREATE TRIGGER EMP_UPDATE AFTER UPDATE OF EMP_SAL, EMP_BONUS ON EMP  REFERENCING NEW ROW AS NEW_EMP  FOR EACH ROW   BEGIN ATOMIC    WHEN (NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0)>=       (SELECT RDEMP.EMP_SAL + COALESCE (RDEMP.EMP_BONUS, 0)        FROM RDEMP        WHERE RDEMP.DEPT_NO = NEW_EMP.DEPT_NO)      OR NOT EXISTS (SELECT *           FROM RDEMP           WHERE RDEMP.DEPT_NO = NEW_EMP.DEPT_NO))    BEGIN ATOMIC      DELETE FROM RDEMP      WHERE RDEMP.EMP_NO = NEW_EMP.EMP_NO        AND RDEMP.EMP_SAL + COALESCE (RDEMP.EMP_BONUS, 0) <                    NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0);      INSERT INTO RDEMP         ROW (NEW_EMP.EMP_NO, NEW_EMP.DEPT_NO, NEW_EMP.PRO_NO,          NEW_EMP.EMP_BDATE, NEW_EMP.EMP_SAL,          NEW_EMP.EMP_BONUS);    END;    WHEN (NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0)>=       (SELECT RMEMP.EMP_SAL + COALESCE (RMEMP.EMP_BONUS, 0)        FROM RMEMP        WHERE RMEMP.DEPT_NO = NEW_EMP.DEPT_NO)      OR NOT EXISTS (SELECT *           FROM RMEMP           WHERE RMEMP.PRO_NO = NEW_EMP.PRO_NO))    BEGIN ATOMIC      DELETE FROM RMEMP      WHERE RMEMP.EMP_NO = NEW_EMP.EMP_NO        AND RMEMP.EMP_SAL + COALESCE (RMEMP.EMP_BONUS, 0) <                    NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0);      INSERT INTO RMEMP         ROW (NEW_EMP.EMP_NO, NEW_EMP.DEPT_NO, NEW_EMP.PRO_NO,          NEW_EMP.EMP_BDATE, NEW_EMP.EMP_SAL,          NEW_EMP.EMP_BONUS);    END;  END;CREATE TRIGGER EMP_DELETE AFTER DELETE ON EMP  REFERENCING OLD ROW AS OLD_EMP  FOR EACH ROW   BEGIN ATOMIC    WHEN (NEW_EMP IN (SELECT *           FROM RDEMP           WHERE RDEMP.DEPT_NO = OLD_EMP.DEPT_NO))    BEGIN ATOMIC      DELETE FROM RDEMP      WHERE RDEMP.EMP_NO = OLD_EMP.EMP_NO;      INSERT INTO RDEMP         (SELECT *       FROM EMP       WHERE NOT EXISTS (SELECT *               FROM RDEMP               WHERE RDEMP.DEPT_NO = EMP.DEPT_NO)         AND EMP.DEPT_NO = OLD_EMP.DEPT_NO         AND EMP.EMP_SAL + COALESCE (EMP.EMP_BONUS, 0)=                  (SELECT MAX (E.EMP_SAL + COALESCE (E.EMP_BONUS, 0))       FROM EMP E       WHERE E.DEPT_NO = EMP.DEPT_NO);    END;    WHEN (NEW_EMP IN (SELECT *           FROM RMEMP           WHERE RMEMP.DEPT_NO = OLD_EMP.DEPT_NO))    BEGIN ATOMIC      DELETE FROM RMEMP      WHERE RMEMP.EMP_NO = OLD_EMP.EMP_NO;      INSERT INTO RMEMP         (SELECT *       FROM EMP       WHERE NOT EXISTS (SELECT *               FROM RMEMP               WHERE RMEMP.PRO_NO = EMP.PRO_NO)         AND EMP.DEPT_NO = OLD_EMP.DEPT_NO         AND EMP.EMP_SAL + COALESCE (EMP.EMP_BONUS, 0)=                  (SELECT MAX (E.EMP_SAL + COALESCE (E.EMP_BONUS, 0))       FROM EMP E       WHERE E.PRO_NO = EMP.PRO_NO);    END;  END;
CREATE TRIGGER EMP_INSERT1 AFTER INSERT ON EMP  REFERENCING NEW ROW AS NEW_EMP  FOR EACH ROW     WHEN (NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0)>=       (SELECT RDEMP.EMP_SAL + COALESCE (RDEMP.EMP_BONUS, 0)        FROM RDEMP        WHERE RDEMP.DEPT_NO = NEW_EMP.DEPT_NO)      OR NOT EXISTS (SELECT *           FROM RDEMP           WHERE RDEMP.DEPT_NO = NEW_EMP.DEPT_NO))    BEGIN ATOMIC      DELETE FROM RDEMP      WHERE RDEMP.EMP_NO = NEW_EMP.EMP_NO        AND RDEMP.EMP_SAL + COALESCE (RDEMP.EMP_BONUS, 0) <                    NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0);      INSERT INTO RDEMP         ROW (NEW_EMP.EMP_NO, NEW_EMP.DEPT_NO, NEW_EMP.PRO_NO,          NEW_EMP.EMP_BDATE, NEW_EMP.EMP_SAL,          NEW_EMP.EMP_BONUS);    END;CREATE TRIGGER EMP_INSERT2 AFTER INSERT ON EMP  REFERENCING NEW ROW AS NEW_EMP  FOR EACH ROW     WHEN (NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0)>=       (SELECT RMDEMP.EMP_SAL + COALESCE (RMEMP.EMP_BONUS, 0)        FROM RMEMP        WHERE RMEMP.DEPT_NO = NEW_EMP.DEPT_NO)      OR NOT EXISTS (SELECT *           FROM RMEMP           WHERE RMEMP.PRO_NO = NEW_EMP.PRO_NO))    BEGIN ATOMIC      DELETE FROM RMEMP      WHERE RMEMP.EMP_NO = NEW_EMP.EMP_NO        AND RMEMP.EMP_SAL + COALESCE (RMEMP.EMP_BONUS, 0) <                    NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0);      INSERT INTO RMEMP         ROW (NEW_EMP.EMP_NO, NEW_EMP.DEPT_NO, NEW_EMP.PRO_NO,          NEW_EMP.EMP_BDATE, NEW_EMP.EMP_SAL,          NEW_EMP.EMP_BONUS);    END;CREATE TRIGGER EMP_UPDATE1 AFTER UPDATE OF EMP_SAL, EMP_BONUS ON EMP  REFERENCING NEW ROW AS NEW_EMP  FOR EACH ROW     WHEN (NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0)>=       (SELECT RDEMP.EMP_SAL + COALESCE (RDEMP.EMP_BONUS, 0)        FROM RDEMP        WHERE RDEMP.DEPT_NO = NEW_EMP.DEPT_NO)      OR NOT EXISTS (SELECT *           FROM RDEMP           WHERE RDEMP.DEPT_NO = NEW_EMP.DEPT_NO))    BEGIN ATOMIC      DELETE FROM RDEMP      WHERE RDEMP.EMP_NO = NEW_EMP.EMP_NO        AND RDEMP.EMP_SAL + COALESCE (RDEMP.EMP_BONUS, 0) <                    NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0);      INSERT INTO RDEMP         ROW (NEW_EMP.EMP_NO, NEW_EMP.DEPT_NO, NEW_EMP.PRO_NO,          NEW_EMP.EMP_BDATE, NEW_EMP.EMP_SAL,          NEW_EMP.EMP_BONUS);    END;CREATE TRIGGER EMP_UPDATE2 AFTER UPDATE OF EMP_SAL, EMP_BONUS ON EMP  REFERENCING NEW ROW AS NEW_EMP  FOR EACH ROW     WHEN (NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0)>=       (SELECT RMEMP.EMP_SAL + COALESCE (RMEMP.EMP_BONUS, 0)        FROM RMEMP        WHERE RMEMP.DEPT_NO = NEW_EMP.DEPT_NO)      OR NOT EXISTS (SELECT *           FROM RMEMP           WHERE RMEMP.PRO_NO = NEW_EMP.PRO_NO))    BEGIN ATOMIC      DELETE FROM RMEMP      WHERE RMEMP.EMP_NO = NEW_EMP.EMP_NO        AND RMEMP.EMP_SAL + COALESCE (RMEMP.EMP_BONUS, 0) <                    NEW_EMP.EMP_SAL + COALESCE (NEW.EMP_BONUS, 0);      INSERT INTO RMEMP         ROW (NEW_EMP.EMP_NO, NEW_EMP.DEPT_NO, NEW_EMP.PRO_NO,          NEW_EMP.EMP_BDATE, NEW_EMP.EMP_SAL,          NEW_EMP.EMP_BONUS);    END;CREATE TRIGGER EMP_DELETE1 AFTER DELETE ON EMP  REFERENCING OLD ROW AS OLD_EMP  FOR EACH ROW     WHEN (NEW_EMP IN (SELECT *           FROM RDEMP           WHERE RDEMP.DEPT_NO = OLD_EMP.DEPT_NO))    BEGIN ATOMIC      DELETE FROM RDEMP      WHERE RDEMP.EMP_NO = OLD_EMP.EMP_NO;      INSERT INTO RDEMP         (SELECT *       FROM EMP       WHERE NOT EXISTS (SELECT *               FROM RDEMP               WHERE RDEMP.DEPT_NO = EMP.DEPT_NO)         AND EMP.DEPT_NO = OLD_EMP.DEPT_NO         AND EMP.EMP_SAL + COALESCE (EMP.EMP_BONUS, 0)=                  (SELECT MAX (E.EMP_SAL + COALESCE (E.EMP_BONUS, 0))       FROM EMP E       WHERE E.DEPT_NO = EMP.DEPT_NO);    END;CREATE TRIGGER EMP_DELETE2 AFTER DELETE ON EMP  REFERENCING OLD ROW AS OLD_EMP  FOR EACH ROW     WHEN (NEW_EMP IN (SELECT *           FROM RMEMP           WHERE RMEMP.DEPT_NO = OLD_EMP.DEPT_NO))    BEGIN ATOMIC      DELETE FROM RMEMP      WHERE RMEMP.EMP_NO = OLD_EMP.EMP_NO;      INSERT INTO RMEMP         (SELECT *       FROM EMP       WHERE NOT EXISTS (SELECT *               FROM RMEMP               WHERE RMEMP.PRO_NO = EMP.PRO_NO)         AND EMP.DEPT_NO = OLD_EMP.DEPT_NO         AND EMP.EMP_SAL + COALESCE (EMP.EMP_BONUS, 0)=                  (SELECT MAX (E.EMP_SAL + COALESCE (E.EMP_BONUS, 0))       FROM EMP E       WHERE E.PRO_NO = EMP.PRO_NO);    END;
(Верный ответ)
CREATE TRIGGER EMP_INSERT AFTER INSERT ON EMP  FOR EACH STATEMENT  BEGIN ATOMIC    DELETE * FROM RDEMP;    INSERT INTO RDEMP (SELECT *          FROM EMP          WHERE EMP_SAL =        (SELECT MAX (E.EMP_SAL + COALESCE (E_BONUS, 0))         FROM EMP E         WHERE E.DEPT_NO = EMP.DEPT_NO);    DELETE * FROM RMEMP;    INSERT INTO RMEMP (SELECT *          FROM EMP          WHERE EMP_SAL =        (SELECT MAX (E.EMP_SAL + COALESCE (E_BONUS, 0))         FROM EMP E         WHERE E.PRO_NO = EMP.PRO_NO);  END;CREATE TRIGGER EMP_UPDATE AFTER UPDATE ON EMP  FOR EACH STATEMENT  BEGIN ATOMIC    DELETE * FROM RDEMP;    INSERT INTO RDEMP (SELECT *          FROM EMP          WHERE EMP_SAL =        (SELECT MAX (E.EMP_SAL + COALESCE (E_BONUS, 0))         FROM EMP E         WHERE E.DEPT_NO = EMP.DEPT_NO);    DELETE * FROM RMEMP;    INSERT INTO RMEMP (SELECT *          FROM EMP          WHERE EMP_SAL =        (SELECT MAX (E.EMP_SAL + COALESCE (E_BONUS, 0))         FROM EMP E         WHERE E.PRO_NO = EMP.PRO_NO);  END;CREATE TRIGGER EMP_DELETE AFTER DELETE ON EMP  FOR EACH STATEMENT  BEGIN ATOMIC    DELETE * FROM RDEMP;    INSERT INTO RDEMP (SELECT *          FROM EMP          WHERE EMP_SAL =        (SELECT MAX (E.EMP_SAL + COALESCE (E_BONUS, 0))         FROM EMP E         WHERE E.DEPT_NO = EMP.DEPT_NO);    DELETE * FROM RMEMP;    INSERT INTO RMEMP (SELECT *          FROM EMP          WHERE EMP_SAL =        (SELECT MAX (E.EMP_SAL + COALESCE (E_BONUS, 0))         FROM EMP E         WHERE E.PRO_NO = EMP.PRO_NO);  END;
(Верный ответ)
Похожие вопросы

Предположим, что в базе данных поддерживается таблица RDEMP, в которой с момента приема служащего на работу и вплоть до его увольнения фиксируется рейтинг служащего в его отделе по доходам, т.е. при каждой смене общей суммы дохода служащего, изменяющей его рейтинг, сохраняется временная метка этого события, размеры зарплаты и премиальных служащего, а также число служащих в данном отделе, получающих больший доход, и число служащих с меньшим доходом. Таблица RDEMP имеет следующую структуру:

EMP_NO
EVENT_TS
NEW_SAL
NEW_BONUS
NUMBER_LESS
NUMBER_MORE

Какие из приводимых ниже определений триггеров обеспечат требуемое наполнение этой таблицы?

Предположим, что в базе данных поддерживаются две специальные “аудиторские” таблицы AUDIT1 и AUDIT2 следующей структуры:

AUDIT1
EMP_NO
EVENT_TS
OLD_SAL
OLD_BONUS
NEW_SAL
NEW_BONUS
AUDIT2
DEPT_NO
EVENT_TS
AVG_DEPT_SAL
AVG_DEPT_BONUS

В таблице AUDIT1 фиксируются все события, соответствующие изменению зарплаты служащих. В столбце EVENT_TS сохраняется временная метка соответствующего события. В таблице AUDIT2 регистрируются события, связанные с такими обновлениями данных о сотрудниках, при которых среднее значение зарплаты или премиальных некоторого отдела становится меньше среднего значения зарплаты или премиальных служащих, участвующих в некотором проекте, в котором принимает участие и хотя бы один сотрудник данного отдела. В столбце EVENT_TS таблицы AUDIT2 сохраняется временная метка соответствующего события, а в столбцах AVG_DEPT_SAL и AVG_DEPT_BONUS – соответствующие “критические” средние значения.

Какие из приводимых ниже определений триггеров обеспечат требуемую функциональность?

Пусть в базовой таблице S определен внешний ключ (a, b, c), где a, b и c – имена столбцов определяемой таблицы. Пусть для этого внешнего ключа специфицирован способ соответствия PARTIAL. Будем считать, что все столбцы целого типа, и для них специфицированы значения по умолчанию 4, 44 и 444 соответственно. Предположим, что внешний ключ ссылается на первичный ключ таблицы T, состоящий из столбцов с такими же именами. Пусть в таблице S присутствуют строки s1, s2 и s2 со значениями внешнего ключа <NULL, NULL, 5>, <25, 1, NULL> и <25, 1, 5> соответственно. Что произойдет при удалении строки t из таблицы T со значением первичного ключа <25, 1, 5>, если при определении внешнего ключа (a, b, c) таблицы S указано ссылочное действие ON DELETE SET DEFAULT и строки s1, s2 и s2 соответствуют исключительно строке t?
Пусть в базовой таблице S определен внешний ключ (a, b, c), где a, b и c – имена столбцов определяемой таблицы. Пусть для этого внешнего ключа специфицирован способ соответствия PARTIAL. Будем считать, что все столбцы целого типа и могут содержать неопределенное значение. Предположим, что внешний ключ ссылается на первичный ключ таблицы T, состоящий из столбцов с такими же именами. Пусть в таблице S присутствуют строки s1, s2 и s3 со значениями внешнего ключа <NULL, NULL, 5>, <25, 1, NULL> и <25, 1, 5> соответственно. Пусть в таблице T присутствуют строки t1, t2 со значениями первичного ключа <25, 1, 5> и <25, 2, 5> соответственно. Что произойдет при удалении из таблицы T строки t1, если при определении внешнего ключа (a, b, c) таблицы S указано ссылочное действие ON DELETE SET NULL?

Пусть имеются следующие два определения индивидуальных типов:

CREATE TYPE EMP_NO_I AS INTEGER FINAL;CREATE TYPE EMP_NO_C AS CHAR(6);

Значениями обоих типов являются номера служащих, но в первом случае для представления номеров используются целые числа (по всей видимости, натуральные целые), а во втором – строки символов, изображающие натуральные числа. Предположим, что в таблице T1 определен столбец EMP_NO_1 типа EMP_NO_I, а таблице T2 – столбец EMP_NO_2 типа EMP_NO_C. Требуется выполнить эквисоединение таблиц T1 и T2 по значениям столбцов EMP_NO_1 и EMP_NO_2. Какие из приводимых ниже выражений являются правильными?

Пусть в базовой таблице S определен внешний ключ (a, b, c), где a, b и c – имена столбцов определяемой таблицы. Пусть для этого внешнего ключа специфицирован способ соответствия SIMPLE. Будем считать, что все столбцы целого типа и могут содержать неопределенное значение. Предположим, что внешний ключ ссылается на первичный ключ таблицы T, состоящий из столбцов с такими же именами. Пусть в таблице S присутствуют строки s1, s2 и s3 со значениями внешнего ключа <NULL, NULL, 5>, <25, 1, NULL> и <25, 1, 5> соответственно. Что произойдет при удалении строки из таблицы T со значением первичного ключа <25, 1, 5>, если при определении внешнего ключа (a, b, c) таблицы S указано ссылочное действие ON DELETE SET NULL?

Пусть имеются следующие два определения представлений:

CREATE VIEW RICH_DEPT AS  SELECT *  FROM EMP  WHERE (SELECT AVG (E.EMP_SAL)      FROM EMP E      WHERE E.DEPT_NO = EMP.DEPT_NO) >     (SELECT AVG (E.EMP_SAL)      FROM EMP E      WHERE E.PRO_NO = EMP.PRO_NO);

и

CREATE VIEW RICH_EMP AS  SELECT *  FROM RICH_DEPT  WHERE EMP_SAL > (SELECT AVG (E.EMP_SAL + E.EMP_BONUS)         FROM EMP E         WHERE E.DEPT_NO = EMP.DEPT_NO);

При принятом в этих упражнениях примерном составе строк таблицы EMP после материализации этих представлений были бы получены следующие таблицы:

RICH_DEPT
EMP_NODEPT_NOPRO_NOEMP_BDATEEMP_SALEMP_BONUS
24421208196014000.00NULL
24442177197017000.0016000.00
24452208195016000.0015000.00
24472177196020000.00NULL
24483101195518000.0017000.00
24503234196022000.0020000.00
24513155196022000.0020000.00
RICH_EMP
EMP_NODEPT_NOPRO_NOEMP_BDATEEMP_SALEMP_BONUS
24472177196020000.00NULL
24503234196022000.0020000.00
24513155196022000.0020000.00

Пусть над представлением RICH_EMP выполняется операция

UPDATE RICH_EMP SET EMP_SAL = EMP_SAL - 10000.00

Какие из приведенных ниже таблиц соответствуют материализованным представлениям RICH_DEPT и RICH_EMP после выполнения этой операции?

Пусть имеются следующие два определения представлений:

CREATE VIEW LA_EMP AS  SELECT *  FROM EMP    WHERE EMP_SAL < (SELECT AVG (E.EMP_SAL)          FROM EMP E          WHERE E.DEPT_NO = EMP.DEPT_NO);

и

CREATE VIEW LA_LA_EMP AS  SELECT *  FROM LA_EMP  WHERE EMP_SAL < (SELECT AVG (E.EMP_SAL)          FROM LA_EMP E          WHERE E.DEPT_NO = LA_EMP.DEPT_NO);

При принятом в этих упражнениях примерном составе строк таблицы EMP после материализации этих представлений были бы получены следующие таблицы:

LA_EMP
EMP_NODEPT_NOPRO_NOEMP_BDATEEMP_SALEMP_BONUS
24401177195015000.0013000.00
24421208196014000.00NULL
24521155NULL15000.0014000.00
24442177197017000.0016000.00
24452208195016000.0015000.00
24462155197017000.0016000.00
24483101195518000.0017000.00
24493NULL195018000.0017000.00
LA_LA_EMP
EMP_NODEPT_NOPRO_NOEMP_BDATEEMP_SALEMP_BONUS
24421208196014000.00NULL
24452208195016000.0015000.00

Пусть над представлением LA_LA_EMP выполняется операция

UPDATE LA_LA_EMP SET EMP_SAL = EMP_SAL + 10000.00

Какие из приведенных ниже таблиц соответствуют материализованным представлениям LA_LA_EMP и LA_EMP после выполнения этой операции?

Пусть A является столбцом таблицы T типа CHARACTER (5), а B – столбцом таблицы T типа CHARACTER VARYING (8). Пусть при вставке в строку s этой таблицы в столбец A было занесено значение ‘LET’, а в столбец B‘IT’. В столбце какого из перечисленных ниже типов могло бы быть сохранено значение выражения A || B || ‘BE’, вычисленное для значений строки s? (Здесь “_” обозначает символ пробела.)

Пусть имеются следующие два определения представлений:

CREATE VIEW RICH_EMP AS   SELECT *  FROM EMP  WHERE EMP_SAL = (SELECT MAX (E.EMP_SAL)         FROM EMP E         WHERE E.DEPT_NO = EMP.DEPT_NO)     OR EMP_BONUS = (SELECT MAX (E.EMP_BONUS)           FROM EMP E           WHERE E.DEPT_NO = EMP.DEPT_NO);

и

CREATE VIEW LESS_RICH_EMP AS   SELECT *  FROM RICH_EMP  WHERE EMP_SAL + EMP_BONUS =              (SELECT MIN (RE.EMP_SAL + RE.EMP_BONUS)         FROM RICH_EMP RE         WHERE RE.DEPT_NO = RICH_EMP.DEPT_NO);

При принятом в этих упражнениях примерном составе строк таблицы EMP после материализации этих представлений были бы получены следующие таблицы:

RICH_EMP
EMP_NODEPT_NOPRO_NOEMP_BDATEEMP_SALEMP_BONUS
24411155195516000.0014000.00
24521155NULL15000.0014000.00
24531234NULL17000.00NULL
24442177197017000.0016000.00
24462155197017000.0016000.00
24472177196020000.00NULL
24503234196022000.0020000.00
24513155196022000.0020000.00
LESS_RICH_EMP
EMP_NODEPT_NOPRO_NOEMP_BDATEEMP_SALEMP_BONUS
24521155NULL15000.0014000.00
24442177197017000.0016000.00
24462155197017000.0016000.00
24503234196022000.0020000.00
24513155196022000.0020000.00

Пусть над представлением RICH_EMP выполняется операция

UPDATE RICH_EMP SET EMP_SAL =  EMP_SAL + 10000.00,  EMP_BONUS = EMP_BONUS – 10000.00

Какие из приведенных ниже таблиц соответствуют материализованным представлениям RICH_EMP и LESS_RICH_EMP после выполнения этой операции?