Загрузка данных
### Практическое занятие № 1. Вариант 7 — «Документооборот»
Работа по теме «Построение схемы базы данных».
### 1\. Описание предметной области
Система документооборота предназначена для регистрации, хранения, обработки и контроля движения документов внутри организации. Она позволяет учитывать входящие, исходящие и внутренние документы, сведения об их авторах и исполнителях, даты регистрации, сроки исполнения и текущие статусы.
База данных должна обеспечивать поиск документов, назначение ответственных сотрудников, контроль сроков исполнения и хранение истории обработки документов.
### 2\. Ключевые объекты системы
* Сотрудник — работник организации, создающий, регистрирующий или исполняющий документы.
* Документ — основной объект учёта, содержащий реквизиты и содержание документа.
* Тип документа — категория документа (приказ, заявление, письмо, служебная записка).
* Подразделение — отдел организации, в котором работают сотрудники.
* Задача — поручение по обработке или исполнению документа.
* Статус — текущее состояние документа или задачи.
* История движения — сведения о передаче документа между сотрудниками и изменении его состояния.
### 3\. Инфологическое проектирование
### а) ER-диаграмма
На первом этапе определяются основные сущности и связи между ними:
* Одно подразделение включает нескольких сотрудников.
* Один сотрудник может создать несколько документов.
* Один тип относится к нескольким документам.
* Один документ может иметь несколько задач.
* Один сотрудник может выполнять несколько задач.
* Один документ может иметь несколько записей в истории движения.
### б) Уточнённая ER-диаграмма с атрибутами
Для каждой сущности определяются атрибуты, первичные ключи (PK) и внешние ключи (FK).
| Сущность | Атрибуты |
| ---------------- | ----------------------------------------------------------------------------------------------------- |
| Подразделение | id_подразделения (PK), название, описание |
| Сотрудник | id_сотрудника (PK), ФИО, должность, id_подразделения (FK) |
| Тип документа | id_типа (PK), наименование, описание |
| Статус | id_статуса (PK), наименование, описание |
| Документ | id_документа (PK), название, дата создания, содержание, id_типа (FK), id_статуса (FK), id_автора (FK) |
| Задача | id_задачи (PK), описание, дата создания, срок исполнения, id_документа (FK), id_исполнителя (FK) |
| История движения | id_записи (PK), дата, действие, id_документа (FK), id_сотрудника (FK) |
PK — первичный ключ, уникально определяющий запись. FK — внешний ключ, связывающий запись с другой таблицей.
### 4\. Логическое проектирование
На основе ER-модели создаются семь связанных таблиц. Каждая таблица хранит данные об одном типе объектов, а связи реализуются с помощью внешних ключей.
Например, в таблице `Документ` поле `id_автора` ссылается на таблицу `Сотрудник`, а `id_типа` — на таблицу `Тип документа`.
### 5\. Нормализация до третьей нормальной формы
Первая нормальная форма (1НФ). Все поля содержат атомарные значения. Например, ФИО хранится как одно значение, а не как список сотрудников в одной ячейке. Каждый документ имеет отдельную запись.
Вторая нормальная форма (2НФ). Таблицы находятся в 1НФ, а каждый неключевой атрибут зависит от полного первичного ключа. Используются отдельные идентификаторы записей, поэтому частичные зависимости отсутствуют.
Третья нормальная форма (3НФ). Таблицы находятся во 2НФ, а неключевые атрибуты не зависят транзитивно от первичного ключа. Например, название типа документа хранится в таблице `Тип документа`, а в таблице `Документ` указывается только его идентификатор.
Таким образом, структура базы данных соответствует третьей нормальной форме при условии, что все атрибуты зависят только от ключей своих таблиц.
### 6\. Ключевые ограничения
* Первичные ключи должны быть уникальными и не могут содержать `NULL`.
* Внешние ключи должны ссылаться на существующие записи связанных таблиц.
* ФИО сотрудника, название документа и его тип должны быть заполнены.
* Дата создания документа не может быть позже текущей даты.
* Срок исполнения задачи не должен быть раньше даты её создания.
* Каждый документ должен иметь автора, тип и статус.
* Удаление сотрудника, документа или подразделения не должно нарушать ссылочную целостность базы данных.
* Названия статусов и типов документов желательно сделать уникальными.
### Вывод
В ходе практического занятия разработана структура базы данных для автоматизации документооборота. Выделены семь основных сущностей, определены связи между ними, первичные и внешние ключи. Проведена нормализация до третьей нормальной формы, позволяющая уменьшить дублирование данных и обеспечить целостность информации.