Разработка автоматизированного рабочего места по учету данных о дежурствах сотрудников воинской части

Автоматизация учета рабочего времени сотрудников войсковой части №63180. Проектирование баз данных, алгоритм решения задачи, описание архитектуры программы и реализация функционального назначения программы. Расчет себестоимости программного продукта.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 12.09.2016
Размер файла 1,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

В стандартную поставку Delphi входят основные объекты, которые образуют удачно подобранную иерархию из 270 базовых классов. На Delphi можно одинаково хорошо писать как приложения к корпоративным базам данных, так и, к примеру, игровые программы. Во многом это объясняется тем, что традиционно в среде Windows было достаточно сложно реализовывать пользовательский интерфейс. Событийная модель в Windows всегда была сложна для понимания и отладки. Но именно разработка интерфейса в Delphi является самой простой задачей для программиста.

Среда Delphi включает в себя полный набор визуальных инструментов для скоростной разработки приложений (RAD - rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL - библиотека визуальных компонент, включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE. Единственное, что можно поставить в вину Delphi, это то, что готовых компонент, поставляемых Borland, могло бы быть и больше. Однако, разработки других фирм, а также свободно распространяемые программистами freeware-компоненты уже восполнили этот недостаток.

Объекты БД в Delphi основаны на SQL и включают в себя полную мощь Borland Database Engine. В состав Delphi также включен Borland SQL Link, поэтому доступ к СУБД Oracle, Sybase, Informix и InterBase происходит с высокой эффективностью. Кроме того, Delphi включает в себя локальный сервер Interbase для того, чтобы можно было разработать расширяемые на любые внешние SQL-сервера приложения в онлайновом режиме. Разработчик в среде Delphi, проектирующий информационную систему для локальной машины (к примеру, небольшую систему учета медицинских карточек для одного компьютера), может использовать для хранения информации файлы формата .dbf (как в dBase или Clipper) или .db (Paradox). Если же он будет использовать локальный InterBase for Windows 4.0 (это локальный SQL-сервер, входящий в поставку), то его приложение безо всяких изменений будет работать и в составе большой системы с архитектурой клиент-сервер.

Т.е. очень хорошая масштабируемость - одно и то же приложение можно использовать как для локального, так и для более серьезного клиент-серверного вариантов.

Выпущены две версии Delphi - одна (Delphi Client-Server) адресована для разработчиков приложений в архитектуре “клиент-сервер”, а другая (Delphi for Windows) предназначена для остальных программистов. Приложения, разработанные при помощи Delphi, можно использовать без выплаты royalty-процентов и без оплаты runtime- лицензий.

Клиент-серверная версия включает в себя следующие особенности:

1) SQL Links: специально написанные драйвера для доступа к Oracle, Sybase, Informix, InterBase;

2) локальный сервер InterBase: SQL-сервер для Windows 3.1. СУБД для разработки в корпоративных приложений на компьютере, не подключенном к локальной сети;

3) ReportSmith Client/server Edition: генератор отчетов для SQL-серверов;

4) Team Development Support: предоставляет версионный контроль при помощи PVCS компании Intersolve (приобретается отдельно) или при помощи других программных продуктов версионного контроля;

5) Visual Query Builder - это средство визуального построения SQL-запросов;

6) лицензия на право распространения приложений в архитектуре клиент-сервер, изготовленных при помощи Delphi;

7) исходные тексты всех визуальных компонент.

Delphi for Windows представляет из себя подмножество Delphi Client-Server и предназначен для разработчиков высокопроизводительных персональных приложений, работающих с локальными СУБД типа dBase и Paradox.Delphi Desktop Edition предлагает такую же среду для быстрой разработки и первоклассный компилятор как и клиент-серверная версия (Client/Server Edition). Эта среда позволяет разработчику быстро изготавливать персональные приложения, работающие с персональными СУБД типа dBase и Paradox. Delphi позволяет также создавать разработчику DLL, которая может быть вызвана из Paradox, dBase, C++ или каких-нибудь других готовых программ:

1) компилятор Object Pascal (этот язык является расширением языка Borland Pascal 7.0);

2) генератор отчетов ReportSmith 2.5 (у которого, правда, отсутствует возможность работы с SQL-серверами);

3) среда визуального построителя приложений;

4) библиотека визуальных компонент;

5) локальный сервер InterBase.

В первую очередь Delphi предназначен для профессионалов-разработчиков корпоративных информационных систем. Может быть, здесь следует пояснить, что конкретно имеется в виду. Не секрет, что некоторые удачные продукты, предназначенные для скоростной разработки приложений (RAD - rapid application development) прекрасно работают при изготовлении достаточно простых приложений, однако, разработчик сталкивается с непредвиденными сложностями, когда пытается сделать что-то действительно сложное. Бывает, что в продукте вскрываются присущие ему ограничения только по прошествии некоторого времени.

Delphi такие ограничения не присущи. Хорошее доказательство тому - это тот факт, что сам Delphi разработан на Delphi.

Руководители предприятий, планирующие выделение средств на приобретение программных продуктов, должны быть уверены в том, что планируемые инвестиции окупятся. Поэтому одним из оцениваемых факторов должен быть вопрос - а легко ли найти специалиста по Delphi и сколько будет стоить его обучение, сколько времени специалист затратит на овладение продуктом. Ответ здесь получить весьма просто - любой программист на паскале способен практически сразу профессионально освоить Delphi. Специалисту, ранее использовавшему другие программные продукты, придется труднее, однако самое первое работающее приложение он сможет написать в течение первого же часа работы на Delphi. И, конечно же, открытая технология Delphi является мощным гарантом того, что инвестиции, сделанные в Delphi, будут сохранены в течение многих лет.

