db:new
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| db:new [2025/10/08 08:29] – [💡 Лабораторная работа 6. Репликация и кластеризация] eugeneai | db:new [2025/10/08 08:53] (current) – [📈 Система оценивания] eugeneai | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Базы данных ====== | ====== Базы данных ====== | ||
| - | {{topic> | + | ===== 🎓 Лабораторные работы: |
| - | + | ||
| - | ===== 🎓 Лабораторные работы | + | |
| - | + | ||
| - | ==== 🎯 Лабораторная работа 1. Проектирование структуры БД ==== | + | |
| - | + | ||
| - | <wrap important> | + | |
| - | + | ||
| - | **Цель**: Спроектировать структуру базы данных, | + | |
| - | + | ||
| - | **📋 Требования: | + | |
| - | | Требование | Описание | | + | |
| - | |------------|----------| | + | |
| - | | **Требование 1** | Соответствие всем частям задания (структура + выходные документы) | | + | |
| - | | **Требование 2** | 3-5 таблиц в базе данных | | + | |
| - | | **Требование 3** | Нормализация до третьей нормальной формы | | + | |
| - | + | ||
| - | **🚀 Шаги выполнения: | + | |
| - | 1. **Выбор задачи** из учебных пособий: | + | |
| - | * {{db: | + | |
| - | * Задачи, | + | |
| - | 2. **Проектирование ER-диаграммы** в современных инструментах: | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | * [[https:// | + | |
| - | 3. **Валидация модели** через [[https:// | + | |
| - | 4. **Согласование** полученной модели с преподавателем | + | |
| - | + | ||
| - | **📊 Пример проекта: | + | |
| - | + | ||
| - | ==== 🎯 Лабораторная работа 2. Инсталляция БД на сервере ==== | + | |
| - | + | ||
| - | **Цель**: | + | |
| - | + | ||
| - | **🔧 Инструменты: | + | |
| - | * **Клиент БД**: [[https:// | + | |
| - | * **СУБД**: | + | |
| - | + | ||
| - | **📋 Задачи: | + | |
| - | - Преобразование ER-диаграммы в логическую модель | + | |
| - | - Проектирование физической модели | + | |
| - | - Создание DDL-запросов для PostgreSQL | + | |
| - | - Заполнение таблиц данными (минимум 4 строки) | + | |
| - | - Выполнение содержательных SELECT-запросов с JOIN 2-3 таблиц | + | |
| - | + | ||
| - | <code sql> | + | |
| - | -- Пример запроса с JOIN | + | |
| - | SELECT u.name, o.order_date, | + | |
| - | FROM users u | + | |
| - | JOIN orders o ON u.id = o.user_id | + | |
| - | JOIN products p ON o.product_id = p.id; | + | |
| - | </ | + | |
| - | + | ||
| - | ==== 🎯 Лабораторная работа 3. Представления и процедуры ==== | + | |
| - | + | ||
| - | **Цель**: | + | |
| - | + | ||
| - | **📋 Задачи: | + | |
| - | - Создание представлений для выходных документов | + | |
| - | - Разработка хранимых процедур с параметрами | + | |
| - | - Оптимизация запросов через представления | + | |
| - | + | ||
| - | <code sql> | + | |
| - | -- Пример создания представления | + | |
| - | 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) | + | |
| - | - Оптимизация БД через индексы и настройки | + | |
| - | - Сравнение производительности до/ | + | |
| - | + | ||
| - | **🔧 Инструменты: | + | |
| - | ```sql | + | |
| - | EXPLAIN (ANALYZE, BUFFERS) | + | |
| - | SELECT * FROM large_table WHERE condition; | + | |
| - | ``` | + | |
| - | + | ||
| - | ==== 🎯 Лабораторная работа 5. Триггеры и аудит ==== | + | |
| - | + | ||
| - | **Цель**: | + | |
| - | + | ||
| - | **📋 Задачи: | + | |
| - | - Триггеры каскадного удаления для связей " | + | |
| - | - Триггеры аудита изменений (INSERT, UPDATE, DELETE) | + | |
| - | - Создание таблицы-журнала для отслеживания изменений | + | |
| - | + | ||
| - | <code sql> | + | |
| - | -- Пример триггера аудита | + | |
| - | CREATE TRIGGER audit_customer_changes | + | |
| - | AFTER INSERT OR UPDATE OR DELETE ON customers | + | |
| - | FOR EACH ROW EXECUTE FUNCTION log_customer_changes(); | + | |
| - | </ | + | |
| - | + | ||
| - | ===== 🚀 ТОП-ИТ УРОВЕНЬ ===== | + | |
| ==== 💡 Лабораторная работа 6. Репликация и кластеризация ==== | ==== 💡 Лабораторная работа 6. Репликация и кластеризация ==== | ||
| - | <wrap tip>**Продвинутый уровень: | + | **Продвинутый уровень: |
| **Цель**: | **Цель**: | ||
| Line 119: | Line 16: | ||
| **🔧 Технологии: | **🔧 Технологии: | ||
| - | * **Docker** для контейнеризации | + | |
| - | * **PgPool-II** для балансировки нагрузки | + | * **PgPool-II** для балансировки нагрузки |
| - | * **WAL-G** для непрерывного архивирования | + | * **WAL-G** для непрерывного архивирования |
| **📊 Критерии оценки: | **📊 Критерии оценки: | ||
| Line 138: | Line 35: | ||
| - Реализация отката миграций (rollback) | - Реализация отката миграций (rollback) | ||
| - Интеграция с GitLab CI/GitHub Actions | - Интеграция с GitLab CI/GitHub Actions | ||
| + | |||
| **📁 Структура проекта: | **📁 Структура проекта: | ||
| Line 149: | Line 47: | ||
| └── docker-compose.yml | └── docker-compose.yml | ||
| </ | </ | ||
| + | |||
| ==== 💡 Лабораторная работа 8. Оптимизация для высоких нагрузок ==== | ==== 💡 Лабораторная работа 8. Оптимизация для высоких нагрузок ==== | ||
| Line 160: | Line 59: | ||
| **📊 Метрики для мониторинга: | **📊 Метрики для мониторинга: | ||
| - | * QPS (Queries Per Second) | + | |
| - | * Latency (время ответа) | + | * Latency (время ответа) |
| - | * Connection pool usage | + | * Connection pool usage |
| - | * Cache hit ratio | + | * Cache hit ratio |
| ==== 💡 Лабораторная работа 9. Безопасность и авторизация ==== | ==== 💡 Лабораторная работа 9. Безопасность и авторизация ==== | ||
| Line 192: | Line 91: | ||
| **🔧 Стек технологий: | **🔧 Стек технологий: | ||
| - | * **PostgreSQL** с JSONB | + | |
| - | * **MongoDB** для документного хранения | + | |
| - | * **Redis** для кэширования | + | * **MongoDB** для документного хранения |
| + | * **Redis** для кэширования | ||
| ===== 📈 Система оценивания ===== | ===== 📈 Система оценивания ===== | ||
| Line 206: | Line 106: | ||
| | Лаб 5. Триггеры | 15 | 2 недели | | | Лаб 5. Триггеры | 15 | 2 недели | | ||
| | **Итого** | **100** | | | | **Итого** | **100** | | | ||
| + | |||
| **🚀 ТОП-ИТ уровень (лабы 6-10):** | **🚀 ТОП-ИТ уровень (лабы 6-10):** | ||
| Line 215: | Line 116: | ||
| | Лаб 10. NoSQL | 25 | +5 к итогу | | | Лаб 10. NoSQL | 25 | +5 к итогу | | ||
| - | <wrap important> | + | **Примечание: |
| ===== 🔗 Ресурсы и контакты ===== | ===== 🔗 Ресурсы и контакты ===== | ||
| **📚 Учебные материалы: | **📚 Учебные материалы: | ||
| - | * {{db: | + | |
| - | * [[db: | + | * [[db: |
| - | * [[https:// | + | * [[https:// |
| **💼 Платформы для сдачи: | **💼 Платформы для сдачи: | ||
| - | * [[https:// | + | |
| - | * [[https:// | + | * [[https:// |
| **📞 Контакты: | **📞 Контакты: | ||
| - | * **Telegram**: | + | |
| - | * **Пример организации проекта**: | + | * **Пример организации проекта**: |
| - | <wrap tip>**Совет: | + | **Совет: |
| {{tag> | {{tag> | ||
db/new.1759883344.txt.gz · Last modified: by eugeneai
