Рефераты

Разработка базы данных Кадры

|dismissal | | | |

|Individual |Текстовый (12) |Индивидуальный номер|Требуется |

|number | |налогоплательщика | |

|Tax bearer |Текстовый (14) |Серия свидетельства |Требуется |

|series | |налогоплательщика | |

|Tax bearer |Текстовый (14) |Номер свидетельства |Требуется |

|number | |налогоплательщика | |

|Tax bearer |Дата |Дата выдачи |Требуется |

|distribution | |свидетельства | |

|date | |налогоплательщика | |

| |

| |

|Имя объекта: |Education additional |

|Краткое описание: |Сведения о дополнительном образовании |

|Связанные объекты: |Имя: |Связь: |

| |Stuff |Один |

| |

|Имя элемента |Тип данных |Описание |Условие на значение |

|данных | | | |

|Date begin in |Дата |Дата поступления в |Требуется |

|education | |у/з | |

|Date of end |Дата |Дата окончания у/з |Требуется |

|education | | | |

|Additional |Текстовый (30) |Образование |Требуется |

|education | | | |

|Name education |Текстовый (15) |Название у/з |Требуется |

|Diploma |Текстовый (15) |Диплом |Требуется |

|education | | | |

|Form of training|Текстовый (15) |Форма обучения |Требуется |

|additional | | | |

|Qualification |Текстовый (15) |Квалификация |Требуется |

|additional | | | |

|Speciality |Текстовый (15) |Специальность |Требуется |

|additional | | | |

| |

| |

|Имя объекта: |Language |

|Краткое описание: |Знание дополнительных иностранных языков |

|Связанные объекты: |Имя: |Связь: |

| |Stuff |Один |

| |

|Имя элемента |Тип данных |Описание |Условие на значение |

|данных | | | |

|Other language |Текстовый (20) |Язык |Требуется |

|Level of |Текстовый (30) |Уровень владения |Требуется |

|possession | | | |

| |

| |

|Имя объекта: |Conviction |

|Краткое описание: |Наличие судимости у сотрудника |

|Связанные объекты: |Имя: |Связь: |

| |Stuff |Один |

| |

|Имя элемента |Тип данных |Описание |Условие на значение |

|данных | | | |

|Date of verdict |Дата |Дата вынесения |Требуется |

| | |приговора | |

|Article |Текстовый (20) |Статья |Требуется |

|Period |Текстовый (20) |Срок |Требуется |

| |

| |

|Имя объекта: |Family |

|Краткое описание: |Сведения о составе семьи |

|Связанные объекты: |Имя: |Связь: |

| |Stuff |Один |

| |

|Имя элемента |Тип данных |Описание |Условие на значение |

|данных | | | |

|Degree of |Текстовый (20) |Степень родства |Требуется |

|relationship | | | |

|Names |Текстовый (20) |Фамилия, инициалы |Требуется |

| | |родственника | |

|Date of birth |Дата |Дата рождения |Требуется |

|relative | | | |

|Expense |Текстовый (20) |На иждивении |Требуется |

| |

| |

|Имя объекта: |Passport registration |

|Краткое описание: |Паспортные данные (прописка) |

|Связанные объекты: |Имя: |Связь: |

| |Stuff |Один |

| |

|Имя элемента |Тип данных |Описание |Условие на значение |

|данных | | | |

|By whom is given|Текстовый (50) |Кем выдан |Требуется |

|Date of |Дата |Дата выдачи |Требуется |

|distribution | | | |

|Index |Текстовый (6) |Индекс |Требуется |

|Area |Текстовый (30) |Область |Требуется |

|registration | | | |

|Region |Текстовый (30) |Район |Требуется |

|registration | | | |

|City |Текстовый (30) |Город |Требуется |

|Point |Текстовый (30) |Населенный пункт |Требуется |

|Street |Текстовый (30) |Улица |Требуется |

|House |Текстовый (10) |Дом |Требуется |

