Главная / Базы данных /
Введение в Oracle SQL / Тест 13
Введение в Oracle SQL - тест 13
Упражнение 1:
Номер 1
Команды SQL:INSERT INTO inventory (invid, invname) VALUES (12345670, 'Milk powder');
INSERT INTO inventory (invid, invname) VALUES (12345671, 'Milk cream');
SAVEPOINT a;
INSERT INTO inventory (invid, invname) VALUES (12345672, 'Buttermilk');
SAVEPOINT b;
UPDATE inventory SET invid = 12345679 WHERE invid = 12345670;
UPDATE inventory SET invid = 12345670 WHERE invid = 12345671;
UPDATE inventory SET invid = 12345677 WHERE invid = 12345670;
COMMIT;
UPDATE inventory SET invid = 12345676 WHERE invid = 12345672;
ROLLBACK;
Значения, НЕ появлявшиеся в столбце INVID таблицы INVENTORY в процессе выполнения команд SQL:
Ответ:
 (1) 12345678 
 (2) 12345676 
 (3) 12345677 
 (4) 12345679 
 (5) 12345672 
Номер 2
Команды SQL:INSERT INTO inventory (invid, invname) VALUES (12345670, 'Milk powder');
INSERT INTO inventory (invid, invname) VALUES (12345671, 'Milk cream');
SAVEPOINT a;
INSERT INTO inventory (invid, invname) VALUES (12345672, 'Buttermilk');
SAVEPOINT b;
UPDATE inventory SET invid = 12345679 WHERE invid = 12345670;
UPDATE inventory SET invid = 12345670 WHERE invid = 12345671;
UPDATE inventory SET invid = 12345677 WHERE invid = 12345670;
COMMIT;
UPDATE inventory SET invid = 12345676 WHERE invid = 12345672;
ROLLBACK;
Значения в столбце INVID таблицы INVENTORY после выполнения команд SQL:
Ответ:
 (1) 12345678 
 (2) 12345676 
 (3) 12345677 
 (4) 12345679 
 (5) 12345672 
Номер 3
Команды SQL:INSERT INTO inventory (invid, invname) VALUES (12345670, 'Milk powder');
INSERT INTO inventory (invid, invname) VALUES (12345671, 'Milk cream');
SAVEPOINT a;
INSERT INTO inventory (invid, invname) VALUES (12345672, 'Buttermilk');
SAVEPOINT b;
UPDATE inventory SET invid = 12345679 WHERE invid = 12345670;
UPDATE inventory SET invid = 12345670 WHERE invid = 12345671;
UPDATE inventory SET invid = 12345677 WHERE invid = 12345670;
ROLLBACK TO SAVEPOINT b;
UPDATE inventory SET invid = 12345676 WHERE invid = 12345672;
COMMIT;
Значения в столбце INVID таблицы INVENTORY после выполнения команд SQL:
Ответ:
 (1) 12345670 
 (2) 12345672 
 (3) 12345677 
 (4) 12345671 
 (5) 12345676 
Упражнение 2:
Номер 1
Команды SQL, вызывающие завершение транзакции с фиксацией изменений:
Ответ:
 (1) ALTER 
 (2) GRANT 
 (3) DELETE 
 (4) INSERT 
 (5) UPDATE 
 (6) ROLLBACK 
Номер 2
Команды SQL, НЕ вызывающие завершения транзакции:
Ответ:
 (1) ALTER
 
 (2) GRANT
 
 (3) DELETE
 
 (4) INSERT
 
 (5) UPDATE
 
 (6) ROLLBACK
 
Номер 3
Для поддержки транзакционной целостности и согласованности базы данных, в СУБД используются ...
Ответ:
 (1) курсоры 
 (2) блокировки 
 (3) указатели 
 (4) триггеры 
 (5) словарь данных 
