Разработчик баз данных

Разработчик баз данных
Форма обучения:
Заочная форма
Стоимость обучения от:
0 руб
Длительность обучения от:
90 Часа(-ов)
Выдаваемый документ:
Удостоверение о повышении квалификации
Курс повышения квалификации: «Разработчик баз данных. Начальный уровень (Junior)» Освойте профессию будущего — станьте специалистом по созданию и управлению базами данных! О курсе Этот курс — ваш первый шаг в мир баз данных. Вы изучите основы реляционных СУБД, научитесь проектировать эффективные структуры данных, писать сложные SQL-запросы и работать с инструментами администрирования. Курс ориентирован на практику: 80% времени вы будете работать с реальными кейсами, разбирать ошибки и создавать собственные проекты под руководством экспертов. Для кого этот курс? Новички в IT, желающие войти в сферу Data Engineering. Студенты технических специальностей, которые хотят углубить знания в базах данных. Профессионалы из смежных областей (например, аналитики, backend-разработчики), стремящиеся расширить экспертизу. Требования: базовое понимание алгоритмов и структур данных, желание работать с информационными системами. Чему вы научитесь? ✅ Проектировать базы данных: создавать ER-диаграммы, нормализовать таблицы, избегать аномалий. ✅ Работать с SQL: писать запросы любой сложности (JOIN, CTE, оконные функции), управлять транзакциями. ✅ Администрировать СУБД: настраивать права доступа, резервировать данные, оптимизировать производительность. ✅ Решать бизнес-задачи: строить аналитические отчеты, интегрировать данные из разных источников. Формат обучения Онлайн-лекции с теорией и примерами. Практические задания в SQL-средах (MySQL, PostgreSQL). Вебинары с разбором ошибок и ответами на вопросы. Доступ к материалам 24/7: видео, конспекты, шаблоны проектов. Поддержка кураторов: помощь в решении задач и подготовке проекта. Длительность: 3 месяца (4 ак. часа в неделю).

Курс повышения квалификации: "Разработчик баз данных. Начальный уровень (Junior)"


Целевая аудитория:

  • Начинающие специалисты в IT, желающие освоить проектирование и разработку баз данных.
  • Студенты технических вузов (информатика, прикладная математика).
  • Профессионалы, планирующие сменить сферу деятельности на Data Engineering или Database Administration.
  • Основные требования: базовые навыки работы с компьютером, понимание алгоритмов и структур данных (на уровне начальной подготовки).
 

Формат обучения:

  • Онлайн-курс с элементами смешанного обучения:
    • Видеолекции (теория).
    • Практические задания в среде SQL-клиентов (MySQL, PostgreSQL).
    • Живые вебинары с разбором кейсов.
    • Доступ к учебным материалам 24/7.
    • Поддержка кураторов через чат и форум.
  • Длительность: 3 месяца (4 академических часа в неделю).
  • Итоговая аттестация: защита проекта + тест.
 

Итоговый проект:

Разработка базы данных для интернет-магазина

  • Этапы:
    1. Сбор требований и анализ данных.
    2. Проектирование ER-диаграммы (сущности: пользователи, товары, заказы, платежи).
    3. Реализация в СУБД (MySQL/PostgreSQL).
    4. Написание сложных SQL-запросов (отчеты, аналитика).
    5. Оптимизация производительности (индексы, нормализация).
    6. Презентация проекта с демонстрацией функционала.

Модуль 1: Введение в базы данных

  • Типы БД: реляционные, NoSQL, графовые.
  • Реляционная модель: таблицы, первичные/внешние ключи.
  • Основы SQL: SELECT, INSERT, UPDATE, DELETE.
 

Модуль 2: SQL-запросы и работа с данными

  • Сложные JOINы, агрегатные функции, GROUP BY.
  • Подзапросы, CTE, оконные функции.
  • Практика: анализ данных из CSV-файлов.
 

Модуль 3: Проектирование БД

  • ER-диаграммы, нормализация (1NF, 2NF, 3NF).
  • Кейс: проектирование БД для сервиса доставки еды.
 

Модуль 4: Администрирование и оптимизация

  • Установка и настройка СУБД.
  • Индексы, анализ планов запросов.
  • Резервное копирование и безопасность.
 

Модуль 5: Итоговый проект

  • Разработка и защита проекта (индивидуально или в команде).

По окончании обучения студент должен знать:

  1. Основы реляционных и NoSQL-баз данных.
  2. Принципы работы с SQL (синтаксис, операторы, транзакции).
  3. Методы нормализации и проектирования ER-диаграмм.
  4. Инструменты администрирования: резервное копирование, восстановление данных, права доступа.
  5. Основы оптимизации запросов и индексирования.
  6. Стандарты документирования баз данных.

По окончании обучения студент должен уметь:

  1. Проектировать реляционные базы данных (ER-модели, нормализация до 3NF).
  2. Писать SQL-запросы любой сложности (JOIN, подзапросы, агрегатные функции).
  3. Работать с СУБД (MySQL, PostgreSQL): создавать/изменять таблицы, управлять пользователями.
  4. Оптимизировать запросы и структуру БД для повышения производительности.
  5. Использовать CASE-инструменты (например, MySQL Workbench) для визуализации моделей.
  6. Выполнять резервное копирование и восстановление данных.
Заявка преподавателя, репетитора админу сети.
Заявка ученика, студента, слушателя

Экзаменационные билеты: Разработчик баз данных (начальный уровень)


Билет 1

Теория:

  1. Что такое реляционная база данных?
  2. Для чего используется оператор JOIN в SQL?
 

Практика:
Напишите SQL-запрос для создания таблицы "Клиенты" с полями: id (первичный ключ), имя, email (уникальный), телефон.

 

Ответы:

  1. Реляционная БД — это база данных, организованная в виде таблиц (отношений) с заданными связями между ними.
  2. JOIN объединяет данные из двух или более таблиц на основе связанных столбцов.
  3. Запрос для создания таблицы: создайте таблицу "Клиенты" с полями id как первичный ключ, имя типа VARCHAR(50), email типа VARCHAR(100) с ограничением уникальности и телефон типа VARCHAR(20).
 

Билет 2