|Corps |Текстовый (10) |Корпус |Требуется |

|Flat |Текстовый (10) |Квартира |Требуется |

| |

| |

|Имя объекта: |Work record card |

|Краткое описание: |Записи в трудовой книжке |

|Связанные объекты: |Имя: |Связь: |

| |Stuff |Один |

| |

|Имя элемента |Тип данных |Описание |Условие на значение |

|данных | | | |

|Date of |Дата |Дата постановки |Требуется |

|statement | | | |

|Date of |Дата |Дата увольнения |Требуется |

|dismissal | | | |

|Name of company |Текстовый (20) |Название учреждения |Требуется |

|A post |Текстовый (20) |Должность |Требуется |

|Reason card |Текстовый (20) |Причина |Требуется |

|Basis card |Текстовый (20) |Основание |Требуется |

| |

| |

|Имя объекта: |Purpose and moving |

|Краткое описание: |Сведения о назначениях и перемещениях |

| |сотрудника |

|Связанные объекты: |Имя: |Связь: |

| |Stuff |Один |

| |

|Имя элемента |Тип данных |Описание |Условие на значение |

|данных | | | |

|Date moving |Дата |Дата |Требуется |

|Reason moving |Текстовый (20) |Основание |Требуется |

|Department |Текстовый (20) |Отдел |Требуется |

|Post |Текстовый (15) |Должность |Требуется |

|Method of |Текстовый (15) |Режим работы |Требуется |

|operating | | | |

| |

| |

|Имя объекта: |Qualification |

|Краткое описание: |Сведения о квалификационном разряде |

| |сотрудника |

|Связанные объекты: |Имя: |Связь: |

| |Stuff |Один |

| |

|Имя элемента |Тип данных |Описание |Условие на значение |

|данных | | | |

|Date |Дата |Дата |Требуется |

|qualification | | | |

|Reason |Текстовый (20) |Основание |Требуется |

|qualification | | | |

|Qualification |Текстовый (20) |Квалификация |Требуется |

| |

| |

|Имя объекта: |Business trip |

|Краткое описание: |Командировки |

|Связанные объекты: |Имя: |Связь: |

| |Stuff |Один |

| |

|Имя элемента |Тип данных |Описание |Условие на значение |

|данных | | | |

|Date started |Дата |Дата начала |Требуется |

|trip | | | |

|Date closed trip|Дата |Дата окончания |Требуется |

|Destination |Текстовый (25) |Место назначения |Требуется |

| |

| |

|Имя объекта: |Holiday |

|Краткое описание: |Отпуска |

|Связанные объекты: |Имя: |Связь: |

| |Stuff |Один |

| |

|Имя элемента |Тип данных |Описание |Условие на значение |

|данных | | | |

|Kind of holiday |Текстовый (15) |Вид отпуска |Требуется |

|Basis holiday |Текстовый (15) |Основание |Требуется |

|In time with |Дата |За время с |Требуется |

|In time on |Дата |За время по |Требуется |

|Date started |Дата |Дата начала |Требуется |

|holiday | | | |

|Amount |Числовой (3) |Количество дней |Требуется |

|Date closed |Дата |Дата окончания |Требуется |

|holiday | | | |

Теперь, после заполнения всех рабочих бланков для объектов, каждый из

них можно рассматривать в качестве основы для создания некоторой таблицы.

2.3 Проектирование базы данных

При проектировании базы данных следует придерживаться правил

нормализации таблиц:

Правило 1: Каждое поле любой таблицы должно быть уникальным.

Правило 2: Каждая таблица должна иметь уникальный идентификатор

(первичный ключ), который может состоять из одного или нескольких полей

таблицы.

Правило 3: Для каждого значения первичного ключа должно быть одно и

только одно значение любого из столбцов данных, и это значение должно

относиться к объекту таблицы.

Правило 4: Должна иметься возможность изменять значения любого поля

(не входящего в первичный ключ), и это не должно повлечь за собой изменение