Локальный сервер InterBase - следует заметить, что этот инструмент предназначен только для автономной отладки приложений. В действительности он представляет из себя сокращенный вариант обработчика SQL-запросов InterBase, в который не включены некоторые возможности настоящего сервера InterBase. Отсутствие этих возможностей с лихвой компенсируется преимуществом автономной отладки программ.

Team Development Support - средство поддержки разработки проекта в группе. Позволяет существенно облегчить управление крупными проектами. Это сделано в виде возможности подключения такого продукта как Intersolve PVCS 5.1 непосредственно к среде Delphi.

Высокопроизводительный компилятор в машинный код - в отличие от большинства Паскаль-компиляторов, транслирующих в p-код, в Delphi программный текст компилируется непосредственно в машинный код, в результате чего Delphi- приложения исполняются в 10-20 раз быстрее (особенно приложения, использующие математические функции). Готовое приложение может быть изготовлено либо в виде исполняемого модуля, либо в виде динамической библиотеки, которую можно использовать в приложениях, написанных на других языках программирования.

Благодаря такой архитектуре приложения, изготовленные при помощи Delphi, работают надежно и устойчиво. Delphi поддерживает использование уже существующих объектов, включая DLL, написанные на С и С++, OLE сервера, VBX, объекты, созданные при помощи Delphi. Из готовых компонент работающие приложения собираются очень быстро. Кроме того, поскольку Delphi имеет полностью объектную ориентацию, разработчики могут создавать свои повторно используемые объекты для того, чтобы уменьшить затараты на разработку.

Delphi предлагает разработчикам - как в составе команды, так и индивидуальным - открытую архитектуру, позволяющую добавлять компоненты, где бы они ни были изготовлены, и оперировать этими вновь введенными компонентами в визуальном построителе. Разработчики могут добавлять CASE-инструменты, кодовые генераторы, а также авторские help'ы, доступные через меню Delphi.

InterBase был разработан в начале 80-х годов группой разработчиков из американской корпорации Borland. InterBase активно используется в США в государственном секторе. В России используется с 1993 года, но интерес к нему возрос в последнее время, в связи с включением его локальной версии в состав Delphi Client-Server. Внимание разработчиков БД и приложений привлек во-первых по тому это “родной” продукт Borland, для доступа к нему не требуется устанавливать дополнительных драйверов, во вторых потому, что InterBase весьма прост в установке, настройке, а главное - в администрировании по сравнению с другими серверами, в третьих , потому что он обладает прекрасными функциональными возможностями.

SQL символизирует собой Структурированный Язык Запросов. Это - язык который дает вам возможность создавать и работать в реляционных базах данных, которые являются наборами связанной информации сохраняемой в таблицах.

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

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

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

Стандарт SQL определяется ANSI (Американским Национальным Институтом Стандартов) и в данное время также принимается ISO (Международной организацией по стандартизации). Однако, большинство коммерческих программ баз данных расширяют SQL без уведомления ANSI, добавляя разные другие особенности в этот язык, которые, как они считают, будут весьма полезны.

Иногда они несколько нарушают стандарт языка, хотя хорошие идеи имеют тенденцию развиваться и вскоре становиться стандартами "рынка" сами по себе в силу полезности своих качеств.

Реляционная база данных - это тело связанной информации, сохраняемой в двухмерных таблицах. Напоминает адресную или телефонную книгу.

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

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

Чтобы поддерживать максимальную гибкость, строки таблицы, по определению, не должны находиться ни в каком определенном порядке. В системах с реляционной базой данных, имеется одна мощная возможность для пользователей - это способность упорядочивать информацию так чтобы они могли восстанавливать ее. Иногда необходимо видеть информацию упорядоченной в алфавитном порядке по именам, иногда в возрастающем или убывающем порядке, а иногда сгруппированной по отношению к какой-нибудь записи. Наложение порядка набора в строках будет сталкиваться со способностью заказчика изменять его, поэтому строки всегда рассматриваются как неупорядоченные. По этой причине, вы не можете просто сказать: «Мы хотим посмотреть пятую строку таблицы». Пренебрегая порядком, в котором данные вводились или любым другим критерием, мы определим, не ту строку, хотя она и будет пятой. Строки таблицы, которые рассматриваются, не будут в какой-либо определенной последовательности.

По этим и другим причинам, вы должны иметь столбец в вашей таблице который бы уникально идентифицировал каждую строку. Обычно, этот столбец содержит номер. Такой уникальный столбец (или уникальна группа столбцов ), используемый чтобы идентифицировать каждую строку и хранить все строки отдельно, называются - первичными ключами таблицы.

Первичные ключи таблицы важный элемент в структуре базы данных. Они - основа системы записи в файл; и когда вы хотите найти определенную строку в таблице, вы ссылаетесь к этому первичному ключу. Кроме того, первичные ключи гарантируют, что ваши данные имеют определенную целостность. Если первичный ключ правильно используется и поддерживается, вы будете знать, что нет пустых строк таблицы, и что каждая строка отличается от любой другой строки.

