Главная /
Введение в модель данных SQL /
Пусть в базовой таблице S определен внешний ключ (a, b, c), где a, b и c – имена столбцов определяемой таблицы. Пусть для этого внешнего ключа специфицирован способ соответствия PARTIAL. Будем считать, что все столбцы целого типа, и для них специфицирован
Пусть в базовой таблице 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
?
вопрос
Правильный ответ:
операция удаления строки из таблицы
T
не выполнится
строка из таблицы
T
будет удалена, а значением внешнего ключа в строках s1
, s2
и s2
таблицы S
станет <4, 44, 444>
строка из таблицы
T
будет удалена, а значениями внешнего ключа в строках s1
, s2
и s2
таблицы S
станут <NULL, NULL, 444>, <4, 44, NULL> и <4, 44, 444>
соответственно Сложность вопроса
73
Сложность курса: Введение в модель данных SQL
81
Оценить вопрос
Комментарии:
Аноним
Зачёт всё. Мчусь пить отмечать 5 за тест интуит
26 дек 2018
Аноним
Гранд мерси за помощь по intiut'у.
17 сен 2016
Другие ответы на вопросы из темы базы данных интуит.
- # Предположим, что в таблице объявлен возможный ключ со спецификацией MATCH PARTIAL, состоящий из n столбцов, для m из которых (m ≤ n) при определении столбца отсутствовала спецификация NOT NULL. На сколько строк таблицы, на которую ведет ссылка, может ссылаться одна строка ссылающейся таблицы?
- # Требуется сформулировать запрос “Найти названия книг, опубликованных Кристофером Дейтом в издательствах, которые в течение последнего года выпустили книги, суммарная цена которых превышает 100000.00”. Какие из приведенных ниже формулировок являются правильными?
- # База данных АВТОРЫ-КНИГИ-ИЗДАТЕЛЬСТВА (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?
- # Пусть пользователь с текущим идентификатором пользователя 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;
- # Для определения индивидуальных и структурных UDT используется один и тот же оператор CREATE TYPE. Каким образом, глядя на определение типа, можно точно сказать, к какой из двух категорий относится это определение?