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 08:11] – [Лабораторная работа 1. Проектирование структуры БД] eugeneai | db:main [2025/12/09 12:56] (current) – [🎯 Лабораторная работа 3. Представления и процедуры] eugeneai | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Базы данных ====== | ====== Базы данных ====== | ||
| - | ===== Лабораторные работы ===== | + | <!-- {{topic>базы_данных& |
| - | Пример проекта находится [[https:// | + | ===== 🎓 Лабораторные работы |
| - | ==== Лабораторная работа 1. Проектирование структуры БД ==== | + | |
| - | **Цель** лабораторной работы - спроектировать структуру базы данных (БД), исходя из постановки задачи | + | Лабораторные работы |
| - | **Требование 1**: Спроектированная | + | ==== 🎯 Лабораторная работа 1. Проектирование структуры |
| - | **Требование 2**: База данных должна содержать от трех до пяти таблиц. Если при проектировании получается слишком много, то надо упрощать постановку задачи. | + | **Важно!** Согласовать |
| - | **Требование 3**: База данных | + | **Цель**: Спроектировать структуру базы данных, соответствующую бизнес-требованиям и нормализованную до 3NF. |
| - | - Выбрать задачу из одного из учебных пособий: | + | **📋 Требования:** |
| - | * Список задач к.т.н. Сосинской С.С. {{db:варианты_заданий_по_уд.pdf| Варианты заданий}} | + | ^ Требование ^ Описание ^ |
| - | * Задачи, | + | | **Требование 1** | Соответствие всем частям задания |
| - | - Спроектировать ER-диаграмму (рисовать модель можно в любом | + | | **Требование 2** | 3-5 таблиц в базе данных | |
| - | - Проверить и [[https:// | + | | **Требование 3** | Нормализация |
| - | - **Согласовать ПОЛУЧЕННУЮ модель с преподавателем** (по факту, сдать лабораторную работу 1 преподавателю): если этот этап не пройти, то потом все остальное надо | + | |
| - | Отчет | + | **🚀 Шаги выполнения: |
| + | - **Выбор задачи** из учебных пособий: | ||
| + | * {{db:варианты_заданий_по_уд.pdf| Варианты заданий к.т.н. Сосинской С.С.}} | ||
| + | * Задачи, сгенерированные [[db:nn_tasks|нейронной сетью]] | ||
| + | - **Проектирование ER-диаграммы** в современных инструментах: | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | - **Валидация модели** через | ||
| + | - **Согласование** полученной модели с преподавателем | ||
| - | ==== Лабораторная | + | **📊 Пример проекта:** [[https:// |
| - | - По правилам преобразования сформировать из ER-диаграммы **Логическую модель** | + | ==== 🎯 Лабораторная работа |
| - | - Спроектировать **Физическую модель** | + | |
| - | - Физическую модель преобразовать в DDL-запросы, формирующие БД PostgreSQL при помощи клиента https://sql.iscnet.ru/ | + | |
| - | - Заполнить | + | |
| - | - Выполнить **содержательный** запрос SELECT с JOIN-нами (2-3) подчиненные таблицы. | + | |
| - | ==== Лабораторная работа 3. Представление (View) ==== | + | **Цель**: |
| - | - Реализовать представление для выходных документов (см. вариант задания) | + | **🔧 Инструменты:** |
| - | | + | |
| + | * **СУБД**: | ||
| - | ==== Лабораторная работа | + | **📋 Задачи: |
| + | - Преобразование ER-диаграммы в логическую модель | ||
| + | - Проектирование физической модели | ||
| + | - Создание DDL-запросов для PostgreSQL | ||
| + | - Заполнение таблиц | ||
| + | - Проверка при помощи Deepseek 4 и 5 нормальных форм (по желанию) 8-) | ||
| + | - Делаете дамп вашей схемы данных (для командной | ||
| + | - Отдаете в ваш чат Deepseek | ||
| + | - Добавляете результат в отчет | ||
| + | - Выполнение содержательных 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. Триггеры ==== | ||
| - | - Реализовать триггеры для удаления записей в подчиненных | + | ==== 🎯 Лабораторная работа 3. Представления |
| - | - Реализовать триггер фиксации изменения таблиц в виде | + | |
| - | Telegram: @eugeneai | + | **Цель**: Освоение |
| - | Пример [[https:// | + | |
| + | **📋 Задачи: | ||
| + | - Создание представлений для выходных документов | ||
| + | - Разработка хранимых процедур с параметрами | ||
| + | - Представление сложных запросов при помощи представления | ||
| + | <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**: | ||
| + | * **Пример организации проекта**: | ||
| + | |||
| + | **Совет: | ||
| + | |||
| + | {{tag> | ||
db/main.1759882274.txt.gz · Last modified: by eugeneai