Упражнение 3:
Номер 1
Для просмотра списка столбцов, которые составляют индекс, следует воспользоваться представлением словаря данных ...
Ответ:
 (1) USER_TABLES
 
 (2) USER_INDEXES
 
 (3) USER_IND_COLUMNS
 
 (4) USER_TAB_COLUMNS
 
 (5) USER_COL_COMMENTS
 
Номер 2
Команда SQL:SELECT object_name FROM user_objects
WHERE object_type = 'TABLE';Результат действия команды - вывод имен всех ...
Ответ:
 (1) объектов пользователя, чьим собственником он является 
 (2) таблиц пользователя, чьим собственником он является 
 (3) объектов, к которым пользователь имеет доступ 
 (4) таблиц, к которым пользователь имеет доступ 
Номер 3
Команда SQL:SELECT object_name FROM all_objects
WHERE object_type = 'TABLE';Результат действия команды - вывод имен всех ...
Ответ:
 (1) объектов пользователя, чьим собственником он является 
 (2) таблиц пользователя, чьим собственником он является 
 (3) объектов, к которым пользователь имеет доступ 
 (4) таблиц, к которым пользователь имеет доступ 
Упражнение 4:
Номер 1
Дана ситуация: Разрабатывается база данных, в которой будут выполняться команды INSERT, UPDATE, DELETE, SELECT, CREATE
. Проект базы данных предполагает создание нескольких индексов для улучшения производительности. Наибольшая выгода вследствие создания индекса возникнет при выполнении операции:
Ответ:
 (1) CREATE
 
 (2) UPDATE
 
 (3) DELETE
 
 (4) SELECT
 
 (5) INSERT
 
Номер 2
Приложение базы данных осуществляет сложные числовые вычисления в запросах SELECT. Для увеличения скорости выполнения вычислений в СУБД используются структуры:
Ответ:
 (1) глобальные и локальные переменные 
 (2) В-древовидные индексы 
 (3) пакеты параллельных вычислений 
 (4) хранимые процедуры 
Номер 3
Команда создания таблицы: CREATE TABLE s_emp (
id NUMBER(7) CONSTRAINT s_emp_id_pk PRIMARY KEY
...);Выражения с использованием столбца ID таблицы S_EMP, при вычислении которых СУБД НЕ применит индекс S_EMP_ID_PK:
Ответ:
 (1) TRUNC(id) = 20
 
 (2) id > 20
 
 (3) id BETWEEN 10 AND 20
 
 (4) id IN (10, 15, 20)
 
Упражнение 5:
Номер 1
Транзакции в СУБД предназначены для ...
Ответ:
 (1) записи резервных копий базы данных 
 (2) отслеживания производительности базы данных и обнаружения медленно выполняемых команд 
 (3) одновременного обновления всех данных в базе данных 
 (4) поддержки целостности данных при выполнении множественных команд SQL 
Номер 2
Верные высказывания относительно взаимных блокировок (deadlock) в СУБД Oracle 11g:
Ответ:
 (1) результаты всех транзакций, вызвавших "deadlock", отменяются 
 (2) взаимные блокировки автоматически распознаются сервером 
 (3) сервер отменяет действие одной из операций, вызвавших "deadlock" 
 (4) логика разрешения взаимных блокировок определяется непосредственно при программировании приложений СУБД 
Номер 3
Команды SQL, выполняемые различными пользователями:Пользователь Scott. INSERT INTO Scott.vtable (Column1, Column2, Column3) VALUES (1,'a',10);Пользователь Alice. UPDATE Scott.vtable SET Column2 = 'b' WHERE Column1 = 1;
В случае открытой транзакции пользователя "Scott", команда 2 будет выполнена ...
Ответ:
 (1) после завершения транзакции пользователем "Scott" 
 (2) после завершения транзакции пользователем "Alice" 
 (3) после разрешения взаимной блокировки сервером Oracle 
 (4) непосредственно после отправки серверу команды пользователя "Alice" 