В отличие от строк, столбцы таблицы (также называемые полями) упорядочиваются и именуются. Это означает, что каждый столбец таблицы должен иметь уникальное имя, чтобы избежать неоднозначности. Лучше всего если эти имена указывают на содержание поля.

SQL это язык ориентированный специально на реляционные базы данных. Он устраняет много работы, которую вы должны были бы сделать, если бы вы использовали универсальный язык программирования, например C. Чтобы сформировать реляционную базу данных на C, вам необходимо было бы начать с самого начала. Вы должны были бы определить объект - называемый таблицей, которая могла бы расти, чтобы иметь любое число строк, а затем создавать постепенно процедуры для помещения значений в нее и извлечения из них. Если бы вы захотели найти некоторые определенные строки, вам необходимо было бы выполнить по шагам процедуру, подобную следующей:

1) рассмотрите строку таблицы;

2) выполните проверку - является ли эта строка одной из строк, которая вам нужна;

3) если это так, сохраните ее где-нибудь, пока вся таблица не будет проверена;

4) проверьте, имеются ли другие строки в таблице;

5) если имеются, возвратитесь на шаг 1;

6) если строк больше нет, вывести все значения, сохраненные в шаге 3.

( Конечно, это не фактический набор C команд, а только логика шагов, которые должны были бы быть включены в реальную программу.)
SQL сэкономит вам все это. Команды в SQL могут работать со всеми группами таблиц как с единым объектом и могут обрабатывать любое количество информации извлеченной или полученной из их, в виде единого модуля.

Имеются два SQL: Интерактивный и Вложенный. Большей частью, обе формы работают одинаково, но используются различно.

Интерактивный SQL используется для функционирования непосредственно в базе данных, чтобы производить вывод для использования его заказчиком. В этой форме SQL, когда вы введете команду, она сейчас же выполнится, и вы сможете увидеть вывод (если он вообще получится) - немедленно.

Вложенный SQL состоит из команд SQL помещенных внутри программ, которые обычно написаны на некотором другом языке (типа КОБОЛА или Паскаль). Это делает эти программы более мощными и эффективным. Однако, допуска эти языки, приходится иметь дело с структурой SQL и стилем управления данных который требует некоторых расширений к интерактивному SQL. Передача SQL команд во вложенный SQL является выдаваемой ("passed off") для переменных или параметров используемых программой, в которую они были вложены.

В целом, список преимуществ, на которые стоит обратить внимание в первую очередь, можно представить в следующем виде:

1) независимость от конкретных СУБД;

2) переносимость с одной вычислительной системы на другую;

3) наличие стандартов;

4) поддержка со стороны компании Microsoft (протокол ODBC);

5) реляционная основа;

6) высокоуровневая структура, напоминающая английский язык;

7) возможность выполнения специальных интерактивных запросов;

8) обеспечение программного доступа к базам данных;

9) возможность различного представления данных;

10) полноценность как языка, предназначенного для работы с базами данных;

11) возможность динамического определения данных;

12) поддержка архитектуры клиент/сервер.

Все перечисленные выше факторы явились причиной того, что SQL стал стандартным инструментом для управления данными на персональных компьютерах, мини-компьютерах и больших ЭВМ.

2.6 Математический аппарат учета рабочего времени сотрудников

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

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

Корреляция - это связь, при которой определенному значению факторного признака соответствует лишь среднее значение результативного признака.

Связь между двумя признаками (результативным и факторным, или двумя факторными) называется парной корреляцией.

Корреляционный анализ имеет своей задачей количественное определение тесноты связи между признаками (при парной связи) и между результативным и множеством факторных признаков (при многофакторной связи). Теснота связи количественно выражается величиной коэффициентов корреляции.

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

y=f(x),

где каждому значению одной переменной соответствует только одно значение другой. Такая зависимость носит название функциональной.

Гораздо сложнее обстоит дело с понятием зависимости случайных величин. Как правило между случайными величинами (случайными факторами), определяющие процесс функционирования сложных систем, обычно существует такая связь, при которой с изменением одной величины, меняется распределение другой. Такая связь называется стохастической, или вероятностной. Существуют различные показатели, которые характеризуют те или иные стороны стохастической связи. Так линейную зависимость между случайными величинами X и Y определяет коэффициент корреляции:

,

где Ax и Ay - математические ожидания случайных величин X и Y.

- среднеквадратические отклонения случайных величин.

Линейная вероятностная зависимость случайных величин заключается в том, что при возрастание одной случайной величины другая имеет тенденцию возрастать (или убывать) по линейному закону. Если случайные величины X и Y связаны строгой линейной функциональной зависимостью:

y = b0+b1x1

то коэффициент корреляции будет равен r= +1 причем знак соответствует знак коэффициента b1 , если величина X и Y связаны произвольной стохастической зависимостью, то коэффициент корреляции будет изменятся в пределах:

-1 <r< +1

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

Парный коэффициент корреляции и уравнение регрессии. При прямолинейной форме связи показатель тесноты связи двух признаков определяется по формуле линейного коэффициента корреляции r:

где x - значение факторного признака;

y - значение результативного признака;

n - число пар данных.

r, исчисленные по данным сравнительно небольшой статистической совокупности, могут искажаться под действием случайных причин. Поэтому необходима проверка их сущности. Для оценки значимости r применяется t-критерий Стьюдента. При этом определяется фактическое значение критерия tr:

.