Теория:

  1. Что такое первичный ключ?
  2. В чем разница между INNER JOIN и LEFT JOIN?
 

Практика:
Добавьте в таблицу "Заказы" поле дата_заказа типа DATE.

 

Ответы:

  1. Первичный ключ — уникальный идентификатор записи в таблице, не допускающий повторяющихся или NULL-значений.
  2. INNER JOIN возвращает только совпадающие строки, LEFT JOIN — все строки левой таблицы и совпадающие из правой.
  3. Используйте команду ALTER TABLE для добавления нового поля дата_заказа типа DATE в таблицу "Заказы".
 

Билет 3

Теория:

  1. Что такое нормализация?
  2. Как работает оператор GROUP BY?
 

Практика:
Напишите запрос для подсчета количества клиентов в таблице "Клиенты" .

 

Ответы:

  1. Нормализация — процесс устранения избыточности данных путем разделения таблиц.
  2. GROUP BY группирует строки с одинаковыми значениями для агрегации (например, COUNT, SUM).
  3. Используйте функцию COUNT(*) для подсчета всех записей в таблице "Клиенты".
 

Билет 4

Теория:

  1. Что такое внешний ключ?
  2. Для чего используется оператор HAVING?
 

Практика:
Удалите таблицу "Тестовая" .

 

Ответы:

  1. Внешний ключ — ссылка на первичный ключ другой таблицы, обеспечивающая целостность связей.
  2. HAVING фильтрует группы после агрегации (аналог WHERE для GROUP BY).
  3. Используйте команду DROP TABLE для удаления таблицы "Тестовая".
 

Билет 5

Теория:

  1. Что такое индекс в БД?
  2. В чем разница между WHERE и HAVING?
 

Практика:
Обновите поле email на "new@example.com " для клиента с id = 5.

 

Ответы:

  1. Индекс — структура данных для ускорения поиска и сортировки.
  2. WHERE фильтрует строки до агрегации, HAVING — после.
  3. Используйте команду UPDATE для изменения значения поля email на "new@example.com " для записи с id = 5 в таблице "Клиенты".
 

Билет 6

Теория:

  1. Что такое транзакция?
  2. Как работает оператор UNION?
 

Практика:
Создайте индекс для поля фамилия в таблице "Сотрудники" .

 

Ответы:

  1. Транзакция — набор операций, которые либо все выполняются, либо откатываются (ACID).
  2. UNION объединяет результаты двух запросов, удаляя дубликаты.
  3. Используйте команду CREATE INDEX для создания индекса по полю фамилия в таблице "Сотрудники".
 

Билет 7

Теория:

  1. Что такое ACID в контексте БД?
  2. Для чего используется CASE в SQL?
 

Практика:
Напишите запрос для выбора всех клиентов, у которых email содержит "gmail.com".

 

Ответы:

  1. ACID — свойства транзакций: атомарность, согласованность, изолированность, долговечность.
  2. CASE позволяет выполнять условные операции в SQL-запросах.
  3. Используйте оператор LIKE для поиска значений в поле email, содержащих "gmail.com", в таблице "Клиенты".
 

Билет 8

Теория:

  1. Что такое денормализация?
  2. В чем разница между CHAR и VARCHAR?
 

Практика:
Удалите все заказы старше 1 января 2020 года из таблицы "Заказы" .

 

Ответы:

  1. Денормализация — добавление избыточности для повышения производительности чтения.
  2. CHAR фиксированной длины, VARCHAR — переменной.
  3. Используйте команду DELETE для удаления записей из таблицы "Заказы", где значение поля дата_заказа меньше '2020-01-01'.
 

Билет 9

Теория:

  1. Что такое ER-диаграмма?
  2. Для чего используется LIMIT в SQL?
 

Практика:
Создайте таблицу "Товары" с полями: id, название, цена, категория.

 

Ответы:

  1. ER-диаграмма визуализирует структуру БД: сущности, атрибуты, связи.
  2. LIMIT ограничивает количество возвращаемых строк.
  3. Создайте таблицу "Товары" с полями: id как первичный ключ, название типа VARCHAR(100), цена типа DECIMAL(10,2) и категория типа VARCHAR(50).
 

Билет 10

Теория:

  1. Что такое триггер в БД?
  2. Как работает оператор DISTINCT?
 

Практика:
Напишите запрос для подсчета общей суммы всех заказов в таблице "Заказы" .

 

Ответы:

  1. Триггер — процедура, автоматически выполняемая при определенных событиях (INSERT, UPDATE).
  2. DISTINCT удаляет дубликаты из результатов запроса.
  3. Используйте функцию SUM для подсчета общей суммы значений в поле сумма таблицы "Заказы".

Билет 11

Теория:

  1. Что такое база данных NoSQL?
  2. Для чего используется оператор ORDER BY?
 

Практика:
Напишите запрос для выбора всех клиентов из таблицы "Клиенты" , упорядоченных по алфавиту по полю имя.

 

Ответы:

  1. NoSQL — это не реляционная база данных, предназначенная для работы с большими объемами неструктурированных данных.
  2. ORDER BY сортирует строки в результате запроса по указанному столбцу.
  3. Используйте команду SELECT с ORDER BY для выбора всех записей из таблицы "Клиенты", отсортированных по полю имя в алфавитном порядке.
 

Билет 12

Теория:

  1. Что такое первая нормальная форма (1NF)?
  2. В чем разница между DELETE и TRUNCATE?
 

Практика:
Удалите все записи из таблицы "Тестовая" .

 

Ответы:

  1. Первая нормальная форма требует, чтобы значения всех столбцов были атомарными (неделимыми).
  2. DELETE удаляет записи построчно, а TRUNCATE удаляет все данные сразу, очищая таблицу полностью.
  3. Используйте команду TRUNCATE TABLE для удаления всех записей из таблицы "Тестовая".
 

Билет 13

Теория:

  1. Что такое вторая нормальная форма (2NF)?
  2. Для чего используется оператор IN?
 

Практика:
Напишите запрос для выбора всех заказов из таблицы "Заказы" , где id_клиента равен 1, 3 или 5.

 