Упражнение 6:
Номер 1
Команды SQL, выполняемые различными пользователями:Пользователь Scott. INSERT INTO Scott.vtable (Column1, Column2, Column3) VALUES (1,'a',10);Пользователь Alice. UPDATE Scott.vtable SET Column2 = 'b' WHERE Column1 = 1;
Для того, чтобы сеанс работы пользователя "Alice" не ожидал неопределенное время завершения транзакции пользователем "Scott" без каких-либо сообщений, следует ...
Ответ:
 (1) выполнить команду LOCK TABLE vtable NOWAIT;
в сеансе работы "Scott" до вставки строки в таблицу 
 (2) выполнить команду LOCK TABLE vtable SET TRANSACTION;
в сеансе работы "Scott" до вставки строки в таблицу 
 (3) выполнить команду LOCK TABLE vtable NOWAIT;
в сеансе работы "Alice" до обновления строки в таблице 
 (4) добавить опцию NOWAIT;
в команду обновления строки в таблице в сеансе работы "Alice" 
Номер 2
Команда SQL, выполненная пользователем "Alice":SELECT * FROM vtable FOR UPDATE WAIT(10);Результат действия команды - ...
Ответ:
 (1) выборка всей информации таблицы VTABLE с ограничением времени получения ответа сервера при обращении к таблице других транзакций и установкой времени ожидания в 10 секунд 
 (2) блокировка всей информации таблицы VTABLE с опцией немедленной выдачи сообщения об ошибке при обращении к таблице других транзакций 
 (3) блокировка всей информации таблицы VTABLE с опцией выдачи сообщения об ошибке при обращении к таблице других транзакций и установкой времени ожидания в 10 секунд 
 (4) блокировка всей информации таблицы VTABLE с опцией выдачи сообщения об ошибке при обращении к таблице других транзакций и установкой времени ожидания в 10 миллисекунд 
Номер 3
Пользователю "Alice" необходимо выполнить обновление данных таблицы VTABLE, при этом известно, что некоторые строки таблицы могут быть заблокированы транзакцией, открытой пользователем "Scott". Заблокировать свободные строки таблицы VTABLE с целью обновления позволит команда:
Ответ:
 (1) SELECT * FROM vtable LOCK TABLE; 
 (2) SELECT * FROM vtable FOR UPDATE SKIP LOCKED; 
 (3) SELECT * FROM vtable FOR UPDATE NOWAIT; 
 (4) SELECT * FROM vtable FOR UPDATE OF Column2; 
Упражнение 7:
Номер 1
Дана таблица MY_TABLE(ID, NAME). Команды SQL:INSERT INTO my_table (id, name) VALUES (1, 'Mike');
SAVEPOINT a;
INSERT INTO my_table (id, name) VALUES (2, 'Karen');
SAVEPOINT b;
INSERT INTO my_table (id, name) VALUES (3, 'Tracy');
SAVEPOINT c;
ROLLBACK;
INSERT INTO my_table (id, name) VALUES (4, 'Sam');
INSERT INTO my_table (id, name) VALUES (5, 'Elrod');
COMMIT;В результате выполнения команд, таблица MY_TABLE будет выглядеть следующим образом:
Ответ:
 
(1) ID | NAME |
1 | Mike |
2 | Karen |
3 | Tracy |
4 | Sam |
5 | Elrod |
 
Номер 2
Дана таблица MY_TABLE(ID, NAME). Команды SQL:INSERT INTO my_table (id, name) VALUES (1, 'Mike');
SAVEPOINT a;
INSERT INTO my_table (id, name) VALUES (2, 'Karen');
SAVEPOINT b;
INSERT INTO my_table (id, name) VALUES (3, 'Tracy');
SAVEPOINT c;
ROLLBACK TO b;
INSERT INTO my_table (id, name) VALUES (4, 'Sam');
INSERT INTO my_table (id, name) VALUES (5, 'Elrod');
COMMIT;В результате выполнения команд, таблица MY_TABLE будет выглядеть следующим образом:
Ответ:
 
