Главная /
Введение в модель данных SQL
Введение в модель данных SQL - ответы на тесты Интуит
Курс посвящен описанию базовых средств языка SQL в соответствии со стандартом SQL:2003. Задача состоит в том, чтобы представить язык как специфическую модель данных, происходящую от реляционной модели, но значительно от нее отличающуюся. В соответствии с общими принципами представления модели данных в курсе представляется структурная часть модели – средства определения таблиц и представлений, целостная часть – средства определения ограничений целостности и триггеров, а также манипуляционная часть – оператор SELECT. Для полноты также обсуждаются средства обновления баз данных, контроля доступа, управления транзакциями, сессиями и подключениями к серверу баз данных.
Список вопросов:
- # Что представляют собой значения типа NUMERIC (10, 2)?
- # Пусть в некоторой таблице определен столбец типа CHARACTER (7). Какая символьная строка будет реально храниться в этом столбце некоторой строки таблицы, если при вставке строки в качестве значения этого была указана литеральная константа ‘test’?
- # Какая из приведенных ниже таблиц является таблицей истинности для логической функции “штрих Шеффера” в трехзначной логике?
- # Какова степень анонимного строчного типа ROW (a INTEGER, b ROW (C INTEGER, C CHARACTER (7)))?
- # Пусть имеется следующее определение домена: CREATE DOMAIN TEST AS INTEGER DEFAULT 100 CHECK (VALUE > 0 AND VALUE != 150 AND VALUE < 200) CONSTRAINT (VALUE IS NOT NULL); Пусть на этом домене определен столбец некоторой таблицы. Какие из перечисленных значений не могут появиться в качестве значений этого столбца ни в одной строке таблицы?
- # Какова максимальная кардинальность типа INTEGER ARRAY [10]?
- # Пусть имеется следующее определение домена: CREATE DOMAIN TEST AS INTEGER DEFAULT 100 CHECK (VALUE > 10 AND VALUE != 150 AND VALUE != 190 AND VALUE < 200); Пусть на этом домене определен столбец некоторой таблицы. Предположим, что в некоторый момент времени значениями данного столбца в строках таблицы являются значения {100, NULL, 160}. Пусть после этого выполняется оператор ALTER DOMAIN TEST SET DEFAULT 180 ADD CHECK (VALUE IS NOT NULL); Что произойдет при выполнении оператора?
- # Пусть имеется литерал точного числового типа 22519. При выполнении какого из следующих операторов CAST будет зафиксирована ошибка?
- # Пусть имеется литерал типа символьных строк ‘12251999’. При выполнении какого из следующих операторов CAST будет зафиксирована ошибка?
- # Пусть в некоторой таблице определен столбец типа VARCHAR (7). Какая символьная строка будет реально храниться в этом столбце некоторой строки таблицы, если при вставке строки в качестве значения этого была указана литеральная константа "test"?
- # Пусть имеется литерал 123E12. При выполнении какого из следующих операторов CAST будет зафиксирована ошибка?
- # Пусть в некоторой таблице определен столбец типа INTEGER ARRAY [10]. Пусть при вставке в эту таблицу некоторой строки в данный столбец заносится значение-массив, в котором задан только десятый элемент. Будет ли выполнена эта операция, какая память будет отведена для хранения этого массива, и что реально в ней будет содержаться?
- # Пусть в некоторой таблице определен столбец типа INTEGER ARRAY [10]. Пусть при вставке в эту таблицу некоторой строки в данный столбец заносится значение-массив (12, 14, 18, 22). Чему будет равно значение cs для значения-массива данного столбца в этой строке после занесения в него восьмого элемента массива?
- # Пусть имеется следующее определение домена: CREATE DOMAIN TEST AS INTEGER DEFAULT 100 CHECK (VALUE > 0 AND VALUE != 150 AND VALUE < 200) CONSTRAINT (VALUE IS NOT NULL); Пусть на этом домене определен столбец некоторой таблицы. Предположим, что в некоторый момент времени значениями данного столбца в строках таблицы являются значения {100, 120, 160}. Пусть после этого выполняется оператор DROP DOMAIN TEST Что произойдет при выполнении оператора?
- # В каких из перечисленных ниже случаях значением столбца по умолчанию является NULL?
- # Пусть при определении базовой таблицы указано ограничение UNIQUE (a, b, c), где a, b и c – составляют полный список имен столбцов определяемой таблицы. Будем считать, что все столбцы целого типа и могут содержать неопределенное значение. Какие из показанных ниже пар строк смогут находиться в теле таблицы?
- # Пусть в базовой таблице S определен внешний ключ (a, b, c), где a, b и c – имена столбцов определяемой таблицы. Будем считать, что все столбцы целого типа и могут содержать неопределенное значение. Предположим, что внешний ключ ссылается на первичный ключ таблицы T, состоящий из столбцов с такими же именами. При какой спецификации способа соответствия значение внешнего ключа <NULL, 1, 10> соответствует значению первичного ключа <25, 1, 10>?
- # Пусть в базовой таблице 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?
- # Предположим, что в таблице объявлен возможный ключ, состоящий из n столбцов, для m из которых (m ≤ n) при определении столбца отсутствовала спецификация NOT NULL. В скольких строках таблицы столбцы возможного ключа смогут содержать неопределенные значения?
- # Предположим, что проекты финансируются отделами. Каждый отдел финансирует не более одного проекта, один проект может финансироваться несколькими отделами, и общая сумма финансирования проекта не должна составлять менее 1000000.00 руб. Выполнение каких из приведенных ниже операторов изменит определения таблиц DEPT и PRO требуемым образом?
- # Предположим, что некоторые служащие могут учиться в аспирантуре своего предприятия. Каждый аспирант имеет единственного научного руководителя, являющегося служащим того же предприятия. Требуется, чтобы у одного научного руководителя было не более пяти аспирантов. Выполнение каких из приведенных ниже операторов изменит определение таблицы EMP требуемым образом?
- # Пусть в базовой таблице 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?
- # Какой из режимов проверки разумно установить для ограничения таблицы PRO_EMP_NO?
- # Предположим, что служащие, участвующие в проектах, могут получать дополнительную премию, равную средней основной заработной плате участников соответствующего проекта. Выполнение каких из приведенных ниже операторов изменит определение таблицы EMP требуемым образом?
- # Какой из режимов проверки разумно установить для ограничения таблицы EMP TOTAL_INCOME?
- # Каким будет значение по умолчанию столбца, определенного без указания собственного значения по умолчанию и без ограничения NOT NULL, после отмены определения домена, на котором данный столбец был определен, если у домена было задано значение по умолчанию?
- # Какой из режимов проверки разумно установить для ограничения таблицы MIN_EMP_BDATE?
- # Пусть в базовой таблице 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?
- # Предположим, что в таблице объявлен возможный ключ со спецификацией MATCH PARTIAL, состоящий из n столбцов, для m из которых (m ≤ n) при определении столбца отсутствовала спецификация NOT NULL. На сколько строк таблицы, на которую ведет ссылка, может ссылаться одна строка ссылающейся таблицы?
- # Пусть A и B являются столбцами таблицы T типа CHARACTER (5), и пусть в при вставке в строку s этой таблицы в столбец A было занесено значение ‘ONE’, а в столбец B – ‘TIME’. Каким будет значение выражения A || B при его вычислении для значений строки s? (Здесь “_” обозначает символ пробела.)
- # Пусть A является столбцом таблицы T типа INTEGER, B – столбцом таблицы T типа CHARACTER (5), а C – столбцом таблицы T типа CHARACTER VARYING (8). Какого типа будет результат выражения следующего выражения с переключателем? CASE WHEN A = 5 THEN B WHEN A > 6 THEN C ELSE B || C END
- # Можно ли выразить булевскую функцию SQL IS через функцию “стрелка Пирса”? Каков из представленных ниже ответов является правильным?
- # Сколько строк будет в результате операции SELECT A FROM T GROUP BY A HAVING A = const; если столбец A является возможным ключом таблицы T?
- # Пусть имеются три мультимножества M1, M2 и M3, содержащие общий элемент a, причем в мультимножестве M1 содержится n дубликатов a, в мультимножестве M2 – m дубликатов a, а в мультимножестве M3 – k дубликатов. Сколько дубликатов элемента a будет содержаться в результате операции (M1 MINUS M2) INTERSECT M3?
- # Какое из приведенных ниже выражений с переключателем эквивалентно выражению NULLIF (COALESCE (V1, V2), COALESCE (V3, V4))? (“<>” обозначает сравнение на неравенство.)
- # Сколько строк будет в результате операции SELECT A FROM T GROUP BY A; если столбец A является возможным ключом таблицы T?
- # Какое из приведенных ниже выражений с переключателем эквивалентно выражению COALESCE (NULLIF (V1, V2), NULLIF (V3, V4))? (“<>” обозначает сравнение на неравенство.)
- # Пусть имеется таблица T со столбцами A, B и C. Какие из приведенных ниже конструкторов строки являются синтаксически неверными?
- # Пусть имеются четыре мультимножества M1, M2, M3 и M4, содержащие общий элемента a, причем в мультимножестве M1 содержится n дубликатов a, в мультимножестве M2 – m дубликатов a, в мультимножестве M3 – k дубликатов, а в мультимножестве M4– p дубликатов. Сколько дубликатов элемента a будет содержаться в результате операции (M1 INTERSECT M2) MINUS (M3 UNION M4)?
- # Пусть имеется таблица T со столбцами A, B и C. Какие из приведенных ниже конструкторов таблицы являются синтаксически неверными?
- # Пусть имеется таблица T со столбцами A, B и C. При каких условиях можно гарантировать, что в результате запроса SELECT * FROM T WHERE B = const всегда будет содержаться не более чем одна строка?
- # Пусть имеются три мультимножества M1, M2 и M3, содержащие общий элемента a, причем в мультимножестве M1 содержится n дубликатов a, в мультимножестве M2 – m дубликатов a, а в мультимножестве M3 – k дубликатов. Сколько дубликатов элемента a будет содержаться в результате операции (M1 UNIOIN M2) INTERSECT M3?
- # Пусть A является столбцом таблицы T типа CHARACTER (5), а B – столбцом таблицы T типа CHARACTER VARYING (8). Пусть при вставке в строку s этой таблицы в столбец A было занесено значение ‘LET’, а в столбец B – ‘IT’. В столбце какого из перечисленных ниже типов могло бы быть сохранено значение выражения A || B || ‘BE’, вычисленное для значений строки s? (Здесь “_” обозначает символ пробела.)
- # Сколько строк будет в результате операции SELECT A FROM S GROUP BY A если столбец A является внешним ключом таблицы S, ссылающимся на первичный ключ таблицы T
- # База данных АВТОРЫ-КНИГИ-ИЗДАТЕЛЬСТВА (AUTHORS-BOOKS-PUBLISHERS) состоит из следующих таблиц: AUTHORS AUTHOR_ID : INTEGER AUTHOR_NAME : VARCHAR (20) AUTHOR_BDATE : DATE AUTHOR_ADDRESS : VARCHAR (40) AUTHOR_PICTURE : BLOB AUTHORS-BOOKS ISBN : VARCHAR (20) AUTHOR_ID : INTEGER BOOKS ISBN : VARCHAR (20) TITLE : VARCHAR (30) PUB_ID : INTEGER DATE_OF_AGREEMENT : DATE AGREEMENT_DURAT : INTERVAL DATE_OF_PUB : DATE PRICE : MONEY NUMBER_OF_PAGES : SMALLINT COVER_PICTURE : BLOB DESCR : CLOB PUBLISHERS PUB_ID : INTEGER PUB_NAME : VARCHAR (20) PUB_ADDRESS : VARCHAR (40) Автор уникально идентифицируется своим идентификатором AUTHOR_ID. Уникальным идентификатором книги является ISBN (как выглядит ISBN, можно посмотреть в выходных данных любой книги). Издательство идентифицируется уникальным идентификатором PUB_ID. В таблицах AUTHORS, BOOKS и PUBLISHERS столбцы AUTHOR_ID, ISBN и PUB_ID соответственно являются первичными ключами. В таблице AUTHORS-BOOKS столбцы AUTHOR_ID и ISBN являются внешними ключами, ссылающимися на первичные ключи таблиц AUTHORS и BOOKS соответственно. В таблице BOOKS столбец PUB_ID является внешним ключом, ссылающимся на первичный ключ таблицы PUBLISHERS. У каждой книги могут быть один или несколько авторов. Допускается, что авторы книги временно неизвестны. В таблице авторов могут содержаться данные только об авторах книг, описываемых в таблице BOOKS. Каждая книга может быть издана только одним издательством, но для некоторых книг издательство может быть временно неизвестно. Столбец DATE_OF_AGREEMENT содержит дату заключения договора на написание книги между автором и издательством. Столбец AGREEMENT_DURAT содержит временной интервал, в течение которого действует договор. Столбец DATE_OF_PUB содержит даты публикации книг. Требуется сформулировать запрос "Найти имена авторов, издавших более 10 книг, включая разные издания книги с одним и тем же названием". Какие из приведенных ниже формулировок являются правильными?
- # База данных АВТОРЫ-КНИГИ-ИЗДАТЕЛЬСТВА (AUTHORS-BOOKS-PUBLISHERS) состоит из следующих таблиц: AUTHORS AUTHOR_ID : INTEGER AUTHOR_NAME : VARCHAR (20) AUTHOR_BDATE : DATE AUTHOR_ADDRESS : VARCHAR (40) AUTHOR_PICTURE : BLOB AUTHORS-BOOKS ISBN : VARCHAR (20) AUTHOR_ID : INTEGER BOOKS ISBN : VARCHAR (20) TITLE : VARCHAR (30) PUB_ID : INTEGER DATE_OF_AGREEMENT : DATE AGREEMENT_DURAT : INTERVAL DATE_OF_PUB : DATE PRICE : MONEY NUMBER_OF_PAGES : SMALLINT COVER_PICTURE : BLOB DESCR : CLOB PUBLISHERS PUB_ID : INTEGER PUB_NAME : VARCHAR (20) PUB_ADDRESS : VARCHAR (40) Автор уникально идентифицируется своим идентификатором AUTHOR_ID. Уникальным идентификатором книги является ISBN (как выглядит ISBN, можно посмотреть в выходных данных любой книги). Издательство идентифицируется уникальным идентификатором PUB_ID. В таблицах AUTHORS, BOOKS и PUBLISHERS столбцы AUTHOR_ID, ISBN и PUB_ID соответственно являются первичными ключами. В таблице AUTHORS-BOOKS столбцы AUTHOR_ID и ISBN являются внешними ключами, ссылающимися на первичные ключи таблиц AUTHORS и BOOKS соответственно. В таблице BOOKS столбец PUB_ID является внешним ключом, ссылающимся на первичный ключ таблицы PUBLISHERS. У каждой книги могут быть один или несколько авторов. Допускается, что авторы книги временно неизвестны. В таблице авторов могут содержаться данные только об авторах книг, описываемых в таблице BOOKS. Каждая книга может быть издана только одним издательством, но для некоторых книг издательство может быть временно неизвестно. Столбец DATE_OF_AGREEMENT содержит дату заключения договора на написание книги между автором и издательством. Столбец AGREEMENT_DURAT содержит временной интервал, в течение которого действует договор. Столбец DATE_OF_PUB содержит даты публикации книг. Требуется сформулировать запрос "Найти названия издательств, в которых издавались книги Кристофера Дейта (Chris Date)". Какие из приведенных ниже формулировок являются правильными?
- # База данных АВТОРЫ-КНИГИ-ИЗДАТЕЛЬСТВА (AUTHORS-BOOKS-PUBLISHERS) состоит из следующих таблиц: AUTHORS AUTHOR_ID : INTEGER AUTHOR_NAME : VARCHAR (20) AUTHOR_BDATE : DATE AUTHOR_ADDRESS : VARCHAR (40) AUTHOR_PICTURE : BLOB AUTHORS-BOOKS ISBN : VARCHAR (20) AUTHOR_ID : INTEGER BOOKS ISBN : VARCHAR (20) TITLE : VARCHAR (30) PUB_ID : INTEGER DATE_OF_AGREEMENT : DATE AGREEMENT_DURAT : INTERVAL DATE_OF_PUB : DATE PRICE : MONEY NUMBER_OF_PAGES : SMALLINT COVER_PICTURE : BLOB DESCR : CLOB PUBLISHERS PUB_ID : INTEGER PUB_NAME : VARCHAR (20) PUB_ADDRESS : VARCHAR (40) Автор уникально идентифицируется своим идентификатором AUTHOR_ID. Уникальным идентификатором книги является ISBN (как выглядит ISBN, можно посмотреть в выходных данных любой книги). Издательство идентифицируется уникальным идентификатором PUB_ID. В таблицах AUTHORS, BOOKS и PUBLISHERS столбцы AUTHOR_ID, ISBN и PUB_ID соответственно являются первичными ключами. В таблице AUTHORS-BOOKS столбцы AUTHOR_ID и ISBN являются внешними ключами, ссылающимися на первичные ключи таблиц AUTHORS и BOOKS соответственно. В таблице BOOKS столбец PUB_ID является внешним ключом, ссылающимся на первичный ключ таблицы PUBLISHERS. У каждой книги могут быть один или несколько авторов. Допускается, что авторы книги временно неизвестны. В таблице авторов могут содержаться данные только об авторах книг, описываемых в таблице BOOKS. Каждая книга может быть издана только одним издательством, но для некоторых книг издательство может быть временно неизвестно. Столбец DATE_OF_AGREEMENT содержит дату заключения договора на написание книги между автором и издательством. Столбец AGREEMENT_DURAT содержит временной интервал, в течение которого действует договор. Столбец DATE_OF_PUB содержит даты публикации книг. Требуется сформулировать запрос "Найти ISBN и имена авторов книг, в название которых входит хотя бы одна цифра". Какие из приведенных ниже формулировок являются правильными?
- # Требуется сформулировать запрос “Найти имена авторов, книги которых издавались в издательствах Addison-Wesley, Morgan Kauffman и O’Reilly”. Какие из приведенных ниже формулировок являются правильными?
- # Требуется сформулировать запрос “Найти имена авторов, в название книг которых входит название издательства, в котором издавалась соответствующая книга”. Какие из приведенных ниже формулировок являются правильными?
- # Требуется сформулировать запрос “Найти имена авторов, книги которых никогда не публиковались издательствами, издававшими книги Дейта”. Какие из приведенных ниже формулировок являются правильными?
- # Требуется сформулировать запрос “Найти общее число книг, изданных в 2002 г. издательствами, которые когда-либо издавали книги Дейта”. Какие из приведенных ниже формулировок являются правильными?
- # Требуется сформулировать запрос “Найти ISBN и имена авторов книг, в название которых входит термин DBMS, но не входят термины database и data base”. Какие из приведенных ниже формулировок являются правильными?
- # Требуется сформулировать запрос “Найти имена авторов, которые издали не больше книг, чем автор Smith, но не меньше, чем автор Brown”. Какие из приведенных ниже формулировок являются правильными?
- # Требуется сформулировать запрос “Найти названия издательств и имена авторов, которые опубликовали в данном издательстве самую дорогую книгу”. Какие из приведенных ниже формулировок являются правильными?
- # Требуется сформулировать запрос “Найти названия издательств, издававших книги хотя бы одного автора из Москвы”. Какие из приведенных ниже формулировок являются правильными?
- # Требуется сформулировать запрос “Найти ISBN всех книг, написанных не Дейтом, названия которых совпадают с названием какой-либо книги Дейта”. Какие из приведенных ниже формулировок являются правильными?
- # Требуется сформулировать запрос “Найти названия книг, опубликованных Кристофером Дейтом в издательствах, которые в течение последнего года выпустили книги, суммарная цена которых превышает 100000.00”. Какие из приведенных ниже формулировок являются правильными?
- # Требуется сформулировать запрос “Найти имена всех соавторов Дейта”. Какие из приведенных ниже формулировок являются правильными?
- # Требуется сформулировать запрос “Найти названия издательств, в которых Кристофер Дейт издал хотя бы одну книгу объемом меньше 300 страниц”. Какие из приведенных ниже формулировок являются правильными?
- # База данных АВТОРЫ-КНИГИ-ИЗДАТЕЛЬСТВА (AUTHORS-BOOKS-PUBLISHERS) состоит из следующих таблиц: AUTHORS AUTHOR_ID : INTEGER AUTHOR_NAME : VARCHAR (20) AUTHOR_BDATE : DATE AUTHOR_ADDRESS : VARCHAR (40) AUTHOR_PICTURE : BLOB AUTHORS-BOOKS ISBN : VARCHAR (20) AUTHOR_ID : INTEGER BOOKS ISBN : VARCHAR (20) TITLE : VARCHAR (30) PUB_ID : INTEGER DATE_OF_AGREEMENT : DATE AGREEMENT_DURAT : INTERVAL DATE_OF_PUB : DATE PRICE : MONEY NUMBER_OF_PAGES : SMALLINT COVER_PICTURE : BLOB DESCR : CLOB PUBLISHERS PUB_ID : INTEGER PUB_NAME : VARCHAR (20) PUB_ADDRESS : VARCHAR (40) Автор уникально идентифицируется своим идентификатором AUTHOR_ID. Уникальным идентификатором книги является ISBN (как выглядит ISBN, можно посмотреть в выходных данных любой книги). Издательство идентифицируется уникальным идентификатором PUB_ID. В таблицах AUTHORS, BOOKS и PUBLISHERS столбцы AUTHOR_ID, ISBN и PUB_ID соответственно являются первичными ключами. В таблице AUTHORS-BOOKS столбцы AUTHOR_ID и ISBN являются внешними ключами, ссылающимися на первичные ключи таблиц AUTHORS и BOOKS соответственно. В таблице BOOKS столбец PUB_ID является внешним ключом, ссылающимся на первичный ключ таблицы PUBLISHERS. У каждой книги могут быть один или несколько авторов. Допускается, что авторы книги временно неизвестны. В таблице авторов могут содержаться данные только об авторах книг, описываемых в таблице BOOKS. Каждая книга может быть издана только одним издательством, но для некоторых книг издательство может быть временно неизвестно. Столбец DATE_OF_AGREEMENT содержит дату заключения договора на написание книги между автором и издательством. Столбец AGREEMENT_DURAT содержит временной интервал, в течение которого действует договор. Столбец DATE_OF_PUB содержит даты публикации книг. Также будем использовать таблицы table1 (a1, a2, c1, c2) и table2 (b1, b2, c1, c2) со следующими телами: table1 a1a2c1c2 5555 5586 5537 23NULL7 4NULLNULLNULL table2 b1b2c1c2 5555 1256 3855 3855 8888 3NULLNULL5 3NULLNULL5 Требуется сформулировать запрос "Для каждого издательства выдать название издательства, его адрес, среднюю и максимальную цены издававшихся книг и общее число издававшихся авторов". Какие из приведенных ниже формулировок являются правильными?
- # База данных АВТОРЫ-КНИГИ-ИЗДАТЕЛЬСТВА (AUTHORS-BOOKS-PUBLISHERS) состоит из следующих таблиц: AUTHORS AUTHOR_ID : INTEGER AUTHOR_NAME : VARCHAR (20) AUTHOR_BDATE : DATE AUTHOR_ADDRESS : VARCHAR (40) AUTHOR_PICTURE : BLOB AUTHORS-BOOKS ISBN : VARCHAR (20) AUTHOR_ID : INTEGER BOOKS ISBN : VARCHAR (20) TITLE : VARCHAR (30) PUB_ID : INTEGER DATE_OF_AGREEMENT : DATE AGREEMENT_DURAT : INTERVAL DATE_OF_PUB : DATE PRICE : MONEY NUMBER_OF_PAGES : SMALLINT COVER_PICTURE : BLOB DESCR : CLOB PUBLISHERS PUB_ID : INTEGER PUB_NAME : VARCHAR (20) PUB_ADDRESS : VARCHAR (40) Автор уникально идентифицируется своим идентификатором AUTHOR_ID. Уникальным идентификатором книги является ISBN (как выглядит ISBN, можно посмотреть в выходных данных любой книги). Издательство идентифицируется уникальным идентификатором PUB_ID. В таблицах AUTHORS, BOOKS и PUBLISHERS столбцы AUTHOR_ID, ISBN и PUB_ID соответственно являются первичными ключами. В таблице AUTHORS-BOOKS столбцы AUTHOR_ID и ISBN являются внешними ключами, ссылающимися на первичные ключи таблиц AUTHORS и BOOKS соответственно. В таблице BOOKS столбец PUB_ID является внешним ключом, ссылающимся на первичный ключ таблицы PUBLISHERS. У каждой книги могут быть один или несколько авторов. Допускается, что авторы книги временно неизвестны. В таблице авторов могут содержаться данные только об авторах книг, описываемых в таблице BOOKS. Каждая книга может быть издана только одним издательством, но для некоторых книг издательство может быть временно неизвестно. Столбец DATE_OF_AGREEMENT содержит дату заключения договора на написание книги между автором и издательством. Столбец AGREEMENT_DURAT содержит временной интервал, в течение которого действует договор. Столбец DATE_OF_PUB содержит даты публикации книг. Также будем использовать таблицы table1 (a1, a2, c1, c2) и table2 (b1, b2, c1, c2) со следующими телами: table1 a1a2c1c2 5555 5586 5537 23NULL7 4NULLNULLNULL table2 b1b2c1c2 5555 1256 3855 3855 8888 3NULLNULL5 3NULLNULL5 Требуется сформулировать запрос "Найти названия всех издательств, в которых было издано больше пяти книг Дейта". Какие из приведенных ниже формулировок являются правильными?
- # База данных АВТОРЫ-КНИГИ-ИЗДАТЕЛЬСТВА (AUTHORS-BOOKS-PUBLISHERS) состоит из следующих таблиц: AUTHORS AUTHOR_ID : INTEGER AUTHOR_NAME : VARCHAR (20) AUTHOR_BDATE : DATE AUTHOR_ADDRESS : VARCHAR (40) AUTHOR_PICTURE : BLOB AUTHORS-BOOKS ISBN : VARCHAR (20) AUTHOR_ID : INTEGER BOOKS ISBN : VARCHAR (20) TITLE : VARCHAR (30) PUB_ID : INTEGER DATE_OF_AGREEMENT : DATE AGREEMENT_DURAT : INTERVAL DATE_OF_PUB : DATE PRICE : MONEY NUMBER_OF_PAGES : SMALLINT COVER_PICTURE : BLOB DESCR : CLOB PUBLISHERS PUB_ID : INTEGER PUB_NAME : VARCHAR (20) PUB_ADDRESS : VARCHAR (40) Автор уникально идентифицируется своим идентификатором AUTHOR_ID. Уникальным идентификатором книги является ISBN (как выглядит ISBN, можно посмотреть в выходных данных любой книги). Издательство идентифицируется уникальным идентификатором PUB_ID. В таблицах AUTHORS, BOOKS и PUBLISHERS столбцы AUTHOR_ID, ISBN и PUB_ID соответственно являются первичными ключами. В таблице AUTHORS-BOOKS столбцы AUTHOR_ID и ISBN являются внешними ключами, ссылающимися на первичные ключи таблиц AUTHORS и BOOKS соответственно. В таблице BOOKS столбец PUB_ID является внешним ключом, ссылающимся на первичный ключ таблицы PUBLISHERS. У каждой книги могут быть один или несколько авторов. Допускается, что авторы книги временно неизвестны. В таблице авторов могут содержаться данные только об авторах книг, описываемых в таблице BOOKS. Каждая книга может быть издана только одним издательством, но для некоторых книг издательство может быть временно неизвестно. Столбец DATE_OF_AGREEMENT содержит дату заключения договора на написание книги между автором и издательством. Столбец AGREEMENT_DURAT содержит временной интервал, в течение которого действует договор. Столбец DATE_OF_PUB содержит даты публикации книг. Также будем использовать таблицы table1 (a1, a2, c1, c2) и table2 (b1, b2, c1, c2) со следующими телами: table1 a1a2c1c2 5555 5586 5537 23NULL7 4NULLNULLNULL table2 b1b2c1c2 5555 1256 3855 3855 8888 3NULLNULL5 3NULLNULL5 Какая из показанных ниже таблиц является результатом операции table1 LEFT OUTER JOIN table2 ON a2=b1 AND a1<b2?
- # Требуется сформулировать запрос “Найти названия издательств, у которых максимальная цена книги равна средней цене книги какого-либо другого издательства”. Какие из приведенных ниже формулировок являются правильными?
- # Требуется сформулировать запрос “Найти название издательств и общее число изданных ими книг для тех издательств, для которых ни в одном другом издательстве не издавалось то же общее число книг”. Какие из приведенных ниже формулировок являются правильными?
- # Какая из показанных ниже таблиц является результатом операции table1 NATURAL FULL OUTER JOIN table2?
- # Требуется сформулировать запрос “Найти названия издательств, издавших не меньше книг, чем издательство Morgan Kauffman, и не больше, чем издательство Addison-Wesley”. Какие из приведенных ниже формулировок являются правильными?
- # Требуется сформулировать запрос “Найти названия издательств, у которых средняя цена книги такова, что найдется хотя бы одно другое издательство с меньшей средней ценой книги”. Какие из приведенных ниже формулировок являются правильными?
- # Какая из показанных ниже таблиц является результатом операции table1 FULL OUTER JOIN table2 ON a2=b1 AND a1<b2?
- # Требуется сформулировать запрос “Для каждого издательства выдать имя каждого автора, издававшего книги в данном издательстве, и число изданных им книг в данном издательстве”. Какие из приведенных ниже формулировок являются правильными?
- # Какая из показанных ниже таблиц является результатом операции table1 NATURAL RIGHT OUTER JOIN table2?
- # Какая из показанных ниже таблиц является результатом операции table1 RIGHT OUTER JOIN table2 ON a2=b1 AND a1<b2?
- # Какая из показанных ниже таблиц является результатом операции table1 NATURAL LEFT OUTER JOIN table2?
- # Требуется сформулировать запрос “Найти имена и общее число изданных книг авторов, которые издали не менее трех книг в издательстве Morgan Kauffman”. Какие из приведенных ниже формулировок являются правильными?
- # Требуется сформулировать запрос “Найти названия книг, изданных Дейтом с двумя соавторами”. Какие из приведенных ниже формулировок являются правильными?
- # Какая из показанных ниже таблиц является результатом запроса SELECT EMP_SAL, EMP_BONUS, DEPT_NO, MAX(EMP_BDATE) AS MAX_BDATE, GROUPING (EMP_BONUS) AS GBON, GROUPING (DEPT_NO) AS GDN FROM EMP GROUP BY ROLLUP (EMP_SAL, EMP_BONUS, DEPT_NO);
- # Пусть имеется следующее дерево: [Большая Картинка] Какой из следующих обходов этого дерева является обходом в ширину?
- # Какая из показанных ниже таблиц является результатом запроса? SELECT EMP_BDATE, EMP_BONUS, MIN (EMP_SAL) AS MIN_SAL, GROUPING (EMP_BDATE) AS GBD, GROUPING (EMP_BONUS) AS GBON FROM EMP GROUP BY CUBE (EMP_BDATE, EMP_BONUS);
- # Пусть имеется следующее дерево: [Большая Картинка] Какой из следующих обходов этого дерева является обходом в ширину?
- # Какая из показанных ниже таблиц является результатом запроса? SELECT EMP_BONUS, EMP_DEPT, MIN (EMP_BDATE) AS MIN_DDATE, GROUPING (EMP_BONUS) AS GBON, GROUPING (EMP_DEPT) AS GDN FROM EMP GROUP BY CUBE (EMP_BONUS, EMP_DEPT);
- # Какая из приведенных ниже таблиц является результатом рекурсивного запроса? WITH RECURSIVE PX (Major, Minor, Qty) AS ((SELECT Major, Minor, Qty FROM PARTS WHERE PARTS.Major = ‘P1’) UNION ALL (SELECT PX.Major, PARTS.Minor, PX.Qty * PARTS.Qty FROM PX, PARTS where pp.Major = px.Minor)) SELECT Major, Minor, Qty FROM PX;
- # Какая из показанных ниже таблиц является результатом запроса? SELECT EMP_BDATE, EMP_BONUS, MIN (EMP_SAL) AS MIN_SAL, GROUPING (EMP_BDATE) AS GBD, GROUPING (EMP_BONUS) AS GBON FROM EMP GROUP BY ROLLUP (EMP_BDATE, EMP_BONUS);
- # Пусть имеется следующее дерево: [Большая Картинка] Какой из следующих обходов этого дерева является обходом в глубину?
- # Какая из приведенных ниже таблиц является результатом рекурсивного запроса? WITH RECURSIVE PX (Major, Minor, Qty) AS ((SELECT Major, Minor, Qty FROM PARTS WHERE PARTS.Major = ‘P1’) UNION ALL (SELECT PX.Major, PARTS.Minor, PX.Qty * PARTS.Qty FROM PX, PARTS where pp.Major = px.Minor)) SEARCH BREADTH FIRST BY Major, Minor SET ORDER_COLUMN SELECT Major, Minor, Qty FROM PX ORDER BY ORDER_COLUMN;?
- # Какая из показанных ниже таблиц является результатом запроса? SELECT EMP_SAL, EMP_BONUS, MAX(EMP_BDATE) AS MAX_BDATE, GROUPING (EMP_BONUS) AS GBON) FROM EMP GROUP BY ROLLUP (EMP_SAL, EMP_BONUS);
- # Какая из следующих последовательностей является монотонной (n = {1, 2, …, …})?
- # Какая из приведенных ниже таблиц является результатом рекурсивного запроса? WITH RECURSIVE PX (Major, Minor, Qty) AS ((SELECT Major, Minor, Qty FROM PARTS WHERE PARTS.Major = ‘P1’) UNION ALL (SELECT PX.Major, PARTS.Minor, PX.Qty * PARTS.Qty FROM PX, PARTS where pp.Major = px.Minor)) SEARCH DEPTH FIRST BY Major, Minor SET ORDER_COLUMN SELECT Major, Minor, Qty FROM PX ORDER BY ORDER_COLUMN;
- # Какая из показанных ниже таблиц является результатом запроса? SELECT EMP_BONUS, EMP_DEPT, MIN (EMP_BDATE) AS MIN_DDATE, GROUPING (EMP_BONUS) AS GBON, GROUPING (EMP_DEPT) AS GDN FROM EMP GROUP BY ROLLUP (EMP_BONUS, EMP_DEPT);
- # Пусть имеется следующее дерево: [Большая Картинка] Какой из следующих обходов этого дерева является обходом в глубину?
- # Какая из следующих последовательностей является монотонной?
- # Чему соответствует имя псевдонима, вводимого в разделе REFERENCING определения триггера над таблицей T конструкцией NEW TABLE?
- # Какая из следующих таблиц является результатом выполнения оператора? UPDATE EMP SET EMP_SAL = (SELECT (E.EMP_SAL + E.EMP_BONUS)/2 FROM EMP E, DEPT WHERE EMP.DEPT_NO = DEPT.DEPT_NO AND DEPT_MNG = E.EMP_NO) WHERE DEPT_NO IS NOT NULL AND PRO_NO = (SELECT PRO_NO FROM EMP E, PRO WHERE PRO_NAME = ‘Sedna’ AND PRO_MNG = E.EMP_NO AND E.EMP_SAL < EMP.EMP_SAL);
- # Чему соответствует имя псевдонима, вводимого в разделе REFERENCING определения триггера над таблицей T конструкцией OLD TABLE?
- # Пусть V – это некоторое представление, допускающее операции обновления и определенное без раздела WITH CHECK OPTION. Возможны ли ситуации, когда система может отвергнуть какую-либо операцию обновления V?
- # Предположим, что в базе данных поддерживаются две отдельные таблицы RDEMP и RMEMP с такой же структурой, что и таблица EMP, но содержащие данные о служащих, имеющих самый большой доход в своем отделе и среди участников своего проекта соответственно (если для некоторого служащего размер премиальных неизвестен, премиальные не учитываются в общей сумме его дохода). Какие из приводимых ниже определений триггеров обеспечат требуемое наполнение этих таблиц?
- # Пусть имеются следующие два определения представлений: 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_EMPEMP_NODEPT_NOPRO_NOEMP_BDATEEMP_SALEMP_BONUS24411155195516000.0014000.0024521155NULL15000.0014000.0024531234NULL17000.00NULL24442177197017000.0016000.0024462155197017000.0016000.0024472177196020000.00NULL24503234196022000.0020000.0024513155196022000.0020000.00 LESS_RICH_EMPEMP_NODEPT_NOPRO_NOEMP_BDATEEMP_SALEMP_BONUS24521155NULL15000.0014000.0024442177197017000.0016000.0024462155197017000.0016000.0024503234196022000.0020000.0024513155196022000.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 после выполнения этой операции?
- # Предположим, что в базе данных поддерживаются две специальные “аудиторские” таблицы AUDIT1 и AUDIT2 следующей структуры: AUDIT1EMP_NOEVENT_TSOLD_SALOLD_BONUSNEW_SALNEW_BONUS AUDIT2DEPT_NOEVENT_TSAVG_DEPT_SALAVG_DEPT_BONUS В таблице AUDIT1 фиксируются все события, соответствующие изменению зарплаты служащих. В столбце EVENT_TS сохраняется временная метка соответствующего события. В таблице AUDIT2 регистрируются события, связанные с такими обновлениями данных о сотрудниках, при которых среднее значение зарплаты или премиальных некоторого отдела становится меньше среднего значения зарплаты или премиальных служащих, участвующих в некотором проекте, в котором принимает участие и хотя бы один сотрудник данного отдела. В столбце EVENT_TS таблицы AUDIT2 сохраняется временная метка соответствующего события, а в столбцах AVG_DEPT_SAL и AVG_DEPT_BONUS – соответствующие “критические” средние значения. Какие из приводимых ниже определений триггеров обеспечат требуемую функциональность?
- # Пусть имеются следующие два определения представлений: 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_DEPTEMP_NODEPT_NOPRO_NOEMP_BDATEEMP_SALEMP_BONUS24421208196014000.00NULL24442177197017000.0016000.0024452208195016000.0015000.0024472177196020000.00NULL24483101195518000.0017000.0024503234196022000.0020000.0024513155196022000.0020000.00 RICH_EMPEMP_NODEPT_NOPRO_NOEMP_BDATEEMP_SALEMP_BONUS24472177196020000.00NULL24503234196022000.0020000.0024513155196022000.0020000.00 Пусть над представлением RICH_EMP выполняется операция UPDATE RICH_EMP SET EMP_SAL = EMP_SAL - 10000.00 Какие из приведенных ниже таблиц соответствуют материализованным представлениям RICH_DEPT и RICH_EMP после выполнения этой операции?
- # Пусть V – это некоторое представление, допускающее операции обновления и определенное c разделом WITH GLOBAL CHECK OPTION. Предположим, что представление V определено над некоторым представлением V1, которое определено без раздела WITH CHECK OPTION. В каких из перечисленных ситуаций система не должна отвергать данную операцию обновления V?
- # Пусть имеется пустая таблица EMP_MNGS с заголовком EMP_NODEPT_MNGPRO_MNG Какая из следующих таблиц EMP_MNGS является результатом выполнения оператора? INSERT INTO EMP_MNGS (SELECT DISTINCT EMP_NO, CASE WHEN EMP.DEPT_NO IS NOT NULL THEN DEPT_MNG ELSE NULL, CASE WHEN EMP.PRO_NO IS NOT NULL THEN PRO_MNG ELSE NULL, FROM EMP, DEPT, PRO WHERE (EMP.DEPT_NO IS NULL OR EMP.DEPT_NO = DEPT.DEPT_NO) AND (EMP.PRO_NO IS NULL OR EMP.PRO_NO = PRO.PRO_NO) AND IF (EMP.DEPT_NO IS NOT NULL AND EMP.PRO_NO IS NOT NULL) THEN DEPT_MNG <> PRO_MNG);
- # Какая из следующих таблиц является результатом выполнения оператора? DELETE FROM EMP WHERE NOT EXISTS (SELECT * FROM EMP E WHERE EMP.DEPT_NO = E.DEPT_NO AND (EMP.EMP_SAL + EMP.EMP_BONUS) > (E.EMP_SAL + E.EMP_BONUS)) AND EMP_SAL + EMP_BONUS = (SELECT MIN (E.EMP_SAL + E.EMP_BONUS) FROM EMP E WHERE EMP.PRO_NO = E.PRO_NO)
- # Чему соответствует имя псевдонима, вводимого в разделе REFERENCING определения триггера над таблицей T конструкцией NEW ROW?
- # Пусть имеются следующие два определения представлений: 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_EMPEMP_NODEPT_NOPRO_NOEMP_BDATEEMP_SALEMP_BONUS24401177195015000.0013000.0024421208196014000.00NULL24521155NULL15000.0014000.0024442177197017000.0016000.0024452208195016000.0015000.0024462155197017000.0016000.0024483101195518000.0017000.0024493NULL195018000.0017000.00 LA_LA_EMPEMP_NODEPT_NOPRO_NOEMP_BDATEEMP_SALEMP_BONUS24421208196014000.00NULL24452208195016000.0015000.00 Пусть над представлением LA_LA_EMP выполняется операция UPDATE LA_LA_EMP SET EMP_SAL = EMP_SAL + 10000.00 Какие из приведенных ниже таблиц соответствуют материализованным представлениям LA_LA_EMP и LA_EMP после выполнения этой операции?
- # Пусть V – это некоторое представление, допускающее операции обновления и определенное c разделом WITH LOCAL CHECK OPTION. Предположим, что представление V определено над некоторым представлением V1, которое определено без раздела WITH CHECK OPTION. В каких из перечисленных ситуаций система может отвергнуть какую-либо операцию обновления V?
- # Предположим, что в базе данных поддерживается таблица RDEMP, в которой с момента приема служащего на работу и вплоть до его увольнения фиксируется рейтинг служащего в его отделе по доходам, т.е. при каждой смене общей суммы дохода служащего, изменяющей его рейтинг, сохраняется временная метка этого события, размеры зарплаты и премиальных служащего, а также число служащих в данном отделе, получающих больший доход, и число служащих с меньшим доходом. Таблица RDEMP имеет следующую структуру: EMP_NOEVENT_TSNEW_SALNEW_BONUSNUMBER_LESSNUMBER_MORE Какие из приводимых ниже определений триггеров обеспечат требуемое наполнение этой таблицы?
- # Пусть роль R1 создается путем выполнения операции CREATE ROLE R1 WITH ADMIN CURRENT_ROLE; и текущим именем роли сессии, в которой выполняется эта операция, является R. При каких из указанных ниже условий будет успешно выполнена операция? GRANT R1 TO PUBLIC;
- # Отсутствие каких привилегий должно проверяться для гарантии того, что от имени текущего authID нельзя выполнить операцию SELECT * FROM T?
- # Пусть одновременно выполняются три транзакции: T1 = (ST1(c), SPT1(spn1), IT1(c), DT1(c), ST1(c), RBT1(spn1), COMMITT1), T2 = (ST2(c), SPT2(spn2), UT2(c), ST2(c), RBT2(spn2), COMMITT2), T3 = (ST3(c), COMMITT3). Какие из указанных ниже реальных последовательностей выполнения операций соответствуют уровню изоляции SERIALIZABLE?
- # Пусть пользователь с текущим именем роли role1 от имени authID, равного текущему идентификатору пользователя userID, создает объект o, становится его владельцем и, тем самым, обладателем привилегии pr по отношению к этому объекту. Далее, от имени этого authID привилегия pr передается роли role1, а сама роль – роли role2. После этого роль role2 передается userID. Какая из перечисленных ситуаций сложется после выполнения операции? REVOKE PR ON o FROM role1 CASCADE;
- # Какими минимальными привилегиями должен обладать текущий authID, чтобы от его имени можно было создать некоторое представление V и впоследствии передать ALL PRIVILEGES для V некоторому другому authID?
- # Пусть одновременно выполняются три транзакции: T1 = (ST1(c), SPT1(spn1), IT1(c), RBT1(spn1), DT1(c), ST1(c), RBT1(spn1), DT1(c), COMMITT1), T2 = (ST2(c), SPT2(spn2), UT2(c), ST2(c), RBT2(spn2), ST2(c), COMMITT2), T1 = (ST3(c), SPT3(spn3), UT3(c), RBT3(spn3), COMMITT3). Какие из указанных ниже реальных последовательностей выполнения операций соответствуют уровню изоляции SERIALIZABLE?
- # Пусть в некоторой транзакции выполняются операции CREATE ROLE R1 WITH ADMIN CURRENT_ROLE; GRANT R1 TO AUDIT WITH ADMIN OPTION GRANTED BY CURRENT_ROLE; и текущим именем роли сессии, в которой выполняется эта операция, является R. При каких из указанных ниже условий будет успешно выполнена операция? DROP ROLE R1;
- # Пусть транзакция T выполняется на уровне изоляции REPEATABLE READ. После выполнения какого из перечисленных ниже операторов выборки в транзакции T может проявиться эффект фантомов?
- # Пусть одновременно выполняются три транзакции: T1 = (IT1(c), ST1(c), DT1(c), COMMITT1), T2 = (ST2(c), UT2(c), ST2(c), COMMITT2), T3 = (ST3(c), COMMITT3). Какие из указанных ниже реальных последовательностей выполнения операций соответствуют уровню изоляции SERIALIZABLE?
- # Пусть в некоторой транзакции выполняются операции CREATE ROLE R1 WITH ADMIN CURRENT_ROLE; GRANT R1 TO R2 WITH ADMIN OPTION GRANTED BY CURRENT_ROLE; где R2 – имя некоторой существующей роли, и текущим именем роли сессии, в которой выполняется эта операция, является R. Пусть затем в некоторой другой транзакции, текущим именем роль которой является R2, выполняется операция GRANT R1 TO R3 WITH ADMIN OPTION GRANTED BY CURRENT_ROLE; где R3 – имя некоторой существующей роли. При каких из перечисленных ниже условий будет успешно выполнена операция? REVOKE R1 FROM R3;
- # Пусть пользователь с текущим идентификатором пользователя userID1 от имени authID1, равного текущему имени роли role1, создает объект o, становится его владельцем и, тем самым, обладателем привилегии pr по отношению к этому объекту. Далее, от имени этого authID1 привилегия pr передается идентификатору пользователя userID1. Потом authID1 изменяется на userID1, и от его имени право на исполнение роли role1 передается роли с именем role2, являющемуся authID2 в некоторой сессии, текущим идентификатором пользователя которой является userID2. Наконец, от имени того же authID2 привилегия pr передается userID2. Что теперь произойдет, если от имени authID1 будет задана операция? REVOKE PR ON o FROM userID2 CASCADE;
- # Пусть одновременно выполняются три транзакции: T1 = (ST1(c), SPT1(spn1), IT1(c), SPT1(spn2), DT1(c), ST1(c), RBT1(spn2), ST1(c), RBT1(spn1), DT1(c), COMMITT1), T2 = (ST2(c), UT2(c), SPT2(spn2), DT2(c), ST2(c), RBT2(spn2), ST2(c), COMMITT2), T3 = (ST3(c), SPT3(spn3), UT3(c), RBT3(spn3), DT3(c), COMMITT3). Какие из указанных ниже реальных последовательностей выполнения операций соответствуют уровню изоляции SERIALIZABLE?
- # Что произойдет, если производится попытка передачи нескольких привилегий с передачей привилегии на передачу привилегий, но текущий authID обладает привилегией на передачу только части этих привилегий?
- # Пусть пользователь с текущим именем роли role от имени authID1, равного текущему идентификатору пользователя userID1, создает объект o, становится его владельцем и, тем самым, обладателем привилегии pr по отношению к этому объекту. Далее, от имени этого authID1 привилегия pr передается роли role, а сама роль – текущему идентификатору пользователя userID2. После этого от имени роли role привилегия pr передается userID2. Какая из перечисленных ситуаций сложется после выполнения операции? REVOKE role FROM userID2 CASCADE;
- # При каких уровнях изоляции транзакции в ней не допускается чтение объекта базы данных, изменявшегося еще не завершенной транзакцией?
- # Пусть имеются следующие два определения индивидуальных типов: 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. Какие из приводимых ниже выражений являются правильными?
- # Пусть структурный тип T является непосредственным не максимальным супертипом типа T’. Какие из следующих утверждений относительно определений T и T’ являются верными?
- # Какая из приведенных ниже формулировок правильно соответствует запросу “выдать имена начальников отделов, в которых работает хотя бы один программист”?
- # Для определения базовых и типизированных таблиц используется один и тот же оператор CREATE TABLE. Каким образом, глядя на определение таблицы, можно точно сказать, к какой из двух категорий относится это определение?
- # Пусть типизированная таблица R является непосредственной максимальной супертаблицей типизированной таблицы R’. Какие из следующих утверждений относительно R и R’ являются верными?
- # Какая из приведенных ниже формулировок правильно соответствует запросу “выдать имена начальников отделов, в которых работает исключительно программисты”?
- # Для определения индивидуальных и структурных UDT используется один и тот же оператор CREATE TYPE. Каким образом, глядя на определение типа, можно точно сказать, к какой из двух категорий относится это определение?
- # Пусть A – это самоссылающийся столбец типизированной таблицы R. Какая спецификация является первичной для генерации значений этого столбца?
- # Какая из приведенных ниже формулировок правильно соответствует запросу “выдать имена начальников отделов, в которых работает хотя бы один не программист”?
- # Какие разделы должны обязательно присутствовать в определении структурного UDT, не являющегося максимальным?
- # Как должны соответствовать структурный тип типизированного представления со структурным типом базисной типизированной таблицы этого представления?
- # Пусть представление V’ c базисной типизированной таблицей R’ является непосредственным собственным подпредставлением представления V c базисной типизированной таблицей R. Какое из следующих утверждений является правильным?
- # Какие разделы должны обязательно присутствовать в определении максимального структурного UDT?
- # Что означает отсутствие reference_type_specification в определении максимального структурного UDT?
- # Для определения всех разновидностей представлений используется один и тот же оператор CREATE VIEW. Каким образом, глядя на определение представления, можно точно сказать, что оно является допустимым определением типизированного представления?