====== Базы данных ====== ===== 🎓 Лабораторные работы: 🚀 ТОП-ИТ УРОВЕНЬ ===== ==== 💡 Лабораторная работа 6. Репликация и кластеризация ==== **Продвинутый уровень:** Работа с распределенными системами **Цель**: Освоение принципов построения отказоустойчивых систем. **📋 Задачи:** - Настройка master-slave репликации PostgreSQL - Создание кластера из 2-х узлов - Тестирование отказоустойчивости - Нагрузочное тестирование кластера **🔧 Технологии:** * **Docker** для контейнеризации * **PgPool-II** для балансировки нагрузки * **WAL-G** для непрерывного архивирования **📊 Критерии оценки:** ^ Задача ^ Баллы ^ | Настройка репликации | 40 | | Тестирование отказоустойчивости | 30 | | Документация архитектуры | 30 | ==== 💡 Лабораторная работа 7. Миграции и CI/CD для БД ==== **Цель**: Освоение современных практик управления изменениями БД. **📋 Задачи:** - Настройка Flyway/Liquibase для миграций - Создание pipeline для автоматического развертывания - Реализация отката миграций (rollback) - Интеграция с GitLab CI/GitHub Actions **📁 Структура проекта:** db/ ├── migrations/ │ ├── V1__Create_tables.sql │ ├── V2__Add_indexes.sql │ └── V3__Insert_test_data.sql ├── flyway.conf └── docker-compose.yml ==== 💡 Лабораторная работа 8. Оптимизация для высоких нагрузок ==== **Цель**: Освоение техник оптимизации для high-load систем. **📋 Задачи:** - Партиционирование больших таблиц - Настройка connection pooling - Кэширование запросов с Redis - Мониторинг производительности с Prometheus + Grafana **📊 Метрики для мониторинга:** * QPS (Queries Per Second) * Latency (время ответа) * Connection pool usage * Cache hit ratio ==== 💡 Лабораторная работа 9. Безопасность и авторизация ==== **Цель**: Реализация комплексной системы безопасности БД. **📋 Задачи:** - Настройка RBAC (Role-Based Access Control) - Шифрование чувствительных данных - Аудит безопасности с помощью pgAudit - Создание политик row-level security -- Пример политики безопасности CREATE POLICY user_policy ON users FOR ALL USING (current_user = user_role); ==== 💡 Лабораторная работа 10. NoSQL и гибридные решения ==== **Цель**: Изучение альтернативных подходов к хранению данных. **📋 Задачи:** - Интеграция PostgreSQL с MongoDB - Использование JSONB для документной модели - Сравнение производительности SQL vs NoSQL - Реализация гибридного решения **🔧 Стек технологий:** * **PostgreSQL** с JSONB * **MongoDB** для документного хранения * **Redis** для кэширования ===== 📈 Система оценивания ===== **🎓 Базовый уровень (лабы 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 являются дополнительными и выполняются по желанию для повышения оценки ===== 🔗 Ресурсы и контакты ===== **📚 Учебные материалы:** * {{db:варианты_заданий_по_уд.pdf|Базовые задания}} * [[db:nn_tasks|Задания от нейросети]] * [[https://github.com/eugeneai/lab-db-2025-1|Пример проекта на GitHub]] **💼 Платформы для сдачи:** * [[https://github.com|GitHub]] * [[https://gitverse.ru|GitVerse]] (российский аналог) **📞 Контакты:** * **Telegram**: @eugeneai * **Пример организации проекта**: [[https://github.com/eugeneai/lab-db-2025-1|GitHub]] **Совет:** Начните работу заранее - сложные лабораторные требуют глубокого понимания и времени на отладку! {{tag>базы_данных лабораторные_работы postgresql топ-ит}}