====== Базы данных ======
===== 🎓 Лабораторные работы: 🚀 ТОП-ИТ УРОВЕНЬ =====
==== 💡 Лабораторная работа 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 топ-ит}}