игра брюс 2048
Главная / Базы данных / Введение в модель данных SQL / Тест 2

Введение в модель данных SQL - тест 2

Упражнение 1:
Номер 1
В каких из перечисленных ниже случаях значением столбца по умолчанию является NULL?

Ответ:

 (1) в разделе DEFAULT определения столбца указано NULL 

 (2) в определении столбца отсутствует раздел DEFAULT, но столбец определяется на домене, в определении которого присутствует раздел DEFAULT NULL 

 (3) в определении столбца отсутствует раздел DEFAULT, и столбец определяется на базовом типе данных или на домене, в определении которого отсутствует раздел DEFAULT 


Номер 2
Пусть при определении базовой таблицы указано ограничение UNIQUE (a, b, c), где a, b и c – составляют полный список имен столбцов определяемой таблицы. Будем считать, что все столбцы целого типа и могут содержать неопределенное значение. Какие из показанных ниже пар строк смогут находиться в теле таблицы?

Ответ:

 (1) <NULL, NULL, 5>, <5, NULL, NULL> 

 (2) <NULL, NULL, NULL>, <5, NULL, NULL> 

 (3) <NULL, NULL, 5>, <NULL, NULL, 5> 


Номер 3
Пусть в базовой таблице S определен внешний ключ (a, b, c), где a, b и c – имена столбцов определяемой таблицы. Будем считать, что все столбцы целого типа и могут содержать неопределенное значение. Предположим, что внешний ключ ссылается на первичный ключ таблицы T, состоящий из столбцов с такими же именами. При какой спецификации способа соответствия значение внешнего ключа <NULL, 1, 10> соответствует значению первичного ключа <25, 1, 10>?

Ответ:

 (1) SIMPLE 

 (2) FULL 

 (3) PARTIAL 


Упражнение 2:
Номер 1
Пусть в базовой таблице 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?

Ответ:

 (1) операция удаления строки из таблицы T не выполнится 

 (2) строка из таблицы T будет удалена, а значением внешнего ключа в строках s1, s2 и s3 таблицы S станет <NULL, NULL, NULL> 

 (3) строка из таблицы T будет удалена, а значениями внешнего ключа в строках s1, s2 и s3 таблицы S станут <NULL, NULL, 5>, <25, 1, NULL> и <NULL, NULL, NULL> соответственно 


Номер 2
Предположим, что в таблице объявлен возможный ключ, состоящий из n столбцов, для m из которых (m ≤ n) при определении столбца отсутствовала спецификация NOT NULL. В скольких строках таблицы столбцы возможного ключа смогут содержать неопределенные значения?

Ответ:

 (1) m + n 

 (2) m * n 

 (3) 2m – 1 


Номер 3
Предположим, что проекты финансируются отделами. Каждый отдел финансирует не более одного проекта, один проект может финансироваться несколькими отделами, и общая сумма финансирования проекта не должна составлять менее 1000000.00 руб. Выполнение каких из приведенных ниже операторов изменит определения таблиц DEPT и PRO требуемым образом?

Ответ:

 (1) ALTER TABLE DEPT ADD DEPT_PRO_INVEST NUMERIC (10, 2) DEFAULT NULL; ALTER TABLE DEPT ADD DEPT_PRO PRO_NO DEFAULT NULL; REFERENCES PRO ON DELETE SET NULL; ALTER TABLE DEPT ADD CONSTRAINT PRO_INVEST_VALUE CHECK (IF (DEPT_PRO IS NOT NULL) THEN (SELECT SUM (D.DEPT_PRO_INVEST) FROM DEPT D WHERE DEPT_PRO = D.DEPT_PRO) >= 1000000.00);  

 (2) ALTER TABLE DEPT ADD DEPT_PRO_INVEST NUMERIC (10, 2) DEFAULT NULL; ALTER TABLE PRO ADD PRO_DEPT DEPT_NO NO NULL; REFERENCES DEPT ON DELETE CASCADES; CHECK (SELECT SUM (DEPT_PRO_INVEST) FROM DEPT WHERE DEPT_NO = VALUE) >= 1000000.00);  

 (3) ALTER TABLE PRO ADD PRO_DEPT_INVEST NUMERIC (10, 2) DEFAULT NULL; ALTER TABLE PRO ADD PRO_DEPT DEPT_NO NO NULL; REFERENCES PRO ON DELETE CASCADES; CHECK (SELECT SUM (PRO_DEPT_INVEST) FROM PRO WHERE PRO_DEPT = VALUE) >= 1000000.00);  


Упражнение 3:
Номер 1
Предположим, что некоторые служащие могут учиться в аспирантуре своего предприятия. Каждый аспирант имеет единственного научного руководителя, являющегося служащим того же предприятия. Требуется, чтобы у одного научного руководителя было не более пяти аспирантов. Выполнение каких из приведенных ниже операторов изменит определение таблицы EMP требуемым образом?

Ответ:

 (1) ALTER TABLE EMP ADD EMP_ADVISER EMP_NO DEFAULT NULL REFERENCES EMP ON DELETE SET NULL CHECK (VALUE < 6);  

 (2) ALTER TABLE EMP ADD EMP_ADVISER EMP_NO NO NULL REFERENCES EMP ON DELETE CASCADE;  

 (3) ALTER TABLE EMP ADD EMP_ADVISER EMP_NO DEFAULT NULL REFERENCES EMP ON DELETE SET NULL; CHECK (IF (VALUE IS NOT NULL) THEN (SELECT COUNT (*) FROM EMP E WHERE E.EMP_ADVISER = VALUE) < 6);  


