Инструменты автоматизации процесса хранения персональной информации

Автор работы: Пользователь скрыл имя, 16 Апреля 2013 в 00:37, курсовая работа

Описание работы

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

Содержание работы

Введение 3
Глава 1. Инструменты автоматизации процесса хранения 5
персональной информации
1.1. Разработка приложений баз данных в среде Delphi 5
1.2. Технологии доступа к базам данных
1.3. Инструментальные средства
1.4. Компоненты
1.5. Архитектура клиент-сервер
Глава 2. Создание приложения для работы с базами данных
2.1. Проектирование базы данных 2.2. Создание приложения
Заключение
Список литературы

Файлы: 1 файл

Avtomatizatsia.doc

— 980.00 Кб (Скачать файл)

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

create table Форма_обучения( Код_форма_обучения counter NOT NULL primary key,Форма_обучения varchar(40))

create table Тип_работы( Код_тип_работы counter NOT NULL primary key, Тип_работы varchar(50))

create table Сфера_деятельности( Код_сфера_деятельности counter NOT NULL primary key, Сфера_деятельности varchar(100))

create table Семейное_положение(  Код_семейное_положение counter NOT NULL primary key, Семейное_положение varchar(30))

create table Пол ( Код_пол counter NOT NULL primary key, Пол varchar(20))

create table Образование(  Код_образование counter NOT NULL primary key, Образование  varchar(40))

create table Место_работы( Код_место_работы counter NOT NULL primary key, Место_работы varchar(50))

create table Иностранный_язык( Код_иностранный_язык counter NOT NULL primary key, Иностранный_язык varchar(40))

create table Актуальность_предложения( Код_актуальность_предложения counter NOT NULL primary key, Актуальность_предложения varchar(20))

Создание таблиц завершено. Рассмотрим связи между основными  таблицами и вспомогательными. У  таблицы «Вакансия» будет пять вспомогательных таблиц, которые будут связаны между собой при помощи поля-ключа (см. рис. 1). Почти аналогичные связи будут в таблице «Резюме» (см. рис. 2), за исключение того, что все недостающие связи будут скомпенсированы в таблице «Личная информация» (см. рис. 3). Такое разделение нам потребуется для заполнения таблицы сделок.

 

 

Рисунок 1 – Связи с  таблицей «Вакансия»

Рисунок 2 – Связи с  таблицей «Резюме»

Рисунок 3 – Связи с  таблицей «Личная информация»

 

Рассмотрим связи у  таблиц «Сделки трудоустройства» (см. рис. 4) и «Сделки найма». Для более гибкого хранения данных требовалось выделение отдельных таблиц «Личная информация» и «Контактная информация организации».

Рисунок 3 – Связи с  таблицей «Сделки трудоустройства»

Рисунок 4 – Связи с  таблицей «Сделки найма»

 

 

2.2. Создание  приложения для работы с базой данных

 

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

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

Начнем с самой простой  вкладки «Настройки» (см. рис. 5). Эта  вкладка будет содержать функциональную область, которая позволит при необходимости  пополнить вспомогательные таблицы. Для примера рассмотрим пополнение таблицы «Иностранный язык». Все остальные пополнения таблиц производятся по аналогии. Пополнение таблицы производиться простым SQL-запросом, перед началом производится проверка на непустоту пополняемых данных.

if edt26.Text<>'' then

  begin

  Form1.qry1.SQL.Add('INSERT INTO Иностранный_язык (Иностранный_язык) VALUES ');

  Form1.qry1.SQL.Add('(');

  Form1.qry1.SQL.Add(edt26.Text);

  Form1.qry1.SQL.Add(');');

  Form1.qry1.ExecSQL;

  Form1.ds18.Active:=false;

  Form1.ds18.Active:=true;

  Form1.qry1.SQL.Clear;

  end

  else ShowMessage('Заполните строку с данными!!!');

Рисунок 5 – Вкладка  «Настройки»

 

Рассмотрим вкладку  «Работа бюро» (см. рис. 6). В ней можно пронаблюдать работу бюро в плане совершения сделок между искателями и работодателями, т.е. она отображает значение  таблиц «Сделки трудоустройства» и «Сделки найма».

Рисунок 6 – Вкладка  «Работа бюро»

 

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

Начнем с таблицы  «Резюме». Для пополнения таблице  «Резюме» создадим вкладку «Разместить резюме» (см. рис. 7), в которой необходимо заполнить все поля и пополнить таблицу, тем самым разместить резюме. Добавление данных в таблицу происходит SQL-запросом, который мы заполняем данными из полей, представленных на рисунке 7, сперва проверив, все ли основные поля заполнены.

