Рефераты. Разработка базы данных Кадры p> Теперь, после заполнения всех рабочих бланков для объектов, каждый из них можно рассматривать в качестве основы для создания некоторой таблицы.

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-меню:

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

В пункте :

|Просмотр |
|Редактирование |
|Добавление |
|Удаление |

В пункте :

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

В пункте :

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



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.