Базы данных и SQL: лист заданий с ответами

Бесплатный лист заданий для печати по теме «Базы данных и SQL»: 8 задач от простых до экзаменационного уровня, с ответами. Распечатайте его или сохраните как PDF.

Для преподавателей: можно бесплатно печатать, копировать и использовать на занятиях. Каждый новый лист содержит новые значения и собственные ответы. Будем благодарны за ссылку на ExamProblems на странице вашего курса.

Имя: ____________________   Дата: ____________

1.Лёгкая

Что делает COMMIT в транзакции?

  1. AБлокирует всю базу данных
  2. BДелает все изменения транзакции постоянными
  3. CСоздаёт новую таблицу
  4. DОтменяет все изменения, сделанные с начала транзакции
2.Лёгкая

Что гарантирует ограничение UNIQUE на столбце?

  1. AСтолбец нельзя изменить после вставки
  2. BНикакие две строки не имеют одинакового значения, отличного от NULL, в этом столбце
  3. CЗначения столбца отсортированы
  4. DСтолбец автоматически становится первичным ключом таблицы
3.Лёгкая

Какой оператор удаляет строки из таблицы?

  1. ADELETE
  2. BDROP
  3. CTRUNCATE COLUMN
  4. DREMOVE
4.Средняя

В таблице employees есть столбец manager_id, ссылающийся на другого сотрудника. Как вывести каждого сотрудника рядом с именем его руководителя?

  1. AИспользовать только GROUP BY manager_id
  2. BОбъединить таблицу с самой собой через UNION ALL и фильтр WHERE
  3. CСоединить таблицу employees саму с собой, используя два псевдонима
  4. DСоздать на диске вторую копию таблицы
5.Средняя

Почему SELECT price * 2 AS double_price FROM t WHERE double_price > 10 в большинстве баз данных завершается ошибкой?

  1. AWHERE может сравнивать только текстовые столбцы
  2. BАрифметика в списке SELECT не допускается
  3. CПсевдонимы не могут содержать подчёркивание
  4. DWHERE вычисляется раньше списка SELECT, поэтому псевдонима ещё не существует
6.Средняя

Какой запрос возвращает число различных городов в таблице customers?

  1. ASELECT COUNT(DISTINCT city) FROM customers
  2. BSELECT COUNT(city) FROM customers GROUP BY city
  3. CSELECT SUM(DISTINCT city) FROM customers
  4. DSELECT DISTINCT COUNT(city) FROM customers
7.Сложная

Таблица enrolment(student_id, course_id, student_name, grade) имеет ключ (student_id, course_id). Какую нормальную форму она нарушает?

  1. AНикакую, она в НФБК
  2. BТолько третью нормальную форму, потому что grade зависит от student_name
  3. CВторую нормальную форму, потому что student_name зависит только от student_id
  4. DПервую нормальную форму, потому что столбец grade не содержит атомарных значений
8.Сложная

Чего требует правило журнализации с упреждающей записью (WAL)?

  1. AЗапись журнала об изменении должна попасть на устойчивый носитель раньше изменённой страницы данных
  2. BСтраницы данных должны записываться раньше журнала
  3. CЖурнал записывается только после сбоя
  4. DКаждый запрос должен быть занесён в журнал до разбора

Ответы

  1. 1. B · Делает все изменения транзакции постоянными
  2. 2. B · Никакие две строки не имеют одинакового значения, отличного от NULL, в этом столбце
  3. 3. A · DELETE
  4. 4. C · Соединить таблицу employees саму с собой, используя два псевдонима
  5. 5. D · WHERE вычисляется раньше списка SELECT, поэтому псевдонима ещё не существует
  6. 6. A · SELECT COUNT(DISTINCT city) FROM customers
  7. 7. C · Вторую нормальную форму, потому что student_name зависит только от student_id
  8. 8. A · Запись журнала об изменении должна попасть на устойчивый носитель раньше изменённой страницы данных

Полные пошаговые решения: занимайтесь этой темой на examproblems.com.