Решения по базе данных для комплекса задач
База данных представлена в виде реляционной модели и реализована с помощью утилиты Database Desktop, которая входит в состав Delphi. Применение этой утилиты позволяет создавать таблицы в интерактивном режиме и сразу же просмотреть их содержимое. В процессе эксплуатации программного продукта существует возможность обращения к базе данных пользователей, не владеющих иностранным языком. Поэтому наименования реквизитов написаны с применением транслитерации. База данных состоит из следующих таблиц: doljn.dbf, fam.dbf, fam_pokaz.dbf, mes.dbf, ntf.dbf, otdel.dbf, pokaz.dbf и pokaz_graf.dbf. Связи между таблицами реализуются через SQL-запросы, используя поля таблиц содержащих одинаковые значения.
Проектирование структуры базы данных представлено на рис. 2.4
| | | | |
| | | | fam.DBF
| | fam
| | name
| | otc
| | otdel
| | doljnosti
| | b
| | tf
| | tn
| | Ktu
| | kpr
| | premiya
| | ian
| | …
|
| |
| | | doljn.DBF
| | otdel
| | doljnosti
|
| |
| |
| Pokaz.DBF
| | otdel
| | doljnosti
| | namepokaz
| | pokaz_str
| | max_ball
|
| |
Рис.2.4 «Структура базы данных»
Таблица doljn.dbf предназначена для хранения информации об отделах с должностями. Структура полей таблицы:
Таблица 2.1
Должность
| Наименования поля
| Тип данных
| Размер
| Описание
|
| otdel
| С (строковые)
|
| Наименование отдела
|
| doljnosti
| С (строковые)
|
| Наименование должности
|
Таблица fam.dbf предназначена для хранения данных для расчета премий сотрудников по месяцам. Структура полей таблицы:
Таблица 2.2
Фамилии
| Наименования поля
| Тип данных
| Размер
| Описание
|
| fam
| С (строковые)
|
| Фамилия
|
| name
| С (строковые)
|
| Имя
|
| otc
| С (строковые)
|
| Отчество
|
| otdel
| С (строковые)
|
| Наименование отдела
|
| doljnosti
| С (строковые)
|
| Наименование должности
|
| b
| F (с плавающей запятой)
|
| Общая сумма баллов
|
| tf
| F (с плавающей запятой)
|
| Коэффициент трудового участия фактический
|
| tn
| F (с плавающей запятой)
|
| Коэффициент трудового участия по нормативу
|
Продолжение таблицы 2.2
| Наименования поля
| Тип данных
| Размер
| Описание
|
| Ktu
| F (с плавающей запятой)
|
| Коэффициент трудового участия
|
| kpr
| F (с плавающей запятой)
|
| Коэффициент премирования
|
| premiya
| F (с плавающей запятой)
|
| Премия
|
| ian
| N (числовые)
|
| Сумма баллов за январь
|
| fevr
| N (числовые)
|
| Сумма баллов за февраль
|
| mart
| N (числовые)
|
| Сумма баллов за март
|
| apreli
| N (числовые)
|
| Сумма баллов за апрель
|
| mai
| N (числовые)
|
| Сумма баллов за май
|
| iuni
| N (числовые)
|
| Сумма баллов за июнь
|
| iuli
| N (числовые)
|
| Сумма баллов за июль
|
| avg
| N (числовые)
|
| Сумма баллов за август
|
| sent
| N (числовые)
|
| Сумма баллов за сентябрь
|
| okt
| N (числовые)
|
| Сумма баллов за октябрь
|
| noiabri
| N (числовые)
|
| Сумма баллов за ноябрь
|
| decabri
| N (числовые)
|
| Сумма баллов за декабрь
|
Продолжение таблицы 2.2
| Наименования поля
| Тип данных
| Размер
| Описание
|
| ian_pr
| F (с плавающей запятой)
|
| Премия за январь
|
| fev_pr
| F (с плавающей запятой)
|
| Премия за февраль
|
| mart_pr
| F (с плавающей запятой)
|
| Премия за март
|
| apr_rp
| F (с плавающей запятой)
|
| Премия за апрель
|
| mai_pr
| F (с плавающей запятой)
|
| Премия за май
|
| iuni_pr
| F (с плавающей запятой)
|
| Премия за июнь
|
| iuli_pr
| F (с плавающей запятой)
|
| Премия за июль
|
| avg_pr
| F (с плавающей запятой)
|
| Премия за август
|
| set_pr
| F (с плавающей запятой)
|
| Премия за сентябрь
|
| okt_pr
| F (с плавающей запятой)
|
| Премия за октябрь
|
| no_pr
| F (с плавающей запятой)
|
| Премия за ноябрь
|
| dec_pr
| F (с плавающей запятой)
|
| Премия за декабрь
|
Таблица fam_pokaz.dbf предназначена для хранения информации о показателях сотрудников по месяцам. Структура полей таблицы:
Таблица 2.3
Показатели работников
| Наименования поля
| Тип данных
| Размер
| Описание
|
| fam
| С (строковые)
|
| Фамилия
|
| name
| С (строковые)
|
| Имя
|
| otc
| С (строковые)
|
| Отчество
|
| otdel
| С (строковые)
|
| Наименование отдела
|
| doljnosti
| С (строковые)
|
| Наименование должности
|
| namepokaz
| M (неограниченной длины)
|
| Наименование показателей
|
Продолжение таблицы 2.3
| Наименования поля
| Тип данных
| Размер
| Описание
|
| pokaz_str
| С (строковые)
|
| Наименование показателей
|
| max_ball
| N (числовые)
|
| Максимальный балл
|
| mes
| С (строковые)
|
| Месяц
|
| god
| N (числовые)
|
| Год
|
| ian
| N (числовые)
|
| Сумма баллов за январь
|
| fevr
| N (числовые)
|
| Сумма баллов за февраль
|
| mart
| N (числовые)
|
| Сумма баллов за март
|
| apreli
| N (числовые)
|
| Сумма баллов за апрель
|
| mai
| N (числовые)
|
| Сумма баллов за май
|
| iuni
| N (числовые)
|
| Сумма баллов за июнь
|
| iuli
| N (числовые)
|
| Сумма баллов за июль
|
| avg
| N (числовые)
|
| Сумма баллов за август
|
| sent
| N (числовые)
|
| Сумма баллов за сентябрь
|
| okt
| N (числовые)
|
| Сумма баллов за октябрь
|
| noiabri
| N (числовые)
|
| Сумма баллов за ноябрь
|
| decabri
| N (числовые)
|
| Сумма баллов за декабрь
|
Значение суммы надтарифного фонда необходимое для премирования сотрудников будет храниться в таблице ntf.dbf. Структура полей таблицы:
Таблица 2.4
Надтарифный фонд
| Наименования поля
| Тип данных
| Размер
| Описание
|
| ntf
| F (с плавающей запятой)
|
| Сумма надтарифного фонда
|
Информация об отделах в учреждении будет храниться в таблице otdel.dbf. Структура полей таблицы:
Таблица 2.5
Отделы
| Наименования поля
| Тип данных
| Размер
| Описание
|
| otdel
| С (строковые)
|
| Наименование отдела
|
| fntf
| F (с плавающей запятой)
|
| Сумма денежных средств выделяемых на отдел
|
| procent
| F (с плавающей запятой)
|
| Процент от надтарифного фонда
|
| kp
| F (с плавающей запятой)
|
| Суммарный коэффициент премирования
|
| d
| F (с плавающей запятой)
|
| Денежная сумма, приходящаяся на единицу коэффициента премий
|
Таблица pokaz.dbf предназначена для хранения информации о показателях деятельности работников. Структура полей таблицы:
Таблица 2.6
Показатели
| Наименования поля
| Тип данных
| Размер
| Описание
|
| otdel
| С (строковые)
|
| Наименование отдела
|
| doljnosti
| С (строковые)
|
| Наименование должности
|
| namepokaz
| M (неограниченной длины)
|
| Наименование показателей
|
| pokaz_str
| С (строковые)
|
| Наименование показателей
|
| max_ball
| N (числовые)
|
| Максимальный балл
|
Таблица pokaz_graf.dbf предназначена для построения гистограммы на согласно выбранным условиям. Структура полей таблицы:
Таблица 2.7
Показатели работников
| Наименования поля
| Тип данных
| Размер
| Описание
|
| fam
| С (строковые)
|
| Фамилия
|
| name
| С (строковые)
|
| Имя
|
| otc
| С (строковые)
|
| Отчество
|
| otdel
| С (строковые)
|
| Наименование отдела
|
| doljnosti
| С (строковые)
|
| Наименование должности
|
Продолжение таблицы 2.7
| Наименования поля
| Тип данных
| Размер
| Описание
|
| pokaz_str
| С (строковые)
|
| Наименование показателей
|
| max_ball
| N (числовые)
|
| Максимальный балл
|
| mes
| С (строковые)
|
| Месяц
|
| god
| N (числовые)
|
| Год
|
| mes_ball
| N (числовые)
|
| Количество баллов за выбранный месяц
|
С помощью таблицы mes.dbf пользователь сможет выводить на экран статистические данные по месяцам. Структура полей таблицы:
Таблица 2.8
Выбор месяца
| Наименования поля
| Тип данных
| Размер
| Описание
|
| mes
| С (строковые)
|
| Месяц
|
| sel
| L (логические)
|
| Выбор месяца
|
Популярное: