Font size
WorksheetsSQL3
Total questions: 100
Worksheet time: 50mins
Что такое ограничение (constraint) в SQL?
Правило, ограничивающее допустимые значения данных
Тип индекса
Имя таблицы
Тип транзакции
Схема базы данных
Что делает ограничение PRIMARY KEY?
Обеспечивает уникальность и запрет NULL для ключевого столбца
Разрешает дубликаты
Разрешает NULL
Запрещает индексацию
Удаляет строки
Что делает ограничение UNIQUE?
Обеспечивает уникальность значений столбца
Разрешает дубликаты
Запрещает использование индексов
Удаляет NULL
Шифрует данные
Что делает ограничение NOT NULL?
Запрещает хранить значение NULL
Запрещает отрицательные значения
Разрешает NULL
Запрещает текст
Запрещает обновление
Что делает ограничение CHECK?
Ограничивает значения по условию
Ограничивает изменения схемы
Ограничивает количество строк
Ограничивает размер БД
Ограничивает число индексов
Что делает ограничение FOREIGN KEY?
Обеспечивает ссылочную целостность между таблицами
Запрещает все связи
Обеспечивает уникальность
Обеспечивает отсутствие NULL
Отключает индексы
Что такое индекс в базе данных?
Структура данных для ускорения поиска
Тип таблицы
Внешний ключ
Ограничение
Триггер
Что является основой большинства индексов?
Дерево B- или B+-типа
Простая таблица
Линейный список
Массив строк
CSV-файл
Какой индекс создаётся автоматически для PRIMARY KEY?
Уникальный индекс
Неуникальный индекс
Составной индекс
Полнотекстовый индекс
Хеш-индекс
Недостаток индексов?
Увеличивают время вставки и обновления данных
Всегда ускоряют все операции
Уменьшают размер базы
Уменьшают использование памяти
Упрощают структуру БД
Для чего используют составной индекс?
Для ускорения поиска по нескольким столбцам
Для шифрования данных
Для резервного копирования
Для удаления строк
Для управления транзакциями
Какое ограничение часто накладывают на идентификаторы?
PRIMARY KEY и NOT NULL
FOREIGN KEY только
CHECK только
UNIQUE только
DEFAULT только
Что делает ограничение DEFAULT?
Задаёт значение по умолчанию при отсутствии явного значения
Запрещает NULL
Делает поле уникальным
Создаёт индекс
Удаляет строки
Можно ли использовать несколько ограничений для одного столбца?
Да
Нет
Только одно
Только PRIMARY KEY
Только NOT NULL
Как индексы влияют на SELECT-запросы?
Ускоряют поиск данных
Замедляют поиск всегда
Не влияют
Приводят к ошибкам
Удаляют дубликаты
Для каких операций индексы могут быть вредны?
Частые вставки и обновления
Редкие чтения
Редкая вставка
Только SELECT
Только JOIN
Что такое уникальный индекс?
Индекс, не допускающий дубликатов значений
Индекс без ключей
Индекс, допускающий NULL
Индекс, удаляющий строки
Индекс для внешних ключей
Что такое полнотекстовый индекс?
Индекс для поиска по текстовым полям
Индекс только для чисел
Индекс по дате
Индекс по NULL
Индекс по первичному ключу
Что произойдёт при нарушении ограничения CHECK?
Операция вставки или обновления будет отклонена
Ограничение будет проигнорировано
Значение станет NULL
Данные будут автоматически изменены
Таблица будет удалена
Что обеспечивают ограничения и индексы вместе?
Целостность и производительность
Только целостность
Только производительность
Только шифрование
Только резервирование
Что такое транзакция в базе данных?
Логическая единица работы, состоящая из одной или нескольких операций
Индекс
Таблица
Тип соединения
Ограничение
Что означает A в ACID?
Atomicity
Access
Activity
Association
Allocation
Что означает C в ACID?
Consistency
Connection
Creation
Control
Cache
Что означает I в ACID?
Isolation
Integration
Injection
Indexing
Interaction
Что означает D в ACID?
Durability
Distribution
Deletion
Debugging
Delay
Что означает атомарность транзакции?
Либо все операции выполняются, либо ни одна
Транзакция выполняется мгновенно
Транзакция не может быть отменена
Все запросы сортируются
Все данные шифруются
Что означает согласованность транзакции?
Перевод базы из одного корректного состояния в другое
Запрет изменений
Обязательное наличие индексов
Наличие только одной таблицы
Отсутствие NULL
Что означает изолированность транзакции?
Транзакции не влияют друг на друга при параллельном выполнении
Транзакция выполняется только ночью
Транзакция всегда блокирует базу
Транзакции выполняются только по очереди
Транзакция нельзя откатить
Что означает долговечность (Durability)?
Результат зафиксированной транзакции не теряется при сбое
Транзакция выполняется быстро
Все транзакции шифруются
Транзакции не используют журнал
Транзакции не требуют COMMIT
Для чего используется команда COMMIT?
Для фиксации транзакции
Для отката транзакции
Для начала транзакции
Для удаления таблицы
Для создания индекса
Для чего используется команда ROLLBACK?
Для отмены изменений в рамках транзакции
Для фиксации изменений
Для создания таблицы
Для обновления структуры
Для добавления индекса
Что делает команда BEGIN TRANSACTION (или START TRANSACTION)?
Начинает новую транзакцию
Завершает транзакцию
Откатывает транзакцию
Удаляет базу
Создает индекс
Что такое уровень изоляции транзакций?
Степень видимости изменений одной транзакции для других
Степень шифрования данных
Скорость выполнения запросов
Уровень доступа пользователя
Размер журнала
Что такое «грязное чтение» (dirty read)?
Чтение данных, изменённых, но не зафиксированных другой транзакцией
Чтение устаревших данных
Чтение только NULL
Чтение зашифрованных данных
Чтение системных таблиц
Что такое «неповторяемое чтение» (non-repeatable read)?
Повторное чтение даёт разные результаты из-за чужих изменений
Данные не читаются вообще
Данные всегда одинаковые
Чтение только одной строки
Чтение только индексов
Что такое «фантомное чтение» (phantom read)?
При повторном чтении появляются новые строки, добавленные другой транзакцией
Исчезновение строк
Изменение типов данных
Повреждение индексов
Потеря таблицы
Какой минимальный уровень изоляции?
READ UNCOMMITTED
READ COMMITTED
REPEATABLE READ
SERIALIZABLE
SNAPSHOT
Какой самый строгий уровень изоляции?
SERIALIZABLE
READ COMMITTED
READ UNCOMMITTED
REPEATABLE READ
READ ONLY
Что может быть недостатком высокого уровня изоляции?
Снижение производительности из-за блокировок
Потеря данных
Отключение индексов
Невозможность COMMIT
Удаление логов
Какую роль играет журнал транзакций для ACID?
Обеспечивает возможность отката и восстановления
Ускоряет SELECT
Сжимает таблицы
Удаляет дубликаты
Создаёт индексы
Что такое представление (VIEW) в SQL?
Виртуальная таблица, основанная на запросе
Физическая копия таблицы
Файл данных
Индекс
Таблица журнала
Что делает команда CREATE VIEW?
Создает новое представление
Создает таблицу
Создает индекс
Удаляет представление
Очищает таблицу
Что делает команда DROP VIEW?
Удаляет представление
Удаляет таблицу
Удаляет индекс
Удаляет схему
Удаляет базу данных
Можно ли обновлять данные через представление?
Да, если оно основано на одной таблице
Нет, никогда
Только через триггеры
Только в MySQL
Только при наличии индекса
Что делает команда ALTER VIEW?
Изменяет определение существующего представления
Удаляет таблицу
Добавляет индекс
Меняет имя базы данных
Отключает пользователя
Как можно посмотреть определение представления?
С помощью команды SHOW CREATE VIEW
С помощью SELECT * FROM VIEW
Через ALTER VIEW
С помощью DELETE VIEW
Только через системную таблицу
Что означает материализованное представление?
Представление, данные которого сохраняются физически
Обычное виртуальное представление
Индекс на представление
Сводная таблица
Сжатая база
Что произойдет при изменении данных в таблице, на которой основано представление?
Представление отразит изменения при следующем запросе
Представление останется прежним
Представление удалится
Возникнет ошибка
Изменится структура таблицы
Можно ли использовать представления для безопасности данных?
Да, для ограничения доступа к определённым полям
Нет
Только для администраторов
Только для триггеров
Только при DCL-запросах
Что делает триггер (TRIGGER)?
Автоматически выполняет действие при заданном событии
Создаёт индекс
Создаёт таблицу
Выполняет ручной запрос
Сортирует таблицы
Какие события могут активировать триггер?
INSERT, UPDATE, DELETE
SELECT, ORDER, GROUP
CREATE, DROP, ALTER
GRANT, REVOKE
COMMIT, ROLLBACK
Что делает BEFORE-триггер?
Срабатывает до выполнения операции
Срабатывает после операции
Срабатывает при ошибке
Срабатывает при чтении данных
Срабатывает при запуске сервера
Что делает AFTER-триггер?
Срабатывает после выполнения операции
Срабатывает до операции
Выполняется при старте базы
Удаляет таблицу
Очищает лог
Что делает команда CREATE TRIGGER?
Создаёт новый триггер
Удаляет триггер
Меняет структуру таблицы
Создаёт индекс
Обновляет БД
Что делает команда DROP TRIGGER?
Удаляет существующий триггер
Отключает триггер временно
Удаляет таблицу
Создаёт представление
Создаёт индекс
Можно ли использовать несколько триггеров на одно событие?
Да
Нет
Только один
Только BEFORE
Только AFTER
Что делает OLD в триггере?
Содержит старое значение строки до изменения
Содержит новое значение
Содержит имя пользователя
Содержит дату
Содержит ID транзакции
Что делает NEW в триггере?
Содержит новое значение после изменения
Содержит старое значение
Содержит индекс
Содержит имя таблицы
Содержит логи
Может ли триггер вызывать другой триггер?
Да, если разрешено в настройках СУБД
Нет
Только один раз
Только при INSERT
Только при DELETE
Можно ли использовать триггеры для аудита данных?
Да
Нет
Только в MySQL
Только в SQLite
Только для SELECT
Что делает INSTEAD OF-триггер?
Выполняет заданное действие вместо стандартной операции
Добавляет индекс
Выполняет COMMIT
Удаляет представление
Сортирует таблицы
Где чаще всего применяют триггеры?
Для контроля и автоматизации изменений в таблицах
Для ускорения SELECT
Для генерации индексов
Для создания таблиц
Для резервного копирования
Как удалить представление, если оно существует?
DROP VIEW IF EXISTS view_name
DELETE FROM view_name
ALTER VIEW view_name
REMOVE VIEW
UNLINK VIEW
Можно ли использовать JOIN в представлении?
Да
Нет
Только в MySQL
Только в Oracle
Только для администраторов
Можно ли создавать представления на основе других представлений?
Да
Нет
Только один уровень
Только при CHECK
Только без индексов
Что произойдет при удалении таблицы, на которой основано представление?
Представление станет недействительным
Представление обновится
Представление удалится автоматически
Ошибка не произойдет
Представление создаст таблицу
Что не может содержать триггер?
Команду COMMIT
Условия IF
Присваивания
Вычисления
Переменные
Где хранятся определения триггеров и представлений?
В системных таблицах СУБД
В пользовательских таблицах
В индексах
В логах транзакций
В памяти пользователя
Для чего чаще всего используются представления?
Для упрощения сложных запросов и ограничения доступа
Для ускорения транзакций
Для хранения журналов
Для обновления схем
Для очистки данных
Что общего у представлений и триггеров?
Автоматизация и абстрагирование работы с данными
Хранят индексы
Хранят пользователей
Контролируют транзакции
Заменяют таблицы
Что такое физическая модель базы данных?
Конкретная реализация логической модели с учетом оборудования и СУБД
Модель отношений между сущностями
ER-диаграмма
Модель транзакций
Описание бизнес-процессов
Что включает физическая модель?
Таблицы, индексы, ключи, типы данных, разделы хранения
Только таблицы
Только связи
Только ограничения
Только пользователей
Что такое оптимизация базы данных?
Совокупность действий, направленных на повышение производительности
Добавление новых таблиц
Удаление индексов
Шифрование данных
Сжатие логов
Что делает EXPLAIN PLAN?
Показывает, как СУБД будет выполнять запрос
Оптимизирует запрос
Удаляет индексы
Запускает транзакцию
Проверяет целостность
Что является основной целью оптимизации запросов?
Уменьшить время выполнения и нагрузку на систему
Увеличить размер таблиц
Снизить целостность
Удалить индексы
Упростить интерфейс
Что влияет на производительность запросов?
Индексы, структура данных, объем таблиц
Только количество пользователей
Только версии СУБД
Только ограничения
Только права доступа
Что делает индексирование?
Ускоряет поиск и сортировку данных
Замедляет выборку
Удаляет дубликаты
Сортирует строки
Сжимает таблицы
Что такое кластеризация таблиц?
Физическое упорядочение строк на диске по ключу
Группировка таблиц
Сжатие БД
Слияние данных
Создание индексов
Что делает кэширование запросов?
Хранит результаты предыдущих запросов для ускорения повторных
Сохраняет структуру БД
Очищает таблицы
Создает индексы
Обновляет триггеры
Что делает партиционирование таблицы?
Делит данные на отдельные разделы для ускорения обработки
Удаляет таблицы
Объединяет базы
Сжимает файлы
Изменяет ключи
Что такое физическая организация данных?
Расположение данных на диске и в памяти
Формат ER-модели
Формат SQL-запросов
Логическая структура
Название таблиц
Как влияет нормализация на производительность?
Уменьшает избыточность, но может увеличить количество JOIN
Всегда ускоряет все запросы
Уменьшает размер базы в 10 раз
Удаляет индексы
Отключает связи
Что делает де-нормализация?
Повышает производительность за счет избыточности
Уменьшает избыточность
Удаляет связи
Сжимает таблицы
Создает триггеры
Что может замедлить работу базы данных?
Избыточные индексы и триггеры
Оптимизация запросов
Партиционирование
Нормализация
Что делает команду ANALYZE TABLE?
Обновляет статистику таблицы для оптимизатора
Удаляет таблицу
Обновляет индексы
Создает индекс
Удаляет ограничения
Что делает VACUUM в PostgreSQL?
Очищает неиспользуемое пространство и обновляет статистику
Удаляет таблицы
Создает представления
Обновляет связи
Меняет пользователей
Что делает планировщик запросов (query planner)?
Определяет лучший способ выполнения SQL-запроса
Удаляет таблицы
Создает индексы
Сортирует результаты
Управляет транзакциями
Что влияет на размер физического файла БД?
Объем данных, индексы, логи, настройки хранения
Только количество пользователей
Только версия SQL
Только структура таблиц
Только количество ключей
Что такое фрагментация базы данных?
Распределение данных в разных областях памяти, ухудшающее доступ
Сжатие таблицы
Оптимизация индексов
Создание партиций
Архивация данных
Что делает команда OPTIMIZE TABLE?
Устраняет фрагментацию и обновляет статистику таблицы
Удаляет индексы
Создает базу
Обновляет пользователей
Удаляет триггеры
Что делают LIMIT и OFFSET в оптимизации?
Ограничивают количество возвращаемых строк
Ускоряют все запросы
Удаляют дубликаты
Создают индекс
Изменяют схему
Что такое план выполнения запроса?
Последовательность шагов, как СУБД выполнит SQL
Список таблиц
Описание индексов
Список пользователей
Отчет о транзакциях
Что делает индекс на сортируемом поле?
Ускоряет выполнение ORDER BY
Удаляет дубликаты
Увеличивает время вставки
Уменьшает производительность
Блокирует таблицу
Что делает объединение индексов (index merge)?
Использует несколько индексов для одного запроса
Создает новый индекс
Удаляет старые индексы
Разделяет таблицы
Упрощает связи
Что означает “cost” в плане запроса?
Оценка затрат ресурсов при выполнении запроса
Стоимость хранения БД
Цена лицензии СУБД
Количество таблиц
Скорость диска
Что такое “анализ статистики” таблиц?
Сбор данных о распределении значений для оптимизатора
Подсчет количества таблиц
Проверка прав
Сжатие данных
Индексация таблиц
Что улучшает использование EXPLAIN?
Понимание, как оптимизировать запрос
Удаление индексов
Упрощение схемы
Очистка таблиц
Архивация данных
Что делает LIMIT 100 при SELECT?
Возвращает только первые 100 строк
Удаляет 100 строк
Сортирует таблицу
Создает индекс
Удаляет схему
Что помогает ускорить SELECT с фильтрацией?
Индексы на столбцах, используемых в WHERE
Удаление индексов
Слияние таблиц
Разделение SELECT
Использование FULL JOIN
Что делает параметр CACHE в СУБД?
Хранит часто используемые данные для ускорения доступа
Удаляет таблицы
Создает индексы
Изменяет схемы
Сортирует столбцы
