Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИПЛОМ(office2007).docx
Скачиваний:
6
Добавлен:
01.04.2025
Размер:
2.3 Mб
Скачать

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;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]