Ответы:

  1. Вторая нормальная форма требует, чтобы таблица была в 1NF и все неключевые атрибуты зависели от всего первичного ключа.
  2. IN проверяет, соответствует ли значение одному из значений в списке.
  3. Используйте команду SELECT с условием IN для выбора заказов, где id_клиента равен 1, 3 или 5.
 

Билет 14

Теория:

  1. Что такое третья нормальная форма (3NF)?
  2. Как работает оператор BETWEEN?
 

Практика:
Напишите запрос для выбора всех товаров из таблицы "Товары" , цена которых находится в диапазоне от 100 до 500.

 

Ответы:

  1. Третья нормальная форма требует, чтобы таблица была в 2NF и все неключевые атрибуты зависели только от первичного ключа.
  2. BETWEEN выбирает значения в заданном диапазоне, включая границы.
  3. Используйте команду SELECT с условием BETWEEN для выбора товаров, где цена находится в диапазоне от 100 до 500.
 

Билет 15

Теория:

  1. Что такое хранимая процедура?
  2. Для чего используется оператор UNION ALL?
 

Практика:
Объедините результаты двух запросов: один выбирает всех клиентов с id > 10, второй — всех клиентов с email содержащим "example.com".

 

Ответы:

  1. Хранимая процедура — это предварительно скомпилированный набор SQL-команд, который можно вызывать для выполнения определенной задачи.
  2. UNION ALL объединяет результаты двух запросов, включая дубликаты.
  3. Используйте UNION ALL для объединения результатов двух запросов: первый выбирает клиентов с id > 10, второй — с email содержащим "example.com".
 

Билет 16

Теория:

  1. Что такое представление (VIEW) в SQL?
  2. В чем разница между COUNT(*) и COUNT(столбец)?
 

Практика:
Создайте представление, которое показывает всех клиентов с email содержащим "test.com".

 

Ответы:

  1. Представление — это виртуальная таблица, основанная на результатах SQL-запроса.
  2. COUNT(*) считает все строки, включая NULL, а COUNT(столбец) считает только непустые значения в указанном столбце.
  3. Используйте команду CREATE VIEW для создания представления, которое выбирает клиентов с email содержащим "test.com".
 

Билет 17

Теория:

  1. Что такое транзакционная целостность?
  2. Для чего используется оператор EXISTS?
 

Практика:
Напишите запрос для выбора всех клиентов из таблицы "Клиенты" , у которых есть хотя бы один заказ в таблице "Заказы" .

 

Ответы:

  1. Транзакционная целостность — это свойство БД, гарантирующее, что транзакции выполняются полностью или не выполняются вообще.
  2. EXISTS проверяет, существует ли хотя бы одна строка, удовлетворяющая условию.
  3. Используйте команду SELECT с EXISTS для выбора клиентов, у которых есть хотя бы один заказ в таблице "Заказы".
 

Билет 18

Теория:

  1. Что такое индекс покрытия?
  2. В чем разница между INNER JOIN и CROSS JOIN?
 

Практика:
Напишите запрос для выбора всех возможных комбинаций товаров и категорий из таблиц "Товары" и "Категории" .

 

Ответы:

  1. Индекс покрытия содержит все необходимые для запроса данные, позволяя избежать чтения самой таблицы.
  2. INNER JOIN объединяет таблицы по условию, а CROSS JOIN создает декартово произведение (все возможные комбинации).
  3. Используйте CROSS JOIN для выбора всех комбинаций товаров и категорий из таблиц "Товары" и "Категории".
 

Билет 19

Теория:

  1. Что такое оконные функции в SQL?
  2. Для чего используется оператор OVER?
 

Практика:
Напишите запрос для подсчета общей суммы заказов для каждого клиента с использованием оконной функции.

 

Ответы:

  1. Оконные функции выполняют вычисления над набором строк, связанных с текущей строкой, без группировки данных.
  2. OVER определяет окно (набор строк), к которому применяется оконная функция.
  3. Используйте оконную функцию SUM с OVER для подсчета общей суммы заказов для каждого клиента.
 

Билет 20

Теория:

  1. Что такое партиционирование таблиц?
  2. Для чего используется оператор WITH (CTE)?
 

Практика:
Напишите запрос с использованием CTE для выбора всех клиентов, у которых общая сумма заказов превышает 1000.

 

Ответы:

  1. Партиционирование таблиц — это разделение таблицы на части для улучшения производительности запросов.
  2. WITH (CTE) создает временный набор данных, который можно использовать в основном запросе.
  3. Используйте CTE для расчета общей суммы заказов по каждому клиенту и выберите тех, у кого сумма превышает 1000.

Билет 21

Теория:

  1. Что такое денормализация и когда она применяется?
  2. Для чего используется оператор OFFSET?
 

Практика:
Напишите запрос для выбора первых 10 записей из таблицы "Клиенты" , пропустив первые 5 строк.

 

Ответы:

  1. Денормализация — это процесс добавления избыточности в БД для повышения производительности чтения за счет усложнения записи.
  2. OFFSET пропускает указанное количество строк в результате запроса.
  3. Используйте команду SELECT с LIMIT и OFFSET для выбора первых 10 записей, пропустив первые 5 строк.
 

Билет 22

Теория:

  1. Что такое индексированное представление?
  2. В чем разница между UNION и UNION ALL?
 

Практика:
Объедините данные из двух таблиц: "Клиенты" и "Сотрудники" , исключив дубликаты.

 

Ответы:

  1. Индексированное представление — это материализованное представление, которое хранит результаты выполнения запроса физически.
  2. UNION удаляет дубликаты, а UNION ALL включает их.
  3. Используйте UNION для объединения данных из таблиц "Клиенты" и "Сотрудники", исключив дубликаты.
 

Билет 23

Теория:

  1. Что такое полнотекстовый поиск в SQL?
  2. Для чего используется оператор LIKE?
 

Практика:
Напишите запрос для выбора всех товаров из таблицы "Товары" , где название содержит слово "ноутбук".

 

Ответы:

  1. Полнотекстовый поиск позволяет находить текстовые данные по ключевым словам или фразам с учетом релевантности.
  2. LIKE используется для поиска строк, соответствующих шаблону.
  3. Используйте команду SELECT с условием LIKE для выбора товаров, где название содержит слово "ноутбук".
 

