Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой Проект.docx
Скачиваний:
1
Добавлен:
30.12.2023
Размер:
2.12 Mб
Скачать

3.2 Разработка физической структуры данных

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

Физическая модель отличается от логической. Помимо адаптации под выбранную модель данных, у атрибутов появляются типы данных. Как правило, физическая модель данных проектируется уже под конкретную СУБД, из-за чего имена атрибутов и сущностей также претерпевают изменения под условия выбранной СУБД. Также, сущности теперь называются таблицами. Схема изображена на рисунке 6.

Рисунок 6 – Физическая схема данных

Для построения схемы использована нотация Crown’s Foot (нотация Мартина) [20] [21] [22]. Стоит отметить, что на данной схеме уже имеются чётко выраженные первичные ключи, они выделены жирным шрифтом и начинаются с приставки «id». Их задача в сохранении уникальности каждого кортежа в таблице. Связи между таблицами создаются за счёт внешних ключей, которые представляют из себя наличие в одной таблице атрибута внешнего ключа из другой таблицы. Альтернативные ключи на данной схеме не отображены.

3.3 Структура таблиц

Далее по очереди приведены структуры таблиц базы данных – имена атрибутов, типы данных, описание и тип ключа. Тип ключа принимает следующие значение: отсутствие значения, первичный ключ, внешний ключ, альтернативный ключ.

Ниже представлена структура данных таблицы, которая предоставляет информацию о должностях в компании.

Position

Имя

Тип данных

Описание

Ключ

Id_Position

INTEGER

Первичный ключ должности

Первичный ключ

Name_Position

CHAR(20)

Название должности

Salary

INTEGER

Заработная плата на должности

У каждого пользователя системы есть разный доступ к информации базы данных. Необходимо разграничить персонал на должности. ФИО здесь может быть альтернативным ключом.

Employees

Имя

Тип данных

Описание

Ключ

Id_Employee

INTEGER

Первичный ключ работника

Первичный ключ

Name_Employee

CHAR(40)

ФИО

Альтернативный ключ

Birth_date

DATE

Дата рождения

Id_Position

INTEGER

Код должности

Внешний ключ

Также необходимо хранить данные всех субподрядчиков, с которыми работает компания. Альтернативным ключом здесь может выступать код ИНН, который уникален для каждой организации.

Subcontractor

Имя

Тип данных

Описание

Ключ

Id_Sub

INTEGER

Первичный ключ субподрядчика

Первичный ключ

Name_Sub

CHAR(40)

Название субподрядчика

INN_Sub

CHAR(15)

Идентификационный номер налогоплательщика

Альтернативный ключ

KPP_Sub

CHAR(15)

Код причины постановки

Tel_Sub

CHAR(15)

Телефон компании

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

Customer

Имя

Тип данных

Описание

Ключ

Id_Cust

INTEGER

Первичный ключ субподрядчика

Первичный ключ

Name_Cust

CHAR(40)

Название заказчика

Tel_Cust

CHAR(15)

Телефон компании

Альтернативный ключ

Необходимо вести список всех объектов на которых идет или шла работа. Альтернативным ключом здесь выступает адрес объекта.

Object

Имя

Тип данных

Описание

Ключ

Id_Obj

INTEGER

Первичный ключ субподрядчика

Первичный ключ

Name_Obj

CHAR(40)

Название объекта

Adress_Obj

CHAR(50)

Адрес объекта

Альтернативный ключ

Чтобы облегчить поиск необходимых видов работ при работе на объекте, необходимо иметь информацию о видах работы, такую как цена и единицы измерения.

Type_work

Имя

Тип данных

Описание

Ключ

Id_type_work

INTEGER

Первичный ключ вида работы

Первичный ключ

Name_type_work

CHAR(40)

Название вида работы

Альтернативный ключ

Units_type_work

CHAR(10)

Единицы измерения

Price_type_work

CHAR(50)

Цена

Таблица «Паспорт» имеет атрибуты, необходимые для размещения на объекте строительства. Здесь есть 2 внешних ключа и в качестве альтернативного ключа выступает разрешение на регистрацию, которое уникально для каждого объекта.

Passport

Имя

Тип данных

Описание

Ключ

Id_pass

INTEGER

Первичный код паспорта

Первичный ключ

Id_Cust

INTEGER

Код заказчика

Внешний ключ

Name_Contractor

CHAR(40)

Название подрядчика

Id_Obj

INTEGER

Код объекта

Внешний ключ

Start_date

DATE

Начало строительства

End_date

DATE

Окончание строительства

Permission

CHAR(30)

Разрешение на строительство

Альтернативный ключ

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

Act_work

Имя

Тип данных

Описание

Ключ

Id_act_work

INTEGER

Первичный код акта

Первичный ключ

Name_Contractor

CHAR(40)

Название подрядчика

Id_Sub

INTEGER

Код подрядчика

Внешний ключ

Id_Obj

INTEGER

Код объекта

Внешний ключ

Id_employee

INTEGER

Код работника

Внешний ключ

Id_type_work

INTEGER

Код работы

Внешний ключ

Start_date_work

DATE

Начало работ

End_date_work

DATE

Окончание работ

Итого получается, что база данных состоит из 8 таблиц, полностью описанных выше.