Робочий аркуш «Бази даних і SQL» з відповідями

Безкоштовний робочий аркуш для друку «Бази даних і SQL»: 8 задач від легких до рівня іспиту, з ключем відповідей. Роздрукуйте його або збережіть як PDF.

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

Ім’я: ____________________   Дата: ____________

1.Легка

Що таке потенційний ключ (candidate key)?

  1. AСтовпець, що чекає, щоб стати зовнішнім ключем
  2. BМінімальний набір стовпців, що однозначно ідентифікує кожен рядок
  3. CБудь-який стовпець, що містить значення NULL
  4. DНабір стовпців, спільний для двох таблиць, що зв’язує їхні рядки
2.Легка

Яка інструкція додає новий стовпець до наявної таблиці?

  1. AALTER TABLE
  2. BUPDATE TABLE
  3. CCREATE COLUMN
  4. DINSERT COLUMN
3.Легка

Що робить GROUP BY у запиті?

  1. AСортує рядки результату за абеткою
  2. BВидаляє рядки зі значеннями NULL
  3. CОб’єднує рядки з однаковими значеннями в групи, щоб агрегати обчислювалися для кожної групи
  4. DЗ’єднує дві таблиці за спільними стовпцями
4.Середня

Чому SELECT price * 2 AS double_price FROM t WHERE double_price > 10 не виконується в більшості баз даних?

  1. AWHERE обчислюється перед списком SELECT, тож псевдоніма ще не існує
  2. BАрифметика не дозволена у списку SELECT
  3. CWHERE може порівнювати лише текстові стовпці
  4. DПсевдоніми не можуть містити підкреслення
5.Середня

Таблиця employees має стовпець manager_id, що посилається на іншого працівника. Як вивести кожного працівника поруч з ім’ям його керівника?

  1. AЗ’єднати таблицю employees саму із собою за допомогою двох псевдонімів
  2. BСтворити другу копію таблиці на диску
  3. CВикористати лише GROUP BY manager_id
  4. DОб’єднати таблицю саму з собою за допомогою UNION ALL і фільтра WHERE
6.Середня

Навіщо створюють індекси на стовпцях?

  1. AЩоб пришвидшити вставлення й оновлення за цими стовпцями
  2. BЩоб запобігти значенням NULL
  3. CЩоб заощадити місце на диску
  4. DЩоб пришвидшити пошук і з’єднання за цими стовпцями
7.Складна

Запит FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.status = 'paid' несподівано відкидає клієнтів без замовлень. Чому?

  1. AУмова WHERE на o відхиляє рядки, заповнені NULL, перетворюючи з’єднання на внутрішнє
  2. BLEFT JOIN ніколи не зберігає рядків без збігу
  3. CЗ’єднання має використовувати USING замість ON
  4. Dstatus — зарезервоване слово
8.Складна

Транзакція T1 блокує рядок A й чекає на рядок B, а T2 блокує рядок B й чекає на рядок A. Що робить типова СКБД?

  1. AОб’єднує дві транзакції в одну
  2. BВиявляє взаємне блокування й перериває одну транзакцію як жертву
  3. CДозволяє обом транзакціям чекати, доки одна з них нормально зафіксується
  4. DФіксує обидві транзакції одночасно

Ключ відповідей

  1. 1. B · Мінімальний набір стовпців, що однозначно ідентифікує кожен рядок
  2. 2. A · ALTER TABLE
  3. 3. C · Об’єднує рядки з однаковими значеннями в групи, щоб агрегати обчислювалися для кожної групи
  4. 4. A · WHERE обчислюється перед списком SELECT, тож псевдоніма ще не існує
  5. 5. A · З’єднати таблицю employees саму із собою за допомогою двох псевдонімів
  6. 6. D · Щоб пришвидшити пошук і з’єднання за цими стовпцями
  7. 7. A · Умова WHERE на o відхиляє рядки, заповнені NULL, перетворюючи з’єднання на внутрішнє
  8. 8. B · Виявляє взаємне блокування й перериває одну транзакцію як жертву

Повні покрокові розв’язки: тренуйте цю тему на examproblems.com.