Билет 24

Теория:

  1. Что такое каскадное удаление (CASCADE)?
  2. В чем разница между NULL и пустой строкой?
 

Практика:
Добавьте внешний ключ в таблицу "Заказы" , связывающий её с таблицей "Клиенты" , с каскадным удалением.

 

Ответы:

  1. Каскадное удаление автоматически удаляет связанные записи при удалении родительской записи.
  2. NULL означает отсутствие значения, а пустая строка — это строка нулевой длины.
  3. Используйте команду ALTER TABLE с FOREIGN KEY и CASCADE для добавления внешнего ключа с каскадным удалением.
 

Билет 25

Теория:

  1. Что такое транзакционный журнал?
  2. Для чего используется оператор COALESCE?
 

Практика:
Напишите запрос, который заменяет NULL-значения в поле email на строку "no_email@example.com ".

 

Ответы:

  1. Транзакционный журнал фиксирует все изменения в БД для восстановления данных в случае сбоя.
  2. COALESCE возвращает первое не-NULL значение из списка.
  3. Используйте функцию COALESCE для замены NULL-значений в поле email на "no_email@example.com ".
 

Билет 26

Теория:

  1. Что такое уникальный индекс?
  2. В чем разница между INSERT и UPDATE?
 

Практика:
Добавьте новую запись в таблицу "Клиенты" : id = 10, имя = "Иван", email = "ivan@example.com".

 

Ответы:

  1. Уникальный индекс гарантирует, что значения в столбце будут уникальными.
  2. INSERT добавляет новые записи, а UPDATE изменяет существующие.
  3. Используйте команду INSERT для добавления новой записи в таблицу "Клиенты".
 

Билет 27

Теория:

  1. Что такое база данных OLAP?
  2. Для чего используется оператор INTERSECT?
 

Практика:
Найдите общие записи в таблицах "Клиенты" и "Сотрудники" по полю email.

 

Ответы:

  1. OLAP — это база данных, оптимизированная для аналитических запросов и многомерного анализа данных.
  2. INTERSECT возвращает строки, которые присутствуют в обоих запросах.
  3. Используйте INTERSECT для выбора общих записей по полю email из таблиц "Клиенты" и "Сотрудники".
 

Билет 28

Теория:

  1. Что такое временная таблица?
  2. В чем разница между PRIMARY KEY и UNIQUE?
 

Практика:
Создайте временную таблицу "Временные_клиенты" , содержащую поля id, имя, email.

 

Ответы:

  1. Временная таблица существует только в течение сессии и доступна только создавшему её пользователю.
  2. PRIMARY KEY уникален и не допускает NULL, а UNIQUE допускает одно NULL-значение.
  3. Используйте команду CREATE TEMPORARY TABLE для создания временной таблицы "Временные_клиенты".
 

Билет 29

Теория:

  1. Что такое партиция RANGE в SQL?
  2. Для чего используется оператор ROW_NUMBER?
 

Практика:
Пронумеруйте записи в таблице "Клиенты" по алфавиту по полю имя.

 

Ответы:

  1. RANGE-партиция разделяет данные на основе диапазона значений.
  2. ROW_NUMBER присваивает уникальный номер каждой строке в результате запроса.
  3. Используйте ROW_NUMBER с OVER для нумерации записей в таблице "Клиенты" по полю имя.
 

Билет 30

Теория:

  1. Что такое база данных графового типа?
  2. Для чего используется оператор MERGE?
 

Практика:
Обновите поле статус на "Активный" для клиента с id = 7, если он существует, или создайте новую запись.

 

Ответы:

  1. Графовая база данных хранит данные в виде узлов и связей между ними.
  2. MERGE выполняет операцию вставки или обновления в зависимости от наличия записи.
  3. Используйте команду MERGE для обновления или создания записи в таблице "Клиенты".

Билет 31

Теория:

  1. Что такое база данных документо-ориентированного типа?
  2. Для чего используется оператор PIVOT?
 

Практика:
Преобразуйте строки таблицы "Продажи" в столбцы, группируя данные по месяцам.

 

Ответы:

  1. Документо-ориентированная БД хранит данные в виде документов (например, JSON или BSON), что удобно для работы с неструктурированными данными.
  2. PIVOT преобразует строки в столбцы для создания сводных таблиц.
  3. Используйте PIVOT для преобразования строк таблицы "Продажи" в столбцы, группируя данные по месяцам.
 

Билет 32

Теория:

  1. Что такое база данных колоночного типа?
  2. В чем разница между ROLLBACK и COMMIT?
 

Практика:
Начните транзакцию, обновите поле статус на "Завершен" для заказа с id = 5, затем откатите изменения.

 

Ответы:

  1. Колоночная БД хранит данные по столбцам, что ускоряет аналитические запросы.
  2. COMMIT фиксирует изменения, а ROLLBACK отменяет их.
  3. Начните транзакцию, выполните UPDATE для обновления статуса, затем используйте ROLLBACK для отмены изменений.
 

Билет 33

Теория:

  1. Что такое индекс B-Tree?
  2. Для чего используется оператор FETCH FIRST?
 

Практика:
Выберите первые 5 записей из таблицы "Клиенты" , упорядоченных по полю имя.

 

Ответы:

  1. B-Tree — это структура данных для индексов, обеспечивающая быстрый поиск, вставку и удаление данных.
  2. FETCH FIRST ограничивает количество возвращаемых строк.
  3. Используйте команду SELECT с ORDER BY и FETCH FIRST для выбора первых 5 записей из таблицы "Клиенты".
 

Билет 34

Теория:

  1. Что такое база данных временного ряда?
  2. В чем разница между INNER JOIN и NATURAL JOIN?
 

Практика:
Выполните объединение таблиц "Клиенты" и "Заказы" с использованием NATURAL JOIN.

 

Ответы:

  1. Временной ряд — это БД, оптимизированная для хранения и анализа данных, связанных со временем (например, метрики, логи).
  2. INNER JOIN требует явного указания условий, а NATURAL JOIN автоматически объединяет таблицы по совпадающим столбцам.
  3. Используйте NATURAL JOIN для объединения таблиц "Клиенты" и "Заказы".
 

