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