Информационная модель в нотации IDEF1X
Для представления информационной модели данных используется CASE-средство ERWin. С его помощью при проектировании модели информационной системы «Служба занятости» была создана физическо-логическая модель базы данных, представленная на рисунках (рис. 8, 9).
Рис. 8 - Модель данных в нотации IDEF1X (логический уровень)
Рис. 9 - Модель данных в нотации IDEF1X (физический уровень)
База данных представлена в виде сущностей, их атрибутов и связей между ними. Каждая сущность представляет множество подобных объектов, называемых экземплярами. Каждый экземпляр индивидуален и должен отличаться от всех остальных. Атрибут выражает определенное свойство объекта. С точки зрения физической модели базы данных сущности соответствует таблица (например, «Работодатель», «Картотека»), экземпляру сущности – строка в таблице, а атрибуту – колонка таблицы. В результате проектирования было выделено шесть сущностей.
Связь на диаграмме отображает логическую зависимость одной сущности от другой. В IDEF1X различают зависимые и независимые сущности. Тип сущности определяется ее связью с другими сущностями. Идентифицирующая связь устанавливается между независимой (родительский конец связи) и зависимой (дочерний конец связи) сущностями. Экземпляр зависимой сущности определяется только через отношение к родительской сущности. Зависимая сущность изображается на диаграмме прямоугольником со скругленными углами.
На нашей диаграмме зависимыми сущностями являются: «Консультационный отдел». Родительскими для нее являются сущности «Работодатель» и «Трудоустраиваемый» соответственно.
При установлении неидентифицирующей связи дочерняя сущность остается независимой, а атрибуты первичного ключа родительской сущности мигрируют в состав неключевых компонентов родительской сущности. Неидентифицирующая связь служит для связывания независимых сущностей.
|
Для того, чтобы однозначно идентифицировать экземпляр сущности используется первичный ключ (атрибут или группа атрибутов). Атрибуты первичного ключа на диаграмме не требуют специального обозначения - это те атрибуты, которые находятся в списке атрибутов выше горизонтальной линии.
Например, на рис. 8 сущность «Работодатель» однозначно идентифицирует первичный ключ «Заявка работодателя(РК)» и «Дата заявки работодателя(РК)».
При установлении идентифицирующей связи атрибуты первичного ключа родительской сущности автоматически переносятся в состав первичного ключа дочерней сущности. Эта операция дополнения атрибутов дочерней сущности при создании связи называется миграцией атрибутов. В дочерней сущности новые атрибуты помечаются как внешний ключ - (FK). Пример такой миграции атрибутов с участием дочерней сущности «Консультационный отдел», родительской сущности «Работодатель» и первичного ключа родительской сущности «Заявка работодателя» и «Дата заявки работодателя» представлен на рис. 10:
Рис. 10 - Пример миграции атрибутов
Сущности и атрибуты, определенные в информационной модели представлены в отчете (на рис. 11), сгенерированном с помощью пункта меню Tools/Data Browser/Erwin Repots.
Name | Definition | Logical Only |
Картотека | Хранение и проверка заявок | No |
Консультационный отдел | Консультация, прием заявок, формирование отчетов | No |
Работодатель | Анкета заполняемая работодателем при обращении в Службу занятости | No |
Требования предприятия | Требования, предъявляемые работодателя к трудоустраиваемому | No |
Требования трудоустраиваемого | Требования трудоустраиваемого к работодателю | No |
Трудоустраиваемый | Анкета заполняемая трудоустраиваемым при обращении в Службу занятости | No |
|
Name | Definition | Required | Is PK |
Заявка работодателя | Анкета заполняемая работодателем при обращении в службу занятости | Yes | Yes |
Дата заявки работодателя | Дата обращения работодателя в центр занятости | Yes | Yes |
Пол | Необходимый пол работника | No | No |
Возраст | Необходимый возраст работника | No | No |
Опыт работы | Необходимый опыт работы работника в данной области | No | No |
Образование | Необходимое образование работника | No | No |
Прописка | Необходимая прописка работника | No | No |
Дополнительные навыки | Дополнительные навыки которыми должен владеть работник | No | No |
Заявка трудоустраиваемого | Анкета заполняемая трудоустраиваемым при обращении в службу занятости | Yes | Yes |
Дата заявки трудоустраиваемого | Дата обращения трудоустраиваемого в центр занятости | Yes | Yes |
Оплата | Желаемая оплата труда | No | No |
График работы | График работы | No | No |
Адрес предприятия | Место нахождения предприятия устраивающее трудоустраиваемого | No | No |
Заявка работодателя | Анкета заполняемая работодателем при обращении в службу занятости | Yes | Yes |
Дата заявки работодателя | Дата обращения работодателя в центр занятости | Yes | Yes |
Название фирмы | Полное название фирмы | Yes | No |
Должность | Предлагаемая должность | No | No |
Оплата | Возможная оплата труда | No | No |
Требования | Требования работодателя предъявляемые к работнику | No | No |
Телефон | Контактный телефон работодателя | No | No |
Адрес | Почтовый адрес работодателя | No | No |
Проверка заявок | Проверка заявок | Yes | Yes |
Заявка трудоустраиваемого | Анкета заполняемая трудоустраиваемым при обращении в службу занятости | Yes | Yes |
Дата заявки трудоустраиваемого | Дата обращения трудоустраиваемого в центр занятости | Yes | Yes |
Заявка работодателя | Анкета заполняемая работодателем при обращении в службу занятости | Yes | Yes |
Дата заявки работодателя | Дата обращения работодателя в центр занятости | Yes | Yes |
Возврат невыполненных заявок | Возврат невыполненных заявок по истечению | No | No |
Извещение работодателю | Извещение работодателя о том, что к нему направлен рабочий | No | No |
Извещение трудоустраиваемому | Извещение трудоустраиваемому о том, что его направляют на работу | No | No |
Отчет о выполненных заявках | Отчеты о выполненных заявках | No | No |
Отчет о невыполненных заявках | Отчеты о невыполненных заявках | No | No |
Проверка заявок | Проверка заявок | Yes | Yes |
Заявка трудоустраиваемого | Анкета заполняемая трудоустраиваемым при обращении в службу занятости | Yes | No |
Дата заявки трудоустраиваемого | Дата обращения трудоустраиваемого в центр занятости | Yes | No |
Заявка работодателя | Анкета заполняемая работодателем при обращении в службу занятости | Yes | No |
Дата заявки работодателя | Дата обращения работодателя в центр занятости | Yes | No |
Заявка трудоустраиваемого | Анкета заполняемая трудоустраиваемым при обращении в службу занятости | Yes | Yes |
Дата заявки трудоустраиваемого | Дата обращения трудоустраиваемого в центр занятости | Yes | Yes |
ФИО | Фамилия, имя и отчество трудоустраиваемого | No | No |
Специальность | Специальность трудоустраиваемого по которой он хочет найти работу | No | No |
Опыт работы | Опыт работы трудоустраиваемого по данной специальности | No | No |
Требования | Желаемые условия для работы | No | No |
Образование | Образование трудоустраиваемого | No | No |
Пол | Пол трудоустраиваемого | No | No |
Возраст | Возраст трудоустраиваемого | No | No |
Телефон | Контактный телефон трудоустраиваемого | No | No |
Адрес | Адрес трудоустраиваемого | No | No |
|
3. Выбор языка программирования баз данных
Выбрать язык программирования – главная задача проектировщика БД. Существует множество языков программирования, но мы остановимся на трех:
● Microsoft Visual FoxPro
Традиционно одной из наиболее распространенных в России и странах СНГ является СУБД Microsoft Visual FoxPro, новая версия которой, Visual FoxPro 7.0, содержит дополнения и улучшения, расширяющие возможности системы. Visual FoxPro состоит из отдельных компонентов, которые используются для хранения информации, ее отображения и редактирования. В Visual FoxPro вся информация хранится в базе данных, которая состоит из таблиц, отношений между таблицами, индексов, триггеров и хранимых процедур. Каждая таблица имеет уникальное имя и хранится в отдельном файле, наименование которого совпадает с именем таблицы. Созданный файл имеет расширение DBF.
Чрезвычайно удобным и полезным средством доступа к базе данных являются представления данных. Представления данных позволяют объединять данные таблиц и отображать их в более удобном виде. Вы можете выбрать только интересующие вас поля таблиц, объединить несколько полей в одно поле, вычислить итоговые значения и задать новые имена полей таблицы. Как правило, количество представлений в базе данных намного превосходит количество таблиц. По мере эксплуатации базы данных их количество непрерывно растет. Во многих информационных системах доступ к данным, включая просмотр, добавление и редактирование, осуществляется только с помощью представлений данных. Данный подход позволяет осуществить гибкое управление доступом к информации. При использовании представлений для выборки данных в формах, отчетах, при создании запросов и в программах применяются те же правила, что и для таблиц. Редактирование данных, включенных в представление, возможно только при определенных условиях. Например, в том случае, если оно создано на основе только одной таблицы.
Для объединения компонентов создаваемого приложения используется проект. Использование проекта упрощает разработку приложения и его сопровождение.
● Microsoft Access
Microsoft Access является инструментом, рассчитанным на разработку БД, системы запросов и форм программистом – профессионалом и лишь во вторую очередь – инструментом для доступа к данным, хранящимся в БД.
Microsoft Access – один из компонентов семейства офисных приложений Microsoft Office – является одной из самых популярных настольных (desktop) СУБД. Это связано с тем, что СУБД Access предоставляет пользователю очень широкие возможности для ввода, обработки и представления данных. Эти средства являются не только удобными, но и высокопродуктивными, что обеспечивает высокую скорость разработки приложений. Изначала система управления базами данных Access обладала рядом уникальных возможностей:
Объединение информации из самых разных источников (электронных таблиц, текстовых файлов, других баз данных);
Представление данных в удобном для пользователя виде с помощью таблиц, диаграмм, отчетов;
Интеграция с другими компонентами Microsoft Office.
Совершенствуясь от версии к версии, система Access стала инструментом, который может удовлетворить самые разные категории пользователей: от новичка, которому нравится дружеский интерфейс, позволяющий ему справиться с его задачами, до профессионального разработчика, имеющий весь необходимый инструментарий для уникального решения конкретной задачи.
● Database Desktop и Borland C++ Builder
Является очень хорошим программным продуктом и средством разработки БД. Однако имеет ряд недостатков, которые существенно затрудняют работу проектировщика.
А) Невозможность добавлять к проекту новые файлы, таблицы и базы данных, созданные за рамками головного проекта.
Б) Для создания частей БД используется множество разных программ, между которыми постоянно необходимо переключатся (Database Desktop – создание таблиц, Borland C++ Builder – компоновщик и визуальный язык программирования).
В) Плохая наглядность проекта во время разработки.
Для создания информационной системы «Служба занятости» на основе проведенных исследований и имеющихся возможностей был выбран Database Desktop и Borland C++ Builder.
4. Разработка экранных форм
4.1. Создание таблиц
При создании базы данных было выявлено две сущности:
1. Организация;
2. Трудоустраиваемый.
В каждой сущности имеются атрибуты:
1. Организация – код организации; название организации; адрес организации.
2. Трудоустраиваемый – код организации; код трудоустраиваемого; ФИО трудоустраиваемого; дата рождения; пол; образование; специальность; район проживания; должность.
Рассмотрим работу Базы данных на примере двух таблиц: «Организация» и «Трудоустраиваемый». Структура таблиц выглядит так, как показано на рисунках 11 и 12:
Рис. 11 - Структура таблицы «Организация»
Рис. 12 - Структура Таблицы «Трудоустраиваемый»
4.2. Создание приложения
На рисунке 13 показана сама программа для работы с базой данных, в основу которой входят эти две таблицы.
Рис.13 - Программа для работы с базой данных
В приложении реализована функция сортировки. Сортировка может производиться по 8 критериям:
1.код организации;
2.Ф.И.О.;
3.Дата рождения;
4.Пол;
5.Образование;
6.Специальность;
7.Район;
8.Должность.
Рис.14 - Виды сортировок
На следующем рисунке показан результат работы выбранной нами сортировки – «Ф.И.О»
Рис.15 - Результат работы сортировки «Ф.И.О»
5. Язык запросов SQL
SQL символизирует собой Структурированный Язык Запросов. Это–язык, который дает вам возможность создавать и работать в реляционных базах данных, которые являются наборами связанной информации сохраняемой в таблицах.
Мир баз данных становится все более и более единым, что привело к необходимости создания стандартного языка, который мог бы использоваться, чтобы функционировать в большом количестве различных видов компьютерных сред. Стандартный язык позволит пользователям знающим один набор команд, использовать их, чтобы создавать, отыскивать, изменять, и передавать информацию независимо от того работают ли они на персональном компьютере, сетевой рабочей станции, или на универсальной ЭВМ.
В нашем все более и более взаимосвязанном компьютерном мире, пользователь, снабженный таким языком, имеет огромное преимущество в использовании и обобщении информации из ряда источников с помощью большого количества способов.
Элегантность и независимость от специфики компьютерных технологий, а также его поддержка лидерами промышленности в области технологии реляционных баз данных, сделало SQL, и вероятно в течение обозримого будущего оставит его, основным стандартным языком. По этой причине, любой, кто хочет работать с базами данных 90-х годов должен знать SQL.
Стандарт SQL определяется ANSI (Американским Национальным Институтом Стандартов) и в данное время также принимается ISO (МЕЖДУНАРОДНОЙ ОРГАНИЗАЦИЕЙ ПО СТАНДАРТИЗАЦИИ). Однако, большинство коммерческих программ баз данных расширяют SQL без уведомления ANSI, добавляя разные другие особенности в этот язык, которые, как они считают, будут весьма полезны. Иногда они несколько нарушают стандарт языка, хотя хорошие идеи имеют тенденцию развиваться и вскоре становиться стандартами "рынка" сами по себе в силу полезности своих качеств.
Иногда это несколько нарушает стандарт языка, хотя хорошие идеи имеют тенденцию развиваться и становиться стандартами рынка в силу полезности своих качеств.
Для той цели, чтобы пользователям было легче найти какую-то запись (информацию), во многих программах, работающих с огромными архивами данных – в частности и Базах Данных, программисты снабжают свои приложения средствами сортировки. Некоторые из них прошивают код сортировки, а некоторые программисты позволяют пользователям самим выбирать из предложенных ими видов сортировок ту, которая более подойдет пользователю.
Вот и в нашем приложении тоже представлена возможность выбора сортировки – из перечисленных 6 видов. Конечно, все эти виды сортируют данные по алфавиту (для текста – от А до Я(A-Z), для цифровой информации, по возрастающей от 0), но выбрав нужный вид, можно быстрее найти то, что требуется.
Рассмотрим SQL запрос для приложения «Трудоустройство».
Все SQL-запросы выполняются автоматически по выбору соответствующего пункта в списке сортировок, “SQL-сортировка” для этих визуальных компонентов, описание оператора SELECT проводится ниже.
КОД ПРОГРАММЫ
void __fastcall TForm1::SKChange(TObject *Sender) //Выбор таблицы
{ Table1->Active=false;
Table1->Active=false;
if(SK->Position == 0)
{ Table2->Active=false;
DB->DataSource=DataSource1;
DBN->DataSource=DataSource1;
Table1->Active=true; }
if(SK->Position == 1)
{ Table1->Active=false;
DB->DataSource=DataSource2;
DBN->DataSource=DataSource2;
Table2->Active=true; }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CBChange(TObject *Sender) // выбираем в всплывающем списке сортировку…
{
DB->DataSource=DataSource3;
Table1->Active=false;
Table2->Active=false;
if (CB->ItemIndex == 0) // если в всплывающем списке сортировки …
Код организации ….то
{
Query1->Active = false; // активность Query -false (выключено)
Query1->SQL->Clear();//функция очистки буфера SQL-запроса
/*добавить в буфер нов. запись SQL -запроса */
Query1->SQL->Append("SELECT KOD_ORG as КОД_ОРГАНИЗАЦИИ,FIO as ФИО,DATA_ROG as ДАТА_РОЖДЕНИЯ,POL as ПОЛ,OBRAZOV as ОБРАЗОВАНИЕ,SPEC as СПЕЦИАЛЬНОСТЬ,RAION as РАЙОН FROM ORG2 ORDER BY KOD_ORG");
Query1->Active = true;} //активность Query -true (включено)
else if (CB->ItemIndex == 1) // если в всплывающем списке сортировки “ФИО” то….
{
Query1->Active = false;
Query1->SQL->Clear();
Query1->SQL->Append("SELECT KOD_ORG as КОД_ОРГАНИЗАЦИИ,FIO as ФИО,DATA_ROG as ДАТА_РОЖДЕНИЯ,POL as ПОЛ,OBRAZOV as ОБРАЗОВАНИЕ,SPEC as СПЕЦИАЛЬНОСТЬ,RAION as РАЙОН FROM ORG2 ORDER BY FIO");
Query1->Active = true;}
else if (CB->ItemIndex == 2)
{
Query1->Active = false;
Query1->SQL->Clear();
Query1->SQL->Append("SELECT KOD_ORG as КОД_ОРГАНИЗАЦИИ,FIO as ФИО,DATA_ROG as ДАТА_РОЖДЕНИЯ,POL as ПОЛ,OBRAZOV as ОБРАЗОВАНИЕ,SPEC as СПЕЦИАЛЬНОСТЬ,RAION as РАЙОН FROM ORG2 ORDER BY DATA_ROG");
Query1->Active = true;}
else if (CB->ItemIndex == 3)
{
Query1->Active = false;
Query1->SQL->Clear();
Query1->SQL->Append("SELECT KOD_ORG as КОД_ОРГАНИЗАЦИИ,FIO as ФИО,DATA_ROG as ДАТА_РОЖДЕНИЯ,POL as ПОЛ,OBRAZOV as ОБРАЗОВАНИЕ,SPEC as СПЕЦИАЛЬНОСТЬ,RAION as РАЙОН FROM ORG2 ORDER BY POL");
Query1->Active = true;}
else if (CB->ItemIndex == 4)
{
Query1->Active = false;
Query1->SQL->Clear();
Query1->SQL->Append("SELECT KOD_ORG as КОД_ОРГАНИЗАЦИИ,FIO as ФИО,DATA_ROG as ДАТА_РОЖДЕНИЯ,POL as ПОЛ,OBRAZOV as ОБРАЗОВАНИЕ,SPEC as СПЕЦИАЛЬНОСТЬ,RAION as РАЙОН FROM ORG2 ORDER BY OBRAZOV");
Query1->Active = true;}
else if (CB->ItemIndex == 5)
{
Query1->Active = false;
Query1->SQL->Clear();
Query1->SQL->Append("SELECT KOD_ORG as КОД_ОРГАНИЗАЦИИ,FIO as ФИО,DATA_ROG as ДАТА_РОЖДЕНИЯ,POL as ПОЛ,OBRAZOV as ОБРАЗОВАНИЕ,SPEC as СПЕЦИАЛЬНОСТЬ,RAION as РАЙОН FROM ORG2 ORDER BY SPEC");
Query1->Active = true;}
else if (CB->ItemIndex == 6)
{
Query1->Active = false;
Query1->SQL->Clear();
Query1->SQL->Append("SELECT KOD_ORG as КОД_ОРГАНИЗАЦИИ,FIO as ФИО,DATA_ROG as ДАТА_РОЖДЕНИЯ,POL as ПОЛ,OBRAZOV as ОБРАЗОВАНИЕ,SPEC as СПЕЦИАЛЬНОСТЬ,RAION as РАЙОН FROM ORG2 ORDER BY RAION");
Query1->Active = true;}
}
//---------------------------------------------------------------------------
Заключение
В результате курсового проекта была спроектирована и реализована информационная система «Службы занятости».
Данная система удовлетворяет всем требованиям, предъявленным в задании, и реализует большинство необходимых сотрудникам службы занятости функций.
В результате выполнения курсовой работы был сделан вывод, что сегодня внедрение информационных систем может способствовать:
- получению более рациональных вариантов решения управленческих задач за счет внедрения математических методов и интеллектуальных систем и т.д.;
- освобождению работников от рутинной работы за счет ее автоматизации;
- обеспечению достоверности информации;
- замене бумажных носителей данных на магнитные и оптические, что приводит к более рациональной организации переработки информации на компьютере и снижению объемов бумажных документов;
- уменьшению затрат на производство продуктов и услуг.
В процессе выполнения данного курсового проекта были освоены на практике методы предпроектного обследования объекта информатизации, приобретен практический опыт по подготовке и систематизации необходимых материалов, изучены действующие стандарты, технические условия, положения и инструкции по эксплуатации аппаратных и программных средств вычислительной техники, периферийного и связного оборудования.
Список литературы
1. Маклаков С.В. Создание информационных систем с AllFusion Modeling Suite. – М.: ДИАЛОГ – МИФИ, 2002. – 224с.
2. Маклаков С.В. BPWin и ERWin. CASE – средства разработки информационных систем. – М.: ДИАЛОГ – МИФИ, 1992. – 256с.
3. Кириллов В.В. Структурированный язык запросов (SQL). – СПб.: ИТМО, 1994. – 80 с.
4. Цикритизис Д., Лоховски Ф. Модели данных. – М.: Финансы и статистика, 1985. – 344 с.
5. Атре Ш. Структурный подход к организации баз данных. – М.:Финансы и статистика, 1993. – 320 с.
6. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. – М.: Финансы и статистика, 1999. – 351 с.
7. Дейт К. Руководство по реляционной СУБД DB2. – М.: Финансы и статистика, 1998. – 320 с.
8. Кириллов В.В. Структуризованный язык запросов (SQL). – СПб.: ИТМО, 1994. – 80 с.
9. Мартин Дж. Планирование развития автоматизированных систем. – М.: Финансы и статистика, 1994. – 196 с.
10. Мейер М. Теория реляционных баз данных. – М.: Мир, 1997. – 608 с.
11. Питер Роб, Карлос Коронел. Системы БД: проектирование, реализация и управление.-Санкт-Петербург:БХВ-Петербург,2004.-1024 с.
12. Архангельский А.Я.Программирование C++Builder6.М: Бином,2003.-1151с.