Билет 35

Теория:

  1. Что такое шардирование базы данных?
  2. Для чего используется оператор PARTITION BY?
 

Практика:
Разделите данные таблицы "Заказы" на партиции по году совершения заказа.

 

Ответы:

  1. Шардирование — это разделение данных на независимые фрагменты (шарды) для распределения нагрузки.
  2. PARTITION BY определяет группы строк для применения оконных функций.
  3. Используйте PARTITION BY для разделения данных таблицы "Заказы" по году совершения заказа.
 

Билет 36

Теория:

  1. Что такое база данных объектно-реляционного типа?
  2. В чем разница между TRUNCATE и DELETE?
 

Практика:
Удалите все записи из таблицы "Тестовая" с использованием TRUNCATE.

 

Ответы:

  1. Объектно-реляционная БД поддерживает работу с объектами, такими как классы и методы, в сочетании с реляционной моделью.
  2. TRUNCATE удаляет все данные сразу, а DELETE удаляет построчно.
  3. Используйте TRUNCATE TABLE для удаления всех записей из таблицы "Тестовая".
 

Билет 37

Теория:

  1. Что такое индекс Hash?
  2. Для чего используется оператор CAST?
 

Практика:
Преобразуйте поле цена из таблицы "Товары" в тип INTEGER.

 

Ответы:

  1. Hash-индекс использует хэш-функцию для быстрого поиска данных, но работает только с равенством.
  2. CAST преобразует данные из одного типа в другой.
  3. Используйте CAST для преобразования поля цена в тип INTEGER.
 

Билет 38

Теория:

  1. Что такое база данных в памяти?
  2. В чем разница между COUNT и SUM?
 

Практика:
Подсчитайте общую сумму всех заказов из таблицы "Заказы" .

 

Ответы:

  1. База данных в памяти хранит данные в оперативной памяти для максимальной производительности.
  2. COUNT считает количество строк, а SUM вычисляет сумму значений.
  3. Используйте SUM для подсчета общей суммы всех заказов из таблицы "Заказы".
 

Билет 39

Теория:

  1. Что такое база данных NewSQL?
  2. Для чего используется оператор EXTRACT?
 

Практика:
Извлеките год из поля дата_заказа в таблице "Заказы" .

 

Ответы:

  1. NewSQL — это гибридные БД, сочетающие преимущества SQL и NoSQL для масштабирования и ACID-совместимости.
  2. EXTRACT извлекает часть даты или времени (год, месяц, день).
  3. Используйте EXTRACT для извлечения года из поля дата_заказа.
 

Билет 40

Теория:

  1. Что такое база данных многомодельного типа?
  2. В чем разница между DISTINCT и GROUP BY?
 

Практика:
Выберите уникальные категории товаров из таблицы "Товары" .

 

Ответы:

  1. Многомодельная БД поддерживает несколько моделей данных (реляционную, документную, графовую) в одной системе.
  2. DISTINCT удаляет дубликаты, а GROUP BY группирует данные для агрегации.
  3. Используйте DISTINCT для выбора уникальных категорий товаров из таблицы "Товары".

Тесты для оценки навыков: Junior-разработчик баз данных

Формат теста: 1 вопрос с 4 вариантами ответов (один правильный).

 

Тест 1

Вопрос: Что такое SQL-инъекция?

  1. Метод оптимизации запросов к базе данных.
  2. Атака, при которой злоумышленник внедряет вредоносный код через SQL-запросы. ✅
  3. Способ создания индексов для ускорения поиска.
  4. Процесс нормализации базы данных.
 

Тест 2

Вопрос: Какой оператор используется для фильтрации строк в SQL?

  1. GROUP BY
  2. ORDER BY
  3. WHERE
  4. JOIN
 

Тест 3

Вопрос: Какая из следующих функций используется для подсчета количества строк в таблице?

  1. SUM()
  2. COUNT()
  3. MAX()
  4. AVG()
 

Тест 4

Вопрос: Что такое первичный ключ в базе данных?

  1. Поле, которое может содержать дубликаты.
  2. Поле, которое уникально идентифицирует каждую запись в таблице. ✅
  3. Поле, которое используется только для внешних связей.
  4. Поле, которое всегда имеет тип VARCHAR.
 

Тест 5

Вопрос: Какой тип JOIN возвращает только совпадающие строки из обеих таблиц?

  1. LEFT JOIN
  2. RIGHT JOIN
  3. INNER JOIN
  4. FULL OUTER JOIN
 

Тест 6

Вопрос: Какая команда используется для удаления таблицы из базы данных?

  1. DELETE TABLE
  2. DROP TABLE
  3. REMOVE TABLE
  4. CLEAR TABLE
 

Тест 7

Вопрос: Что такое транзакция в базе данных?

  1. Процесс создания резервной копии данных.
  2. Набор операций, которые выполняются как одно целое (ACID). ✅
  3. Процесс нормализации таблиц.
  4. Операция добавления новых данных в таблицу.
 

Тест 8

Вопрос: Какой оператор используется для сортировки данных в SQL?

  1. SORT BY
  2. ORDER BY
  3. GROUP BY
  4. FILTER BY
 

Тест 9

Вопрос: Что делает оператор DISTINCT?

  1. Удаляет дубликаты из результатов запроса. ✅
  2. Группирует данные для агрегации.
  3. Фильтрует строки по условию.
  4. Сортирует данные в алфавитном порядке.
 

Тест 10

Вопрос: Какой тип данных используется для хранения чисел с плавающей запятой?

  1. INT
  2. FLOAT
  3. VARCHAR
  4. DATE
 

Тест 11

Вопрос: Что такое денормализация?

  1. Процесс разделения таблиц для устранения избыточности.
  2. Добавление избыточности данных для повышения производительности чтения. ✅
  3. Удаление всех индексов из таблицы.
  4. Очистка базы данных от ненужных записей.
 

Тест 12

Вопрос: Какой оператор используется для объединения результатов двух запросов без дубликатов?

  1. UNION ALL
  2. UNION
  3. JOIN
  4. MERGE
 

