база данных по бирже труда Якуповой. Описание предметной области
![]()
|
Описание предметной области: Биржа труда ведет учет безработных, вакантных мест на предприятиях, организует курсы для получения дополнительной специальности. Особое место в системе регулирования рынка труда занимают центры занятости. Центры занятости являются также одной из важных структур рыночного хозяйственного механизма. Они представляют собой специальные учреждения, осуществляющие посреднические функции на рынке рабочей силы. В большинстве стран биржи труда и центры занятости являются государственными и осуществляют свою деятельность под руководством Министерства труда или аналогичного ему органа. Вместе с тем на рынке труда наряду с государственными службами занятости функционирует большое число частных посреднических фирм, эффективность деятельности которых тоже очень высока. Основными направлениями деятельности государственных центров занятости являются: – регистрация безработных; – регистрация вакантных мест; – трудоустройство безработных и других лиц, желающих получить работу; – изучение конъюнктуры рынка труда и представление информации о ней; – тестирование лиц, желающих получить работу; – профессиональная ориентация и профессиональная переподготовка безработных; – выплата пособий. Деятельность государственных бирж труда имеет важнейшее значение для эффективного функционирования рынка рабочей силы. 1 Проектирование реляционной базы данных «Биржа труда». Создание информационно логической моделиНа первом этапе разработки структуры БД целесообразно построение информационно-логической модели, которая будет отражать логическую структуру информации предметной области. Такая модель, отвечающая требованиям нормализации данных, является основой создания реляционных баз данных. Для начала определим все данные, которые будут задействованы в базе данных «Биржа труда». Создадим общую таблицу данных в первой нормальной форме. Данная таблица представлена в приложении А. Сущность находится в первой нормальной форме, когда все ее атрибуты имеют единственное значение. Чтобы признать сущность находящейся в первой нормальной форме, нужно удостовериться в том, что каждый атрибут сущности имеет единственное значение для каждого экземпляра сущности. Если в каком-либо атрибуте есть повторяющиеся значения, сущность не находится в первой нормальной форме. Создав таблицу в первой нормальной форме, её следует разбить на несколько таблиц, которые нужно связать между собой, приводя данные таблицы к одной из нескольких нормальных форм. Сущность находится во второй нормальной форме, если она уже находится в первой нормальной форме, и каждый не идентифицирующий атрибут зависит от всего уникального идентификатора сущности. Если некий атрибут не зависит полностью от уникального идентификатора сущности, значит, он внесен ошибочно и должен быть удален. Следовательно, необходимо нормализовать такой атрибут либо найдя сущность, к которой он относится, либо создав новую сущность, в которую он должен быть помещен. Проанализировав предметную область, определим следующие сущности: безработный, пособие, профессиональная подготовка, вакансии. Информация о каждой сущности должна храниться в отдельной таблице, поэтому для каждого объекта создадим отдельную таблицу, которая будет содержать информацию о нем. Для того чтобы привести сущность ко второй нормальной форме, необходимо выделить в ней атрибут, который бы однозначно определял значение других атрибутов. Атрибуты фамилия, имя, отчество, образование, общий стаж, специальность с последнего места работы, последнее место работы, дата увольнения, город проживания, дата рождения зависят от атрибутов. Данную группу функциональных зависимостей выделили в отдельную таблицу «Безработный». Учитывая это, введем новое уникальное поле код безработного, которое будет первичным ключом для таблицы "Безработный". Значения первичного ключа уникальны и не должны повторяться. Таблица 1.1 - Безработный, лист 1
Таблица 1.1 - Безработный, лист 2
Таблица «Образование» имеет вторую нормальную форму, но её можно отнести и к третьей нормальной форме, так как в ней нет транзитивных зависимостей. Таблица 1.2 - «Образование»
![]() Рисунок 1.1 – Фрагмент связи между таблицей «Безработный» и справочником «Образование» Следующие атрибуты заработная плата, требуемый стаж, должностные обязанности, требования, режим работы, характер работы, адрес предприятия, профессиональная область, номер телефона, электронная почта зависят от атрибутов специальность и наименование компании. Данную группу функциональных зависимостей выделили в отдельную таблицу «Вакансия». Но использование составного ключа не числового типа не эффективно, так как замедлит скорость выполнения запросов, поэтому добавим в таблицу уникальное поле код вакансии, которое будет первичным ключом и однозначно определит значения других полей. В таблице присутствует полная функциональная зависимость, следовательно, она находится во второй нормальной форме. Таблица 1.3 – «Вакансия», лист 1
Таблица 1.3 - «Вакансия», лист 2
В таблице «Вакансия» присутствуют атрибуты: адрес предприятия, наименование компании, номер телефона, которые зависят от атрибута электронная почта. Данную группу функциональных зависимостей нужно выделить в отдельную таблицу «Предприятие», так как на одном предприятии может быть несколько вакансий. Использование атрибута электронная почта, как первичного ключа данной таблицы, неэффективно, так как электронная почта имеет слишком длинное значение и является не числовым типом, поэтому написание запросов будет сложным. Поэтому добавим в таблицу "Предприятие" ключевое поле код предприятия. Полученная таблица находится во второй нормальной форме. В данной таблице присутствует транзитивная зависимость, поскольку атрибуты номер телефона и электронная почта также имеет уникальное значение, и могут определять другие поля. Если выделить данные атрибуты в отдельную таблицу, то получим связь между таблицами один к одному, что будет неэффективно. Таким образом, таблица "Предприятие" останется во второй нормальной форме. Также необходимо создать поле код предприятия в таблице «Вакансия» для связи с таблицей «Предприятие». Одно предприятие может предоставить несколько вакансий для трудоустройства, поэтому связь между таблицами один ко многим. Таблица 1.4 - «Предприятие»
![]() Рисунок 1.2 – Связь между таблицами «Вакансия» и «Предприятие» Вернемся к таблице «Вакансия». У каждой вакансии есть требование к образованию, и эта информация может часто повторяться в базе данных. В связи с этим необходимо связать сущность «Вакансия» с уже созданным справочником «Образование», создав ключевое поле код образования. ![]() Рисунок 1.3 – Связь между таблицей «Вакансия» и справочником «Образование» При выборе вакансии часто повторяются данные о специальности и профессиональной области. Поэтому необходимо выделить атрибуты Специальность и Профоблать в отдельную таблицу и связать ее с таблицей «Вакансия» с помощью ключевого поля код специальности. Но и в этой таблице прослеживаются повторяющиеся данные, так как в одной профессиональной области может быть несколько специальностей, следовательно, необходимо выделить атрибут профобласть в отдельную таблицу и с помощью ключевого поля код профобласти связать её с сущностью «Специальность». Таблица 1.5 - «Специальность»
Таблица 1.6 - «Профобласть»
![]() Рисунок 1.4 – Связь таблицы «Вакансия» со справочниками «Специальность» и «Профобласть» Итак, полученные таблицы можно отнести к третьей нормальной форме, поскольку отсутствует транзитивная зависимость. При предоставлении вакансии указывают график работы. Режим работы может быть всего нескольких видов – полный день, вахтовый метод, сменный график, гибкий график, удаленная работа. Для того чтобы избавиться от часто повторяющихся данных вынесем их в отдельную таблицу «Режим работы» и свяжем с сущностью «Вакансия» с помощью ключевого поля Код режима работы. Таблица 1.7 - «Режим работы»
Справочник имеет третью нормальную форму, так как в нем нет транзитивной зависимости. Каждое предприятие, предлагающее рабочее место, указывает тип занятости. В характере занятости чаще всего указывают – Полная занятость, Частичная занятость, Проектная работа, Стажировка. Вынесем эти данные в отдельную таблицу «Характер занятости» для того, чтобы убрать повторяющиеся данные. Связь с таблицей «Вакансия» реализуем при помощи ключевого поля Код характера занятости. Полученный справочник находится в третьей нормальной форме, так как в нем отсутствует транзитивная зависимость. Таблица 1.8 - «Характер работы»
Таблица «Вакансия», изменилась в своей структуре, это связано с тем, что было создано несколько справочников и вынесены данные о предприятии. Также данная таблица относится к третьей нормальной форме, поскольку в таблице отсутствует транзитивная зависимость. Биржа труда предлагает безработному различные вакансии для трудоустройства. Одному клиенту могут предложить несколько вакансий, а также на одно вакантное место могут претендовать некоторое количество безработных, из этого следует что, присутствует многозначная зависимость. Атрибуты Дата посещения, Результат посещения зависят от атрибутов Код безработного и Код вакансии. Создадим связующую таблицу для того, чтобы избавиться от многозначной зависимости между таблицами "Вакансия" и "Безработный". Благодаря этому можно проследить, когда безработный посетил предлагаемое ему место работы и результат посещения, а также избавимся от многозначной зависимости. Созданная таблица представлена на рисунке 3.19, а связь между таблицами «Безработный» и «Вакансия» показаны на рисунке 3.20. Таблица 1.9 - «Режим работы»
![]() Рисунок 1.5 – Связи между таблицами «Безработный», «Вакансия» и таблицей-ассоциацией «Посещение» Атрибуты наименование организации, название курсов являются составным ключом от которых зависят такие атрибуты как тип курсов, количество часов, адрес образовательной организации, дата начала курсов, дата окончания курсов. Данную группу функциональных зависимостей выделим в отдельную таблицу «Профессиональная подготовка». Но использование составного ключа не эффективно, поэтому добавим в таблицу уникальное поле, которое будет однозначно определять значения других полей – код курсов. В таблице отсутствует транзитивная зависимость, следовательно, она находится в третьей нормальной форме. Таблица 1.10 - «Профобласть»
В базе данных «Биржа труда» один из основных объектов «Пособие» содержит следующие атрибуты: размер пособия, начало выплаты, конец выплаты.Перечисленные атрибуты для одного безработного повторяются, поэтому эти атрибуты выделим в отдельную таблицу, а атрибут Код безработного добавим для связи с таблицей «Безработный».Для перехода ко второй нормальной форме, следует выделить в ней атрибут, который бы однозначно определял значение других атрибутов. В данной таблице нет атрибута, который бы однозначно определял значение других атрибутов, здесь набор всех атрибутов образует ключ или как его называют – составной ключ. Как показывает практика использование составного ключа не эффективно, поэтому, в таблицу необходимо добавить уникальное поле, которое будет однозначно определять значения других полей – код пособия. Так как в таблице отсутствует транзитивная зависимость, то данную таблицу можно отнести к третьей нормальной форме. Таблица 1.11 - «Пособия»
![]() Рисунок 1.6 – Связь между таблицами «Безработный» и «Пособие» Курсы, на которые направляется безработный, бывают трех видов – Обучение профессии, Повышение квалификации, Переквалификация. Для того чтобы избавиться от часто повторяющихся данных, выделим эти данные в отдельную таблицу «Тип курсов», который будет являться справочником и свяжем его с таблицей «Профессиональная подготовка» с помощью ключевого поля код типа курсов. Полученная таблица представлена на рисунке 3.24, а связь между двумя таблицами на рисунке 3.25. Таблица 1.12 - «Тип курсов»
![]() Рисунок 1.7 – Связь между таблицей «Профессиональная подготовка» и справочником «Тип курсов» В таблице «Тип курсов» нет транзитивных зависимостей, а также присутствует полная функциональная зависимость, благодаря этому можно сделать вывод, что он находится во второй равным образом, как и в третьей нормальной форме. Теперь необходимо связать между собой таблицы «Безработный» и «Профессиональная подготовка». Если клиент, обратившийся в Биржа труда, не имеет специальности или его специальность не востребована на рынке труда он направляется на профессиональную подготовку. Безработный может посетить несколько курсов, а также на один курс могут прийти несколько безработных, таким образом, связывая таблицы между собой, возникает многозначная зависимость. Атрибуты Дата начала и Дата окончания зависят от атрибутов Код безработного и Код курсов. Выделим в таблицу-ассоциацию «Период» атрибуты Дата начала, Дата окончания из таблицы «Профессиональная подготовка» и добавим связующие атрибуты код безработного и код курсов, которые являются вторичными ключами благодаря этому, будет отчетливо прослеживаться, когда безработный начал и окончил курсы и какие курсы, а также избавимся от многозначной зависимости между таблицами. Таблица 1.13 - «Профессиональная подготовка»
![]() Рисунок 1.8 – Связь между таблицами «Безработный», «Профессиональная подготовка» и таблицей-ассоциацией «Период обучения» Итак, преобразованные таблицы можно отнести к четвертой нормальной форме, так как были убраны многозначные зависимости. Исключением является таблица «Безработный», так как он находится во второй нормальной форме, а для четвертой нормальной формы необходимый аспект — это нахождение сущности в третьей нормальной форме. Итак, таблицы приведены к третьей нормальной форме, так как в них определены полные функциональные зависимости, а также убраны транзитивные зависимости. А также таблица «Профессиональная подготовка» находятся в четвертой нормальной форме. Переходим к построению информационно-логической модели, для этого воспользуемся программой MicrosoftExcel. Здесь объекты изобразим таблицами, а названия атрибутов впишем в их строки. Связи между таблицами обозначим линиями. Связь «1» к «∞» обозначает связь один ко многим. Полученная модель представлена в приложении Б, на рисунке Б.1. |