Table of Contents
Базы данных
<!– базы_данных&navbar –>
🎓 Лабораторные работы
Лабораторные работы 6-10 🚀 ТОП-ИТ уровня .
🎯 Лабораторная работа 1. Проектирование структуры БД
Важно! Согласовать модель с преподавателем до продолжения работы
Цель: Спроектировать структуру базы данных, соответствующую бизнес-требованиям и нормализованную до 3NF.
📋 Требования:
| Требование | Описание |
|---|---|
| Требование 1 | Соответствие всем частям задания (структура + выходные документы) |
| Требование 2 | 3-5 таблиц в базе данных |
| Требование 3 | Нормализация до третьей нормальной формы |
🚀 Шаги выполнения:
- Выбор задачи из учебных пособий:
- Задачи, сгенерированные нейронной сетью
- Проектирование ER-диаграммы в современных инструментах:
- DBDiagram (рекомендуется)
- Валидация модели через Deepseek
- Согласование полученной модели с преподавателем
📊 Пример проекта: Github репозиторий
🎯 Лабораторная работа 2. Инсталляция БД на сервере
Цель: Практическое развертывание базы данных и работа с SQL.
🔧 Инструменты:
- СУБД: PostgreSQL 15+
📋 Задачи:
- Преобразование ER-диаграммы в логическую модель
- Проектирование физической модели
- Создание DDL-запросов для PostgreSQL
- Заполнение таблиц данными (минимум 4 строки)
- Проверка при помощи Deepseek 4 и 5 нормальных форм (по желанию)
- Делаете дамп вашей схемы данных (для командной строки пример - 'pg_dump -n eugeneai –insert study') в клиенте
- Отдаете в ваш чат Deepseek с запросом на проверку
- Добавляете результат в отчет
- Выполнение содержательных SELECT-запросов с JOIN 2-3 таблиц (Выходные документы по заданию, их два!)
-- Пример запроса с JOIN SELECT u.name, o.order_date, p.product_name FROM users u JOIN orders o ON u.id = o.user_id JOIN products p ON o.product_id = p.id;
🎯 Лабораторная работа 3. Представления и процедуры
Цель: Освоение механизмов абстракции данных и программных модулей.
📋 Задачи:
- Создание представлений для выходных документов
- Разработка хранимых процедур с параметрами
- Представление сложных запросов при помощи представления
-- Пример создания представления CREATE VIEW sales_report AS SELECT c.name, SUM(o.amount) AS total_sales FROM customers c JOIN orders o ON c.id = o.customer_id GROUP BY c.name;
🎯 Лабораторная работа 4. Анализ производительности
Цель: Освоение методов анализа и оптимизации производительности БД.
📋 Задачи:
- Создание генератора данных (20 000 записей в каждой таблице)
- Анализ планов выполнения запросов (EXPLAIN ANALYZE)
- Оптимизация БД через индексы и настройки
- Сравнение производительности до/после оптимизации
🔧 Инструменты:
EXPLAIN (ANALYZE, BUFFERS) SELECT * FROM large_table WHERE condition;
🎯 Лабораторная работа 5. Триггеры и аудит
Цель: Реализация бизнес-логики на уровне БД и системы аудита.
📋 Задачи:
- Триггеры каскадного удаления для связей “один-ко-многим”
- Триггеры аудита изменений (INSERT, UPDATE, DELETE)
- Создание таблицы-журнала для отслеживания изменений
-- Пример триггера аудита CREATE TRIGGER audit_customer_changes AFTER INSERT OR UPDATE OR DELETE ON customers FOR EACH ROW EXECUTE FUNCTION log_customer_changes();
🚀 ТОП-ИТ УРОВЕНЬ
Лабораторные работы 6-10 🚀 ТОП-ИТ уровня .
📈 Система оценивания
🎓 Базовый уровень (лабы 1-5):
| Лабораторная | Макс. балл | Срок сдачи |
|---|---|---|
| Лаб 1. Проектирование | 20 | 3 недели |
| Лаб 2. Инсталляция | 25 | 2 недели |
| Лаб 3. Представления | 20 | 2 недели |
| Лаб 4. Производительность | 20 | 2 недели |
| Лаб 5. Триггеры | 15 | 2 недели |
| Итого | 100 |
🚀 ТОП-ИТ уровень (лабы 6-10):
| Лабораторная | Макс. балл | Бонусы |
|---|---|---|
| Лаб 6. Репликация | 25 | +5 к итогу |
| Лаб 7. CI/CD | 25 | +5 к итогу |
| Лаб 8. Оптимизация | 25 | +5 к итогу |
| Лаб 9. Безопасность | 25 | +5 к итогу |
| Лаб 10. NoSQL | 25 | +5 к итогу |
Примечание: Лабораторные 6-10 являются дополнительными и выполняются по желанию для повышения оценки