Тест 13

Вопрос: Что такое индекс в базе данных?

  1. Структура данных для ускорения поиска и сортировки. ✅
  2. Поле, которое всегда является первичным ключом.
  3. Тип данных для хранения больших текстовых значений.
  4. Процесс удаления данных из таблицы.
 

Тест 14

Вопрос: Какая команда используется для изменения структуры таблицы?

  1. ALTER TABLE
  2. MODIFY TABLE
  3. UPDATE TABLE
  4. CHANGE TABLE
 

Тест 15

Вопрос: Что такое ACID в контексте баз данных?

  1. Свойства транзакций: атомарность, согласованность, изолированность, долговечность. ✅
  2. Алгоритм шифрования данных.
  3. Метод оптимизации запросов.
  4. Тип индекса для быстрого поиска.
 

Тест 16

Вопрос: Какой оператор используется для группировки данных в SQL?

  1. ORDER BY
  2. GROUP BY
  3. SORT BY
  4. FILTER BY
 

Тест 17

Вопрос: Что такое хранимая процедура?

  1. Предварительно скомпилированный набор SQL-команд, который можно вызывать. ✅
  2. Временная таблица для хранения промежуточных данных.
  3. Инструмент для восстановления базы данных.
  4. Метод защиты от SQL-инъекций.
 

Тест 18

Вопрос: Какой оператор используется для проверки диапазона значений?

  1. IN
  2. BETWEEN
  3. LIKE
  4. EXISTS
 

Тест 19

Вопрос: Что такое внешний ключ?

  1. Поле, которое ссылается на первичный ключ другой таблицы. ✅
  2. Поле, которое всегда уникально.
  3. Поле, которое используется только для индексации.
  4. Поле, которое содержит только числовые значения.
 

Тест 20

Вопрос: Какой оператор используется для поиска по шаблону?

  1. MATCH
  2. LIKE
  3. SEARCH
  4. FIND

Тест 21

Вопрос: Что такое представление (VIEW) в SQL?

  1. Временная таблица, которая хранится в оперативной памяти.
  2. Виртуальная таблица, основанная на результатах SQL-запроса. ✅
  3. Инструмент для создания индексов.
  4. Метод защиты данных от несанкционированного доступа.
 

Тест 22

Вопрос: Какой тип JOIN возвращает все строки из левой таблицы и совпадающие из правой?

  1. INNER JOIN
  2. LEFT JOIN
  3. RIGHT JOIN
  4. FULL OUTER JOIN
 

Тест 23

Вопрос: Что такое нормализация базы данных?

  1. Процесс разделения таблиц для устранения избыточности данных. ✅
  2. Добавление избыточности данных для повышения производительности.
  3. Создание индексов для ускорения запросов.
  4. Удаление всех внешних ключей из таблиц.
 

Тест 24

Вопрос: Какой оператор используется для фильтрации групп после агрегации?

  1. WHERE
  2. HAVING
  3. GROUP BY
  4. ORDER BY
 

Тест 25

Вопрос: Что делает оператор LIMIT?

  1. Ограничивает количество возвращаемых строк. ✅
  2. Сортирует данные по указанному столбцу.
  3. Группирует данные для агрегации.
  4. Фильтрует строки по условию.
 

Тест 26

Вопрос: Какой тип данных используется для хранения даты в SQL?

  1. VARCHAR
  2. DATE
  3. FLOAT
  4. TEXT
 

Тест 27

Вопрос: Что такое триггер в базе данных?

  1. Автоматически выполняемая процедура при определенных событиях (INSERT, UPDATE). ✅
  2. Инструмент для создания индексов.
  3. Метод защиты от SQL-инъекций.
  4. Процесс восстановления данных из резервной копии.
 

Тест 28

Вопрос: Какой оператор используется для объединения результатов двух запросов с дубликатами?

  1. UNION ALL
  2. UNION
  3. JOIN
  4. MERGE
 

Тест 29

Вопрос: Что такое партиционирование таблиц?

  1. Разделение таблицы на части для улучшения производительности запросов. ✅
  2. Удаление всех индексов из таблицы.
  3. Создание временных таблиц.
  4. Процесс нормализации базы данных.
 

Тест 30

Вопрос: Какой тип данных используется для хранения больших текстовых значений?

  1. INT
  2. TEXT
  3. VARCHAR
  4. DATE
 

Тест 31

Вопрос: Что такое оконные функции в SQL?

  1. Функции, выполняющие вычисления над набором строк без группировки данных. ✅
  2. Функции, которые работают только с индексированными столбцами.
  3. Инструмент для создания индексов.
  4. Метод защиты от SQL-инъекций.
 

Тест 32

Вопрос: Какой оператор используется для проверки существования записей?

  1. IN
  2. EXISTS
  3. LIKE
  4. BETWEEN
 

Тест 33

Вопрос: Что такое каскадное удаление (CASCADE)?

  1. Автоматическое удаление связанных записей при удалении родительской записи. ✅
  2. Удаление всех данных из таблицы.
  3. Процесс восстановления данных из резервной копии.
  4. Добавление новых записей в таблицу.
 

Тест 34

Вопрос: Какой оператор используется для замены NULL-значений?

  1. COALESCE
  2. REPLACE
  3. NULLIF
  4. CAST
 

Тест 35

Вопрос: Что такое временная таблица?

  1. Таблица, которая существует только в течение сессии. ✅
  2. Таблица, которая хранит данные в оперативной памяти.
  3. Таблица, которая используется только для индексации.
  4. Таблица, которая содержит только числовые значения.
 

Тест 36

Вопрос: Какой тип JOIN возвращает все строки из обеих таблиц?

  1. INNER JOIN
  2. FULL OUTER JOIN
  3. LEFT JOIN
  4. RIGHT JOIN
 

Тест 37

Вопрос: Что такое полнотекстовый поиск в SQL?

  1. Поиск данных по ключевым словам или фразам с учетом релевантности. ✅
  2. Поиск данных по точному совпадению.
  3. Поиск данных только в числовых столбцах.
  4. Поиск данных в индексированных таблицах.
 

Тест 38

