Разработка АСР

Автор работы: Пользователь скрыл имя, 28 Декабря 2011 в 11:16, дипломная работа

Описание работы

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

Содержание работы

Введение 4
1 Анализ технического задания 5
1.1 Техническое задание 5
1.2 Общие выводы из технического задания 5
2 Подходы к проектированию баз данных 6
2.1 Основные понятия теории реляционных баз данных 6
2.2 Сервер базы данных 10
2.2.1 Технология и модели "клиент-сервер" 10
2.2.2 Механизмы реализации активного ядра 18
2.2.3 Хранимые процедуры 19
2.2.4 Правила (триггеры) 20
2.2.5 Механизм событий 21
2.3 Обработка распределенных данных 21
2.4 Взаимодействие с PC-ориентированными СУБД 28
2.5 Обработка транзакций 31
2.6 Средства защиты данных в СУБД 35
2.7 Применение CASE-средств для информационного моделирования в системах обработки данных. 39
3 Реализация базы данных 40
3.1 Анализ существующей системы 41
3.2 Новая схема обмена информацией 42
3.3 Выбор операционной системы 42
3.4 Выбор сервера баз данных 43
3.5 Выбор средств разработки 44
3.6 Проектирование структуры базы данных 44
4 Реализация клиентского приложения 45
4.1 Назначение и состав клиентского приложения 45
4.2 Безопасность доступа к данным 45
4.2.1 Идентификация 45
4.2.2 Авторизация 46
4.2.3 Управление доступом на основе ролей 47
4.3 Алгоритм работы приложения 48
5 Разработка таблиц 48
5.1 Структура таблицы “nodes_prolog” 49
5.2 Структура таблицы “nodes_elektro” 50
5.3 Структура таблицы “ elektro_pokaz” 50
5.4 Структура таблицы “t943_name” 51
5.5 Структура таблицы “t942_name” 52
5.6 Структура таблицы “t943_name_totals” 52
5.7 Структура таблицы “t942_name_totals” 53
6 Руководство оператора 54
6.1 Запуск приложения 54
6.2 Начало работы 55
7 Экономическая часть 60
7.1 Особенности программного продукта как товара 60
7.2 Расчет затрат на изготовление подсистемы 60
7.3 Расчет экономической эффективности 69
8 Безопасность жизнедеятельности. Природопользование и охрана окружающей среды. 71
8.1 Краткое содержание дипломного проекта 71
8.2 Безопасность проекта 72
8.2.1 Вредные и опасные производственные факторы при работе с ПЭВМ 72
8.2.2 Электро- и пожаробезопасность на рабочем месте оператора ПЭВМ 73
8.2.2.1 Электробезопасность на рабочем месте 74
8.2.2.2 Пожарная безопасность на рабочем месте 76
8.2.3 Обеспечение микроклимата на рабочем месте. Освещенность, шум, вибрация 78
8.2.4 Расчет освещенности на рабочем месте оператора 79
8.2.4.1 Вводная часть 79
8.2.4.2 Описание помещения, в котором располагается рабочее место 79
8.2.4.3 Расчет освещенности на рабочем месте 80
8.2.4.4 Особенности освещения рабочих мест с видеотерминальными устройствами 82
8.2.4.5 Заключение 82
8.3 Эргономичность проекта 83
8.4 Природопользование проекта. Работа с видеодисплейными терминалами ПЭВМ. 85
8.5 Выводы по разделу 87
9 Выводы по выполненной работе 88
10 Список использованных источников 89

Файлы: 7 файлов

Диплом.docx

— 620.40 Кб (Просмотреть файл, Скачать файл)

Приложение _А.docx

— 14.16 Кб (Просмотреть файл, Скачать файл)

Хранимые процедуры.docx

— 22.02 Кб (Скачать файл)

-- Function: check_and_create_table(character varying, integer) 

-- DROP FUNCTION check_and_create_table(character varying, integer); 

CREATE OR REPLACE FUNCTION check_and_create_table(character varying, integer)

  RETURNS integer AS

$BODY$

DECLARE 

--Тип создаваемой таблицы

--Принимает значения  от 2,22,9,99

--2 - таблица t942_archive

--22 - таблица t942_archive_totals

--9 - таблица t943_archive

--99 - таблица t943_archive_totals 

name_table ALIAS for $1;

tb_type ALIAS for $2; 

r_name character varying;

begin

r_name = $1;

