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

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

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

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

1.Легка

Яке речення в PostgreSQL і MySQL повертає лише перші 10 рядків результату?

  1. AFIRST 10 ONLY
  2. BMAX 10
  3. CLIMIT 10
  4. DTOP ROWS 10
2.Легка

Що таке складений ключ (composite key)?

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

Яке обмеження гарантує, що стовпець ніколи не залишиться порожнім (NULL)?

  1. ACHECK NULL
  2. BNOT NULL
  3. CDEFAULT
  4. DUNIQUE
4.Середня

Таблиця orders має 5 рядків, кожен з яких посилається на наявного клієнта. Таблиця customers має 3 рядки. Скільки рядків повертає INNER JOIN за customer_id?

  1. A5
  2. B3
  3. C8
  4. D15
5.Середня

Таблиця має рядки, де col дорівнює NULL. Які рядки повертає WHERE col = NULL?

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

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

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

Коли розклад паралельних транзакцій називають серіалізовним?

  1. AКоли його результат еквівалентний певному послідовному виконанню тих самих транзакцій
  2. BКоли жодна транзакція ніколи не читає даних
  3. CКоли транзакції виконуються лише на одному процесорі
  4. DКоли кожній транзакції надано порядковий номер
8.Складна

Таблиця має мільйон рядків і булевий стовпець is_active, що дорівнює TRUE для 95% з них. Чому оптимізатор може ігнорувати індекс на is_active для WHERE is_active = TRUE?

  1. AОптимізатор ніколи не використовує індекси в реченнях WHERE
  2. BІндекс трактує TRUE як NULL
  3. CБільшість рядків відповідають умові, тож повне сканування таблиці дешевше за багато пошуків в індексі
  4. DІндекси не можна створювати на булевих стовпцях

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

  1. 1. C · LIMIT 10
  2. 2. B · Ключ, що складається з двох чи більше стовпців
  3. 3. B · NOT NULL
  4. 4. A · 5
  5. 5. B · Жодних рядків, бо результат порівняння невідомий
  6. 6. B · Щоб пришвидшити пошук і з’єднання за цими стовпцями
  7. 7. A · Коли його результат еквівалентний певному послідовному виконанню тих самих транзакцій
  8. 8. C · Більшість рядків відповідають умові, тож повне сканування таблиці дешевше за багато пошуків в індексі

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