- •Аннотация
- •Содержание
- •1 Аналитический раздел
- •1.1 Анализ предметной области
- •1.2 Организационно-производственная структура
- •1.3 Анализ существующих программных продуктов
- •1.4 Выбор математического аппарата
- •1.5 Постановка задачи
- •1.5.1 Назначение программного продукта
- •1.5.2 Требования к программному средству и техническому оборудованию
- •2 Проектный раздел
- •2.1 Инструментальные средства
- •2.1.1 Выбор языка программирования
- •2.1.2 Технология клиент/сервер. Принцип работы Java Web-приложения
- •2.1.3 Архитектура платформы Tandem
- •2.1.4 Выбор субд
- •2.1.5 Структурированный язык запросов sql
- •2.2 Разработка базы данных проектируемого программного средства
- •2.2.1 Формализованное описание предметной области
- •2.2.2 Разработка инфологической модели бд
- •2.2.3 Разработка даталогической модели бд
- •2.2.4 Нормализация отношений
- •2.2.5 Физическая модель бд
- •2.2.5.1 Техническое описание объектов бд
- •2.2.5.2 Реализация ограничений целостности бд
- •2.3 Разработка программного средства автоматизации обслуживания заявок
- •3 Технико-эксплуатационный раздел
- •3.1 Руководство для пользователей
- •3.2 Руководство для серверной части
- •3.3 Руководство администратора
- •3.4 Руководство программиста
- •4 Обоснование экономической эффективности проекта
- •4.1 Расчет трудоемкости разработки программного продукта
- •4.2 Расчет себестоимости программного продукта
- •4.3 Расчет экономического эффекта от внедрения программного продукта
- •5 Безопасность труда
- •5.1 Анализ условий труда
- •5.2 Расчет искусственного освещения
- •5.3 Возможные чрезвычайные ситуации
- •5.3.1 Расчет зоны заражения
- •5.3.2 Расчет времени эвакуации
- •Заключение
- •Список использованных источников
- •Приложение а
- •Приложение б
2.2.5 Физическая модель бд
Под физическим проектированием понимают процесс создания эффективной реализуемой структуры физической базы данных по заданной логической структуре, полученной исходя из требований пользователя к информации. Физическое проектирование часто предполагает удовлетворение определенным эксплуатационным ограничениям, таким, как требования к объему памяти и к распределению времени отклика.
Основная единица данных в физических структурах – хранимая запись. Она представляет собой совокупность связанных элементов данных (атрибутов), которая соответствует одной или нескольким логическим записям, она содержит все необходимые указатели, длину записи и некоторые дополнительные данные, а также схему кодирования для символьного представления [21]. Под хранимой записью в СУБД PostgreSQL понимается таблица со своими атрибутами.
2.2.5.1 Техническое описание объектов бд
Техническое описание проектируемых объектов БД на языке определения
данных СУБД PostgreSQL можно представить в виде таблиц и операторов на языке DDL.
Далее в таблицах 2.4-2.12 идет техническое описание атрибутов, по каждой таблице представлен оператор описания на языке DDL.
Таблица 2.4 – Описание атрибутов класса DeviceClasses
Field |
Type |
Length |
Default |
Not Null |
Index |
Auto_increment |
Idclass |
int |
10 |
null |
+ |
primary |
+ |
class |
varchar |
30 |
null |
+ |
- |
- |
description |
text |
255 |
null |
- |
- |
- |
Оператор:
CREATE TABLE "DeviceClasses"
(
idclass integer NOT NULL,
description text,
"class" character varying(30),
CONSTRAINT "PK_КлассыОборудования" PRIMARY KEY (idclass)
)
WITH (
OIDS=FALSE
);
ALTER TABLE "DeviceClasses" OWNER TO postgres;
Таблица 2.5 – Описание атрибутов класса DeviceTypes
Field |
Type |
Length |
Default |
Not Null |
Index |
Auto_increment |
Idtype |
int |
10 |
null |
+ |
primary |
+ |
device |
varchar |
255 |
null |
+ |
- |
- |
description |
text |
255 |
null |
- |
- |
- |
Оператор:
CREATE TABLE "DeviceTypes"
(
idtype integer NOT NULL,
device character(255) NOT NULL,
description text,
idclass integer NOT NULL,
CONSTRAINT "PK_СправочникТипаОборудования" PRIMARY KEY (idtype)
)
WITH (
OIDS=FALSE
);
ALTER TABLE "DeviceTypes" OWNER TO postgres;
Таблица 2.6 – Описание атрибутов класс Users
Field |
Type |
Length |
Default |
Not Null |
Index |
Auto_increment |
id |
int |
3 |
null |
+ |
primary |
+ |
login |
varchar |
20 |
null |
+ |
- |
- |
pas |
varchar |
20 |
null |
+ |
- |
- |
Surname |
varchar |
30 |
null |
+ |
- |
- |
Name |
varchar |
30 |
null |
+ |
- |
- |
FName |
varchar |
30 |
null |
+ |
- |
- |
shortName |
varchar |
20 |
null |
+ |
- |
- |
Id_type_user |
int |
2 |
null |
+ |
- |
- |
Оператор:
CREATE TABLE "Users"
(
"login" character varying(20) NOT NULL DEFAULT NULL::character varying,
pas character varying(20) NOT NULL DEFAULT NULL::character varying,
"Surname" character varying(30) NOT NULL DEFAULT NULL::character varying,
"Name" character varying(20) NOT NULL DEFAULT NULL::character varying,
"FName" character varying(20) NOT NULL DEFAULT NULL::character varying,
"typeUser" integer NOT NULL,
"shortName" character(20) NOT NULL,
id bigint NOT NULL DEFAULT nextval('"Users_Id_user_seq"'::regclass),
CONSTRAINT "PK_Пользователь" PRIMARY KEY (id),
CONSTRAINT "FK_Id_type" FOREIGN KEY ("typeUser")
REFERENCES "TypeUsers" ("typeUser") MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
OIDS=FALSE);
ALTER TABLE "Users" OWNER TO postgres;
Таблица 2.7 – Описание атрибутов класса TypeUsers
Field |
Type |
Length |
Default |
Not Null |
Index |
Auto_increment |
typeUser |
int |
2 |
null |
+ |
primary |
+ |
name |
varchar |
15 |
null |
+ |
- |
- |
Оператор:
CREATE TABLE "TypeUsers"
(
"typeUser" integer NOT NULL,
"name" character(15) NOT NULL,
CONSTRAINT "PK_ТипПользователя" PRIMARY KEY ("typeUser")
)
WITH (
OIDS=FALSE
);
ALTER TABLE "TypeUsers" OWNER TO postgres;
Таблица 2.8 – Описание атрибутов класса devices
Field |
Type |
Length |
Default |
Not Null |
Index |
Auto_increment |
iddevice |
int |
20 |
null |
+ |
primary |
+ |
nameDevice |
varchar |
30 |
null |
+ |
- |
- |
inventorynumber |
varchar |
30 |
null |
+ |
- |
- |
idtype |
int |
10 |
null |
+ |
- |
- |
idroom |
int |
10 |
null |
+ |
- |
- |
exploitation date |
datetime |
0 |
null |
+ |
- |
- |
Оператор:
CREATE TABLE devices
(
idtype integer NOT NULL,
idroom integer NOT NULL,
inventorynumber character(30) NOT NULL,
serialnumber character(255) NOT NULL,
exploitation date NOT NULL,
"nameDevice" character(30) NOT NULL,
iddevice bigserial NOT NULL,
CONSTRAINT "PK_Устройства" PRIMARY KEY (iddevice),
CONSTRAINT "FK_idroom" FOREIGN KEY (idroom)
REFERENCES "Rooms" (idroom) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "FK_idtype" FOREIGN KEY (idtype)
REFERENCES "DeviceTypes" (idtype) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
OIDS=FALSE
);
ALTER TABLE devices OWNER TO postgres;
Таблица 2.9 – Описание атрибутов класса Status
Field |
Type |
Length |
Default |
Not Null |
Index |
Auto_increment |
idstatus |
int |
1 |
null |
+ |
primary |
+ |
statusname |
varchar |
15 |
null |
+ |
- |
- |
Оператор:
CREATE TABLE "Status"
(
idstatus integer NOT NULL,
statusname character varying(15) NOT NULL,
CONSTRAINT "PK_Справочник_статусов" PRIMARY KEY (idstatus)
)
WITH (
OIDS=FALSE);
ALTER TABLE "Status" OWNER TO postgres;
Таблица 2.10 – Описание атрибутов класса Demands
Field |
Type |
Length |
Default |
Not Null |
Index |
Auto_increment |
iddemand |
int |
20 |
null |
+ |
primary |
+ |
Продолжение таблицы 2.10
Field |
Type |
Length |
Default |
Not Null |
Index |
Auto_increment |
|
||||||
iddevice |
varchar |
20 |
null |
+ |
- |
- |
|
||||||
Description |
text |
500 |
null |
+ |
- |
- |
|
||||||
Id_user |
int |
3 |
null |
+ |
- |
- |
|
||||||
datetimeCreat |
datetime |
0 |
null |
+ |
- |
- |
|
||||||
datetime |
datetime |
0 |
null |
+ |
- |
- |
|||||||
idstatus |
int |
1 |
null |
+ |
- |
- |
|||||||
idroom |
int |
10 |
null |
+ |
- |
- |
|||||||
Оператор:
CREATE TABLE demands
(
"Id_user" bigint NOT NULL,
idtypedem integer NOT NULL,
idroom integer NOT NULL,
iddevice bigint NOT NULL,
"datetimeCreat" timestamp with time zone NOT NULL,
datetime timestamp with time zone NOT NULL,
idstatus integer NOT NULL,
iddemand bigserial NOT NULL,
description text NOT NULL,
CONSTRAINT "PK_Заявка" PRIMARY KEY (iddemand),
CONSTRAINT "FK_Id_user" FOREIGN KEY ("Id_user")
REFERENCES "Users" (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "FK_idstatus" FOREIGN KEY (idstatus)
REFERENCES "DemandStatus" (idstatus) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT "FK_idtypedem" FOREIGN KEY (idtypedem)
REFERENCES "TypeDemands" (idtypedem) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
OIDS=FALSE
);
ALTER TABLE demands OWNER TO postgres;
Таблица 2.11 – Описание атрибутов класса RoomTypes
Field |
Type |
Length |
Default |
Not Null |
Index |
Auto_increment |
idtype |
int |
10 |
null |
+ |
primary |
+ |
Продолжение таблицы 2.11
Field |
Type |
Length |
Default |
Not Null |
Index |
Auto_increment |
type |
varchar |
30 |
null |
+ |
- |
- |
description |
text |
255 |
null |
- |
- |
- |
Оператор:
CREATE TABLE "RoomTypes"
(
idtype integer NOT NULL,
"type" character(30) NOT NULL,
description text,
CONSTRAINT "PK_Тип помещений" PRIMARY KEY (idtype)
)
WITH (
OIDS=FALSE
);
ALTER TABLE "RoomTypes" OWNER TO postgres;
Таблица 2.12 – Описание атрибутов класса Rooms
Field |
Type |
Length |
Default |
Not Null |
Index |
Auto_increment |
idroom |
int |
10 |
null |
+ |
primary |
+ |
name |
varchar |
30 |
null |
+ |
- |
- |
number |
varchar |
4 |
null |
+ |
- |
- |
storey |
int |
1 |
null |
+ |
- |
- |
idtype |
int |
10 |
null |
+ |
- |
+ |
Оператор:
CREATE TABLE "Rooms"
(
"name" character(30) NOT NULL,
"number" character(4) NOT NULL,
storey smallint,
idtype integer NOT NULL,
idroom bigserial NOT NULL,
CONSTRAINT "PK_Помещения" PRIMARY KEY (idroom),
CONSTRAINT "FK_idtype" FOREIGN KEY (idtype)
REFERENCES "RoomTypes" (idtype) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
OIDS=FALSE
);
ALTER TABLE "Rooms" OWNER TO postgres;