--2 - таблица t942_archive

if tb_type = 2 then

    if not exists(select * from information_schema.tables where table_name = r_name) then 
 

      execute 'CREATE TABLE ' || ' '   || r_name || ' '|| '(unical_id  serial not null primary key ,parent_id integer,date_t timestamp without time zone,type integer, sp integer, ns integer, p1 double precision, p2 double precision, t1 double precision, t2 double precision, v1 double precision, v2 double precision ,v3 double precision, m1 double precision, m2 double precision, m3 double precision, q double precision, ti double precision);'; 

     

    end if;

    end if;

--22 - таблица t942_archive_totals

if tb_type = 22 then

    if not exists(select * from information_schema.tables where table_name = r_name) then 
 

      execute 'CREATE TABLE ' || ' '   || r_name || ' '|| '(unical_id serial not null primary key ,parent_id integer,date_t timestamp without time zone, v1 double precision, v2 double precision ,v3 double precision, m1 double precision, m2 double precision, m3 double precision, q double precision, ti double precision);'; 

     

    end if;

    end if;

--9 - таблица t943_archive

if tb_type = 9 then

    if not exists(select * from information_schema.tables where table_name = r_name) then 
 

      execute 'CREATE TABLE ' || ' '   || r_name || ' '|| '(unical_id serial not null primary key ,parent_id integer,date_t timestamp without time zone,type integer, sp integer, ns integer, p1 double precision, p2 double precision, t1 double precision, t2 double precision, t3 double precision, tx double precision, v1 double precision, v2 double precision ,v3 double precision, m1 double precision, m2 double precision, m3 double precision, q double precision, ti double precision, qr double precision);'; 

     

    end if;

    end if; 

--99 - таблица t943_archive_totals

    if tb_type = 99 then

    if not exists(select * from information_schema.tables where table_name = r_name) then 
 

      execute 'CREATE TABLE ' || ' '   || r_name || ' '|| '(unical_id serial not null primary key ,parent_id integer,date_t timestamp without time zone, v1 double precision, v2 double precision ,v3 double precision, m1 double precision, m2 double precision, m3 double precision, q double precision, ti double precision, qr double precision);'; 

     

    end if;

    end if;

    RETURN 1;

end;

$BODY$

  LANGUAGE 'plpgsql' VOLATILE

  COST 100;

ALTER FUNCTION check_and_create_table(character varying, integer) OWNER TO "operator"; 

-- Function: gettypedevice(integer) 

-- DROP FUNCTION gettypedevice(integer); 

CREATE OR REPLACE FUNCTION gettypedevice(integer)

  RETURNS integer AS

$BODY$

DECLARE

  device_id_r ALIAS FOR $1;

  type_r int4;

BEGIN 

SELECT type INTO type_r  FROM "nodes_prolog" WHERE device_id = device_id_r;

 

  RETURN type_r;

END;

$BODY$

  LANGUAGE 'plpgsql' VOLATILE

  COST 100;

ALTER FUNCTION gettypedevice(integer) OWNER TO "operator";

-- Function: insert_elektro_pokaz(double precision, double precision, integer, character varying) 

-- DROP FUNCTION insert_elektro_pokaz(double precision, double precision, integer, character varying); 

CREATE OR REPLACE FUNCTION insert_elektro_pokaz(double precision, double precision, integer, character varying)

  RETURNS character varying AS

$BODY$

DECLARE

noch_pokaz_r ALIAS FOR $1;

day_pokaz_r ALIAS FOR $2;

abon_id_r ALIAS FOR $3;

date_t_r ALIAS FOR $4;

p_date date;

BEGIN

p_date = date_t_r;

 if not exists(select * from elektro_pokaz where date_t = p_date AND abon_id = abon_id_r) then 

execute 'INSERT INTO ' || ' '   || 'elektro_pokaz' || ' '|| '(noch_pokaz, day_pokaz, abon_id,

            date_t) VALUES ('|| noch_pokaz_r || ',' || day_pokaz_r || ',' || abon_id_r || ',' ||date_t_r || ');' ; 

          RETURN 1; 

           ELSE

             RETURN 0;

  end if;

     

   

END;

$BODY$

  LANGUAGE 'plpgsql' VOLATILE

  COST 100;

ALTER FUNCTION insert_elektro_pokaz(double precision, double precision, integer, character varying) OWNER TO "operator";

