экзамен
.pdfЭкзаменационный тест по Базам Данных.
1)
Имеются 2 таблицы – Student и Result. В Student:
ID – номер студенческого билета, первичный ключ; Name – ФИО студента.
В Result:
ID – номер студенческого билета, внешний ключ, ссылающийся на Student; Subject – предмет, по которому сдавался экзамен;
Mark – оценка студента за экзамен;
первичный ключ составной - включает поля (ID, Subject).
Student
|
ID |
Name |
|
123 |
Иванов И.И. |
|
124 |
Петров П.П. |
|
|
|
|
125 |
Сидоров С.С. |
Result |
|
ID |
Subject |
Mark |
123 |
Высшая математика |
5 |
|
|
|
124 |
Высшая математика |
3 |
|
|
|
123 |
Базы данных |
5 |
Выполняется следующий запрос SQL:
SELECT * FROM Student LEFT JOIN Result ON Student.ID=Result.ID;
Он вернет следующее число строк: Выберите один ответ
3
4
5 6
2)
Реляционная алгебра избыточна, т.к. есть такие реляционные операции, которые можно выразить через другие реляционные операции. Через декартово произведение и выборку можно выразить:
Выберите один ответ.
объединение
пересечение
θ-соединение
деление
3)
Ключевой атрибут – это атрибут, входящий в состав потенциального ключа. Реляционная модель требует, чтобы значение ключевого атрибута всегда было (выберите все правильные утверждения):
Выберите по крайней мере один ответ:
атомарным
уникальным
целочисленным
отличным от NULL
4)
Ниже представлено реляционное отношение Student:
-ID – номер студенческого билета, первичный ключ;
-Name – ФИО студента, значение рассматривается как атомарное; в перечне студентов могут встречаться учащиеся с совпадающими ФИО;
-DateOfBirth – дата рождения студента;
-Group – номер студенческой группы, студент может учиться только в одной группе;
-GroupLeaderID – номер студенческого билета старосты группы, внешний ключ, ссылающийся на атрибут ID; в каждой группе обязательно есть староста и только один.
Student
ID |
Name |
DateOfBirth |
Group |
GroupLeaderID |
|
|
|
|
|
Необходимо разделить его на два таким образом, чтобы не произошло потерь информации (иными словами – произвести декомпозицию без потерь). Какие из предложенных вариантов удовлетворяют указанному условию?
Прим.: в фигурных скобках приводятся заголовки отношений, ключевые атрибуты выделяются подчеркиванием.
Выберите по крайней мере один ответ:
{ ID, Name, Group, GroupLeaderID}, {Name, DateOfBirth}
{ID, Group, GroupLeaderID}, {Name, DateOfBirth}
{ID, Name, DateOfBirth}, {Group, GroupLeaderID}
{ID, Name, DateOfBirth, Group}, {Group, GroupLeaderID}
5)
Ниже представлена таблица Book, имеющая следующие поля:
ID – уникальный числовой идентификатор издания, первичный ключ; Title – название книги;
Author – автор книги (принимаем допущение, что у каждой книги только один автор); Publisher – издательство, в котором вышла книга;
Year – год издания.
Book
ID |
Title |
Author |
Publisher |
Year |
|
|
|
|
|
Таблицы A и P – проекции Book на {Author, Publisher} и {Publisher} соответственно.
A
Author |
Publisher |
|
|
P
Publisher
Из приведенного ниже перечня реляционных выражений выберите то, которому соответствует данное выражение на
SQL:
SELECT Distinct A.Author FROM A WHERE NOT EXISTS (SELECT * FROM P WHERE NOT EXISTS
(SELECT * FROM A As A1
WHERE A1.Author=A.Author AND A1.Publisher=P.Publisher));
Выберите один ответ.
(A[A.Publisher=P.Publisher]P)[Author]
(A[A.Publisher ≠ P.Publisher]P)[Author]
A/P
A\P
Ни одному из перечисленных
6)
Имеются два отношения Student и Group, первое из которых сдержит данные о студентах, второе – об учебных группах.
Student
ST_ID |
Name |
DateOfBirth |
Group |
123 |
Иванов И.И. |
16.01.1980 |
3082 |
|
|
|
|
124 |
Петров П.П. |
18.12.1979 |
3082 |
Group |
|
|
|
|
|
|
|
Group |
|
|
|
|
|
|
|
3082 |
|
|
|
|
|
|
|
3083 |
|
|
|
R = Student / Group. Из предложенных вариантов выберите тот, что правильно характеризует отношение R. Выберите один ответ.
Степень отношения R = 3, кардинальное число R = 2.
Степень отношения R = 3, кардинальное число R = 0.
Степень отношения R = 4, кардинальное число R = 0.
Степень отношения R = 4, кардинальное число R = 2.
7) Имеется таблица Book со столбцом Publisher и следующее SQL-выражение:
DELETE FROM Book WHERE (Publisher='Азбука') OR (1=1);
По результату работы оно эквивалентно: Выберите один ответ.
DELETE FROM Book;
DELETE FROM Book WHERE (Publisher='Азбука');
Ни одному из перечисленных вариантов.
8) Среди перечисленных реляционных операций выберите те, для которых не требуется, чтобы отношения-операнды были совместимы по типу (выберите все правильные варианты):
Выберите по крайней мере один ответ:
декартово произведение
вычитание
проекция
пересечение
9)
Ниже представлена таблица Book, имеющая следующие поля:
ID – уникальный числовой идентификатор издания, первичный ключ; Title – название книги;
Author – автор книги (принимаем допущение, что у каждой книги только один автор); Publisher – издательство, в котором вышла книга;
Year – год издания.
Book
ID |
Title |
Author |
Publisher |
Year |
1 |
Война и мир |
Толстой Л.Н. |
Мысль |
1981 |
2 |
Казаки |
Толстой Л.Н. |
Азбука |
1999 |
3 |
Французский язык |
Исмаилов Р.А. |
Высшая школа |
2003 |
|
|
|
|
|
4 |
Как это делалось в |
Бабель И. |
Азбука |
2003 |
|
Одессе |
|
|
|
Была создана таблица Book1 с аналогичной структурой. Необходимо поместить в нее информацию обо всех книгах из Book, которые были изданы до 2000-го года. Выберите правильный вариант SQL-запроса.
Выберите один ответ.
INSERT INTO Book1 SELECT * FROM Book WHERE Year<2000;
INSERT INTO Book1 VALUES (SELECT * FROM Book WHERE Year<2000);
SELECT * FROM Book WHERE Year<2000 To Book1;
10)
Имеется БД сотрудников организации с несколькими филиалами. В таблице Сотрудники: НомерПС – номер паспорта сотрудника, первичный ключ; ФИОС – фамилия, имя, отчество сотрудника; НазвФ – название филиала, где он работает.
Сотрудники
НомерПС |
|
ФИОС |
|
НазвФ |
|
|
|
|
|
|
|
|
|
|
Выполняется следующий запрос:
SELECT DISTINCT Сотрудники.НазвФ FROM Сотрудники, Сотрудники AS S1
WHERE Сотрудники.ФИО=S1.ФИО AND Сотрудники.НазвФ=S1.НазвФ AND Сотрудники.НомерПС!=S1.НомерПС;
Выберите из предложенных вариантов наиболее точное описание результата запроса: Выберите один ответ.
список всех филиалов
список без повторений филиалов, где работает хотя бы двое однофамильцев (с совпадающими ФИО)
список филиалов, где работает хотя бы двое однофамильцев (с совпадающими ФИО), причем в списке могут быть повторения названий
ничего не выведет, т.к. допущены ошибки в синтаксисе SELECT
11)
Среди перечисленных, выберите наиболее младшую нормальную форму, такую, что отношение, соответствующее ее требованиям, не может содержать транзитивных функциональных зависимостей:
Выберите один ответ.
НФ Бойса-Кодда
2 НФ
3 НФ
1 НФ доменно-ключевая НФ
12)
Теорема Хеза утверждает, что если в отношении R с атрибутами A,B,C имеется функциональная зависимость A→B, то… Выберите один ответ.
также имеется многозначная зависимость A-»B
отношение R равно соединению своих проекций на {A,B} и {A,C}
имеется и транзитивная зависимость A→B, B→C
13)
Ниже представлена таблица Book, имеющая следующие поля:
ID – уникальный числовой идентификатор издания, первичный ключ; Title – название книги;
Author – автор книги (принимаем допущение, что у каждой книги только один автор); Publisher – издательство, в котором вышла книга;
Year – год издания.
Book
ID |
Title |
Author |
Publisher |
Year |
|
|
|
|
|
Имеется запрос:
(Select * from book where publisher = 'Азбука')
UNION
(Select Title, Author, Publisher from book)
Он вернет:
Выберите один ответ.
результат, аналогичный запросу Select * from book;
синтаксическую ошибку
результат, аналогичный запросу Select * from book where publisher = 'Азбука';
результат, аналогичный запросу Select Title, Author, Publisher from book;
14)
Ниже представлены две таблицы A и B (поля IDA и IDB – числовые идентификаторы, первичные ключи).
A
IDA |
Name |
|
|
B
IDB |
Mark |
Subj |
|
|
|
Из приведенных ниже вариантов запросов выберите тот, который соответствует декартову произведению этих реляционных отношений - A × B:
Выберите один ответ.
(SELECT * FROM A) UNION (SELECT * FROM B);
SELECT * FROM A INNER JOIN B ON IDA=IDB;
SELECT * FROM A LEFT JOIN B ON IDA=IDB;
SELECT * FROM A,B;
15)
Имеется реляционное отношение Flight, содержащее информацию об авиарейсах. Ключевые атрибуты выделены подчеркиванием.
Flight
N рейса |
Дата вылета |
Бортовой N |
Модель |
Число мест |
Место |
Место |
Время |
|
|
самолета |
самолета |
|
отправления |
назначения |
вылета |
|
|
|
|
|
|
|
|
Выберите наиболее точное описание результата приведенного ниже реляционного выражения. R=(Flight[N рейса])\((Flight[Модель самолета = «ТУ-134»])[N рейса])
Выберите один ответ.
R содержит номера рейсов, не обслуживающихся ТУ-134
R содержит номера рейсов, обслуживающихся только ТУ-134
R содержит номера рейсов, обслуживающихся самолетами разных моделей, в том числе ТУ-134
16)
Имеются 2 таблицы – Student и Result. В Student:
ID – номер студенческого билета, первичный ключ; Name – ФИО студента.
В Result:
ID – номер студенческого билета, внешний ключ, ссылающийся на Student; Subject – предмет, по которому сдавался экзамен;
Mark – оценка студента за экзамен;
первичный ключ составной - включает поля (ID, Subject).
Student
ID |
Name |
123 |
Иванов И.И. |
124 |
Петров П.П. |
125 |
Сидоров С.С. |
Result
ID |
Subject |
Mark |
123 |
Высшая математика |
5 |
124 |
Высшая математика |
3 |
|
|
|
123 |
Базы данных |
5 |
|
|
|
Выполняется запрос
DELETE FROM Student WHERE (ID=123);
который (выберите наиболее точный вариант):
Выберите один ответ.
приведет к ошибке из-за ограничения внешнего ключа
удалит соответствующие записи или приведет к ошибке, в зависимости от параметров, с которыми определялся внешний ключ
удалит запись о студенте с идентификатором 123
приведет к ошибке из-за некорректности синтаксиса
17)
Имеется реляционное отношение Student, представленное ниже. Определите, требованиям какой нормальной формы оно соответствует, если известно что:
-ID – номер студенческого билета, первичный ключ;
-Name – ФИО студента, значение рассматривается как атомарное;
-DateOfBirth – дата рождения студента;
-Group – номер студенческой группы, студент может учиться только в одной группе;
-GroupLeaderID – номер студенческого билета старосты группы, внешний ключ, ссылающийся на атрибут ID; в каждой группе обязательно есть староста и только один.
Student
ID |
Name |
DateOfBirth |
|
Group |
GroupLeaderID |
123 |
Иванов И.И. |
16.01.1980 |
3082 |
|
123 |
|
|
|
|
|
|
124 |
Петров П.П. |
18.12.1979 |
3082 |
|
123 |
Выберите один ответ.
отношение находится во 2-й НФ, но не соответствует требованиям более старших НФ
отношение находится в доменно-ключевой НФ
отношение находится в 1-й НФ, но не соответствует требованиям более старших НФ
отношение находится в 4-й НФ, но не соответствует требованиям более старших НФ отношение находится в НФ Бойса-Кодда (НФБК), но не соответствует требованиям более старших НФ
18)
Ниже представлена таблица Book, имеющая следующие поля:
ID – уникальный числовой идентификатор издания, первичный ключ; Title – название книги;
Author – автор книги (принимаем допущение, что у каждой книги только один автор); Publisher – издательство, в котором вышла книга;
Year – год издания.
Book
ID |
Title |
Author |
Publisher |
Year |
|
|
|
|
|
Выберите запросы, возвращающие всю информацию о книгах, изданных в издательствах «Азбука» или «Политехника»
(выберите все правильные варианты):
Выберите по крайней мере один ответ:
SELECT * FROM Book WHERE Publisher = 'Политехника', Publisher ='Азбука';
(SELECT * FROM Book WHERE Publisher='Политехника') UNION (SELECT * FROM Book WHERE Publisher='Азбука');
SELECT * FROM Book WHERE Publisher ='Политехника' OR Publisher ='Азбука';
SELECT * FROM Book WHERE Publisher IN ('Политехника','Азбука');
19)
A и B – подмножества атрибутов реляционного отношения R, B A. В этом случае, функциональная зависимость A→B называется:
Выберите один ответ.
вложенной
тривиальной
включенной
нетривиальной транзитивной
20)
Пусть имеются 2 таблицы – Student и Result.
В Student:
ID – номер студенческого билета, первичный ключ; Name – ФИО студента.
В Result:
ID – номер студенческого билета, внешний ключ, ссылающийся на Student; Subject – предмет, по которому сдавался экзамен;
Mark – оценка студента за экзамен;
первичный ключ составной - включает поля (ID, Subject).
Student |
|
|
|
|
|
ID |
Name |
|
123 |
Иванов И.И. |
|
|
|
|
124 |
Петров П.П. |
|
|
|
|
Result |
|
|
|
|
|
ID |
Subject |
Mark |
123 |
Высшая математика |
5 |
124 |
Высшая математика |
3 |
123 |
Базы данных |
5 |
|
|
|
Отметьте все варианты запроса, позволяющего выбрать номера билетов и фамилии студентов, не сдававших ни одного экзамена (выберите все правильные варианты):
Выберите по крайней мере один ответ:
SELECT * FROM Student WHERE Student.ID Not In (SELECT ID FROM Result);
SELECT * FROM Student WHERE Not Exists (SELECT * FROM Result WHERE Student.ID=Result.ID);
SELECT * FROM Student WHERE Exists (SELECT * FROM Result WHERE Student.ID!=Result.ID);
SELECT DISTINCT Student.ID, Student.Name FROM Student, Result WHERE Student.ID != Result.ID;
21)
Из перечисленных ниже реляционных операций выберите те, при выполнении которых могут возникать кортежи с одинаковыми значениями и, в соответствии с требованиями реляционной модели, дубликаты из результата будут удаляться (выберите все правильные варианты):
Выберите по крайней мере один ответ:
объединение
проекция
пересечение
выборка
22)
Имеется реляционное отношение Student с атрибутами: ID – номер студенческого билета, первичный ключ;
Name – содержит ФИО студента, значение рассматривается как атомарное; Group – номер студенческой группы.
Student
ID |
Name |
Group |
|
|
|
Из представленного списка выберите вариант, в котором отношение R будет содержать список групп, где есть студенты с совпадающими ФИО:
Выберите один ответ.
R = (Student[Student.Name=Student.Name & Student.Group=Student.Group]Student)[Group]
S=Student; R = (Student[Student.Name=S.Name & Student.Group=S.Group & Student.ID ≠ S.ID ]S)[ S.Group]
R = (Student[Name=Name & Group=Group] )
R = (Student[Student.Name=Student.Name & Student.Group=Student.Group & Student.ID ≠ Student.ID]Student)
S=Student; R = (Student[Student.Name=S.Name & Student.Group=S.Group]S)[ S.Group]
23) стр 106
Имеется таблица Book c полем Author и запрос на языке SQL.
SELECT Author As A, 'Список авторов' As D FROM Book;
Выберите из приведенного списка ответ, наиболее точно описывающий результат выполнения запроса: Выберите один ответ.
Результат выполнения запроса будет содержать 1 столбец
Результат выполнения запроса будет содержать 2 столбца
Результат выполнения запроса будет содержать 3 столбца
Результат выполнения запроса будет содержать 4 столбца Будет получено сообщение о синтаксической ошибке
24)
Ниже представлена таблица Book, имеющая следующие поля:
ID – уникальный числовой идентификатор издания, первичный ключ; Title – название книги;
Author – автор книги (принимаем допущение, что у каждой книги только один автор); Publisher – издательство, в котором вышла книга;
Year – год издания.
Book
ID |
Title |
Author |
Publisher |
Year |
1 |
Война и мир |
Толстой Л.Н. |
Мысль |
1981 |
2 |
Казаки |
Толстой Л.Н. |
Азбука |
1999 |
3 |
Французский язык |
Исмаилов Р.А. |
Высшая школа |
2003 |
4 |
Как это делалось в |
Бабель И. |
Азбука |
2003 |
|
Одессе |
|
|
|
|
|
|
|
|
Необходимо выбрать названия наиболее новых книг (с наибольшим годом издания). Выберите один ответ.
//Значение агрегатной функции должно быть в SELECT, или в HAVING
SELECT DISTINCT Title FROM Book WHERE Year = Max(Year);
SELECT DISTINCT Title FROM Book WHERE Year = (SELECT Max(Year) FROM Book);
SELECT DISTINCT Title FROM Book WHERE Year>=Year;
ни один из перечисленных вариантов не подходит
25)
Ниже представлены таблицы Book и Book_in_Lib.
Таблица Book содержит информацию о книжных изданиях и имеет следующие поля: ID – уникальный числовой идентификатор издания, первичный ключ;
Title – название книги;
Author – автор книги (принимаем допущение, что у каждой книги только один автор); Publisher – издательство, в котором вышла книга;
Year – год издания.
Таблица Book_in_Lib содержит информацию об экземплярах изданий, имеющихся в библиотеке. Ее поля: LibId – идентификатор экземпляра издания, первичный ключ;
ID – идентификатор издания, внешний ключ, ссылающийся на ID в таблице Book; Status – текущее состояние книги.
В таблицах Book и Book_in_Lib хранятся десятки тысяч записей.
Book
ID |
|
Title |
Author |
|
Publisher |
Year |
||
1 |
Война и мир |
Толстой Л.Н. |
|
Мысль |
1981 |
|||
|
|
|
|
|
|
|
|
|
2 |
Казаки |
Толстой Л.Н. |
|
Азбука |
1999 |
|||
3 |
Французский язык |
Исмаилов Р.А. |
|
Высшая школа |
2003 |
|||
|
|
|
|
|
|
|
|
|
... |
... |
|
... |
|
|
... |
|
... |
|
|
|
|
|
|
|
|
|
Book_in_Lib |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LibId |
|
ID |
|
|
Status |
|
|
|
10 |
|
1 |
|
хранится |
|
|
||
11 |
|
1 |
|
выдана |
|
|
|
|
|
|
|
|
|
|
|
|
|
... |
|
... |
|
... |
|
|
|
|
Нужно вывести информацию об изданиях, которые описаны в таблице Book, но их нет в таблице Book_in_Lib. Предложены два варианта соответствующего запроса:
(1)SELECT * FROM Book WHERE ID Not IN (SELECT ID FROM Book_in_Lib); //некорелированный
(2)SELECT * FROM Book WHERE NOT EXISTS
(SELECT * FROM BOOK_in_LIB WHERE Book.ID=Book_in_LIB.ID); //коррелированный
Из представленного ниже списка выберите правильное утверждение относительно этих двух запросов:
Выберите один ответ.
оба запроса дадут правильный результат, но быстрее работает запрос (1)
запрос (2) даст неправильный результат