Вопрос: Какой оператор используется для пропуска определенного количества строк?

  1. OFFSET
  2. SKIP
  3. IGNORE
  4. PASS
 

Тест 39

Вопрос: Что такое база данных NoSQL?

  1. База данных, предназначенная для работы с большими объемами неструктурированных данных. ✅
  2. База данных, использующая только числовые значения.
  3. База данных, которая поддерживает только SQL-запросы.
  4. База данных, которая хранит данные только в оперативной памяти.
 

Тест 40

Вопрос: Какой оператор используется для преобразования типа данных?

  1. CONVERT
  2. CAST
  3. CHANGE
  4. TRANSFORM

Кейс: Разработка системы управления складом для розничной сети


Сценарий:

Вы работаете в команде разработчиков, которая создает систему управления складом для крупной розничной сети. Компания имеет несколько складов, где хранятся товары различных категорий. Система должна позволять отслеживать наличие товаров, управлять поставками, формировать отчеты и обеспечивать высокую производительность при работе с большими объемами данных.

 

Цели проекта:

  1. Создать базу данных для хранения информации о товарах, складах, поставках и заказах.
  2. Обеспечить возможность быстрого поиска товаров, анализа запасов и генерации отчетов.
  3. Оптимизировать производительность запросов для работы с большими объемами данных.
  4. Защитить данные от несанкционированного доступа и SQL-инъекций.
 

Задачи:

1. Проектирование базы данных (Junior)
  • Создайте ER-диаграмму для следующих сущностей:
    • Товары : id, название, категория, цена, количество.
    • Склады : id, адрес, вместимость.
    • Поставки : id, id_товара, id_склада, дата_поставки, количество.
    • Заказы : id, id_клиента, id_товара, дата_заказа, статус.
  • Убедитесь, что таблицы связаны через первичные и внешние ключи.
  • Нормализуйте структуру до 3NF.
 
2. Реализация базы данных (Middle)
  • Напишите SQL-скрипт для создания таблиц на основе ER-диаграммы.
  • Добавьте ограничения:
    • Поле цена должно быть больше 0.
    • Поле количество не может быть отрицательным.
    • Поле email клиента должно быть уникальным.
  • Создайте индексы для часто используемых полей (например, название товаров, дата_поставки).
 
3. Оптимизация производительности (Senior)
  • Проанализируйте план выполнения запросов для следующих операций:
    • Поиск всех товаров определенной категории на складе.
    • Подсчет общего количества товаров на каждом складе.
  • Добавьте индексы или партиционирование таблиц для улучшения производительности.
  • Настройте кэширование для часто запрашиваемых данных.
 
4. Безопасность и защита данных (Middle)
  • Защитите систему от SQL-инъекций, используя параметризованные запросы.
  • Создайте роли пользователей:
    • Администратор : полный доступ ко всем данным.
    • Менеджер склада : доступ только к данным о товарах и поставках.
    • Клиент : доступ только к своим заказам.
  • Настройте права доступа для каждой роли.
 
5. Генерация отчетов (Middle)
  • Напишите хранимые процедуры для формирования отчетов:
    • Отчет о текущем количестве товаров на каждом складе.
    • Отчет о поставках за последний месяц.
    • Отчет о самых продаваемых товарах за период.
  • Используйте оконные функции для расчета рангов товаров по популярности.
 
6. Масштабирование и отказоустойчивость (Senior)
  • Настройте репликацию базы данных для обеспечения отказоустойчивости.
  • Разработайте стратегию шардирования для распределения данных между несколькими серверами.
  • Настройте автоматическое резервное копирование базы данных.
 

Дополнительные задачи:

7. Работа с JSON (Middle)
  • Добавьте поддержку JSON для хранения дополнительных характеристик товаров (например, цвет, размер).
  • Напишите запросы для выборки товаров с определенными характеристиками.
 
8. Триггеры и аудит (Junior)
  • Создайте триггер, который записывает изменения в таблице Товары в таблицу Журнал_изменений.
  • Настройте автоматическое обновление поля дата_обновления при изменении записи.
 
9. Анализ данных (Senior)
  • Используйте CTE (Common Table Expressions) для анализа данных о заказах:
    • Найдите клиентов, которые сделали более 10 заказов за последний год.
    • Рассчитайте среднюю стоимость заказов по каждой категории товаров.
 

Итоговый проект:

Подготовьте презентацию, включающую:

  1. ER-диаграмму вашей базы данных.
  2. Описание ключевых решений (нормализация, индексы, безопасность).
  3. Примеры SQL-запросов и хранимых процедур.
  4. Результаты оптимизации производительности (планы запросов до и после).
  5. План масштабирования и отказоустойчивости.
 

Ожидаемый результат:

  • Функциональная база данных, готовая к использованию в реальной системе.
  • Эффективные решения для работы с большими объемами данных.
  • Защищенная система с четким разделением прав доступа.
  • Готовые инструменты для анализа данных и генерации отчетов.
 

Уровень сложности:

  • Junior: Проектирование базы данных, работа с простыми запросами, создание триггеров.
  • Middle: Реализация базы данных, оптимизация запросов, работа с JSON, написание хранимых процедур.
  • Senior: Масштабирование, отказоустойчивость, глубокая оптимизация, анализ данных с использованием сложных запросов.

Ролевые игры для разработчиков баз данных

Каждая ролевая игра включает описание сценария, задачи и уровень сложности (Junior, Middle, Senior).

 

1. Создание базы данных для интернет-магазина

Сценарий: Вы работаете над проектом интернет-магазина, который требует хранения данных о клиентах, товарах и заказах.
Задача: Спроектировать ER-диаграмму и реализовать базу данных с таблицами Клиенты, Товары, Заказы.
Уровень сложности: Junior

 

2. Оптимизация запросов для отчетов

Сценарий: Компания жалуется на медленную генерацию отчетов по продажам.
Задача: Проанализировать план выполнения запросов, создать индексы и оптимизировать производительность.
Уровень сложности: Middle

 

3. Устранение SQL-инъекций

Сценарий: В системе обнаружена уязвимость: злоумышленник может внедрить вредоносный код через форму авторизации.
Задача: Переписать код для защиты от SQL-инъекций, используя параметризованные запросы.
Уровень сложности: Junior

 

