Разработка комплекса программ автоматизации процесса регистрации и обработки данных для конкретной организации
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
BS_COEFFICIENT ( P_OPREDELENIE SMALLINT NOT NULL, BIGGER_1PER FLT_DOMAIN /* FLT_DOMAIN = DOUBLE PRECISION CHECK (VALUE>=0) */, BIGGER_5PER FLT_DOMAIN /* FLT_DOMAIN = DOUBLE PRECISION CHECK (VALUE>=0) */, LOVER_1PER FLT_DOMAIN /* FLT_DOMAIN = DOUBLE PRECISION CHECK (VALUE>=0) */, LOVER_5PER FLT_DOMAIN /* FLT_DOMAIN = DOUBLE PRECISION CHECK (VALUE>=0) */);TABLE KOHREN_COEFFICIENT (P_OPREDELENIE SMALLINT NOT NULL, N2_1PER FLT_DOMAIN /* FLT_DOMAIN = DOUBLE PRECISION CHECK (VALUE>=0) */, N2_5PER FLT_DOMAIN /* FLT_DOMAIN = DOUBLE PRECISION CHECK (VALUE>=0) */, N3_1PER FLT_DOMAIN /* FLT_DOMAIN = DOUBLE PRECISION CHECK (VALUE>=0) */, N3_5PER FLT_DOMAIN /* FLT_DOMAIN = DOUBLE PRECISION CHECK (VALUE>=0) */, N4_1PER FLT_DOMAIN /* FLT_DOMAIN = DOUBLE PRECISION CHECK (VALUE>=0) */, N4_5PER FLT_DOMAIN /* FLT_DOMAIN = DOUBLE PRECISION CHECK (VALUE>=0) */, N5_1PER FLT_DOMAIN /* FLT_DOMAIN = DOUBLE PRECISION CHECK (VALUE>=0) */, N5_5PER FLT_DOMAIN /* FLT_DOMAIN = DOUBLE PRECISION CHECK (VALUE>=0) */, N6_1PER FLT_DOMAIN /* FLT_DOMAIN = DOUBLE PRECISION CHECK (VALUE>=0) */, N6_5PER FLT_DOMAIN /* FLT_DOMAIN = DOUBLE PRECISION CHECK (VALUE>=0) */);TABLE LABOR (VARCHAR(25) NOT NULL);TABLE METOD (VARCHAR(30) NOT NULL, COMMENT VARCHAR(250)); CREATE GENERATOR GEN_PRECISION_METOD_OCENCA_ID; CREATE TABLE PRECISION_METOD_OCENCA (ID INTEGER NOT NULL, NOMER INTEGER NOT NULL, PROBA SMALLINT NOT NULL, X DOUBLE PRECISION NOT NULL, XG DOUBLE PRECISION, K DOUBLE PRECISION NOT NULL);TABLE Q_COEFFICIENT (N SMALLINT NOT NULL, Q FLT_DOMAIN /* FLT_DOMAIN = DOUBLE PRECISION CHECK (VALUE>=0) */);TABLE REGISTER_PROTOCOL_OCENCA (ID INTEGER NOT NULL, CURDATE DATE NOT NULL, LABOR VARCHAR(25) NOT NULL, METOD VARCHAR(15), COMMENT VARCHAR(250), X_SR_GEN DOUBLE PRECISION, L SMALLINT, N_SR FLOAT, SKO_RECURRENCE DOUBLE PRECISION, SKO_RECUR DOUBLE PRECISION, C FLOAT, LIMIT_RECURRENCE DOUBLE PRECISION, LIMIT_RECUR DOUBLE PRECISION, DELTA DOUBLE PRECISION, KT DOUBLE PRECISION, UNIT VARCHAR(20), G_KOHR DOUBLE PRECISION, G_KOHR_1_PER DOUBLE PRECISION, G_KOHR_5_PER DOUBLE PRECISION, CHECK_1_PIP_G_MIN DOUBLE PRECISION, CHECK_1_PIP_G_MAX DOUBLE PRECISION, CHECK_1_PIP_BIG_1PER DOUBLE PRECISION, CHECK_1_PIP_BIG_5PER DOUBLE PRECISION, CHECK_2_PIP_G_MIN DOUBLE PRECISION, CHECK_2_PIP_G_MAX DOUBLE PRECISION, CHECK_2_PIP_LOWER_1PER DOUBLE PRECISION, CHECK_2_PIP_LOWER_5PER DOUBLE PRECISION, TIP SMALLINT, GRANICA_TIP SMALLINT, SOST SMALLINT, N SMALLINT, N2 SMALLINT, VIEV SMALLINT);TABLE SHUHART_SP_IND (ID INTEGER NOT NULL, CURDATE DATE, LABOR VARCHAR(30), OTDEL VARCHAR(50), POKAZATEL VARCHAR(50), KONTROL VARCHAR(50), PERIOD VARCHAR(50), X DOUBLE PRECISION, R DOUBLE PRECISION, UCL_X DOUBLE PRECISION, UCL_R DOUBLE PRECISION, LCL DOUBLE PRECISION);TABLE SHUHART_SP_KSRI (ID INTEGER NOT NULL, CURDATE DATE, LABOR VARCHAR(25), METOD VARCHAR(30), PARAMETR VARCHAR(50), FACTOR VARCHAR(50), PERIOD VARCHAR(50), L DOUBLE PRECISION, USLG DOUBLE PRECISION, USLPR DOUBLE PRECISION, R_OTN DOUBLE PRECISION); ALTER TABLE SHUHART_SP_KSRI ADD CONSTRAINT PK_SHUHART_SP_KSRI PRIMARY KEY (ID); ALTER TABLE SHUHART_SP_KSRI ADD CONSTRAINT FK_SHUHART_SP_KSRI_LABORPROBAShuhart_val_ksriNOMER = :Nomer and W_OTN = :W_otn_max:Proba;= 1;(Gk > G1_per) thenPROBAShuhart_val_ksriNOMER = :Nomer and W_OTN = :W_otn_max:Proba;from Shuhart_val_ksriW_OTN = :W_otn_max;= 2;(Gk <= G5_per) then= 0;;TERM;
/* Following GRANT statetements are generated automatically */SELECT, DELETE ON SHUHART_VAL_KSRI TO PROCEDURE CALC_KOHR_SHUHART; GRANT SELECT ON KOHREN_COEFFICIENT TO PROCEDURE CALC_KOHR_SHUHART;or alter procedure CALC_PRECISION_METOD_OCENKA (integer,_RECURRENCE double precision)variable T1 double precision;variable T double precision;variable L smallint;variable K double precision;variable "P(0,95)_F" double precision;variable Q double precision;variable TC double precision;variable DELTA double precision;variable SUMM_QUADR_DIFF double precision;variable KT double precision;sum(K) / count(*) as Q,(*) as LPrecision_metod_ocencaNOMER = :Nomer:Q, :L;_QUADR_DIFF = 0;KPrecision_metod_ocencaNOMER = :Nomer:K_QUADR_DIFF = SUMM_QUADR_DIFF + Calc_sqr(K - Q);= Calc_sqrt(SUMM_QUADR_DIFF / (L * (L - 1)));= Q / TC;TStudent_coefficientF = :L - 1:T1;(T <= T1) then DELTA = 2 * LIMIT_RECURRENCE;DELTA = 2 * Calc_sqrt(Calc_sqr(LIMIT_RECURRENCE) + Calc_sqr(TC));= Calc_sqrt(2) * DELTA;Register_protocol_ocencaDELTA = :Delta,= :KtID = :Nomer;;TERM;
/* Following GRANT statetements are generated automatically */SELECT ON PRECISION_METOD_OCENCA TO PROCEDURE CALC_PRECISION_METOD_OCENKA; GRANT SELECT ON STUDENT_COEFFICIENT TO PROCEDURE CALC_PRECISION_METOD_OCENKA; GRANT SELECT,UPDATE ON REGISTER_PROTOCOL_OCENCA TO PROCEDURE CALC_PRECISION_METOD_OCENKA;or alter procedure CALC_R_OTN (integer)(double precision,double precision,double precision,_OTN double precision)Calc_sqrt((1.0000/(2*count(PROBA)))*(sum(Calc_sqr(W_OTN)))) as R_OTNShuhart_val_ksriNOMER = :Nomer:R_otn;= 1.128 * R_OTN;= 3.686 * R_OTN;= 2.834 * R_OTN;
/*update Shuhart_sp_ksriL = :L,= :Uclg,= :Uclp,_OTN = :R_otn ID = :Nomer;*/
suspend;
end
2 Реализация программного обеспечения
автоматизация регистрация данные
Теперь приступим непосредственно к созданию базы данных, таблиц и процедур. База данных будет иметь следующие параметры:
расширение *.GDB - для совместимости с Interbase;
кодировка Win1251 - для отображения русских букв;
третий SQL диалект;
размер страницы 4096 байт идентичный размеру кластера на жестком диске, где располагается база данных.
Таблицы будут иметь два вида:
справочные таблицы;
рабочие таблицы.
В справочных таблицах мы будем хранить данные по наименованиям лабораторий и методик, единиц измерений, коэффициентах, использующихся при расчетах. Подробные данные приведены в таблице 6.
НаименованиеОписаниеGRABBS_COEFFICIENTКоэффициенты ГраббсаKOHREN_COEFFICIENTКоэффициенты КохренаLABORНаименование лабораторийMETODНаименование методикQ_COEFFICIENTКоэффициенты критического диапазонаSTUDENT_COEFFICIENTПроцентные точки распределения СтьюдентаUNITЕдиницы измеренияТабл.6
Рабочие таблицы, в свою очередь, разделятся еще на два вида, мастер и деталь таблицы. В мастер-таблицах мы будем хранить получаемые единичные расчетные данные по каждой решаемой задаче, а так же основные данные по составляемым протоколам, такие как дата, номер, примечания и т.д. В деталь-таблицы будут заноситься основные расчетные данные, первичная информация по химическим пробам, на основании которых будут производиться расчеты. В таблице 7 представлен перечень этих таблиц:
НаименованиеОписаниеREGISTER_PROTOCOL_OCENCAмастер-таблица для задач оценки точности результатов измеренийVALUE_LIST_OCENCAдеталь-таблица для задач оценки точности результатов измеренийPRECISION_METOD_OCENCAдеталь-таблица для задач оценки точности результатов измерений в оценке границ погрешностиSHUHART_SP_KSRIмастер-таблица для задач расчета карт контроля стабильности результатов измерений SHUHART_VAL_KSRIдеталь-таблица для задач расчета карт контроля стабильности результатов измеренийSHUHART_SP_INDмастер-таблица для контрольных карт индивидуальных значенийSHUHART_VAL_INDдеталь-таблица для контрольных карт индивидуальных значенийТабл.7
Связь между мастер-деталь таблицами происходит методом наложения ограничения ссылочной целостности, так называемого FOREIGN KEY (внешнего ключа) на поле деталь-таблицы. В нашем случае ограничение ссылочной целостности накладываются на поле NOMER во всех деталь-таблицах имеющее ссылку на поле ID в мастер-таблицах, это значит, что при удалении или изменении записи в мастер-таблице, тоже самое будет происходить и