-- Function: insert_into_t942(character varying, integer, character varying, integer, integer, integer, real, real, real, real, real, real, real, real, real, real, real, real) 

-- DROP FUNCTION insert_into_t942(character varying, integer, character varying, integer, integer, integer, real, real, real, real, real, real, real, real, real, real, real, real); 

CREATE OR REPLACE FUNCTION insert_into_t942(character varying, integer, character varying, integer, integer, integer, real, real, real, real, real, real, real, real, real, real, real, real)

  RETURNS character varying AS

$BODY$

DECLARE

table_name_r ALIAS FOR $1;

parent_id_r ALIAS FOR $2;

date_r ALIAS FOR $3;

type_r ALIAS FOR $4;

sp_r ALIAS FOR $5;

ns_r ALIAS FOR $6;

p1_r ALIAS FOR $7;

p2_r ALIAS FOR $8;

t1_r ALIAS FOR $9;

t2_r ALIAS FOR $10;

v1_r ALIAS FOR $11;

v2_r ALIAS FOR $12;

v3_r ALIAS FOR $13;

m1_r ALIAS FOR $14;

m2_r ALIAS FOR $15;

m3_r ALIAS FOR $16;

q_r ALIAS FOR $17;

ti_r ALIAS FOR $18; 

BEGIN 