if (dblkcbb19.Text='') or (edt9.Text='') or (dblkcbb20.Text='') or (dblkcbb21.Text='') or (dblkcbb22.Text='') then ShowMessage('Ошибка!!! Заполните основные поля!!!') else

begin

Form1.qry1.SQL.Add('INSERT INTO Резюме (Код_личная_информация, Заработная_плата,  Код_тип_работы, Код_место_работы, Код_сфера_деятельности, Желаемая_должность, Опыт_работы, Ключевые_навыки_и_достижения, Код_актуальность_предложения) VALUES ');

Form1.qry1.SQL.Add('('+IntToStr(form1.ds24.DataSet.FieldValues['Код_личная_информация']));

Form1.qry1.SQL.Add(','+edt9.Text);

Form1.qry1.SQL.Add(','+IntToStr(form1.ds5.DataSet.FieldValues['Код_тип_работы']));

Form1.qry1.SQL.Add(','+IntToStr(form1.ds3.DataSet.FieldValues['Код_место_работы']));

Form1.qry1.SQL.Add(','+IntToStr(form1.ds9.DataSet.FieldValues['Код_сфера_деятельности']));

Form1.qry1.SQL.Add(','''+edt10.Text+'''');

Form1.qry1.SQL.Add(','''+edt11.Text+'''');

Form1.qry1.SQL.Add(','''+edt12.Text+'''');

Form1.qry1.SQL.Add(',1);');

Form1.qry1.ExecSQL;

Form1.ds26.Active:=false;

Form1.ds26.Active:=true;

Form1.qry1.SQL.Clear;

end;

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

 

 

 

Рисунок 7 – Вкладка «Разместить резюме»

 

Пополнение таблицы  «Личная информация» происходит путем нажатия на кнопку «Добавить  личную информацию» и заполнением  необходимых полей (см. рис. 8). Добавление происходит SQL-запросом. По абсолютно такому же принципу заполняется таблица «Вакансия», заполнение которой находиться на вкладке «Создать вакансию» (см. рис. 9). Пополнение происходит с помощью того же SQL-запроса. По такому же принципу происходит добавление организации (см. рис. 10).

 

 

 

 

 

 

Рисунок 8 – Пополнение таблицы «Личная информация»

Рисунок 9 – Вкладка «Создать вакансию»

Рисунок 10 – Пополнение таблицы «Контактная информация организации»

 

Напоследок рассмотрим непосредственно сам поиск и  заключение сделки. Поскольку для  обеих таблиц эти операции производятся по одному принципу, рассмотрим только одну таблицу, например, «Вакансия». Создадим вкладки для поиска (см. рис. 11, 12), в которых будет содержаться сама таблица «Вакансия» и поля, по которым будет производиться поиск. Поскольку эта вкладка предназначена для поиска, то будут отображаться только актуальные вакансии. Поиск происходит при помощи SQL-запроса:

ds2.Active:=False;

ds2.CommandText:='select Вакансия.Код_вакансия,Вакансия.Минимальная_заработная_плата,Вакансия.Максимальная_заработная_плата,Сфера_деятельности.Сфера_деятельности,Вакансия.Должность,Контактная_информация_организации.Название_организации ';

ds2.CommandText:=ds2.CommandText+'from Вакансия,Сфера_деятельности,Контактная_информация_организации  ';

ds2.CommandText:=ds2.CommandText+'WHERE (Вакансия.Код_сфера_деятельности=Сфера_деятельности.Код_сфера_деятельности)and(Вакансия.Код_контактная_информация_организации=Контактная_информация_организации.Код_контактная_информация_организации)and(Вакансия.Код_актуальность_предложения=1) ';

if(edt1.Text<>'')then ds2.CommandText:=ds2.CommandText+'and(Вакансия.Минимальная_заработная_плата<='+edt1.Text+')and(Вакансия.максимальная_заработная_плата>='+edt1.Text+')';

if(edt3.Text<>'') then ds2.CommandText:=ds2.CommandText+'and(Вакансия.Минимальный_возраст<='+edt3.Text+')and(Вакансия.максимальный_возраст>='+edt3.Text+')';

if(dblkcbb3.Text<>'')and(dblkcbb3.Text<>'Не  имеет значения') then ds2.CommandText:=ds2.CommandText+'and(Вакансия.Код_пол='+IntToStr(form1.ds8.DataSet.FieldValues['Код_пол'])+')';

if(dblkcbb8.Text<>'')and(dblkcbb8.Text<>'Не имеет значения') then ds2.CommandText:=ds2.CommandText+'and(Вакансия.Код_семейное_положение='+IntToStr(form1.ds16.DataSet.FieldValues['Код_семейное_положение'])+')';

if(dblkcbb6.Text<>'')and(dblkcbb6.Text<>'Не  имеет значения') then ds2.CommandText:=ds2.CommandText+'and(Вакансия.Код_образование='+IntToStr(form1.ds12.DataSet.FieldValues['Код_образование'])+')';

if(dblkcbb7.Text<>'')and(dblkcbb7.Text<>'Не  имеет значения') then ds2.CommandText:=ds2.CommandText+'and(Вакансия.Код_форма_обучения='+IntToStr(form1.ds13.DataSet.FieldValues['Код_форма_обучения'])+')';

if(dblkcbb9.Text<>'')and(dblkcbb9.Text<>'Не  имеет значения') then ds2.CommandText:=ds2.CommandText+'and(Вакансия.Код_иностранный_язык='+IntToStr(form1.ds17.DataSet.FieldValues['Код_иностранный_язык'])+')';

if(dblkcbb17.Text<>'')and(dblkcbb17.Text<>'Не  имеет значения') then ds2.CommandText:=ds2.CommandText+'and(Вакансия.Код_контактная_информация_организации='+IntToStr(form1.ds22.DataSet.FieldValues['Код_контактная_информация_организации'])+')';

if(dblkcbb1.Text<>'')and(dblkcbb1.Text<>'Не  имеет значения') then ds2.CommandText:=ds2.CommandText+'and(Вакансия.Код_тип_работы='+IntToStr(form1.ds5.DataSet.FieldValues['Код_тип_работы'])+')';

if(dblkcbb2.Text<>'')and(dblkcbb2.Text<>'Не имеет значения') then ds2.CommandText:=ds2.CommandText+'and(Вакансия.Код_место_работы='+IntToStr(form1.ds3.DataSet.FieldValues['Код_место_работы'])+')';

if(dblkcbb4.Text<>'')and(dblkcbb4.Text<>'Не  имеет значения') then ds2.CommandText:=ds2.CommandText+'and(Вакансия.Код_сфера_деятельности='+IntToStr(form1.ds9.DataSet.FieldValues['Код_сфера_деятельности'])+')';

if(edt2.Text<>'')and(edt2.Text<>'Не имеет значения') then ds2.CommandText:=ds2.CommandText+'and(Вакансия.Должность='''+edt2.Text+''')';

ds2.CommandText:=ds2.CommandText+';';

ds2.Active:=True;

Рисунок 11 – Вкладка  «Поиск вакансий»

Рисунок 12 – Вкладка  «Поиск резюме»

 

После выполнения поиска по заданным полям мы получаем список, после просмотра которого определяем, хотим ли мы заключить договор или нет. В случае, если мы хотим заключить договор, нажимаем кнопку «Принять», после чего появляться окно, в котором нужно ввести данные о заключении договора (см. рис 13, 14). После принятия мы заполняем таблицы «Сделки трудоустройства» и «Сделки найма» с помощью SQL-запроса:

if (edt1.Text<>'')and(dblkcbb19.Text<>'') then

begin

  Form1.qry1.SQL.Add('INSERT INTO Сделки_трудоустройства(Код_вакансия, Код_личная_информация, Комиссионные) VALUES ');

  Form1.qry1.SQL.Add('('+form1.index1);

  Form1.qry1.SQL.Add(', '+IntToStr(form1.ds24.DataSet.FieldValues['Код_личная_информация']));

  Form1.qry1.SQL.Add(', '+edt1.Text);

  Form1.qry1.SQL.Add(')');

  Form1.qry1.ExecSQL;

  Form1.ds28.Active:=false;

  Form1.ds28.Active:=true;

  Form1.qry1.SQL.Clear;

  Form1.qry1.SQL.Add('UPDATE Вакансия SET Код_актуальность_предложения=2 WHERE Код_вакансия='+form1.index1+';');

  Form1.qry1.ExecSQL;

  Form1.ds28.Active:=false;

  Form1.ds28.Active:=true;

  Form1.ds2.Active:=false;

  Form1.ds2.Active:=true;

  Form1.qry1.SQL.Clear;

  Form4.Close();

end

 

Рисунок 13 – Заключение договора о трудоустройстве

Рисунок 14 – Заключение договора о найме

 

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

 

 

 

Заключение

 

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

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

Информация о работе Инструменты автоматизации процесса хранения персональной информации