(1) ID | NAME |
1 | Mike |
2 | Karen |
4 | Sam |
5 | Elrod |
 
Номер 3
Дана таблица MY_TABLE(ID, NAME). Команды SQL:INSERT INTO my_table (id, name) VALUES (1, 'Mike');
SAVEPOINT a;
INSERT INTO my_table (id, name) VALUES (2, 'Karen');
SAVEPOINT b;
INSERT INTO my_table (id, name) VALUES (3, 'Tracy');
SAVEPOINT c;
INSERT INTO my_table (id, name) VALUES (4, 'Sam');
INSERT INTO my_table (id, name) VALUES (5, 'Elrod');
ALTER TABLE my_table ADD last_name(VARCHAR2(15));
ROLLBACK;В результате выполнения команд, таблица MY_TABLE будет выглядеть следующим образом:
Ответ:
 
(1) ID | NAME | LAST_NAME |
1 | Mike | |
2 | Karen | |
3 | Tracy | |
4 | Sam | |
5 | Elrod | |
 
 
(3) ID | NAME |
1 | Mike |
2 | Karen |
4 | Sam |
5 | Elrod |
 
Упражнение 8:
Номер 1
Включающими языками для СУБД Oracle 11g являются:
Ответ:
 (1) С/C++ 
 (2) Pascal 
 (3) FORTRAN 
 (4) Visual Basic 
 (5) Java 
Номер 2
Словарь данных СУБД Oracle 11g состоит из ...
Ответ:
 (1) таблиц базы данных 
 (2) представлений 
 (3) временных таблиц 
 (4) материализованных представлений 
Номер 3
Получить список имен объектов словаря данных, содержащих информацию о последовательностях, позволит команда:
Ответ:
 (1) SELECT table_name FROM dict
WHERE table_name LIKE '%SEQUENCE%'; 
 (2) SELECT sequence_name
FROM user_sequences; 
 (3) DESCRIBE user_sequences; 
 (4) SELECT sequence_name FROM user_sequences
WHERE table_name LIKE '%SEQUENCE%'; 
Упражнение 9:
Номер 1
Нормализация улучшает производительность команд INSERT, UPDATE, DELETE
следующим образом:
Ответ:
 (1) требованием для таблицы меньшего количества индексов 
 (2) требованием для таблицы большего количества внешних ключей 
 (3) требованием для таблицы большего количества индексов 
 (4) никоим образом 
Номер 2
Дана таблица VTABLE (COLUMN1, COLUMN2, COLUMN3). Команда SQL, выполненная пользователем "Scott":UPDATE Scott.vtable SET Column2 = 'c' WHERE Column1 = 1;Команды пользователя "Alice", которые будут выполнены безошибочно, с учетом наличия привилегий для выполнение операций:
Ответ:
 (1) UPDATE Scott.vtable SET Column2 = 'b' WHERE Column1 = 2; 
 (2) INSERT INTO Scott.vtable(Column1, Column2, Column3) VALUES (3,'d',30); 
 (3) DELETE FROM Scott.vtable Column1 = 1; 
 (4) DROP TABLE Scott.vtable; 
Номер 3
В базе данных существуют таблицы S_EMP и S_DEPT:Команда SQL:UPDATE s_emp SET dept_id = 31 WHERE id = 12;В случае открытой транзакции, в процессе выполнения команды возникнет блокировка ...
Ответ:
 (1) только изменяемой строки в таблице S_EMP 
 (2) изменяемой строки в таблице S_EMP и соответствующей ей строки в таблице S_DEPT 
 (3) всех строк в таблице S_EMP 
 (4) только строки в таблице S_DEPT, соответствующей изменяемой строке в таблице S_EMP 
Упражнение 10:
Номер 1
Верные высказывания относительно транзакций в СУБД Oracle 11g:
Ответ:
 (1) транзакция - логическая единица согласованных изменений базы данных командами DML 
 (2) результаты действия всех команд транзакции должны быть либо сохранены, либо отменены 
 (3) данные, измененные транзакцией, до ее завершения доступны только тому пользователю и в том сеансе работы, который открыл транзакцию 
 (4) Oracle 11g допускает возможность выборочного сохранения результатов действия команд, составляющих транзакцию 