execute 'INSERT INTO ' || ' '   || table_name_r || ' '|| '(parent_id, date_t, "type", sp, ns, p1, p2, t1, t2, v1,

            v2, v3, m1, m2, m3, q, ti) VALUES ('||  parent_id_r || ',' || date_r || ',' || type_r || ',' || sp_r || ','

      || ns_r || ',' || p1_r || ',' || p2_r || ',' || t1_r || ',' || t2_r || ',' || v1_r || ',' || v2_r || ','

      || v3_r || ',' || m1_r || ',' || m2_r || ',' || m3_r || ',' || q_r || ',' || ti_r || ');' ;

             
 
 
 

RETURN 1;

END;

$BODY$

  LANGUAGE 'plpgsql' VOLATILE

  COST 100;

ALTER FUNCTION insert_into_t942(character varying, integer, character varying, integer, integer, integer, real, real, real, real, real, real, real, real, real, real, real, real) OWNER TO "operator";

-- Function: insert_into_t942_totals(character varying, integer, character varying, real, real, real, real, real, real, real, real) 

-- DROP FUNCTION insert_into_t942_totals(character varying, integer, character varying, real, real, real, real, real, real, real, real); 

CREATE OR REPLACE FUNCTION insert_into_t942_totals(character varying, integer, character varying, real, real, real, real, real, real, real, real)

  RETURNS character varying AS

$BODY$

DECLARE

table_name_r ALIAS FOR $1;

parent_id_r ALIAS FOR $2;

date_r ALIAS FOR $3;

v1_r ALIAS FOR $4;

v2_r ALIAS FOR $5;

v3_r ALIAS FOR $6;

m1_r ALIAS FOR $7;

m2_r ALIAS FOR $8;

m3_r ALIAS FOR $9;

q_r ALIAS FOR $10;

ti_r ALIAS FOR $11; 

BEGIN 
 
 

execute 'INSERT INTO ' || ' '   || table_name_r || ' '|| '(parent_id, date_t, v1,

            v2, v3, m1, m2, m3, q, ti) VALUES ('||  parent_id_r || ',' || date_r || ',' || v1_r || ',' || v2_r || ','

      || v3_r || ',' || m1_r || ',' || m2_r || ',' || m3_r || ',' || q_r || ',' || ti_r || ');' ;

             
 
 
 

RETURN 1;

END;

$BODY$

  LANGUAGE 'plpgsql' VOLATILE

  COST 100;

ALTER FUNCTION insert_into_t942_totals(character varying, integer, character varying, real, real, real, real, real, real, real, real) OWNER TO "operator";

-- Function: insert_into_t943(character varying, integer, character varying, integer, integer, integer, real, real, real, real, real, real, real, real, real, real, real, real, real, real, real) 

-- DROP FUNCTION insert_into_t943(character varying, integer, character varying, integer, integer, integer, real, real, real, real, real, real, real, real, real, real, real, real, real, real, real); 

CREATE OR REPLACE FUNCTION insert_into_t943(character varying, integer, date_r character varying, integer, integer, integer, real, real, real, real, real, real, real, real, real, real, real, real, real, real, real)

  RETURNS character varying AS

$BODY$

DECLARE

table_name_r ALIAS FOR $1;

parent_id_r ALIAS FOR $2;

date_r ALIAS FOR $3;

type_r ALIAS FOR $4;

sp_r ALIAS FOR $5;

ns_r ALIAS FOR $6;

p1_r ALIAS FOR $7;

p2_r ALIAS FOR $8;

t1_r ALIAS FOR $9;

t2_r ALIAS FOR $10;

t3_r ALIAS FOR $11;

tx_r ALIAS FOR $12;

v1_r ALIAS FOR $13;

v2_r ALIAS FOR $14;

v3_r ALIAS FOR $15;

m1_r ALIAS FOR $16;

m2_r ALIAS FOR $17;

m3_r ALIAS FOR $18;

q_r ALIAS FOR $19;

ti_r ALIAS FOR $20;

qr_r ALIAS FOR $21;

p_date character varying;

BEGIN

p_date = date_r; 
 
 

execute 'INSERT INTO ' || ' '   || table_name_r || ' '|| '("parent_id", "date_t", "type", "sp", "ns", "p1", "p2", "t1", "t2", "t3", "tx", "v1",

            "v2", "v3", "m1", "m2", "m3", "q", "ti", "qr") VALUES ('||  parent_id_r || ',' || date_r || ',' || type_r || ',' || sp_r || ','

      || ns_r || ',' || p1_r || ',' || p2_r || ',' || t1_r || ',' || t2_r || ',' || t3_r || ','|| tx_r || ',' || v1_r || ',' || v2_r || ','

      || v3_r || ',' || m1_r || ',' || m2_r || ',' || m3_r || ',' || q_r || ',' || ti_r || ',' || qr_r || ');' ;

             
 
 
 

RETURN 1;

END;

$BODY$

  LANGUAGE 'plpgsql' VOLATILE

  COST 100;

ALTER FUNCTION insert_into_t943(character varying, integer, character varying, integer, integer, integer, real, real, real, real, real, real, real, real, real, real, real, real, real, real, real) OWNER TO "operator";

-- Function: insert_into_t943_totals(character varying, integer, character varying, real, real, real, real, real, real, real, real, real) 

-- DROP FUNCTION insert_into_t943_totals(character varying, integer, character varying, real, real, real, real, real, real, real, real, real); 

CREATE OR REPLACE FUNCTION insert_into_t943_totals(character varying, integer, character varying, real, real, real, real, real, real, real, real, real)

  RETURNS character varying AS

$BODY$

DECLARE

table_name_r ALIAS FOR $1;

parent_id_r ALIAS FOR $2;

date_r ALIAS FOR $3;

v1_r ALIAS FOR $4;

v2_r ALIAS FOR $5;

v3_r ALIAS FOR $6;

m1_r ALIAS FOR $7;

m2_r ALIAS FOR $8;

m3_r ALIAS FOR $9;

q_r ALIAS FOR $10;

ti_r ALIAS FOR $11;

qr_r ALIAS FOR $12; 

BEGIN 
 
 

execute 'INSERT INTO ' || ' '   || table_name_r || ' '|| '(parent_id, date_t, v1,

            v2, v3, m1, m2, m3, q, ti, qr) VALUES ('||  parent_id_r || ',' || date_r || ',' || v1_r || ',' || v2_r || ','

      || v3_r || ',' || m1_r || ',' || m2_r || ',' || m3_r || ',' || q_r || ',' || ti_r || ',' || qr_r || ');' ;

             
 
 
 

RETURN 1;

END;

$BODY$

  LANGUAGE 'plpgsql' VOLATILE

  COST 100;

ALTER FUNCTION insert_into_t943_totals(character varying, integer, character varying, real, real, real, real, real, real, real, real, real) OWNER TO "operator";

-- Function: insert_node(integer, integer, integer, integer, character varying, integer, integer, integer, character varying, character varying, character varying, character varying, character varying, character varying, character varying, integer, integer, character varying, character varying, character varying, character varying, integer) 

-- DROP FUNCTION insert_node(integer, integer, integer, integer, character varying, integer, integer, integer, character varying, character varying, character varying, character varying, character varying, character varying, character varying, integer, integer, character varying, character varying, character varying, character varying, integer); 

~$Диплом.docx

— 162 байт (Скачать файл)

Информация о работе Разработка АСР