- •Введение
- •1 Описание предметной области и выявление требований, предъявляемых к разрабатываемой информационной системе
- •1.1 Описание предметной области
- •1.2 Выявление требований, предъявляемых к информационной системе
- •1.3 Описание инструментальных средств разработки
- •2 Анализ предметной области. Разработка и описание функциональной модели
- •2.1 Построение контекстной диаграммы
- •2.2 Декомпозиция моделируемой системы
- •3 Создание локальных концептуальных моделей
- •3.1 Выявление и определение сущностей на основе анализа dfd-диаграммы
- •3.2 Определение связей между сущностями
- •3.3 Определение атрибутов сущностей и первичных ключей
- •3.4 Создание диаграммы «сущность-связь»
- •4 Построение и проверка локальных логических моделей данных
- •5 Создание и проверка глобальной логической модели данных
- •6 Разработка физической модели данных.Прямое проектирование
- •6.1 Создание физической модели данных
- •6.2 Описание структуры базы данных
- •6.2.1 Описание доменов
- •6.3 Прямое проектирование
- •7 Проектирование приложения
- •8 Результаты тестирования
- •Поле «Стоимость работы» оставили пустым для обеих строк. Обновим таблицу. Получим следующий результат:
- •9 Управление проектом
- •Заключение
- •Список используемых источников
- •Лист регистрации изменений
6.2 Описание структуры базы данных
6.2.1 Описание доменов
Доменом называется некоторый пул значений, элементы которого выбираются для присвоения значений одному или более атрибутам. На данном этапе определяются домены для всех атрибутов, присутствующих в модели.
На следующей таблице показаны все созданные домены и их тип.
Таблица 4 - Домены
-
Название домена
Тип данных
BOOLEAN
SMALLINT CHECK (VALUE IN (0, 1)
MONEY
NUMERIC(12,2)
PHONE
VARCHAR(15)
KOEFFICIENT
NUMERIC(4,4)
Домен «BOLEAN» определён на типе данных SMALLINT CHECK (VALUE IN (0, 1). Поля с данным типом могут принимать значение только «0» или «1». Например, в поле EXECUTED может быть занесено значение 0 или 1.
Домен «MONEY» определён на типе данных Numeric(12,2), то есть представлен в виде вещественного числа с пятнадцатью знаками до запятой и двумя знакам после неё. Максимальное значение – 999 999 999 999.
Домен «PHONE» определен на типе данных VARCHAR(15). Этот домен используется для полей, в которых хранится значение телефона (максимально возможное значение включает в себя 15 символов).
Домен «KOEFFICIENT» определен на типе данных NUMERIC(4,4), то есть представлен в виде вещественного числа с четырьмя знаками до запятой и четырьмя знакам после неё. Этот домен используется для поля PERCENT – процент от строительства.
6.2.2 Описание таблиц
Чтобы при занесении адреса клиента или сотрудника избежать трудоёмкого ввода названия города и улицы, нужно создать справочник адресов (таблицы «АДРЕС» - таблица 5, «ГОРОД» - таблица 7 и «УЛИЦА» - таблица 14).
В таблице 5 приведены поля из таблицы «Адрес/Adres», с указанием типа данных, домена и возможностью null-значений.
Таблица 5 - «Адрес/Adres» - справочник адресов
Из таблицы 5 видно, что поле «Adreid» является первичным ключом; поля Cityid и Streetid являются внешними ключами; поля «Houseno» и «Flatno» содержат информацию о номере дома и номере квартиры соответственно и имеют тип Integer.
Аналогичным образом приведены остальные таблицы базы данных.
За выполнение конкретной работы соответствующего заказа в зависимости от сложности отвечает определённый сотрудник или бригада строительной фирмы. Следовательно, необходимо чтобы в базе был список сотрудников фирмы и бригад, в которые они входят (таблицы «СОТРУДНИК» - таблица 9 и «БРИГАДА» - таблица 6 соответственно). Каждый сотрудник занимает определённую должность в строительной фирме.
В таблице 6 приведены поля из таблицы «Бригада/Brigade», хранящей номера бригад фирмы.
Таблица 6 - «Бригада/Brigade» - справочник бригад фирмы
Таблица 7 содержит информацию о таблице «Город/ City».
Таблица 7 - «Город/City» - справочник городов
Так как строительная фирма работает с клиентами, то целесообразно хранить сведения об этих клиентах. Каждому из заказчиков строительной фирмы будет присвоен уникальный номер, позволяющий однозначно его идентифицировать. Наиболее важными данными о клиентах является название их организации, адрес нахождения и контактный телефон. Все эти данные будут храниться в таблице «КЛИЕНТ». Таблица 8 содержит сведения о клиентах, которые оформили заказ на строительство.
Таблица 8 - «Клиент/Client» - справочник клиентов
В таблице 9 приведены поля из таблицы «Сотрудник/Employee», содержащей соответствующую информацию.
Таблица 9 - «Сотрудник/Employee»- данные о сотрудниках
Заказ предусматривает выполнение некоторого списка работ, который так же целесообразно сохранять в базе данных в таблице «РАБОТА». У этой таблицы будут следующие поля: Код работы – уникальный код, Работа – собственно название работы, Цена работы за единицу (например, выкладка стен оплачивается за каждый выложенный кубометр) и Код единицы измерения (из таблицы «ЕДИНИЦА_ ИЗМЕРЕНИЯ»). В таблице 10 приведена соответствующая информация о работах, осуществляемых строительной компанией.
Таблица 10 - «Job/Работа»
В следующей таблице приведены необходимые данные о материалах.
Таблица 11- «Материал/Material»
Для того чтобы в любой момент времени можно было просмотреть на какой стадии выполнения находится тот или иной строительный заказ, необходимо хранение этих данных в базе. У каждого заказа есть свой уникальный номер. Заказ принадлежит определённому клиенту строительной фирмы. У каждого заказа обязательно есть дата оформления и дата выполнения. В договоре указывается адрес, тип коттеджа и стоимость строительства. Храниться эти данные будут в таблице «ЗАКАЗ_НА_ СТРОИТЕЛЬСТВО». В этой таблице должно быть так же поле «Выполнено», значение которого (0 или 1) будет свидетельствовать – выполнен заказ или нет и поле «Сумма оплаты», показывающее какую сумму уже оплатил заказчик. Таблица 12 содержит сведения об оформленных строительных заказах.
Таблица 12 - «Заказ_на_строительство/Orderconstruction»
Таблица 13 содержит информацию о должностях.
Таблица 13 - «Должность/Post»
Таблица 14 содержит информацию об улицах.
Таблица 14 - «Street/Улица» - справочник улиц
Чтобы избежать избыточности данных в таблице «ЗАКАЗ_НА_ СТРОИТЕЛЬСТВО», список работ по заказу лучше хранить в другой таблице – «СТРОКА_ЗАКАЗА», в которой будут отображаться: Код строки заказа, Код заказа (из таблицы «ЗАКАЗ_НА_СТРОИТЕЛЬСТВО»), код работы (из таблицы «РАБОТА»); Код материала (из таблицы «МАТЕРИАЛ»), используемого в работе; Количество материала, необходимого для выполнения этой работы; Код бригады (из таблицы «БРИГАДА»), выполняющей эту работу и Стоимость выполнения этой работы с учётом стоимости материала и оплаты непосредственно за совершение работы. В таблице 15 отображаются строки заказов на строительство.
Таблица 15 - «Stringorder/Строка_заказа»
В таблице 16 отображаются единицы измерения материала и работы.
Таблица 16 - «Единица_измерения/Unit_measure»
