Загрузка данных


### Практическое занятие № 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`.

* Внешние ключи должны ссылаться на существующие записи связанных таблиц.

* ФИО сотрудника, название документа и его тип должны быть заполнены.

* Дата создания документа не может быть позже текущей даты.

* Срок исполнения задачи не должен быть раньше даты её создания.

* Каждый документ должен иметь автора, тип и статус.

* Удаление сотрудника, документа или подразделения не должно нарушать ссылочную целостность базы данных.

* Названия статусов и типов документов желательно сделать уникальными.

### Вывод

В ходе практического занятия разработана структура базы данных для автоматизации документооборота. Выделены семь основных сущностей, определены связи между ними, первичные и внешние ключи. Проведена нормализация до третьей нормальной формы, позволяющая уменьшить дублирование данных и обеспечить целостность информации.