усский
гуманитарно-технический
колледж
«Тантал»
технической
кибернетики
«Утверждаю»
Зав. кафедрой
факультета
технической
кибернетики
__________________________
«_____»_____________2001 г.
Дипломная
работаСтудента
Жучкова М.Ю.
рег. номер
___________
Тема:
Разработка
базы данных
«Кадры»
Руководитель:
____________/
/
Рецензент:
_______________/ /
2001 г.
г. Москва
Оглавление:
1.
Введение 3-4
2.
Основная часть.
Разработка
базы данных
«Кадры»
2.1
Описание предметной
области 5-8
2.2
Построение
инфологической
и даталогической
модели 9-28
2.3
Проектирование
базы данных 29-37
2.4
Разработка
приложения 38-43
3.
Охрана труда 44-46
4.
Заключение 47
5.
Библиографический
список 48
6.
Приложение 49-87
7.
Графический
материал 88-93
1. ВВЕДЕНИЕ
Открытое
акционерное
общество
«Судостроительный
завод «Лотос»
предназначен
для строительства
морских буровых
стационарных
платформ разведки
и добычи нефти
и строительства
судов различного
назначения.
Предприятие
располагает
большими техническими
возможностями
(до 30000 тонн металла
в год) и квалифицированными
кадрами, аттестовано
на класс Речного
Регистра, Морского
Регистра Судоходства,
а также Германского
Ллойда.
ОАО «ССЗ
«ЛОТОС» предлагает
к изготовлению:
технические
средства для
освоения газовых
и нефтяных
месторождений
на шельфе мирового
океана и внутренних
морей;
сухогрузные
и нефтеналивные
суда различного
района плавания
- морского, речного
и смешанного
«река – море»
(спусковой вес
около 15000 т);
вспомогательные
суда различного
назначения;
суда технического
флота.
В данной
дипломной
работе осуществлена
разработка
базы данных
для отдела
кадров.
Автоматизация
подсистемы
управления
кадрами является
одной из важнейших
частей автоматизации
производственно-хозяйственной
деятельности
предприятия.
Несмотря
на определенную
унификацию
баз данных для
управления
кадрами судостроительного
предприятия
такая база
имеет определенные
специфические
отличия, например,
разработаны
такие поля,
которые необходимы
для расчета
трудоемкости
постройки судов
и т.д.
Определенная
задача состояла
в разработке
полноты базы,
т.е. осуществлена
такая архитектура,
которая могла
бы осуществить
как работу
поисковых
систем для
отдела кадров
и других отделов
предприятия,
так и формирование
выходной информации,
необходимой
для функционирования
задач подсистемы
управления
кадрами и сведений
для руководства
предприятия.
2. ОСНОВНАЯ
ЧАСТЬ
Разработка
базы данных
«Кадры»
2.1 Описание
предметной
области
Предметной
областью называется
часть реального
мира, представляющая
интерес для
данного исследования
(использования)
[1].
Вкратце
рассмотрим
схему работы
отдела кадров.
Инспектор
отдела кадров
заполняет
личное дело
сотрудника
данными. В список
анкетных данных
входят:
- фамилия;
- имя;
- отчество;
- табельный
номер;
- страховой
номер;
- пол;
- дата рождения;
- место рождения;
- национальность;
- социальное
происхождение;
- гражданство;
- образование;
- название
учебного заведения;
- форма обучения;
- год окончания
учебного заведения;
- диплом
(серия, номер);
- квалификация
по диплому;
- специальность
по диплому;
- образование
(дополнительное);
- вид найма;
- вид работы;
- ученая
степень;
- ученое
звание;
- узкая
специальность;
- владение
иностранными
языками;
- наличие
судимости;
- семейное
положение;
- состав
семьи;
- состоит
ли в профсоюзе;
- имеет ли
группу инвалидности;
- является
ли пенсионером;
- является
ли участником
войны;
- домашний
почтовый индекс;
- район
проживания;
- область;
- домашний
адрес;
- домашний
телефон;
- паспортные
данные
(серия,
номер, кем выдан,
прописка);
- воинская
обязанность;
- воинское
звание;
- номер
военно-учетной
специальности;
- военный
билет (серия,
номер);
- годность
к военной службе;
- отношение
к бронированию;
- наличие
моб. предписания;
- группа
учета;
- категория
учета;
- к какому
райвоенкомату
причислен;
- дата начала
срочной службы
- дата окончания
срочной службы;
- дата последнего
прохождения
мед. комиссии;
- данные
трудовой книжки;
- данные о
назначениях
и перемещениях;
- квалификационный
разряд;
- учреждение;
- подразделение;
- текущая
должность;
- дата приема
на работу;
- дата окончания
испытательного
срока;
- информация
о командировках;
- информация
об отпусках;
- дата увольнения;
- ИНН;
- серия
свидетельства
налогоплательщика;
- номер
свидетельства
налогоплательщика;
- дата выдачи
свидетельства
налогоплательщика.
Периодически
инспектор
отдела кадров
подшивает в
дело новые
сведения и
приказы, касающиеся
этого сотрудника.
Время от времени
сотруднику
требуется
выдать справки
фиксированного
содержания
на основании
данных личного
дела (краткая
информация
о сотруднике
и др.).
В разрабатываемом
приложение
должна иметься
возможность
добавления
нового и удаление
старого сотрудника
в базе данных,
редактирование
его анкетных
данных.
Также должны
быть предусмотрены
функции поиска
данных по фамилии
сотрудника,
функции формирования
и печати справки
содержащую
краткую информация
о сотруднике,
печати всех
данных о нем,
переиндексации
и инициализации
баз данных.
2.2 Построение
инфологической
и даталогической
модели
Описание
предметной
области, выполненное
без ориентации
на используемые
в дальнейшем
программные
и технические
средства, называется
инфологической
моделью [1].
Для того,
чтобы база
данных адекватно
отражала предметную
область, проектировщик
базы данных
должен хорошо
представлять
себе все нюансы,
присущие данной
предметной
области (ПО), и
уметь отобразить
их в базе данных.
Поэтому прежде
чем начинать
проектирование
базы данных,
необходимо
как следует
разобраться,
как функционирует
предметная
область, для
отображения
которой создается
БД. Предметная
область должна
быть предварительно
описана. Для
этого в принципе
может использоваться
и естественный
язык, но его
применение
имеет много
недостатков,
основным из
которых являются
громоздкость
описания и
неоднозначность
его трактовки.
Поэтому обычно
для этих целей
используют
искусственные
формализованные
языковые средства.
В связи с этим
под инфологической
моделью (ИЛМ)
понимают описание
предметной
области, выполненное
с использованием
специальных
языковых средств,
не зависящих
от используемых
в дальнейшем
программных
средств [1].
Для описания
инфологической
модели были
использованы
графические
средства.
Описание
связи «объект-свойство»
изображено
на рис. 2.2.1 графического
материала.
База данных
«Кадры» разрабатывается
для хранения
текстовой
информации
(хотя для удобства
ввода некоторые
поля таблиц
– числовые),
поэтому в приложении
не будут применены
вычисления
введенных
оператором
данных.
Даталогическая
модель является
моделью логического
уровня и представляет
собой отображение
логических
связей между
элементами
данных безотносительно
к их содержанию
и среде хранения.
Эта модель
строится в
терминах
информационных
единиц, допустимых
в той конкретной
СУБД, в среде
которой мы
проектируем
базу данных
[1].
Отделу кадров
ОАО «ССЗ «Лотос»
необходимо
решать следующие
задачи:
Регистрация
новых сотрудников.
Уточнение
данных по
существующим
сотрудникам.
Удаление
сотрудников.
Опишем задачи,
заполнив рабочий
бланк №1.
В рабочий
бланк задачи
нужно занести
имя каждого
элемента данных,
его использование
и краткое описание
этого элемента.
При заполнении
столбца «Использование»
рабочего бланка
применяются
пять обозначений
- I,O,U,D, и C. Это первые
буквы слов
Input(Ввод), Output(Вывод),
Update(Изменения),
Delete(Удаление),
Calculate(Вычисления).
В столбец «Объект»
записывается
имя объекта.
В качестве
имен элементов/объектов
подберем краткий
английский
перевод описания
этих элементов/объектов.
РАБОЧИЙ | ||||
Наименование | Анкетные данные сотрудников | |||
Краткое | Регистрация Уточнение Удаление. | |||
Список | Ввод, | |||
Имя | Использование | Описание | Объект | |
Organic number | I, U | Табельный номер сотрудника | Stuff | |
Insurance number | I, U | Страховой номер | Stuff | |
Surname | I, U | Фамилия | Stuff | |
Name | I, U | Имя | Stuff | |
Patronymic name | I, U | Отчество | Stuff | |
Sex | I, U | Пол | Stuff | |
Date of birth | I, U | Дата рождения | Stuff | |
Birthplace | I, U | Место рождения | Stuff | |
Nationality | I, U | Национальность | Stuff | |
Social origin | I, U | Социальное происхождение | Stuff | |
Citizenship | I, U | Гражданство | Stuff | |
Education | I, U | Образование | Stuff | |
Education institution | I, U | Название учебного заведения | Stuff | |
Form of training | I, U | Форма обучения | Stuff | |
Year of the ending | I, U | Год окончания | Stuff | |
Diploma | I, U | Диплом (серия) | Stuff | |
Qualification | I, U | Квалификация по диплому | Stuff | |
Speciality | I, U | Специальность по диплому | Stuff | |
Amount | O | Количество записей в разделе «Дополнительное образование» | Stuff | |
Kind of hiring | I, U | Вид найма | Stuff | |
Kind of work | I, U | Вид работы | Stuff | |
Scientific degree | I, U | Ученая степень | Stuff | |
Scientific rank | I, U | Ученое звание | Stuff | |
Narrow speciality | I, | Узкая специальность | Stuff | |
Amount foreign languages | O | Количество записей в разделе «Владение иностранными языками» | Stuff | |
Amount conviction | O | Количество записей в разделе «Наличие судимости» | Stuff | |
Marital status | I, U | Семейное положение | Stuff | |
Amount | O | Количество записей в разделе «Состав семьи» | Stuff | |
Trade union | I, U | Профсоюз | Stuff | |
Group of inability | I, U | Группа инвалидности | Stuff | |
Pensioner | I, U | Пенсионер ? | Stuff | |
Participant of a war | I, U | Участник войны | Stuff | |
Postal index | I, U | Домашний индекс | Stuff | |
Region | I, U | Район | Stuff | |
Area | I, U | Область | Stuff | |
Home address | I, U | Домашний адрес | Stuff | |
Telephone number | I, U | Домашний телефон | Stuff | |
Passport | I, U | Серия, номер | Stuff | |
Conscription | I, U | Воинская обязанность | Stuff | |
Military rank | I, U | Воинское звание | Stuff | |
Number | I, U | Номер ВУС | Stuff | |
Military ticket | I, U | Номер военного билета | Stuff | |
Validity to military service | I, U | Годность к военной службе | Stuff | |
Attitude to booking | I, U | Отношение к бронированию | Stuff | |
Mobile instructions | I, U | Наличие моб, предписания | Stuff | |
Group of thee account | I, U | Группа учета | Stuff | |
Category of the account | I, U | Категория учета | Stuff | |
Commissioners | I, U | Райвоенкомат | Stuff | |
Date started service | I, U | Дата начала срочной службы | Stuff | |
Date close service | I, U | Дата окончания срочной службы | Stuff | |
Date of last | I, U | Дата последнего прохождения мед. комиссии | Stuff | |
Amount work record cards | O | Количество записей в разделе «Трудовая книжка» | Stuff | |
Amount purpose and moving | O | Количество записей в разделе «Назначения и перемещения» | Stuff | |
Amount qualifying category | O | Количество записей в разделе «Квалификационный разряд» | Stuff | |
Company name | I, U | Название учреждения | Stuff | |
Subdivision | I, U | Подразделение | Stuff | |
Current post | I, U | Текущая должность | Stuff | |
Date of employment | I, U | Дата приема на работу | Stuff | |
Date closed of a trial period | I, U | Дата окончания испытательного срока | Stuff | |
Amount business trip | O | Количество записей в разделе «Командировки» | Stuff | |
Amount holiday | O | Количество записей в разделе «Отпуска» | Stuff | |
Date of dismissal | I, U | Дата увольнения | Stuff | |
Reason of dismissal | I, U | Причина увольнения | Stuff | |
Individual number | I, U | Индивидуальный номер налогоплательщика | Stuff | |
Tax bearer series | I, U | Серия свидетельства налогоплательщика | Stuff | |
Tax bearer number | I, U | Номер свидетельства налогоплательщика | Stuff | |
Tax bearer distribution date | I, U | Дата выдачи свидетельства налогоплательщика | Stuff | |
Date begin in education | I, U | Дата поступления в у/з | Education additional | |
Date of end education | I, U | Дата окончания у/з | Education additional | |
Additional | I, U | Образование | Education additional | |
Name education | I, U | Название у/з | Education additional | |
Diploma education | I, U | Диплом | Education additional | |
Form of training additional | I, U | Форма обучения | Education additional | |
Qualification additional | I, | Квалификация | Education additional | |
Speciality additional | I, U | Специальность | Education additional | |
Other language | I, U | Язык | Language | |
Level of possession | I, U | Уровень владения | Language | |
Date of verdict | I, U | Дата вынесения приговора | Conviction | |
Article | I, | Статья | Conviction | |
Period | I, U | Срок | Conviction | |
Degree of relationship | I, U | Степень родства | Family | |
Names | I, U | Фамилия, инициалы родственника | Family | |
Date of birth relative | I, U | Дата рождения | Family | |
Expense | I, U | На иждивении | Family | |
By whom is given | I, | Кем выдан | Passport registration | |
Date of distribution | I, U | Дата выдачи | Passport registration | |
Index | I, U | Индекс | Passport | |
Area registration | I, U | Область | Passport registration | |
Region registration | I, U | Район | Passport registration | |
City | I, U | Город | Passport | |
Point | I, U | Населенный пункт | Passport registration | |
Street | I, U | Улица | Passport registration | |
House | I, U | Дом | Passport registration | |
Corps | I, U | Корпус | Passport registration | |
Flat | I, U | Квартира | Passport registration | |
Date of statement | I, U | Дата постановки | Work record card | |
Date of dismissal | I, U | Дата увольнения | Work record card | |
Name of company | I, U | Название учреждения | Work record card | |
A post | I, U | Должность | Work record card | |
Reason card | I, U | Причина | Work record card | |
Basis card | I, U | Основание | Work-record card | |
Date moving | I, U | Дата | Purpose and moving | |
Reason moving | I, U | Основание | Purpose and moving | |
Department | I, U | Отдел | Purpose and moving | |
Post | I, U | Должность | Purpose and moving | |
Method of operating | I, U | Режим работы | Purpose and moving | |
Date | I, U | Дата | Qualification | |
Reason qualification | I, U | Основание | Qualification | |
Qualification | I, U | Квалификация | Qualification | |
Date started trip | I, U | Дата начала | Business trip | |
Date closed trip | I, U | Дата окончания | Business trip | |
Destination | I, U | Место назначения | Business trip | |
Kind of holiday | I, U | Вид отпуска | Holiday | |
Basis holiday | I, U | Основание | Holiday | |
In time with | I, U | За время с | Holiday | |
In time on | I, U | За время по | Holiday | |
Date started holiday | I, U | Дата начала | Holiday | |
Amount | I, U | Количество дней | Holiday | |
Date closed holiday | I, U | Дата окончания | Holiday |
Теперь
можно приступить
к более тщательному
анализу данных
и объединению
отдельных
элементов
данных в объекты.
Эти объекты
станут впоследствии
основой для
создания таблиц
в проектируемой
базе данных.
Далее
следует заполнить
еще один комплект
рабочих бланков,
который поможет
объединить
элементы данных
в объекты. В
верхней части
бланка для
каждого объекта
надо перечислить
все объекты
связанные с
данным. В графе
бланка «Связь»
указывается
тип связи
(«один-ко-многим»
или «один-к-одному»).
Для
каждого элемента
данных, в рабочем
бланке объекта,
обязательно
должны быть
указаны тип
данных (текстовый,
числовой, денежный,
Мемо и т.д.) и длина
поля, необходимая
для их хранения.
Должно быть
дано краткое
описание этого
элемента, которое
впоследствии
будет использоваться
при определении
таблицы.
Также,
в бланке должно
быть записано
условие на
значение, которое
будет применяться
к соответствующему
полю данных.
В дальнейшем,
можно будет
задать эти
условия в программных
файлах FoxPro, чтобы
использовать
их для проверки
данных.
Опишем
используемые
объекты, заполнив
рабочий бланк
№2.
РАБОЧИЙ | ||||||
Имя | KADRES | |||||
Краткое | Основные анкетные данные сотрудников | |||||
Связанные | Имя: Education Language Conviction Family Passport registration Work record card Purpose and moving Qualifications Business trip Holiday | Связь: Многие Многие Многие Многие Многие Многие Многие Многие Многие Многие | ||||
Имя | Тип | Описание | Условие | |||
Organic number | Числовой (6) | Табельный номер сотрудника | Требуется | |||
Не должны повторяться | ||||||
Insurance number | Текстовый (14) | Страховой номер | NNN-NNN-NNN | |||
Surname | Текстовый (15) | Фамилия | Требуется | |||
Name | Текстовый (15) | Имя | Требуется | |||
Patronymic name | Текстовый (15) | Отчество | Требуется | |||
Sex | Текстовый (15) | Пол | Требуется | |||
М или Ж | ||||||
Date of birth | Дата | Дата рождения | Требуется | |||
Birthplace | Текстовый (47) | Место рождения | Требуется | |||
Nationality | Текстовый (15) | Национальность | Требуется | |||
Social | Текстовый (47) | Социальное происхождение | Требуется | |||
Citizenship | Текстовый (30) | Гражданство | Требуется | |||
Education | Текстовый (47) | Образование | Требуется | |||
Education institution | Текстовый (47) | Название учебного заведения | Требуется | |||
Form of training | Текстовый (20) | Форма обучения | Требуется | |||
Year of the ending | Дата (8) | Год окончания | Требуется | |||
Diploma | Текстовый (25) | Диплом (серия) | Требуется | |||
Серия:ХХХХ номер:NNNNNNNN | ||||||
Qualification | Текстовый (47) | Квалификация по диплому | Требуется | |||
Speciality | Текстовый (47) | Специальность по диплому | Требуется | |||
Amount education additional | Числовой (2) | Количество записей в разделе «Дополнительное образование» | ||||
Kind of hiring | Текстовый (30) | Вид найма | Требуется | |||
Kind of work | Текстовый (30) | Вид работы | Требуется | |||
Scientific degree | Текстовый (30) | Ученая степень | ||||
Scientific rank | Текстовый (30) | Ученое звание | ||||
Narrow speciality | Текстовый (47) | Узкая специальность | ||||
Amount foreign languages | Числовой (2) | Количество записей в разделе «Владение иностранными языками» | ||||
Amount conviction | Числовой (2) | Количество записей в разделе «Наличие судимости» | ||||
Marital status | Текстовый (20) | Семейное положение | Требуется | |||
Amount family | Числовой (2) | Количество записей в разделе «Состав семьи» | ||||
Trade union | Текстовый (40) | Профсоюз | Требуется | |||
Group | Числовой (1) | Группа инвалидности | ||||
Pensioner | Текстовый (1) | Пенсионер ? | Требуется | |||
Д или Н | ||||||
Participant of a war | Текстовый (1) | Участник войны | Требуется | |||
Д или Н | ||||||
Postal index | Числовой (6) | Домашний индекс | Требуется | |||
Region | Текстовый (20) | Район | Требуется | |||
Area | Текстовый (40) | Область | Требуется | |||
Home address | Текстовый (40) | Домашний адрес | Требуется | |||
Telephone number | Текстовый (18) | Домашний телефон | ###-##-## код: ### | |||
Passport | Текстовый (29) | Серия, номер | Требуется | |||
Серия: XXXXXXX-XX номер: ###### | ||||||
Conscription | Текстовый (20) | Воинская обязанность | ||||
Military rank | Текстовый (20) | Воинское звание | ||||
Number | Числовой (12) | Номер ВУС | ||||
Military ticket | Текстовый (23) | Номер военного билета | Серия: номер: | |||
Validity to military service | Текстовый (47) | Годность к военной службе | ||||
Attitude to booking | Текстовый (47) | Отношение к бронированию | ||||
Mobile instructions | Текстовый (1) | Наличие моб, предписания | Д или Н | |||
Group of thee account | Текстовый(47) | Группа учета | ||||
Category of the account | Текстовый (20) | Категория учета | ||||
Commissioners | Текстовый (47) | Райвоенкомат | ||||
Date started service | Дата | Дата начала срочной службы | ||||
Date close service | Дата | Дата окончания срочной службы | ||||
Date of last | Дата | Дата последнего прохождения мед. Комиссии | ||||
Amount work record cards | Числовой (2) | Количество записей в разделе «Трудовая книжка» | ||||
Amount purpose and moving | Числовой (2) | Количество записей в разделе «Назначения и перемещения» | ||||
Amount qualifying category | Числовой (2) | Количество записей в разделе «Квалификационный разряд» | ||||
Company | Текстовый (47) | Название учреждения | Требуется | |||
Subdivision | Текстовый (30) | Подразделение | Требуется | |||
Current post | Текстовый (30) | Текущая должность | Требуется | |||
Date of employment | Дата | Дата приема на работу | Требуется | |||
Date closed of a trial period | Дата | Дата окончания испытательного срока | Требуется | |||
Amount business trip | Числовой (2) | Количество записей в разделе «Командировки» | ||||
Amount holiday | Числовой (2) | Количество записей в разделе «Отпуска» | ||||
Date of dismissal | Дата | Дата увольнения | Требуется | |||
Reason | Текстовый (47) | Причина увольнения | Требуется | |||
Individual number | Текстовый (12) | Индивидуальный номер налогоплательщика | Требуется | |||
Tax bearer series | Текстовый (14) | Серия свидетельства налогоплательщика | Требуется | |||
Tax bearer number | Текстовый (14) | Номер свидетельства налогоплательщика | Требуется | |||
Tax bearer distribution date | Дата | Дата выдачи свидетельства налогоплательщика | Требуется | |||
Имя | Education additional | |||||
Краткое | Сведения о дополнительном образовании | |||||
Связанные | Имя: Stuff | Связь: Один | ||||
Имя | Тип | Описание | Условие | |||
Date begin in education | Дата | Дата поступления в у/з | Требуется | |||
Date of end education | Дата | Дата окончания у/з | Требуется | |||
Additional education | Текстовый (30) | Образование | Требуется | |||
Name education | Текстовый (15) | Название у/з | Требуется | |||
Diploma education | Текстовый (15) | Диплом | Требуется | |||
Form of training additional | Текстовый (15) | Форма обучения | Требуется | |||
Qualification additional | Текстовый (15) | Квалификация | Требуется | |||
Speciality | Текстовый (15) | Специальность | Требуется | |||
Имя | Language | |||||
Краткое | Знание дополнительных иностранных языков | |||||
Связанные | Имя: Stuff | Связь: Один | ||||
Имя | Тип | Описание | Условие | |||
Other language | Текстовый (20) | Язык | Требуется | |||
Level of possession | Текстовый (30) | Уровень владения | Требуется | |||
Имя | Conviction | |||||
Краткое | Наличие судимости у сотрудника | |||||
Связанные | Имя: Stuff | Связь: Один | ||||
Имя | Тип | Описание | Условие | |||
Date of verdict | Дата | Дата вынесения приговора | Требуется | |||
Article | Текстовый (20) | Статья | Требуется | |||
Period | Текстовый (20) | Срок | Требуется | |||
Имя | Family | |||||
Краткое | Сведения о составе семьи | |||||
Связанные | Имя: Stuff | Связь: Один | ||||
Имя | Тип | Описание | Условие | |||
Degree of relationship | Текстовый (20) | Степень родства | Требуется | |||
Names | Текстовый (20) | Фамилия, инициалы родственника | Требуется | |||
Date of birth relative | Дата | Дата рождения | Требуется | |||
Expense | Текстовый (20) | На иждивении | Требуется | |||
Имя | Passport registration | |||||
Краткое | Паспортные данные (прописка) | |||||
Связанные | Имя: Stuff | Связь: Один | ||||
Имя | Тип | Описание | Условие | |||
By whom | Текстовый (50) | Кем выдан | Требуется | |||
Date of distribution | Дата | Дата выдачи | Требуется | |||
Index | Текстовый (6) | Индекс | Требуется | |||
Area registration | Текстовый (30) | Область | Требуется | |||
Region registration | Текстовый (30) | Район | Требуется | |||
City | Текстовый (30) | Город | Требуется | |||
Point | Текстовый (30) | Населенный пункт | Требуется | |||
Street | Текстовый (30) | Улица | Требуется | |||
House | Текстовый (10) | Дом | Требуется | |||
Corps | Текстовый (10) | Корпус | Требуется | |||
Flat | Текстовый (10) | Квартира | Требуется | |||
Имя | Work record card | |||||
Краткое | Записи в трудовой книжке | |||||
Связанные | Имя: Stuff | Связь: Один | ||||
Имя | Тип | Описание | Условие | |||
Date of statement | Дата | Дата постановки | Требуется | |||
Date of dismissal | Дата | Дата увольнения | Требуется | |||
Name of | Текстовый (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 operating | Текстовый (15) | Режим работы | Требуется | |||
Имя | Qualification | |||||
Краткое | Сведения о квалификационном разряде сотрудника | |||||
Связанные | Имя: Stuff | Связь: Один | ||||
Имя | Тип | Описание | Условие | |||
Date qualification | Дата | Дата | Требуется | |||
Reason qualification | Текстовый (20) | Основание | Требуется | |||
Qualification | Текстовый (20) | Квалификация | Требуется | |||
Имя | Business trip | |||||
Краткое | Командировки | |||||
Связанные | Имя: Stuff | Связь: Один | ||||
Имя | Тип | Описание | Условие | |||
Date started trip | Дата | Дата начала | Требуется | |||
Date closed trip | Дата | Дата окончания | Требуется | |||
Destination | Текстовый (25) | Место назначения | Требуется | |||
Имя | Holiday | |||||
Краткое | Отпуска | |||||
Связанные | Имя: Stuff | Связь: Один | ||||
Имя | Тип | Описание | Условие | |||
Kind of holiday | Текстовый (15) | Вид отпуска | Требуется | |||
Basis holiday | Текстовый | Основание | Требуется | |||
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 | Текстовый | Форма обучения |
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 (затем | ||||||
down | 1 | 5 | Down=1 | list=list-1 (затем | ||||||
previos | 1 | 5 | Previos=1 | SKIP –1 (затем | ||||||
next | 1 | 5 | Next=1 | SKIP 1 (затем | ||||||
find | 1 | 5 | Find=1 | DO search.prg WITH (переменная | ||||||
1 | 5 | Print=1 | DO print.prg | |||||||
exit | 1 | 5 | Exit=1 | END DO (возвращение | ||||||
eduadd | 1 | 5 | Eduadd=1 | DO educat.prg WITH orgnum1, edit | ||||||
forlang | 1 | 5 | Forlang=1 | DO language.prg WITH orgnum1, edit | ||||||
conv | 1 | 5 | Conv=1 | DO convict.prg WITH orgnum1, edit | ||||||
structfam | 1 | 5 | Structfam=1 | DO family.prg WITH orgnum1, edit | ||||||
bok | 1 | 5 | Bok=1 | DO workcard.prg WITH orgnum1, edit | ||||||
purpos | 1 | 5 | Purpos=1 | DO move.prg WITH orgnum1, edit | ||||||
qualcateg | 1 | 5 | Qualcateg=1 | DO qualif.prg WITH orgnum1, edit | ||||||
tripsbus | 1 | 5 | Tripsbus=1 | DO bus_trip.prg WITH orgnum1, edit | ||||||
holid | 1 | 5 | Holid=1 | DO holiday.prg WITH orgnum1, edit | ||||||
pass | 1 | 5 | Pass=1 | DO passport.prg WITH orgnum1, edit
Обсуждение:
Название реферата: Разработка базы данных Кадры
Вам также могут понравиться эти работы:
|