другого поля.[2]

Каждый агрегированный объект будет представлен отдельной таблицей базы

данных. Элементы данных будут представлены полями таблиц. Имена таблиц и их

полей подберем исходя из имен объектов и элементов данных. В качестве

первичного ключа используем табельный номер. Проект базы данных включает в

себя 11 таблиц.

Опишем базу данных в табличной форме.

|ОПИСАНИЕ ТАБЛИЦ БАЗЫ ДАННЫХ «КАДРЫ» |

|Имя таблицы: |STUFF.DBF |

|Краткое описание: |Основная таблица базы данных |

|Имя поля |Тип данных |Описание |

|ORG_NUM |Числовой (6) |Табельный номер |

| | |сотрудника |

|INS_NUM |Текстовый (14) |Страховой номер |

|SURNAME |Текстовый (15) |Фамилия |

|NAME |Текстовый (15) |Имя |

|PATRON |Текстовый (15) |Отчество |

|SEX |Текстовый (15) |Пол |

|BIRTH_DATE |Дата |Дата рождения |

|BIRTHPLACE |Текстовый (47) |Место рождения |

|NATIONAL |Текстовый (15) |Национальность |

|SOCIAL |Текстовый (47) |Социальное происхождение|

|CITIZEN |Текстовый (30) |Гражданство |

|EDUCAT |Текстовый (47) |Образование |

|NAME_EDU |Текстовый (47) |Название учебного |

| | |заведения |

|FORM_TRAIN |Текстовый (20) |Форма обучения |

|YEAR_END |Дата (8) |Год окончания |

|DIPLOMA |Текстовый (25) |Диплом (серия) |

|QUAL_DIP |Текстовый (47) |Квалификация по диплому |

|SPEC_DIP |Текстовый (47) |Специальность по диплому|

|EDU_NUM |Числовой (2) |Количество записей в |

| | |разделе «Дополнительное |

| | |образование» |

|KIND_HIR |Текстовый (30) |Вид найма |

|KIND_WRK |Текстовый (30) |Вид работы |

|S_DEGREE |Текстовый (30) |Ученая степень |

|S_RANK |Текстовый (30) |Ученое звание |

|MAR_SPEC |Текстовый (47) |Узкая специальность |

|LANG_NUM |Числовой (2) |Количество записей в |

| | |разделе «Владение |

| | |иностранными языками» |

|CONV_NUM |Числовой (2) |Количество записей в |

| | |разделе «Наличие |

| | |судимости» |

|MAR_STATUS |Текстовый (20) |Семейное положение |

|FAMIL_NUM |Числовой (2) |Количество записей в |

| | |разделе «Состав семьи» |

|TR_UNION |Текстовый (40) |Профсоюз |

|GROUP |Числовой (1) |Группа инвалидности |

|PENSIONER |Текстовый (1) |Пенсионер ? |

|PARTIC_WAR |Текстовый (1) |Участник войны |

|POST_INDEX |Числовой (6) |Домашний индекс |

|REGION |Текстовый (20) |Район |

|AREA |Текстовый (40) |Область |

|ADDRESS |Текстовый (40) |Домашний адрес |

|TELEPHONE |Текстовый (18) |Домашний телефон |

|PASSPORT |Текстовый (29) |Серия, номер |

|CONSCRIPT |Текстовый (20) |Воинская обязанность |

|MILIT_RANK |Текстовый (20) |Воинское звание |

|NUMBER |Числовой (12) |Номер ВУС |

|MIL_TICKET |Текстовый (23) |Номер военного билета |

|MIL_VALID |Текстовый (47) |Годность к военной |

| | |службе |

|ATTITUDE |Текстовый (47) |Отношение к бронированию|

|MOBILE_INS |Текстовый (1) |Наличие моб, предписания|

|GROUP_ACC |Текстовый(47) |Группа учета |

|CATEGORY_A |Текстовый (20) |Категория учета |

