Автоматизация учета перечней льготных должностей в Отделении Пенсионного фонда Российской Федерации по Краснодарскому краю

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

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

Сущности и атрибуты нормализованной логической модели представлены ниже:

."Организации" (Таблица 1);

2."Периоды" (Таблица 2);

."Подразделения" (Таблица 3);

."Профессии" (Таблица 4);

."Работники" (Таблица 5);

."Рабочие периоды" (Таблица 6);

."Пользователи" (Таблица 7);

."Документы" - справочник (Таблица 8);

."Типы деятельности организаций" - справочник (Таблица 9);

."Виды работ организаций" - справочник (Таблица 10);

."Основания назначения пенсий" - справочник (Таблица 11);

."Коды позиций списка" - справочник (Таблица 12).

 

Таблица 1 - Организации

АтрибутОписаниеORG_IDУникальный код организацииAREAРегионREGIONРайонREG_NUMРегистрационный номерNAMEПолное наименование организацииTYPEТип деятельности организацииTYPE_FUNCTIONSВид деятельностиBOSS_NAMEРуководительBOSS_TELТелефон руководителяKADR_NAMEНачальник отдела кадровKADR_TELТелефон начальника отдела кадровUSER_ADDПользователь, добавивший данныеDATE_ADDДата добавленияUSER_EDITПользователь, изменивший данныеDATE_EDITДата измененияDELПризнак удаления записи

Таблица 2 - Периоды

АтрибутОписаниеPERIOD_IDУникальный код периодаORG_IDКод организацииDATE_SOSTДата составленияYEARГодKVARTALОтчетный кварталKOL_SOTRКоличество сотрудниковUSER_ADDПользователь, добавивший данныеDATE_ADDДата добавленияUSER_EDITПользователь, изменивший данныеDATE_EDITДата измененияDELПризнак удаления записи

Таблица 3 - Подразделения

АтрибутОписаниеPODRAZD_IDУникальный код подразделенияORG_IDКод организацииNUMНомер подразделенияNAMEНазвание подразделенияDISCRIPTIONОписание деятельности подразделенияKOL_SOTRКоличество сотрудниковUSER_ADDПользователь, добавивший данныеDATE_ADDДата добавленияUSER_EDITПользователь, изменивший данныеDATE_EDITДата измененияDELПризнак удаления записи

Таблица 4 - Профессии

АтрибутОписаниеPROF_IDУникальный код профессииPODRAZD_IDКод подразделенияPERIOD_IDКод периодаPROFESSIONНазвание профессииDISCRIPTIONУсловия работыOSNOV1Основания для льготыOSNOV2Основания для льготыOSNOV3Основания для льготыSPIS_POZПозиция по спискам 1,2DOCSПодтверждающие документыKOL_SHTATКоличество по штатуKOL_FAKTФактическое количествоDATE_ZAPДата заполнения профессииDATE_KORДата корректировки профессииUSER_ADDПользователь, добавивший данныеDATE_ADDДата добавленияUSER_EDITПользователь, изменивший данныеDATE_EDITДата измененияDELПризнак удаления записи

Таблица 5 - Работники

АтрибутОписаниеEMPL_IDУникальный код работникаPODRAZD_IDКод подразделенияPROF_IDКод профессииSTRAH_NUMСтраховой номерFAMФамилияNAMEИмяOTCHОтчествоKOL_WPERIODUSER_ADDПользователь, добавивший данныеDATE_ADDДата добавленияUSER_EDITПользователь, изменивший данныеDATE_EDITДата измененияDELПризнак удаления записи

Таблица 6 - Рабочие периоды

АтрибутОписаниеWPERIOD_IDУникальный код рабочего периодаEMPL_IDКод работникаPROFESSIONПрофессияDATE_BEGINДата начала работыDATE_ENDДата окончания работыDAY_BEZ_ZPКоличество дней без сохранения ЗПOSNOV1Основания для льготыOSNOV2Основания для льготыOSNOV3Основания для льготыSPIS_POZПозиция по спискам 1,2MONTH_OTRABОтработано месяцевDAY_OTRABОтработано днейRATEСтавкаHOURS_VYSLUGIЧасы выслугиUSER_ADDПользователь, добавивший данныеDATE_ADDДата добавленияUSER_EDITПользователь, изменивший данныеDATE_EDITДата измененияDELПризнак удаления записи