Исчисленное tr сравнивается с критерием tк, которое берется из таблицы значений t-Стьюдента с учетом заданного уровня значения ? и числа степеней свободы k.

Если tr>tк, то величина коэффициента корреляции признается существенной. В рамках корреляционно-регрессивного анализа происходит и выбор адекватного эмпирическим данным уравнения регрессии. При этом недостаточно только качественного (логического) анализа. Хотя рабочие гипотезы о возможной форме связи формулировать можно. Наглядное изображение анализируемых данных, то есть применение графического метода (путем построения корреляционного поля точек эмпирической линии регрессии), не дает обобщенную количественную оценку адекватности того или иного уравнения связи. Более продуктивно использование критерия минимальной остаточной дисперсии и показателя средней ошибки аппроксимации ? :

,

где Iyi - yxiI - модуль линейных отклонений эмпирических и выравненых значений результативного признака. Оценка параметров уравнений регрессии осуществляется методом наименьших квадратов. Сущность метода наименьших квадратов заключается в нахождении параметров модели (а0 и а1), при которых минимизируется сумма квадратов отклонений эмпирических (фактических) значений результативного признака от теоретических. Для выражения прямолинейной формы зависимости между X и Y применяется формула:

YX = a0 +a1X,

,

Для определения параметров уравнения на основе требований метода наименьших квадратов составляется система нормальных уравнений:

.

Для решения задачи учета рабочего времени системой применяется способ определителей, позволяющий сводить к минимуму неточности округления в расчетах параметров уравнений регрессии.

3. Практическая реализация задачи

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

Проектирование баз данных можно разбить на четыре этапа:

1) анализ предметной области;

2) информационное проектирование (построение инфологической модели);

3) нормализация и логическое проектирование (построение логической модели);

4) физическое проектирование (построение внутренней модели).

3.1.1 Построение инфологической модели

При анализе данной предметной области были выделены следующие информационные классы объектов и их свойства:

- время работы (Код работы, код сотрудника, подразделение, дата, время);

- сотрудник (Код сотрудника, номер трудового договора, дата трудового договора, фамилия, имя, отчество, дата рождения, место рождения, пол, № страхового свидетельства, идентификационный номер, табельный номер, алфавит, характер работ, вид работ, состояние в браке, паспорт серия, паспорт номер, дата выдачи, кем выдан, индекс, город, дом, улица, квартира, дата регистрации, телефон, дополнительные сведения, номер приказа, дата увольнения);

- образование (Код образования, код сотрудника, диплом, дата окончания, специальность, квалификация);

- семья (Код семьи, код сотрудника, вид родства, фамилия, имя, отчество, дата рождения );

- воинский учет (Код учета, код сотрудника, категория запаса, звание, состав, категория годности, наименование военного комиссариата, воинский учет, номер команды, специальном, отметка о снятие );

- иностранный язык (Код языка, название, степень знания);

- стаж (Код стажа, код сотрудника, дни, месяцы, годы);

- аттестация (Код аттестации, код сотрудника, дата аттестации, решение комиссии, номер, дата, основание );

- повышение квалификации (Код квалификации, код сотрудника, дата начала, дата окончания, вид повышения, наименование образовательного учреждения, наименование документа, дата документа, основание );

- переподготовка (Код переподготовки, код сотрудника, дата начала, дата окончания, специальность, наименование документа, номер документа, дата документа, основание );

- награды (Код награды, код сотрудника, название, наименование документа, номер документа, дата документа );

- отпуск (Код отпуска, код сотрудника, название, работа начало, работа конец, количество дней, дата начала, дата окончания, основание );

- социальные льготы (Код льготы, код сотрудника, наименование льготы, номер документа, дата документа, основание ).

Инфологическая модель является проблемно - ориентированной и системно - независимой, т.е. не зависимой от конкретной СУБД, операционной системы и аппаратного обеспечения ЭВМ.

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

Нельзя сказать, что в настоящее время существует какой-либо стандарт или хотя бы общепринятый способ построения инфологической модели. Для описания инфологической модели используются как языки аналитического (описательного) типа, так и графические средства. Мы воспользуемся в дальнейшем именно описательным способом отображения инфологической модели. В предметной области в процессе ее обследования и анализа выделяются классы объектов. Классом объектов называют совокупность объектов, обладающих одинаковым набором свойств. При отображении в информационной системе каждый класс объектов представляется своим идентификатором, который отличает один класс от другого. Идентификатор должен быть уникальным.

При описании предметной области отражают связи между объектом и характеризующими его свойствами. Объект может обладать только одним значением какого-то свойства. Такие свойства называются единичными. Для других свойств возможно существование одновременно нескольких значений у одного объекта. Такое свойство называется множественным.

Кроме связи между объектом и его свойствами, в логической модели фиксируются связи между объектами разных классов. Различают связи типа «один к одному» (1:1), «один ко многим» (1:М), «многие к одному» (М:1), «многие ко многим» (М:М). Иногда эти типы связей называются степенью связи.

3.1.2 Нормализация отношений

Реляционная модель данных является простейшей и наиболее привычной формой представления данных в виде таблицы. В теории множеств таблице соответствует термин отношение (relation), который и дал название модели. Достоинством реляционной модели является ее сравнительная простота инструментальных средств.

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

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

В реляционной базе данных на каждое отношение накладывается нормализация. Состав атрибутов отношений должен удовлетворять следующим требованиям:

1) между атрибутами не должно быть нежелательной функциональной зависимости;

2) группировка атрибутов должна обеспечивать минимальное дублирование данных, обеспечивать их обработку и обновление.

Удовлетворение этих требований достигается нормализацией отношений. Нормализация отношений- это обратимый пошаговый процесс разложения исходных отношений баз данных на более простые отношения. При этом устанавливаются функциональные всевозможные зависимости.

Если имеется два атрибута А и В и если в любой момент времени каждому значению атрибута А соответствует не более одного значения атрибута В, то говорят, что В функционально зависит от А (А->Б).

Если отношение находится в 1НФ, то все неключевые атрибуты функционально зависят от ключа. Если неключевой атрибут зависит от части ключа, то говорят о частичной зависимости. Если неключевой атрибут зависит от всего составного ключа и не находится в частичной зависимости от его ключей, то говорят о его полной функциональной зависимости. Если для атрибутов А,Б,В выполняется условие А->Б, Б->В, но обратная зависимость отсутствует, то говорят, что В зависит от А транзитивно. Многозначная зависимость - если каждому значению атрибута А соответствует множество значений атрибутов Б.

Каждая нормальная форма ограничивает определенный тип функциональной зависимости. Отношения, у которых все атрибуты простые (то есть содержат неделимые значения) называются приведенными к первой нормальной форме (1НФ). Отношение находится во второй нормальной форме (2НФ), если оно находится в 1НФ, и каждый неключевой атрибут функционально полно зависит от составного ключа.2НФ так же совершенная, так как здесь имеют место наличие транзитивных зависимостей.

Отношение находится в третьей нормальной форме (3НФ), если отношение находится во 2НФ и в нем отсутствуют транзитивные зависимости неключевых атрибутов от ключа.3НФ освобождает отношения от избыточности.

Отношение находится в четвертой нормальной форме (4НФ),если в нем не присутствуют функциональные многозначные зависимости. Если в отношении имеется много функциональных зависимостей,4НФ не устраняет избыточность, то применяют 5НФ.

Разложение отношений из 4НФ в пятую нормальную форму (5НФ) должно быть выполнено так, чтобы каждая проекция, полученная из 4НФ, содержала не менее одного возможного ключа и хотя бы один неключевой атрибут из исходного отношения.

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

В результате нормализации получили отношения соответствующие 3НФ описанной предметной области:

- сотрудник (Код сотрудника, номер трудового договора, дата трудового договора, фамилия, имя, отчество, дата рождения, место рождения, пол, № страхового свидетельства, идентификационный номер, табельный номер, алфавит, состояние в браке, паспорт серия, паспорт номер, дата выдачи, кем выдан, дополнительные сведения);

- адрес (Код адреса, город, улица, квартира, дата регистрации);

- увольнение (Код увольнения, Дата увольнения, номер приказа);

- основание увольнения (Код основания, наименование);

- характер работ (Код характера работ, наименование);

- вид работ (Код вида работ, наименование);

- гражданство (Код гражданства, название);

- образование (Код образования, название);

- ПВО (Код ПВО, название);

- образование (Код образования, диплом, дата окончания, квалификация, специальность);

- ППО (Код ППО, удостоверение, дата окончания, специальность);

- учебное заведение (Код учебного заведения, название);

- семья (Код семьи, фамилия, имя, отчество, дата рождения);

- вид родства (Код вида родства, название );

- воинский учет (Код учета, категория запаса, состав, категория годности, наименование военкомата, воинский учет, ВУС, специальный, общий, отметка о снятие );

- звания (Код звания, наименование);

- сотрудник - язык (Код языка сотрудника);

- степень знания (Код степени знания, наименование степени знания);

- язык (Код языка, наименование);

- время работа (Код работы, дата, подразделение, код сотрудника, время);

- стаж (Код стажа, дни, месяцы, годы );

- тип стажа (Код типа, наименование);

- аттестация (Код аттестации, дата, решение комиссии, номер документа, дата документа, основание );

- квалификация (Код квалификации, дата начала, дата окончания, вид, наименование, номер документа, дата документа, основание );

- переподготовка (Код переподготовки, дата начала, дата окончания, специальность, наименование документа, дата выдачи документа, номер документа, основание );

- награды (Код награды, название документа, дата документа, номер документа);

- тип награды (Код типа, наименование);

- отпуск (Код отпуска, начало работы, конец работы, количество дней, дата начала, дата окончания, основание );

- тип отпуска (Код типа, наименование);

- социальные льготы (Код льготы, наименование льготы, номер документа, дата документа, основание).

Процесс нормализации отношений последовательно устраняет следующие типы функциональных зависимостей:

частичные зависимости неключевых атрибутов;

транзитивные зависимости неключевых атрибутов от ключа;

зависимости ключей от неключевых атрибутов;

4) независимые многозначные зависимости.

Устраняя эти зависимости исключается дублирование данных, аномалии операций включения, обновления, удаления.

3.1.3 Логическое проектирование

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

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

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

для каждого простого объекта и его свойств строится отношение, атрибутами которого являются идентификаторы объекта и реквизиты, соответствующие каждому из свойств;

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

а) если многие из объектов обладают рассматриваемым свойством, то его можно записать, как и обычное свойство;

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

Логическая модель, по построенной инфологической, представлена на рисунке 2.1. В приложении Б представлена ER-модель предметной области.

