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

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

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

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

1.Легка

Що робить UNION з результатами двох запитів SELECT?

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

Що робить WHERE country IN ('NL', 'BE', 'DE')?

  1. AСортує рядки в порядку списку
  2. BЗалишає рядки, де country дорівнює будь-якому значенню зі списку
  3. CЗалишає рядки, де country немає у списку
  4. DЗалишає рядки, де значення country містить усі три коди одночасно
3.Легка

Що гарантує обмеження UNIQUE на стовпці?

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

Що таке «брудне» читання (dirty read)?

  1. AЧитання даних без речення WHERE
  2. BЧитання даних, записаних іншою транзакцією, яку ще не зафіксовано
  3. CЧитання даних із пошкодженого диска
  4. DЧитання того самого рядка двічі з отриманням того самого значення
5.Середня

LEFT JOIN повертає:

  1. AУсі рядки з лівої таблиці та відповідні рядки з правої, з NULL там, де відповідності немає
  2. BРядки, які не мають відповідності в жодній таблиці
  3. CЛише відповідні рядки з обох таблиць
  4. DЛише всі рядки з правої таблиці
6.Середня

Що означає літера «A» в абревіатурі ACID?

  1. AАтомарність (Atomicity)
  2. BАгрегація (Aggregation)
  3. CТочність (Accuracy)
  4. DДоступність (Availability)
7.Складна

Таблиця enrolment(student_id, course_id, student_name, grade) має ключ (student_id, course_id). Яку нормальну форму вона порушує?

  1. AЛише третю нормальну форму, бо grade залежить від student_name
  2. BДругу нормальну форму, бо student_name залежить лише від student_id
  3. CЖодну, вона в BCNF
  4. DПершу нормальну форму, бо стовпець grade не містить атомарних значень
8.Складна

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

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

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

  1. 1. C · Об’єднує їх в один результат і видаляє дублікати рядків
  2. 2. B · Залишає рядки, де country дорівнює будь-якому значенню зі списку
  3. 3. B · Жодні два рядки не мають однакового значення, відмінного від NULL, у цьому стовпці
  4. 4. B · Читання даних, записаних іншою транзакцією, яку ще не зафіксовано
  5. 5. A · Усі рядки з лівої таблиці та відповідні рядки з правої, з NULL там, де відповідності немає
  6. 6. A · Атомарність (Atomicity)
  7. 7. B · Другу нормальну форму, бо student_name залежить лише від student_id
  8. 8. D · Умова WHERE на o відхиляє рядки, заповнені NULL, перетворюючи з’єднання на внутрішнє

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