Номер 2
Пусть в базовой таблице 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? 

Ответ:

 (1) операция удаления строки из таблицы T не выполнится 

 (2) строка из таблицы T будет удалена, а значением внешнего ключа в строках s1, s2 и s3 таблицы S станет <NULL, NULL, NULL> 

 (3) строка из таблицы T будет удалена, а значениями внешнего ключа в строках s1, s2 и s3 таблицы S станут <NULL, NULL, 5>, <NULL, NULL, NULL> и <NULL, NULL, NULL> соответственно 


Номер 3
Какой из режимов проверки разумно установить для ограничения таблицы PRO_EMP_NO?

Ответ:

 (1) INITIALLY IMMEDIATE NOT DEFERRABLE 

 (2) INITIALLY IMMEDIATE DEFERRABLE 

 (3) INITIALLY DEFERRED 


Упражнение 4:
Номер 1
Предположим, что служащие, участвующие в проектах, могут получать дополнительную премию, равную средней основной заработной плате участников соответствующего проекта. Выполнение каких из приведенных ниже операторов изменит определение таблицы EMP требуемым образом?

Ответ:

 (1) ALTER TABLE EMP ADD EMP_PRO_BONUS SALARY DEFAULT NULL; ALTER TABLE EMP ADD CONSTRAINT PRO_BONUS CHECK (IF (EMP_PRO_BONUS IS NOT NULL) THEN PRO_NO IS NOT NULL) ALTER TABLE DEPT ADD CONSTRAINT MORE_TOTAL_INCOME CHECK (DEPT_TOTAL_SAL >= (SELECT SUM(EMP_SAL + COALESCE(EMP_BONUS,0) + COALESCE(EMP_PRO_BONUS,0)) FROM EMP WHERE EMP.DEPT_NO = DEPT_NO));  

 (2) ALTER TABLE EMP ADD EMP_PRO_BONUS SALARY DEFAULT NULL; ALTER TABLE EMP DROP CONSTRAINT TOTAL_INCOME; ALTER TABLE DEPT ADD CONSTRAINT TOTAL_INCOME CHECK (DEPT_TOTAL_SAL >= (SELECT SUM(EMP_SAL + COALESCE(EMP_BONUS,0) + COALESCE(EMP_PRO_BONUS,0)) FROM EMP WHERE EMP.DEPT_NO = DEPT_NO));  

 (3) ALTER TABLE EMP ADD EMP_PRO_BONUS SALARY DEFAULT NULL; ALTER TABLE EMP ADD CONSTRAINT PRO_BONUS_VALUE CHECK (IF (EMP_PRO_BONUS IS NOT NULL) THEN EMP_PRO_BONUS = (SELECT AVG (E.EMP_SAL) FROM EMP E WHERE PRO_NO = E.PRO_NO)); ALTER TABLE EMP ADD CONSTRAINT PRO_BONUS CHECK (IF (EMP_PRO_BONUS IS NOT NULL) THEN PRO_NO IS NOT NULL) ALTER TABLE DEPT ADD CONSTRAINT MORE_TOTAL_INCOME CHECK (DEPT_TOTAL_SAL >= (SELECT SUM(EMP_SAL + COALESCE(EMP_BONUS,0) + COALESCE(EMP_PRO_BONUS,0)) FROM EMP WHERE EMP.DEPT_NO = DEPT_NO));  


Номер 2
Какой из режимов проверки разумно установить для ограничения таблицы EMP TOTAL_INCOME?

Ответ:

 (1) INITIALLY IMMEDIATE NOT DEFERRABLE 

 (2) INITIALLY IMMEDIATE DEFERRABLE 

 (3) INITIALLY DEFERRED 


Номер 3
Каким будет значение по умолчанию столбца, определенного без указания собственного значения по умолчанию и без ограничения NOT NULL, после отмены определения домена, на котором данный столбец был определен, если у домена было задано значение по умолчанию?

Ответ:

 (1) NULL 

 (2) у столбца не будет значения по умолчанию 

 (3) останется значение по умолчанию домена 


Упражнение 5:
Номер 1
Какой из режимов проверки разумно установить для ограничения таблицы MIN_EMP_BDATE?

Ответ:

 (1) INITIALLY IMMEDIATE NOT DEFERRABLE 

 (2) INITIALLY IMMEDIATE DEFERRABLE 

 (3) INITIALLY DEFERRED 


Номер 2
Пусть в базовой таблице 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?

Ответ:

 (1) операция удаления строки из таблицы T не выполнится 

 (2) строка из таблицы T будет удалена, а значением внешнего ключа в строках s1, s2 и s2 таблицы S станет <4, 44, 444> 

 (3) строка из таблицы T будет удалена, а значениями внешнего ключа в строках s1, s2 и s2 таблицы S станут <NULL, NULL, 444>, <4, 44, NULL> и <4, 44, 444> соответственно 


Номер 3
Предположим, что в таблице объявлен возможный ключ со спецификацией MATCH PARTIAL, состоящий из n столбцов, для m из которых (m ≤ n) при определении столбца отсутствовала спецификация NOT NULL. На сколько строк таблицы, на которую ведет ссылка, может ссылаться одна строка ссылающейся таблицы?

Ответ:

 (1) m + n 

 (2) m * n 

 (3) 2m 




Главная / Базы данных / Введение в модель данных SQL / Тест 2