- •Теория Базы данных и sql
- •Контейнеризация и Docker
- •Rest api и проектирование
- •Машинное обучение
- •Асинхронное программирование
- •Мобильная разработка и безопасность
- •Архитектура приложений
- •Практические задания Задание 1: sql (анализ оценок студентов)
- •Выполнение:
- •Задание 2: Docker (запуск FastApi-приложения в контейнере) доделать
- •Задание 3: rest api / FastApi (проектирование api для курсов)
- •Задание 4: Машинное обучение (определить тип ml-задачи)
Теория Базы данных и sql
1) Что такое SQL и почему он считается декларативным языком запросов к данным?
QL — декларативный язык. «Мы описываем, что хотим получить, а не как это вычислить»
SQL (Structured Query Language) — язык структурированных запросов к реляционным базам данных. Используется для:
получения данных
добавления, изменения и удаления данных
управления структурой таблицах
SQL работает с табличной моделью данных. Является декларированным языком запросов к данным потому что в теле запроса описывается то, какую информацию и из какой таблицы нужно получить и что с ней сделать.
2) Что такое реляционная база данных? Объясните роль таблиц, строк, столбцов, первичных и внешних ключей.
База данных — организованное хранилище информации, которое позволяет быстро находить данные, удобно их обновлять, работать с большими объемами информации.
Реляционная база данных — система, в которой данные хранятся в виде связанных таблиц. Главной идеей было то, что данные разделены по смыслу, но могут легко соединяться между собой.
Таблицы — конкретные хранилища данных. Описывают один тип объектов, имеют строки (объекты) и столбцы (свойства).
Столбцы — определяют какие именно данные могут храниться в таблице. Каждый столбец имеет уникальное имя и строгий тип данных.
Строки — базовый элемент, содержащий набор взаимосвязанных данных одного объекта.
Первичный ключ (Primary Key) — уникальный идентификатор строки, «паспорт» записи в таблице. В таблице не может быть двух строк с одним первичным ключом.
Внешний ключ (Foreign Key) — ссылка на первичный ключ другой таблицы, способ связать данные между собой
3) Опишите базовую структуру SQL-запроса, приведите пример. В каком логическом порядке база данных выполняет части запроса?
SELECT — что именно показать (выбор столбцов, вычисления, алиасы, агрегаты)
FROM — откуда берем данные (указывает таблицу или несколько таблиц, определяет источник данных)
WHERE — какие данные нам нужны (фильтрация строк, условия отбора)
Логический порядок выполнения запроса:
a) FROM — берет таблицу
b) WHERE — отбрасывает лишние строки
c) SELECT — формирует результат
Пример:
SELECT * FROM customers WHERE city = „Moscow“; |
4) Для чего используются фильтрация, сортировка и агрегация данных в SQL? Приведите примеры задач, где применяются WHERE, ORDER BY, GROUP BY.
Фильтрация (WHERE) определяет, какие строки попадут в результат запроса.
Пример:
SELECT name, sity FROM customers WHERE total_spent > 50000; |
Группировка (GROUP BY) объединяет строки по общему признаку и позволяет считать агрегаты. Было много строк → стало несколько групп строк.
Пример:
SELECT city, SUM(total_spent) AS total_revenue FROM customers GROUP BY city; |
Сортировка (ORDER BY) управляет порядком строк в результате SQL-запроса.
Пример:
SELECT name, total_spent FROM customers ORDER BY total_spent DESC; # сортировка по убыванию |
Агрегация данных работает с группой строк и возвращает одно значение (было много строк → стало одно значение). Часто используются с WHERE и почти всегда идут после GROUP BY.
Агрегатные функции: COUNT (количество), AVG (среднее значение), MIN/MAX (минимальное/максимальное значение), SUM (сумма)
Пример:
SELECT SUM(total_spent) FROM customers; |
5) Чем отличаются SQL-операции SELECT, INSERT, UPDATE, DELETE, CREATE и DROP? Почему при изменении и удалении данных важно использовать условия?
SELECT — выбирает, какие столбцы попадут в результат
INSERT — добавление новых строк в таблицу
UPDATE — изменение существующих строк в таблице
DELETE — удаление строк из таблицы
CREATE (TABLE) — создание новой таблицы в базе данных
DROP (TABLE) — удаление таблицы из базы данных
При изменении и удалении данных важно использовать условия потому что UPDATE и DELETE меняют данные навсегда. Для «безопасного режима» изменения данных можно использовать транзакции или заранее сделать бекап.
Пример:
Неправильно |
Правильно |
UPDATE customers SET total_spent = 0; # Обновляются все строки таблицы
|
SELECT * FROM customers WHERE condition UPDATE customers … # проверка перед обновлением |
