Базы данных
🎓 Лабораторные работы: 🚀 ТОП-ИТ УРОВЕНЬ
💡 Лабораторная работа 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
Реализация гибридного решения
🔧 Стек технологий:
📈 Система оценивания
🎓 Базовый уровень (лабы 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 являются дополнительными и выполняются по желанию для повышения оценки
🔗 Ресурсы и контакты
📚 Учебные материалы:
💼 Платформы для сдачи:
📞 Контакты:
Telegram: @eugeneai
Пример организации проекта:
GitHub
Совет: Начните работу заранее - сложные лабораторные требуют глубокого понимания и времени на отладку!
базы_данных лабораторные_работы postgresql топ-ит