Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

экзамен

.pdf
Скачиваний:
43
Добавлен:
26.05.2023
Размер:
866.07 Кб
Скачать

Экзаменационный тест по Базам Данных.

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) даст неправильный результат