Номер 2
НЕверные высказывания относительно транзакций в СУБД Oracle 11g:
Ответ:
 (1) Oracle 11g допускает возможность отката всей транзакции 
 (2) выполнение команды DDL производит неявную фиксацию транзакции 
 (3) пользователю, открывшему транзакцию в одном сеансе работы, доступны результаты работы транзакции в параллельном сеансе работы, до ее завершения 
 (4) при попытке изменения данных строки. заблокированных транзакцией, пользователь, в любом случае, немедленно получает сообщение об ошибке в связи с блокировкой 
Номер 3
Открытие транзакции в СУБД Oracle ...
Ответ:
 (1) необходимо выполнить явно командой SET TRANSACTION
в начале сеанса работы 
 (2) происходит неявно при подключении к серверу СУБД 
 (3) происходит неявно после завершения предыдущей транзакции 
 (4) необходимо выполнить явно командой SET TRANSACTION
после завершения предыдущей транзакции 
Упражнение 11:
Номер 1
Варианты, в которых вычисление "Запроса 1" происходит быстрее вычисления "Запроса 2":
Ответ:
 (1) SELECT * FROM s_emp;SELECT * FROM Scott.s_emp;
 
 (2) SELECT * FROM s_emp
WHERE salary*1.1 BETWEEN 800 AND 1200;SELECT * FROM s_emp
WHERE salary*1.1 >= 800 AND salary*1.1 <= 1200;
 
 (3) SELECT title, MAX(salary) max_sal FROM s_emp
GROUP BY title
ORDER BY max_sal;SELECT title, MAX(salary) FROM s_emp
GROUP BY title
ORDER BY MAX(salary);
 
 (4) SELECT title, MAX(salary) max_sal FROM s_emp
GROUP BY title
HAVING title NOT LIKE '%President';SELECT title, MAX(salary) max_sal FROM s_emp
WHERE title NOT LIKE '%President'
GROUP BY title;
 
Номер 2
План обработки запроса СУБД Oracle формируется ...
Ответ:
 (1) программистом 
 (2) оптимизатором 
 (3) средой выполнения запроса 
 (4) индексом 
Номер 3
Запрос SQL:SELECT * FROM s_emp
WHERE manager_id IS NULL AND
title = 'President' AND
salary > 3000
ORDER BY last_name;При обработке строки таблицы запросом выражение manager_id IS NOT NULL
принимает значение FALSE
. План выполнения запроса предполагает дальнейшее ...
Ответ:
 (1) вычисление значение выражения title = 'President'
 
 (2) вычисление значение выражения salary > 3000
 
 (3) выполнение оператора ORDER BY last_name
 
 (4) завершение обработки текущей строки таблицы 
Упражнение 12:
Номер 1
Умолчательный тип транзакций СУБД Oracle:
Ответ:
 (1) ISOLATION LEVEL SERIALIZABLE 
 (2) ROW EXCLUSIVE 
 (3) READ ONLY 
 (4) READ WRITE 
Номер 2
Блокировка таблицы с режимом EXCLUSIVE ...
Ответ:
 (1) не допускает применения к объекту других блокировок 
 (2) разрешает ситуацию взаимной блокировки (deadlock) 
 (3) допускает изменение данных в столбцах, на которые не распространяется блокировка 
 (4) допускает изменение данных в строках, на которые не распространяется блокировка 
Номер 3
Блокировка таблицы с режимом SHARE ...
Ответ:
 (1) не допускает применения к объекту других блокировок 
 (2) разрешает ситуацию взаимной блокировки (deadlock) 
 (3) допускает изменение данных в столбцах, на которые не распространяется блокировка 
 (4) допускает изменение данных в строках, на которые не распространяется блокировка