User Tools

Site Tools


db:main

This is an old revision of the document!


Базы данных

Лабораторные работы

Лабораторная работа 1. Проектирование структуры БД

Цель лабораторной работы - спроектировать структуру базы данных (БД), исходя из постановки задачи И консультации с преподавателем, если это необходимо.

Требование 1: База данных должна содержать от трех до пяти таблиц. Если при проектировании получается слишком много, то надо упрощать постановку задачи.

Требование 2: База данных должна быть в третьей нормальной форме, а лучше в пятой.

  1. Выбрать задачу из одного из учебных пособий:
  2. Спроектировать ER-диаграмму (рисовать модель можно в любом виде и в любой нотации: UMLET, листок (фото) бумаги, онлайн-приложения и т.п.)
  3. Проверить и отработать результат с нейронной сетью Deepseek (требуется учетная запись Google Gmail).
  4. Согласовать ПОЛУЧЕННУЮ модель с преподавателем (по факту, сдать лабораторную работу 1 преподавателю): если этот этап не пройти, то потом все остальное надо будет переделывать, это включая оставшуюся часть данной лабораторной и остальные лабораторные

Отчет по лабораторным работам представляется один общий в виде файла README.md на сайте https://github.com или https://gitverse.ru в виде открытого проекта.

Лабораторная работа 2. Инсталляция БД на сервере

  1. По правилам преобразования сформировать из ER-диаграммы Логическую модель
  2. Спроектировать Физическую модель
  3. Физическую модель преобразовать в DDL-запросы, формирующие БД PostgreSQL при помощи клиента https://sql.iscnet.ru/pgadmin4
  4. Заполнить таблицы в БД данными (минимум 4 строки).
  5. Выполнить содержательный запрос SELECT с JOIN-нами (2-3) подчиненные таблицы.

Лабораторная работа 3. Представление (View)

  1. Реализовать представление для выходных документов (см. вариант задания)
  2. Реализовать встроенную процедуры с параметрами запроса к представлениям, обрамляющую представления

Лабораторная работа 4. Анализ производительности исполнения запросов

  1. Создать генератор данных для вашей БД, такой, чтобы в каждой таблице было по 20 000 записей
  2. Проанализировать порядок выполнения этапов запросов для запросов выходных документов
  3. Провести совершенствование БД с целью ускорения исполнения запросов

Требование: Понимать последовательность выполнения операций, способы соединения таблиц и т. д.

Лабораторная работа 5. Триггеры

  1. Реализовать триггеры для удаления записей в подчиненных таблицах (“многие”) при удалении записи в основной (“один”)
  2. Реализовать триггер фиксации изменения таблиц в виде таблицы-журнала. Триггер записывает в таблицу информацию о том, какая команда (INSERT, UPDATE, DELETE) выполнена на вашей таблице и в какое время.

Telegram: @eugeneai Пример организации проекта: https://github.com/eugeneai/lab-db-2025-1 (Github) Пример сайта

db/main.1759881702.txt.gz · Last modified: by eugeneai