Таблица 7 - Пользователи

АтрибутОписаниеUSER_NAMEЛогинPASSWORDПарольDOSTUPПризнак доступа

Таблица 8 - Документы

АтрибутОписаниеDOC_IDУникальный код документаDOCНазвание документа

Таблица 9 - Типы деятельности организаций

АтрибутОписаниеTYPE_IDУникальный код типа деятельностиNAMEТип деятельности

Таблица 10 - Виды работ организаций

АтрибутОписаниеTYPE_FUNC_IDУникальный код вида работNAMEВид работ

Таблица 11 - Основания назначения пенсий

АтрибутОписаниеOSNOV_IDУникальный код основанияKODРегистрационный код основанияDISCRIPTIONОписаниеPRIZNAKПризнак отношения к спискам

Таблица 12 - Коды позиций списка

АтрибутОписаниеSPIS_POZ_IDУникальный код позиции спискаKODРегистрационный код позиции спискаDESCRIPTIONОписание

Нормализованная логическая модель представлена на рис.2.

 

Рис.2

7. Пример практической реализации функции загрузки xml файла в РБД

 

Программный код функции на языке Pascal:

procedure TMainF. PerechenClick (Sender: TObject);, NodesProfession, NodesEmployee, NodesWorkperiod: IXMLNodeList;: Variant;, Q, J, K, ORG_ID, PERIOD_ID, PODRAZD_ID, PROF_ID, EMPL_ID: Integer;, Lvl2: string;: array [0.7] of string;: array [0.3] of string;: array [0.3] of string;: array [0.11] of string;: array [0.4] of string;: array [0.11] of string;. Filter: =XML files (*. xml) |*. xml;not OpenDialog. Execute then exit;. LoadFromFile (OpenDialog. FileName);. Active: = true;: = ФайлЛьготныхПрофессий;: = Предприятие;Q: = 0 to 5 do begin(Q = 4) or (Q = 5) then begin

Org [Q]: = VarToStr (XMLDoc. DocumentElement. ChildNodes [Lvl1]. ChildNodes [Lvl2]. ChildNodes [Q]. ChildNodes [ФИО]. Text);[Q + 2]: = VarToStr (XMLDoc. DocumentElement. ChildNodes [Lvl1]. ChildNodes [Lvl2]. ChildNodes [Q]. ChildNodes [Телефон]. Text);else[Q]: = VarToStr (XMLDoc. DocumentElement. ChildNodes [Lvl1]. ChildNodes [Lvl2]. ChildNodes [Q]. Text);;: = ОтчетныйПериод;Q: = 0 to 3 do[Q]: = VarToStr (XMLDoc. DocumentElement. ChildNodes [Lvl1]. ChildNodes [Lvl2]. ChildNodes [Q]. Text);DataModuleF do begin: = ADOTableOrg. Lookup (AREA; REGION; REG_NUM,([StrToInt (Copy (Org [0], 1,3)), StrToInt (Copy (Org [0], 5,3)),(Copy (Org [0], 9,6))]), AREA);not VarIsNull (V) then begin. Locate (AREA; REGION; REG_NUM,([StrToInt (Copy (Org [0], 1,3)), StrToInt (Copy (Org [0], 5,3)),(Copy (Org [0], 9,6))]), []);. Edit;. AsString: = Org [1];. AsString: = Org [2];_FUNCTIONS. AsString: = Org [3];_NAME. AsString: = Org [4];_TEL. AsString: = Org [6];_NAME. AsString: = Org [5];_TEL. AsString: = Org [7];_EDIT. AsString: = Login;_EDIT. Value: = Date;. Post;_ID: = ADOTableOrgORG_ID. AsInteger;else begin. Insert;. AsString: = Copy (Org [0], 1,3