3.1.4 Физическое проектирование

Данная реляционная база данных представлена в файле VOEN_CHAST.gdb имеет тип InterBase, который содержит в себе 32 таблицы, представленных в таблице 3.1

Таблица 3.1 - таблицы данной СУБД VOEN_CHAST.gdb

Название таблицы

Таблица БД

1

2

1) Сотрудник

SOTRUD

2) Адрес

ADRESS

3) Увольнение

UVOL

4) Основание увольнения

OSNOV_UVOL

5) Характер работ

HAR_RABOT

6) Вид работ

VID_RABOT

7) Гражданство

SP_GRAJD

8) Образование

SP_OBRAZ

9) ПВО

SP_PVO

10) Сотрудник-язык

SOTR_LANG

11) Язык

SP_JAZIK

12) Степень знание языка

SP_STEPEN

13) Стаж

STAJ

14) Тип стажа

SP_TIP

15) Семья

SEMYA

16) Вит родства

SP_VID

17) Образование

OBRAZ

18) ППО

PPO

19) Учебное заведение

SP_UCH

20) Переподготовка

PEREPOD

21) Отпуск

OTPUSK

22) Тип отпуска

SP_OTPUSK

23) Квалификация

KVALIF

24) Воинский учет

VOIN

25) Звание

SP_ZVAN

26) Работа

RABOTA

27) Профессия-сотрудник

SOTR_PROF

28) Профессия

SP_PROF

29) Награды

NAGRAD

30) Тип награды

SP_NAGRAD

31) Льготы

LGOTI

32) Аттестация

ATESTZ

Форма хранения данных. Все данные и другая информация СУБД хранятся на магнитных дисках в дисковых файлах. Файл данных представляет собой таблицу, каждая строка которой (запись) содержит некоторые сведения об описываемом объекте. Все записи базы данных имеют идентичную, заданную пользователем структуру и размеры. В Delphi можно создавать и обрабатывать несколько типов дисковых файлов.

Рисунок 3.3 - Логическая схема базы данных

Для привязки даталогической модели к среде хранения используется модель данных физического уровня (для краткости часто называемая физической моделью). Эта модель определяет используемые запоминающие устройства, способы физической организации данных в среде хранения. Модель физического уровня также строится с учетом возможности, представляемых СУБД. Описание физической структуры базы данных называется схемой хранения. Соответствующий этап проектирования базы данных называется физическим проектированием.

Типы полей для таблиц InterBase используемые при проектирование:

- INTEGER (I) - целочисленные значения от - 2147483648 до + 2147483647;

- VARCHAR (VC) - текстовый столбец переменной длинны содержащий до n символов;

- TIMESTAMP (TS) - поля даты и времени.

Структура таблиц используемых в БД представлена в таблице 3.3.

Таблица 3.2 - Структура таблиц БД

Объект

Свойство

Ключи

Логические ограничения

Информационные процесс происходящие с объектами

Тип

Длина

Запол

нение

1

2

3

4

5

6

7

Сотрудник

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

УП

I

*

Генерируется программно

Номер труд. договора

I

Фамилия

TS

*

Имя

VC

50

*

Отчество

VC

50

*

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

TS

*

Место рождения

VC

80

*

Пол

VC

*

Номер страхового свидетельства

I

*

Идентиф. номер

I

*

Табельный номер

I

*

Алфавит

VC

1

*

Состояние в браке

VC

50

*

Паспорт серия

VC

6

*

Паспорт номер

I

*

Паспорт дата

TS

*

Кем выдан

VC

50

*

Дополнительные сведения

VC

200

*

Адрес

Код адреса

УП

I

*

Генерируется программно

Почтовый индекс

I

*

Город

VC

50

*

Улица

VC

50

*

Дом

I

*

Квартира

I

*

Дата регистрации

TS

*

Телефон

I

*

Увольнение

Код увольнения

УП

I

*

Генерируется программно

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

TS

*

Номер приказа

I

*

Основание увольнения

Код основания

УП

I

*

Генерируется программно

Наименование

VC

50

*

Гражданство

Код гражданства

УП

I

*

Генерируется программно

Наименование

VC

50

*

Образование

Код образования

УП

I

*

Генерируется программно

Наименование

VC

50

*

ПВО

Код ПВО

УП

I

*

Генерируется программно

Наименование

VC

*

Язык

Код языка

УП

I

*

Генерируется программно

Наименование

VC

50

*

Степень знания

Код степени знания

УП

I

*

Генерируется программно

Наименование

VC

50

*

Стаж

Код стажа

I

*

Генерируется программно

Дни

I

*

Месяцы

I

*

Годы

I

*

Тип стажа

Код типа стажа

УП

I

*

Генерируется программно

Наименование

VC

50

*

Время работа

Код времени работы

УП

I

*

Генерируется программно

Дата

TS

*

Подразделение

VC

50

*

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

I

*

Время

TS

*

Аттестация

Код аттестации

УП

I

*

Генерируется программно

Дата регистрации

TS

*

Решение

VC

100

*

Номер документа

I

*

Дата документа

TS

*

Основание

VC

100

*

Переподготовка

Код переподготовки

УП

I

*

Генерируется программно

Дата начала

TS

*

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

TS

*

Специальность

VC

50

*

Документ название

VC

50

*

Документ номер

I

*

Документ дата

TS

*

Основание

VC

100

*

Льготы

