db:main
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| db:main [2025/10/08 07:55] – [Лабораторная работа 5. Триггеры] eugeneai | db:main [2025/12/09 12:56] (current) – [🎯 Лабораторная работа 3. Представления и процедуры] eugeneai | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Базы данных ====== | ====== Базы данных ====== | ||
| - | ===== Лабораторные работы ===== | + | <!-- {{topic>базы_данных& |
| - | ==== Лабораторная работа 1. Проектирование структуры БД ==== | + | ===== 🎓 Лабораторные работы |
| - | **Цель** лабораторной работы - спроектировать структуру базы данных (БД), исходя из постановки задачи | + | Лабораторные работы |
| - | **Требование 1**: База данных должна содержать от трех до пяти | + | ==== 🎯 Лабораторная работа |
| - | **Требование 2**: База данных должна быть в третьей нормальной форме, а лучше в пятой. | + | **Важно!** Согласовать модель с преподавателем до продолжения работы |
| - | - Выбрать задачу из одного из учебных пособий: | + | **Цель**: Спроектировать |
| - | | + | |
| - | | + | |
| - | - Спроектировать | + | |
| - | - Проверить и отработать результат с нейронной | + | |
| - | - **Согласовать ПОЛУЧЕННУЮ модель с преподавателем** (по факту, сдать лабораторную работу 1 преподавателю): если этот этап | + | |
| - | Отчет по лабораторным работам представляется | + | **📋 Требования:** |
| + | ^ Требование ^ Описание ^ | ||
| + | | **Требование 1** | Соответствие | ||
| + | | **Требование 2** | 3-5 таблиц в базе данных | | ||
| + | | **Требование 3** | Нормализация до третьей нормальной формы | | ||
| - | ==== Лабораторная работа | + | **🚀 Шаги выполнения: |
| + | - **Выбор | ||
| + | * {{db: | ||
| + | * Задачи, | ||
| + | - **Проектирование ER-диаграммы** в современных инструментах: | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | - **Валидация | ||
| + | - **Согласование** полученной модели с преподавателем | ||
| - | - По правилам преобразования сформировать из ER-диаграммы **Логическую модель** | + | **📊 |
| - | - Спроектировать **Физическую модель** | + | |
| - | - Физическую модель преобразовать в DDL-запросы, | + | |
| - | | + | |
| - | - Выполнить **содержательный** запрос SELECT с JOIN-нами (2-3) подчиненные таблицы. | + | |
| - | ==== Лабораторная работа | + | ==== 🎯 Лабораторная работа |
| - | - Реализовать представление для выходных документов (см. вариант задания) | + | **Цель**: Практическое развертывание |
| - | - Реализовать встроенную процедуры с параметрами запроса к представлениям, | + | |
| - | ==== Лабораторная работа 4. Анализ производительности исполнения запросов ==== | + | **🔧 Инструменты:** |
| + | * **Клиент | ||
| + | * **СУБД**: | ||
| - | | + | **📋 Задачи: |
| - | - Проанализировать порядок выполнения этапов запросов для запросов выходных | + | |
| - | - Провести совершенствование БД с целью ускорения исполнения запросов | + | - Проектирование физической модели |
| + | - Создание DDL-запросов для PostgreSQL | ||
| + | - Заполнение таблиц данными (минимум 4 строки) | ||
| + | - Проверка при помощи Deepseek 4 и 5 нормальных | ||
| + | - Делаете дамп | ||
| + | - Отдаете | ||
| + | - Добавляете результат в отчет | ||
| + | - Выполнение содержательных SELECT-запросов | ||
| - | **Требование**: Понимать последовательность выполнения операций, способы соединения таблиц и т. д. | + | <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; | ||
| + | </ | ||
| - | ==== Лабораторная работа 5. Триггеры ==== | ||
| - | - Реализовать триггеры для удаления записей в подчиненных таблицах (" | ||
| - | - Реализовать триггер фиксации изменения таблиц в виде таблицы-журнала. Триггер записывает в таблицу информацию о том, какая команда (INSERT, UPDATE, DELETE) выполнена на вашей таблице и в какое время. | ||
| - | Telegram: @eugeneai | + | ==== 🎯 Лабораторная работа 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) | ||
| + | - Оптимизация БД через индексы и настройки | ||
| + | - Сравнение производительности до/ | ||
| + | |||
| + | **🔧 Инструменты: | ||
| + | <code 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-10 🚀 [[db: | ||
| + | |||
| + | ===== 📈 Система оценивания ===== | ||
| + | |||
| + | **🎓 Базовый уровень (лабы 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 к итогу | | ||
| + | |||
| + | **Примечание: | ||
| + | |||
| + | ===== 🔗 Ресурсы и контакты ===== | ||
| + | |||
| + | **📚 Учебные материалы: | ||
| + | * {{db: | ||
| + | * [[db: | ||
| + | * [[https:// | ||
| + | |||
| + | **💼 Платформы для сдачи: | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | **📞 Контакты: | ||
| + | * **Telegram**: @eugeneai | ||
| + | * **Пример организации проекта**: [[https:// | ||
| + | |||
| + | **Совет: | ||
| + | |||
| + | {{tag> | ||
db/main.1759881358.txt.gz · Last modified: by eugeneai
