User Tools

Site Tools


db:main

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
db:main [2025/10/08 08:49] – [🎓 Лабораторные работы] eugeneaidb:main [2025/12/09 12:56] (current) – [🎯 Лабораторная работа 3. Представления и процедуры] eugeneai
Line 1: Line 1:
 ====== Базы данных ====== ====== Базы данных ======
  
-{{topic>базы_данных&navbar}}+<!-- {{topic>базы_данных&navbar}} -->
  
 ===== 🎓 Лабораторные работы ===== ===== 🎓 Лабораторные работы =====
  
-Лабораторные работы [[db:new|ТОП-ИТ уровня]].+Лабораторные работы 6-10 🚀 [[db:new|ТОП-ИТ уровня]] 8-). 
 ==== 🎯 Лабораторная работа 1. Проектирование структуры БД ==== ==== 🎯 Лабораторная работа 1. Проектирование структуры БД ====
  
Line 44: Line 45:
   - Создание DDL-запросов для PostgreSQL   - Создание DDL-запросов для PostgreSQL
   - Заполнение таблиц данными (минимум 4 строки)   - Заполнение таблиц данными (минимум 4 строки)
-  - Выполнение содержательных SELECT-запросов с JOIN 2-3 таблиц+  - Проверка при помощи Deepseek 4 и 5 нормальных форм (по желанию) 8-) 
 +    - Делаете дамп вашей схемы данных (для командной строки пример - 'pg_dump -n eugeneai --insert study') в клиенте 
 +    - Отдаете в ваш чат Deepseek с запросом на проверку 
 +    - Добавляете результат в отчет 
 +  - Выполнение содержательных SELECT-запросов с JOIN 2-3 таблиц (**Выходные документы по заданию**, их **два**!)
  
 <code sql> <code sql>
Line 53: Line 58:
 JOIN products p ON o.product_id = p.id; JOIN products p ON o.product_id = p.id;
 </code> </code>
 +
 +
  
 ==== 🎯 Лабораторная работа 3. Представления и процедуры ==== ==== 🎯 Лабораторная работа 3. Представления и процедуры ====
Line 61: Line 68:
   - Создание представлений для выходных документов   - Создание представлений для выходных документов
   - Разработка хранимых процедур с параметрами   - Разработка хранимых процедур с параметрами
-  - Оптимизация запросов через представления+  - Представление сложных запросов при помощи представления
  
 <code sql> <code sql>
Line 106: Line 113:
 ===== 🚀 ТОП-ИТ УРОВЕНЬ ===== ===== 🚀 ТОП-ИТ УРОВЕНЬ =====
  
-==== 💡 Лабораторная работа 6. Репликация и кластеризация ==== +Лабораторные работы 6-10 🚀 [[db:new|ТОПТ уровня]] 8-).
- +
-**Продвинутый уровень:** Работа с распределенными системами +
- +
-**Цель**: Освоение принципов построения отказоустойчивых систем. +
- +
-**📋 Задачи:** +
-  Настройка master-slave репликации PostgreSQL +
-  - Создание кластера из 2-х узлов +
-  - Тестирование отказоустойчивости +
-  - Нагрузочное тестирование кластера +
- +
-**🔧 Технологии:** +
-  * **Docker** для контейнеризации +
-  * **PgPool-II** для балансировки нагрузки +
-  * **WAL-G** для непрерывного архивирования +
- +
-**📊 Критерии оценки:** +
-^ Задача ^ Баллы ^ +
-| Настройка репликации | 40 | +
-| Тестирование отказоустойчивости | 30 | +
-| Документация архитектуры | 30 | +
- +
-==== 💡 Лабораторная работа 7. Миграции и CI/CD для БД ==== +
- +
-**Цель**: Освоение современных практик управления изменениями БД. +
- +
-**📋 Задачи:** +
-  - Настройка Flyway/Liquibase для миграций +
-  - Создание pipeline для автоматического развертывания +
-  - Реализация отката миграций (rollback) +
-  - Интеграция с GitLab CI/GitHub Actions +
- +
- +
-**📁 Структура проекта:** +
-<code> +
-db/ +
-├── migrations/ +
-│   ├── V1__Create_tables.sql +
-│   ├── V2__Add_indexes.sql +
-│   └── V3__Insert_test_data.sql +
-├── flyway.conf +
-└── docker-compose.yml +
-</code> +
- +
-==== 💡 Лабораторная работа 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 +
- +
-<code sql> +
--- Пример политики безопасности +
-CREATE POLICY user_policy ON users +
-    FOR ALL USING (current_user = user_role); +
-</code> +
- +
-==== 💡 Лабораторная работа 10. NoSQL и гибридные решения ==== +
- +
-**Цель**: Изучение альтернативных подходов к хранению данных. +
- +
-**📋 Задачи:** +
-  - Интеграция PostgreSQL с MongoDB +
-  - Использование JSONB для документной модели +
-  - Сравнение производительности SQL vs NoSQL +
-  - Реализация гибридного решения +
- +
-**🔧 Стек технологий:** +
- +
-  * **PostgreSQL** с JSONB +
-  * **MongoDB** для документного хранения +
-  * **Redis** для кэширования+
  
 ===== 📈 Система оценивания ===== ===== 📈 Система оценивания =====
Line 219: Line 135:
 | Лаб 10. NoSQL | 25 | +5 к итогу | | Лаб 10. NoSQL | 25 | +5 к итогу |
  
-<wrap important>**Примечание:** Лабораторные 6-10 являются дополнительными и выполняются по желанию для повышения оценки</wrap>+**Примечание:** Лабораторные 6-10 являются дополнительными и выполняются по желанию для повышения оценки
  
 ===== 🔗 Ресурсы и контакты ===== ===== 🔗 Ресурсы и контакты =====
db/main.1759884576.txt.gz · Last modified: by eugeneai