|COMMISSAR |Текстовый (47) |Райвоенкомат |

|START_DATE |Дата |Дата начала срочной |

| | |службы |

|CLOSE_DATE |Дата |Дата окончания срочной |

| | |службы |

|LAST_DATE |Дата |Дата последнего |

| | |прохождения мед. |

| | |Комиссии |

|RECORD_NUM |Числовой (2) |Количество записей в |

| | |разделе «Трудовая |

| | |книжка» |

|PURPOS_NUM |Числовой (2) |Количество записей в |

| | |разделе «Назначения и |

| | |перемещения» |

|QUAL_NUM |Числовой (2) |Количество записей в |

| | |разделе |

| | |«Квалификационный |

| | |разряд» |

|COMPANY |Текстовый (47) |Название учреждения |

|SUBDIVIS |Текстовый (30) |Подразделение |

|CUR_POST |Текстовый (30) |Текущая должность |

|EMPLOYMENT |Дата |Дата приема на работу |

|TRIAL_CLOS |Дата |Дата окончания |

| | |испытательного срока |

|TRIAL_NUM |Числовой (2) |Количество записей в |

| | |разделе «Командировки» |

|HOLID_NUM |Числовой (2) |Количество записей в |

| | |разделе «Отпуска» |

|DATE_DIS |Дата |Дата увольнения |

|REASON_DIS |Текстовый (47) |Причина увольнения |

|INN |Текстовый (12) |Индивидуальный номер |

| | |налогоплательщика |

|SERIES_TAX |Текстовый (14) |Серия свидетельства |

| | |налогоплательщика |

|NUM_TAX |Текстовый (14) |Номер свидетельства |

| | |налогоплательщика |

|DATE_TAX |Дата |Дата выдачи |

| | |свидетельства |

| | |налогоплательщика |

| |

|Имя таблицы: |EDUCAT.DBF |

|Краткое описание: |Дополнительное образование |

|Имя поля |Тип данных |Описание |

|ORG_NUM |Числовой (6) |Табельный номер |

| | |сотрудника |

|DATE_BEGIN |Дата |Дата поступления в у/з |

|DATE_END |Дата |Дата окончания у/з |

|EDUCATION |Текстовый (30) |Образование |

|NAME_EDUC |Текстовый (15) |Название у/з |

|DIPL |Текстовый (15) |Диплом |

|FORM_TR |Текстовый (15) |Форма обучения |

|QUALIFIC |Текстовый (15) |Квалификация |

|SPECIAL |Текстовый (15) |Специальность |

| |

|Имя таблицы: |LANGUAGE.DBF |

|Краткое описание: |Владение иностранными языками |

|Имя поля |Тип данных |Описание |

|ORG_NUM |Числовой (6) |Табельный номер |

| | |сотрудника |

|OTH_LANG |Текстовый (20) |Язык |

|LEVEL |Текстовый (30) |Уровень владения |

| |

|Имя таблицы: |CONVICT.DBF |

|Краткое описание: |Наличие судимости |

|Имя поля |Тип данных |Описание |

|ORG_NUM |Числовой (6) |Табельный номер |

| | |сотрудника |

|DATE_VERD |Дата |Дата вынесения приговора|

|ARTICLE |Текстовый (20) |Статья |

|PERIOD |Текстовый (20) |Срок |

| |

|Имя таблицы: |FAMILY.DBF |

|Краткое описание: |Состав семьи |

|Имя поля |Тип данных |Описание |

|ORG_NUM |Числовой (6) |Табельный номер |

| | |сотрудника |

|RELATION |Текстовый (20) |Степень родства |

|NAMES |Текстовый (20) |Фамилия, инициалы |

| | |родственника |

|DATE_RELAT |Дата |Дата рождения |

|EXPENSE |Текстовый (20) |На иждивении |

| |

|Имя таблицы: |PASSPORT.DBF |

|Краткое описание: |Паспортные данные |

|Имя поля |Тип данных |Описание |

|ORG_NUM |Числовой (6) |Табельный номер |

| | |сотрудника |

|EXP_GIVEN |Текстовый (50) |Кем выдан |

|DATE_DISTR |Дата |Дата выдачи |

|INDEX_P |Текстовый (6) |Индекс |

|AREA_P |Текстовый (30) |Область |

|REGION_P |Текстовый (30) |Район |

|CITY_P |Текстовый (30) |Город |

|POINT_P |Текстовый (30) |Населенный пункт |

|STREET_P |Текстовый (30) |Улица |

|HOUSE_P |Текстовый (10) |Дом |

|CORPS_P |Текстовый (10) |Корпус |

|FLAT_P |Текстовый (10) |Квартира |

| |

|Имя таблицы: |WORKCARD.DBF |

|Краткое описание: |Трудовая книжка |

|Имя поля |Тип данных |Описание |

|ORG_NUM |Числовой (6) |Табельный номер |

| | |сотрудника |

|DATE_WRK |Дата |Дата постановки |

|DATE_DISM |Дата |Дата увольнения |

|NAME_WRK |Текстовый (20) |Название учреждения |

|POST_WRK |Текстовый (20) |Должность |

|REASON_WRK |Текстовый (20) |Причина |

|BASIS_WRK |Текстовый (20) |Основание |

| |

|Имя таблицы: |MOVING.DBF |

|Краткое описание: |Назначения и перемещения |

|Имя поля |Тип данных |Описание |

|ORG_NUM |Числовой (6) |Табельный номер |

| | |сотрудника |

|DATE_MOV |Дата |Дата |

|REASON_MOV |Текстовый (20) |Основание |

|DEPART |Текстовый (20) |Отдел |

|POST_MOV |Текстовый (15) |Должность |

|METHOD_MOV |Текстовый (15) |Режим работы |

| |

|Имя таблицы: |QUALIFIC.DBF |

|Краткое описание: |Квалификационный разряд |

|Имя поля |Тип данных |Описание |

|ORG_NUM |Числовой (6) |Табельный номер |

| | |сотрудника |

|DATE_QUAL |Дата |Дата |

|REASON_QUAL |Текстовый (20) |Основание |

|QUALIFICAT |Текстовый (20) |Квалификация |

| |

|Имя таблицы: |BUS_TRIP.DBF |

|Краткое описание: |Командировки |

|Имя поля |Тип данных |Описание |

|ORG_NUM |Числовой (6) |Табельный номер |

| | |сотрудника |

|START_TRP |Дата |Дата начала |

|CLOSED_TRP |Дата |Дата окончания |

|DESTINAT |Текстовый (25) |Место назначения |

| |

|Имя таблицы: |HOLIDAY.DBF |

|Краткое описание: |Отпуска |

|Имя поля |Тип данных |Описание |

|ORG_NUM |Числовой (6) |Табельный номер |

| | |сотрудника |

|KIND_HOL |Текстовый (15) |Вид отпуска |

|BASIS_HOL |Текстовый (15) |Основание |

|WITH_HOL |Дата |За время с |

|ON_HOL |Дата |За время по |

|D_ST_HOL |Дата |Дата начала |

|AMOUNT |Числовой (3) |Количество дней |

|D_END_HOL |Дата |Дата окончания |

Итак, спроектировано 11 таблиц базы данных «Кадры». Для удобства

работы, 10 из них следует проиндексировать:

таблицу STUFF.DBF по полю ORG_NUM;

таблицу EDUCAT.DBF по полю DATE_BEGIN;

таблицу LANGUAGE.DBF по полю OTH_LANG;

таблицу CONVICT.DBF по полю DATE_VERD;

таблицу FAMILY.DBF по полю DATE_RELAT;

таблицу WORKCARD.DBF по полю DATE_WRK;

таблицу MOVING.DBF по полю DATE_MOV;

таблицу QUALIFIC.DBF по полю DATE_QUAL;

таблицу BUS_TRIP.DBF по полю START_TRP;

таблицу HOLIDAY.DBF по полю WITH_HOL.

2.4 Разработка приложения

Для создания проекта использовалась СУБД FoxPro 2.6.

В состав проекта входит 28 командных файлов. Можно было бы в качестве

процедур объединить их в один файл, но тогда, в дальнейшем, стало было

неудобно их изменять. Взаимосвязь командных файлов представлена на рис.

2.4.1 графического материала.

Стартовым в проекте является файл START.PRG, в котором устанавливается

операционная среда системы, формируется экран, а также описывается рабочее

меню. В состав рабочего меню входят горизонтальное BAR-меню и три

вертикальных POPUP-меню:

|Данные о сотрудниках |Сервис |Справки |Выход |

В пункте :

|Просмотр |

|Редактирование |

|Добавление |

|Удаление |

В пункте :

|Переиндексация баз |

|Инициализация баз |

В пункте :

|Краткая справка о сотруднике |

При выборе , или , запускаются

программные файлы (модули) READ.PRG, WRITE.PRG или NEW.PRG соответственно.

Задача этих модулей - запуск R_W.PRG с необходимыми параметрами. В

частности задаются переменные edit и type (edit=.t. – редактирование полей

разрешено, edit=.f. – редактирование запрещено, type=1 – выводится

сообщение «просмотр данных», type=2 – «редактирование данных», type=3 –

«добавление данных»). NEW.PRG также должен добавить пустую запись в таблицу

STUFF.DBF.

Так как анкетные данные довольно обширны, для их отображения

пользоваться только командами BROWSE или CHANGE неудобно. В данном проекте

использовались GET-поля для таблиц STUFF.DBF, PASSPORT.DBF и BROWSE-окна

для остальных. Описание экранов с GET-полями, а также условия ввода данных,

заложены в модулях WIEV1.PRG, WIEV2.PRG, WIEV3.PRG, WIEV4.PRG, WIEV5.PRG,

которые запускает R_W.PRG (чтобы не перечислять каждый раз, назову их

WIEVn). В зависимости от значения переменной edit, в GET-полях разрешено

или запрещено редактирование данных. Экраны, формируемые этими модулями,

кроме области редактирования данных содержат в верхней части экрана номер

«листа», Ф.И.О. сотрудника, вид операции, а в нижней части экрана - опции

управления:

| | | |

|ЛИСТАТЬ |ЗАПИСЬ | |

| | | |

- передает управление следующему экрану.

- передает управление предыдущему экрану

- переходит к следующему сотруднику.

- возвращается к предыдущему сотруднику

Если номер экрана больше 5, то управление передается экрану №1.

Если номер экрана меньше 1, то управление передается экрану №5.

Подобная же схема действует и на выбор следующего или предыдущего

сотрудника.

- позволяет не перебирать сотрудников по порядку, а сразу

выбрать его из списка.

- выводит на печать все данные о текущем сотруднике.

- возврат в главное меню.

Кроме данных опций, экраны содержат дополнительно опции, позволяющие

просмотреть связанную с ними дополнительную информацию. На каждом экране

эти опции разные. С правой части от опции - выводится количество записей в

разделе.

Все опции описаны LIGHTBAR-меню.

При выборе некоторой опции происходит выход из текущего модуля WIEVn

с возвращением списка переменных в модуль R_W.PRG. В соответствии со

значением переменных, управление передается тому или иному модулю.

|Переменная |Значение |Условие на |Действие |

| | |выполнение | |

| |Выбрано |не | | |

| | |выбрано | | |

|up |1 |5 |Up=1 |list=list+1 |

| | | | |(затем в соответствии со |

| | | | |значением list запускается |

| | | | |один из модулей WIEV.PRG) |

|down |1 |5 |Down=1 |list=list-1 |

| | | | |(затем в соответствии со |

Страницы: 1, 2, 3


© 2010 Современные рефераты