4. Миграция данных из старой системы

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

 

5. Разработка хранимой процедуры для расчета бонусов

Сценарий: Компания хочет автоматизировать расчет бонусов для сотрудников на основе их продаж.
Задача: Написать хранимую процедуру, которая рассчитывает бонусы и сохраняет результаты в таблицу.
Уровень сложности: Middle

 

6. Реализация триггера для аудита изменений

Сценарий: Необходимо отслеживать все изменения в таблице Заказы (добавление, обновление, удаление).
Задача: Создать триггер, который записывает изменения в таблицу Аудит.
Уровень сложности: Junior

 

7. Шардирование базы данных для высоконагруженного приложения

Сценарий: Приложение испытывает нагрузку, и требуется разделить данные между несколькими серверами.
Задача: Разработать стратегию шардирования и реализовать её для таблицы Пользователи.
Уровень сложности: Senior

 

8. Поиск и устранение узких мест в производительности

Сценарий: База данных работает медленно, и необходимо выявить причины.
Задача: Использовать инструменты мониторинга (например, EXPLAIN) для анализа запросов и устранения проблем.
Уровень сложности: Middle

 

9. Работа с JSON в базе данных

Сценарий: Необходимо хранить и обрабатывать данные в формате JSON для нового API.
Задача: Создать таблицу с полем JSON, написать запросы для выборки и обновления данных.
Уровень сложности: Middle

 

10. Создание временной таблицы для аналитики

Сценарий: Для ежедневного анализа продаж требуется создавать временную таблицу с агрегированными данными.
Задача: Написать скрипт для создания и заполнения временной таблицы.
Уровень сложности: Junior

 

11. Реализация партиционирования таблиц

Сценарий: Таблица Логи занимает много места, и требуется оптимизировать её хранение.
Задача: Разделить таблицу на партиции по дате.
Уровень сложности: Middle

 

12. Настройка резервного копирования

Сценарий: Компания требует автоматическое резервное копирование базы данных каждые 6 часов.
Задача: Настроить скрипт для создания бэкапов и восстановления данных.
Уровень сложности: Junior

 

13. Интеграция NoSQL с реляционной БД

Сценарий: Необходимо добавить поддержку NoSQL для хранения неструктурированных данных.
Задача: Интегрировать MongoDB с существующей реляционной БД.
Уровень сложности: Senior

 

14. Разработка представления для аналитики

Сценарий: Аналитикам нужен удобный способ просмотра данных о продажах.
Задача: Создать представление (VIEW), которое объединяет данные из нескольких таблиц.
Уровень сложности: Junior

 

15. Оптимизация индексов для больших таблиц

Сценарий: Таблица Заказы содержит миллионы записей, и запросы работают медленно.
Задача: Проанализировать и оптимизировать индексы для повышения производительности.
Уровень сложности: Middle

 

16. Создание базы данных для системы управления проектами

Сценарий: Необходимо разработать базу данных для хранения данных о проектах, задачах и командах.
Задача: Спроектировать ER-диаграмму и реализовать БД.
Уровень сложности: Junior

 

17. Реализация полнотекстового поиска

Сценарий: Пользователям нужна возможность искать товары по ключевым словам.
Задача: Настроить полнотекстовый поиск для таблицы Товары.
Уровень сложности: Middle

 

18. Разработка системы ролей и прав доступа

Сценарий: Необходимо настроить права доступа для разных групп пользователей.
Задача: Создать роли и назначить им соответствующие права.
Уровень сложности: Junior

 

19. Масштабирование базы данных в облаке

Сценарий: Компания планирует перенести базу данных в облачное решение (например, AWS RDS).
Задача: Разработать план миграции и масштабирования.
Уровень сложности: Senior

 

20. Реализация оконных функций для аналитики

Сценарий: Необходимо рассчитать ранги клиентов по объему заказов.
Задача: Использовать оконные функции для расчета рангов.
Уровень сложности: Middle

 

21. Создание базы данных для системы онлайн-обучения

Сценарий: Разработайте БД для хранения данных о курсах, студентах и их прогрессе.
Задача: Спроектировать ER-диаграмму и реализовать БД.
Уровень сложности: Junior

 

22. Реализация репликации базы данных

Сценарий: Необходимо настроить репликацию для обеспечения отказоустойчивости.
Задача: Настроить мастер-слейв репликацию.
Уровень сложности: Senior

 

23. Разработка системы логирования действий пользователей

Сценарий: Компания хочет отслеживать действия пользователей в системе.
Задача: Создать таблицу логов и настроить автоматическое заполнение.
Уровень сложности: Middle

 

24. Оптимизация хранения больших файлов

Сценарий: Необходимо хранить и эффективно извлекать большие файлы (например, изображения).
Задача: Разработать стратегию хранения и доступа к файлам.
Уровень сложности: Senior

 

25. Создание базы данных для системы бронирования

Сценарий: Разработайте БД для хранения данных о бронировании отелей.
Задача: Спроектировать ER-диаграмму и реализовать БД.
Уровень сложности: Junior

 

26. Реализация каскадного удаления

Сценарий: Необходимо настроить автоматическое удаление связанных записей при удалении родительской записи.
Задача: Добавить внешний ключ с каскадным удалением.
Уровень сложности: Junior

 

27. Анализ данных с использованием CTE

Сценарий: Необходимо проанализировать данные о продажах за последний месяц.
Задача: Написать запрос с использованием CTE.
Уровень сложности: Middle

 

28. Разработка системы мониторинга базы данных

Сценарий: Компания хочет отслеживать состояние базы данных в реальном времени.
Задача: Создать систему мониторинга с использованием триггеров и логов.
Уровень сложности: Senior

 

29. Создание базы данных для системы голосования

Сценарий: Разработайте БД для хранения данных о голосовании и участниках.
Задача: Спроектировать ER-диаграмму и реализовать БД.
Уровень сложности: Junior

 

30. Реализация партиционирования по времени

Сценарий: Необходимо разделить данные по временным периодам для улучшения производительности.
Задача: Настроить партиционирование таблицы Логи по месяцам.
Уровень сложности: Middle

19:13
18
Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.