Код льготы

УП

I

*

Генерируется программно

Наименование льготы

VC

50

*

Генерируется программно

Номер документа

I

*

Дата документа

TS

*

Основание

VC

100

*

Квалификация

Код квалификации

УП

I

*

Генерируется программно

Дата начала

TS

*

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

TS

*

Вид

VC

100

*

Название

VC

50

*

Документ №

I

*

Документ дата

TS

*

Основание

VC

100

*

Семья

Код семьи

УП

I

*

Генерируется программно

Фамилия

VC

50

*

Имя

VC

50

*

Отчество

VC

50

*

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

TS

*

Вид родства

Код вида родства

УП

I

*

Генерируется программно

Наименование

VC

50

*

Образование

Код образования

УП

I

*

Генерируется программно

Диплом

VC

100

*

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

TS

*

Специальность

VC

50

*

Квалификация

VC

50

*

ППО

Код ППО

УП

I

*

Генерируется программно

Удостоверение

I

*

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

TS

*

Специальность

VC

50

*

Учебные заведения

Код учебных заведений

УП

I

*

Генерируется программно

Наименование

VC

50

*

Награды

Код награды

УП

I

*

Генерируется программно

Наименование док-та

VC

50

*

№ Документа

I

*

Дата документа

TS

*

Тип награды

Код типа

УП

I

*

Генерируется программно

Наименование

VC

50

*

Воинский учет

Код учета

УП

I

*

Генерируется программно

Категория запаса

VC

60

*

Состав

VC

100

*

ВУС

VC

100

*

Годность

VC

50

*

Военкомат

VC

100

*

Общий

VC

50

*

Специальный

VC

50

*

Отметка

VC

100

*

Звания

Код званий

УП

I

*

Генерируется программно

Наименование

VC

50

*

Отпуск

Код отпуска

УП

I

*

Генерируется программно

Начало работы

TS

*

Конец работы

TS

*

Количество дней

I

*

Дата начала

TS

*

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

TS

*

Основание

VC

100

*

Тип отпуска

Код типа отпуска

УП

I

*

Генерируется программно

Наименование

VC

50

3.2 Описание архитектуры программы

После запуска программы «АРМ по учету данных о дежурствах сотрудников воинской части», происходит запрос пароля. При вводе неправильного пароля программа завершает свою работу.

Если пароль был введен верно, то устанавливается связь с базой данных (БД) и выполняется загрузка основного модуля, организовывающего интерфейс. На данном этапе выполнения программы возможна обработка основных функций работы с БД:

- просмотр;

- ввод начальных данных;

- корректировка выборочных данных;

- удаление;

- формирование отчетов.

Программное средство «АРМ по учету данных о дежурствах сотрудников воинской части» включает в себя программные модули (схема алгоритма представлена в приложение В), которые организуют работу оператора воинской части № 63180.

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

Иерархическая структура программы, показанная на рисунке 3.4 и в приложение В, демонстрирует порядок взаимодействия основных модулей программной системы. Краткое описание назначения модулей представлено ниже.

Main - содержит главную форму клиентского приложения, содержащую меню и определяющую дальнейшие действия пользователя.

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

Parol - данный модуль осуществляет проверку пароля.

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

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

L_Cart - содержит форму для формирования личной карточки сотрудников.

U_Arhivе - содержит форму для просмотра, редактирования, восстановления и удаления данных о сотрудниках находящихся в архивной картотеке.

U_Filtr - осуществляет в базе данных поиск сотрудников по различным критериям.

U_Grafiк - вывод графической интерпретации статистического анализа.

U_Adress - содержит вспомогательную форму для заполнения адреса в личной карточке сотрудника.

U_Jazik - содержит вспомогательную форму для заполнения знания иностранного языка в личной карточке сотрудника.

U_Semja - содержит вспомогательную форму для заполнения состава семьи в личной карточке сотрудника.

U_Staj - содержит вспомогательную форму для заполнения данных о стаже в личной карточке сотрудника.

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

PolzReg - модуль для регистрации нового пользователя и определении ему прав доступа.

SpravEdit - модуль для редактирования справочников.

U_Otchet - модуль для формирования и подготовки к печати выходных документов (приказы, личные карточки).

U_Prikaz - модуль для вывода отчета приказа (распоряжения) о приеме на работу.

U_L_Cart - модуль для вывода отчета по личной карточке сотрудника.

U_Sotr - модуль вывода отчета по всем сотрудникам работающих в воинской части.

Help - модуль предоставляющий информацию о программе и работе с ней.

Рисунок 3.4 - Иерархическая схема модулей

Более подробное описание модулей и их взаимодействия.

1. Главный модуль - запускается при загрузке программного средства. Представлен файлом main.pas. В этом модуле активируется главное меню программы, из которого доступны все другие модули. После этого сразу активируется модуль parol.pas, который отвечает за авторизацию пользователя и определению его прав доступа. В зависимости от введенного пользователя и пароля доступными становятся только определенные пункты меню и, соответственно, определенные модули.

2. Ввод пароля - вызывается из главного модуля. Представлен файлом parol.pas. При инициализации модуля на экране появляется форма «Пароль», в которой необходимо ввести имя пользователя и пароль. При введении неверного пароля программное средство завершает работу.

3. Меню - отображается на главной форме программы. В зависимости от того, какой пользователь работает с программным средством, активны те или иные пункты меню. Через меню можно выполнять все основные действия по работе с программой.

4. Резервное копирование и восстановление - модуль отвечающий за сохранение текущего состояния базы данных в отдельный файл и восстановление ее из копии. При вызове данного модуля на экране появляется форма «Резервное копирование» и форма «Восстановление из копии» при восстановление, в которой пользователь может задать параметры сохранения и восстановления базы данных на носитель информации. Файл U_Res_Copy.pas.

5. Сотрудники - при вызове данного модуля на экране появляется форма «Сотрудники». Пользователь получает возможность работать со справочником «Сотрудники». Имеется возможность добавлять, удалять и редактировать данные сотрудников. Модуль вызывается из главного меню «Список сотрудников» и представлен модулем Sotr.pas.

6. Личная карта - при активизации команды «Добавить», списка сотрудников, активизируется модуль личной карты сотрудников, в котором содержится вся информация о сотрудниках воинской части и происходит заполнение личных дел. Модуль «Личная карта» представлен файлом L_Cart.pas. При заполнение личной карты активизируются вспомогательные модули приведенные ниже.

7. «Архив» - при активации данного модуля открывается форма архивной картотеки, в которой содержится информация об уволенных сотрудниках. Имеется возможность поиска сотрудников по различным критериям, восстановление сотрудников из архива без потери информации о нем, а так же физическое удаление из базы сотрудников пяти летней давности.

8. Модуль «Адрес» содержит в себе вспомогательную форму «Адрес место жительства», которая используется при заполнение данных о сотруднике и представлен модулем U_Adress.pas.

9. Знание иностранного языка - при вызове данного модуля на экране появляется форма «Знание иностранного языка». Пользователь получает возможность работать со справочником «Знание иностранного языка», где ему предоставляется возможность добавлять, удалять, и редактировать записи данного справочника. Этот модуль представлен файлом U_Jazik.pas.

10. Состав семьи - при вызове данного модуля на экране появляется форма «Состав семьи», пользователь получает возможность работать со справочником «Состав семьи», где ему предоставляется возможность добавлять, удалять, и редактировать записи данного справочника. Этот модуль представлен файлом U_Semja.pas.

11. Стаж - при вызове данного модуля на экране появляется форма «Стаж работы», пользователь получает возможность работать со справочником «Стаж работы», где ему предоставляется возможность добавлять, удалять, и редактировать записи данного справочника. Этот модуль представлен файлом U_Staj.pas.

12. Образование - при вызове данного модуля на экране появляется форма «Образование», пользователь получает возможность работать со справочником «Образование», где ему предоставляется возможность добавлять, удалять, и редактировать записи данного справочника. Этот модуль представлен файлом U_Obraz.

13. График - модуль формирования графической интерпретации. Модуль представлен файлом U_Grafik.pas.

14. Фильтр - этот модуль осуществляет в базе данных поиск сотрудников по различным критериям. При его активации на экране появляется форма «Поиск», в которой выведены все критерии поиска такие как, пенсионер предназначена для поиска пенсионеров, мужчина, женщина, уволен: производит поиск по фамилии, имени, или отчеству, возможен поиск по части фамилии, а так же по дате увольнения. Эта форма взаимодействует с модулем Sotr.pas, в которую и выводятся на экран найденная информация. Если по заданному критерию информации нет, программа выдает соответствующее сообщение. Модуль представлен файлом U_Filtr.pas.

15. Отчет - модуль выбора отчетных документов. При активизации данного модуля, на экране появляется форма «Отчеты», в которой пользователю предлагается выбор отчетного документа и подготовка его на печать путем предварительного просмотра. В программе данный модуль представлен файлом U_Otchet.pas.

16. Приказ - модуль отчета приказа о приеме на работу. Активизируется из модуля U_Otchet.pas, после ввода фамилии, имени, отчества происходит автоматическое заполнение отчета, что ведет к уменьшению времени работы и исключает ошибки ввода пользователя. Данный модуль представлен файлом U_Prikaz.pas.

17. Личная карта - модуль предоставляющий возможность вывода на печать отчета по личной карточке сотрудника. Принцип работы данного модуля аналогичен модулю U_Prikaz.pas. Данный модуль представлен файлом U_L_Cart.pas.

18. Сотрудники - позволяет выводить на печать список всех сотрудников работающих в воинской части, с возможностью предварительного просмотра. Данный модуль представлен файлом U_Sotr.pas.

19. Регистрация пользователя - при активизации данного модуля на экране появляется форма «Пользователи и пароли», где администратор устанавливает разграничение прав доступа и назначает пароли. В данной программе существует три уровня доступа:

- Администратор (Админ) доступны любые действия в программе;

- Пользователь (User) доступны ограниченные пункты меню;

- Гость (гость) доступны минимальные действия в программе, без права изменения какой либо информации.

20. Редактирование справочников - при вызове этого модуля на экране появляются справочники, те которые выбрал пользователь доступные для редактирования. Данный модуль в программе представлен файлом SpravEdit.pas.

21. Помощь - модуль выдачи справки пользователю по работе с данным программным средством. После запуска модуля на экране появляется окно «Помощь», в котором пользователь может прочитать подробную инструкцию по применению, назначению и правилам работы с программой. А также ознакомиться с решением возникших проблем.

3.3 Реализация функционального назначения программы

Меню запускается при активации программы, через него выполняются все остальные модули программного средства.

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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.