Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Третья нормальная форма

Читайте также:
  1. B.105 Оценка долгосрочной запаздывающей деформации
  2. I. Книга третья
  3. I. Определение информатики и информации.
  4. III. Информационно-коммуникационные технологии
  5. III. Свойства информации.
  6. III. ТРЕТЬЯ ЭЛЕГИЯ
  7. III. ЭЛЕГИЯ ТРЕТЬЯ

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

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

 

 

2.2.4 Реляционная схема базы данных

Реляционная база данных – это совокупность отношений, содержащих всю информацию, которая должна храниться в БД. Однако пользователи могут воспринимать такую базу данных как совокупность таблиц.

1. Каждая таблица состоит из однотипных строк и имеет уникальное имя.

2. Строки имеют фиксированное число полей (столбцов) и значений (множественные поля и повторяющиеся группы недопустимы). Иначе говоря, в каждой позиции таблицы на пересечении строки и столбца всегда имеется в точности одно значение или ничего.

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

4. Столбцам таблицы однозначно присваиваются имена, и в каждом из них размещаются однородные значения данных (даты, фамилии, целые числа или денежные суммы).

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

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

Разработаем схему данных, (создание связей между таблицами). Для этого:

­ нажимаем по кнопку на панели инструментов (или команда Сервис, Схема данных). На экране появится окно <<Схема данных>>;

­ щёлкаем по кнопке на панели инструментов (или команда Связи, Добавить таблицу);

­ в появившемся окне будет выделено название одной таблицы. Щелкаем по кнопке <Добавить>, переводим выделение на имя следующей таблицы и щелкните по кнопке <Добавить>. Аналогично добавляем оставшиеся таблицы;

­ закройте окно, щелкнув по кнопке <3акрыть>;

­ чтобы не выполнять все вышеописанные действия, можно просто перетащить мышкой таблицы из окна «Базы данных Таблицы» в окно «Схема данных»;

­ создадим связь между таблицами «persons» и «movement». Для этого курсором мыши перетаскиваем «id» в таблице «persons» на поле «persons_id» в таблицу «movement». На экране откроется окно <<Связи>>;

­ устанавливаем флажок («галочку») в свойствах Обеспечение целостности данных, Каскадное обновление связанных полей и Каскадное удаление связанных записей;

­ щелкаем по кнопке <Создать>. Связь будет создана;

­ аналогично создаем связи между полем «id» в таблице «persons» и полем «persons_id» в таблице «education», и т.д. Рисунок 5 отображает полученную схему базы данных «Отдел кадров».

­ закрываем окно схемы данных, ответив ДА на вопрос о сохранении макета.

Рисунок 5. Реляционная структура СУБД Access для информационной системы «Отдел кадров»

 

 

2.2.5 Заполнение базы данных.

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

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

Для создания формы нужно открыть вкладку «Формы» окна базы данных и нажать кнопку «Создать»

После этого в появившемся окне следует выбрать способ создания формы «Конструктор».

Для создания главной формы (назовем ее mainForm) базы данных определим три основных зоны:

1. Красная зона (зона редактирования справочников);

2. Зеленая зона 2 части (редактирование основных данных о сотрудниках);

3. Синяя зона (отчеты).

В красной зоне для переключения справочников используем элемент управления панели элементов «группа переключателей» поместив его на форму и определив подписи, задав ему имя «directoryButtonGroup». Затем для отображения данных выбранного справочника помещаем на форму элемент управления «список», задав ему имя «directoryList», как показано на рисунке 6.

Рисунок 6. Красная зона формы mainForm.

Аналогично, использую различные элементы управления: «кнопка», «надпись», «список», «группа переключателей», «картинка»; создаем остальные зоны. Для зеленой зоны создаем два элемента «список». Первый, с именем «personsList» будет отображать всех сотрудников предприятия. Второй – историю выбранного сотрудника по выбранной категории (например по перемещениям) с именем «subPersonsList». Категории выбираются с помощью элемента управления «группа переключателей» с именем «personsButtonGroup». В синей зоне создаем элемент «список», с именем «reportsList», в котором будут отображаться названия всех, созданных впоследствии отчетов.

Получим форму в режиме конструктора (рис. 7).

Рисунок 7. Форма mainForm в режиме конструктора.

 

Для каждого элемента управления используем его свойства для настройки. Для этого выбрав элемент управления, например «группа переключателей» с именем «directoryButtonGroup», ЛК мыши, вызываем его свойства, нажав ЛК мыши на панели инструментов MS Access кнопку «Свойства». Открывается окно со свойствами выбранного элемента, что можно увидеть на рис.8.

 

Рисунок 8. Свойства элемента управления «группа переключателей» «directoryButtonGroup».

 

На вкладке «Все» свойств элемента задаем:

Имя-«directoryButtonGroup»,

Значение по умолчанию-1,

для события «После обновления» описываем процедуру-

Private Sub directoryButtonGroup_AfterUpdate()

Select Case directoryButtonGroup.Value

Case 1

directoryTable = "department_type"

directoryCaption = "Отдел"

Case 2

directoryTable = "nationality_type"

directoryCaption = "Национальность"

Case 3

directoryTable = "family_status_type"

directoryCaption = "Семейное положение"

Case 4

directoryTable = "professional_category_type"

directoryCaption = "Категория профессии"

Case 5

directoryTable = "professional_type"

directoryCaption = "Профессия"

Case 6

directoryTable = "holiday_type"

directoryCaption = "Отпуск"

Case 7

directoryTable = "award_type"

directoryCaption = "Награда"

Case 8

directoryTable = "education_type"

directoryCaption = "Образование"

Case 9

directoryTable = "violation_type"

directoryCaption = "Нарушение"

Case 10

directoryTable = "punish_type"

directoryCaption = "Взыскание"

Case Else

MsgBox ("other")

End Select

If directoryTable = "professional_type" Then

directorySource = "SELECT professional_type.id, professional_type.title, professional_category_type.title,professional_type.cmnt FROM professional_category_type INNER JOIN professional_type ON professional_category_type.id = professional_type.professional_category_type_id where professional_type.expired is null "

Form_mainForm.directoryList.ColumnCount = 4

Else

directorySource = "select * from " & directoryTable & " where expired is null"

Form_mainForm.directoryList.ColumnCount = 3

End If

Form_mainForm.directoryList.RowSource = directorySource

Form_mainForm.directoryList.Value = 0

End Sub

 

В ней, в зависимости от выбранного переключателя элемента группа переключателей «directoryButtonGroup», устанавливаются значения глобальных переменных directorySource и directoryCaption. Далее, используя значение переменной directorySource, устанавливается значение источник данных элемента список с именем «directoryList». Теперь после выбора нового значения переключателя «directoryButtonGroup», наступает событие AfterUpdate(), и после выполнения процедуры, вызываемой по данному событию в списке «directoryList» отобразятся данные соответствующей таблицы.

Аналогично устанавливаем свойства для элемента «directoryList»:

Имя-«directoryList»;

Значение по умолчанию-0;

Тип источника строк- Таблица или запрос;

Источник строк- SELECT department_type.id, department_type.title, department_type.cmnt FROM department_type WHERE expired is null;

(Источник строк создали с помощью построителя запросов см. рисунок 9.)

Рисунок 9. Построитель запросов

 

Ширина столбцов - 0см, чтобы в списке не отображался 1-й столбец (id)

Аналогично настроили зеленую зону.

Непосредственно для редактирования данных создаем формы editDirectoryForm (редактирование справочников), editPersonsForm (редактирование основных данных сотрудника), editAwardForm, editEducationForm, editHolidayForm, editMovementForm, editPunishForm (редактирование истории соответствующей категории данных сотрудника).

 

2.3 Оперирование данными

2.3.1 Создание запросов

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

Создадим запрос для определения последней даты перемещения по отделам или профессиям каждого сотрудника.

Для создания запроса необходимо открыть вкладку «Запросы» окна базы данных, нажать кнопку создать и в появившемся окне выбрать «Простой запрос». В этом случае будет предложено указать список таблиц и их полей. Выбираем таблицу «movement», добавляем необходимые поля (Рисунок 13), нажимаем кнопку «Далее». На основании этих данных будет создан запрос.

Рисунок 10. Создание запроса

В следующем окне нажимаем «Далее». Теперь задаем имя запроса «lastMovementQuery» и отмечаем галочкой пункт «Изменить макет запроса», нажимаем «Готово». Запрос откроется в режиме конструктора. Теперь, добавив групповые операции, в столбце «appointment_date» в строке «Групповая операция» задаем параметр «Max», в столбце «persons_id» в строке «Групповая операция» задаем параметр «Группировка», для столбца «expired»» в строке «Условие отбора» задаем «Is Null» (Рисунок 11)

Рисунок 11. Запрос определения последней даты перемещения по отделам или профессиям сотрудника

 

Аналогично создадим запрос с именем «firstMovementQuery», отображающем дату приема на работу каждого сотрудника.(Рисунок 12)

Рисунок 12

В созданных запросах есть только дата перемещения, но нет названий текущих профессии и отдела каждого сотрудника. Для получения их создадим еще один запрос, используя только что созданные. Действуя аналогично получим новый запрос с именем «lastMovementFullQuery», изображенный в режиме конструктора на рисунке 13. В нем были добавлены дополнительные связи между запросом «lastMovementQuery» и таблицей «movement».

 

Рисунок 13.

При выполнении запроса (значок на панели управления) появится таблица текущей профессии и места работы каждого сотрудника (Рисунок 14).

 

Рисунок 14.

 

Однако, в нем есть только коды сотрудников и нет их основных данных.

Поэтому создаем еще один запрос с именем «personsFullQuery. В режиме конструктора он выглядит так, как показано на рисунке 15.

Рисунок 15.

Выполнив его, получим (рисунок 16) требуемые данные.

 

 

Рисунок 16.

Для создания впоследствии отчетов были созданы еще запросы:

holidayQuery, lastEducationFullQuery, lastEducationQuery, punishQuery, personsWithEducationQuery.

 

 

2.4 Выходные данные

2.4.1 Отчет о работниках по категориям и профессиям

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

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

Последовательность действий при формировании отчёта с помощью Мастера такая же, как и при создании формы. Дополнительными являются два шага: добавление уровня группировок и задание требуемого порядка сортировки. Добавление уровня группировки позволяет выводить записи, объединённые по выбранным полям. Например, при задании уровня группировки по полю Категория профессии записи будут сгруппированы по конкретному значению этого поля. Access автоматически сортирует данные по группирующим полям, а внутри группы можно также задать сортировку по любому из полей, входящих в группу.

По каждой из групп при необходимости можно подводить итоги. Для получения итоговых значений по числовым полям необходимо после добавления уровня группировки в диалоговом окне Создание отчётов щелкнуть на кнопке Итоги, после чего для соответствующего числового поля выбрать требуемые функции. При выборе функции Sum (суммы) для какого-либо поля Access не только автоматически подсчитает сумму значений для каждой группы, но и подведёт итоги по всем записям выбранного поля. Программа предусматривает вывод как данных (записей) и итогов, так и только итогов. Если не задан уровень группировки, то кнопка «Итоги» становится недоступной.

Из режима просмотра пользователь может скопировать отчёт в виде отдельного файла текстового редактора Word или электронной таблицы Excel. Для этого необходимо щёлкнуть на кнопке «Связи с Office», расположенной на панели инструментов «Предварительный просмотр».

Для создания отчета следует открыть вкладку «Отчеты» в окне базы данных и нажать кнопку «Создать» в верхней части окна базы данных.

В появившемся окне «Новый отчет» выбрать пункт «Мастер отчетов» и указать источник данных – таблицу или запрос (в нашем случае это запрос personsFullQuery), нажать кнопку «ОК» (Рисунок 17).

Рисунок 17

Выбрать поля для отчета из имеющихся источников как мы это делали при создании форм и запросов. Добавляем уровни группировки (Рисунок 18), нажимаем «Далее».

Рисунок 18

Получаем отчет professionalCategoryReport (Рисунок 19).

Рисунок 19.

 

ЗАКЛЮЧЕНИЕ

База данных – это совокупность структурированных и взаимосвязанных данных и методов, обеспечивающих добавление выборку и отображение данных. Microsoft Access позволяет управлять всеми сведениями из одного файла базы данных. В рамках этого файла используются следующие объекты:

­ таблицы для сохранения данных;

­ запросы для поиска и извлечения только требуемых данных;

­ формы для просмотра, добавления и изменения данных в таблицах;

­ отчеты для анализа и печати данных в определенном формате;

Удачная разработка базы данных обеспечивает простоту ее поддержания.

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

Описанная в этом курсовом проекте база данных должна быть полезна при работе в данной области.

В ходе проделанной работы, нами были созданы:

­ 16 таблиц.

­ 10 запросов

­ 9 форм

­ 6 отчетов

Microsoft Access, обладая всеми чертами классической СУБД, предоставляет и дополнительные возможности. Access - это не только мощная, гибкая и простая в использовании СУБД, но и система для разработки работающих с базами данных приложений. С помощью Access можно создать приложение, работающее в среде Windows и полностью соответствующее потребностям по управлению данными. Используя запросы, есть возможность выбирать и обрабатывать хранящуюся в таблицах информацию. Можно создавать формы для ввода, просмотра и обновления данных, а также использовать Access для создания как простых, так и сложных отчетов. Формы и отчеты «наследуют» свойства базовой таблицы или запроса, так что в большинстве случаев необходимо указать форматы, условия на значения и некоторые другие характеристики данных только один раз. К числу наиболее мощных средств Access относятся средства разработки объектов - Мастера, которые можно использовать для создания таблиц, запросов различных типов форм и отчетов, просто выбрав с помощью мыши нужные опции.

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

Microsoft Access имеет множество областей применения: на малом предприятии; корпорации и даже в сфере домашнего применения.

 


3 СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

  Бакаревич Ю.Б., Пушкина Н.В. Самоучитель Microsoft Access 2002. – СПб.: БХВ-Петербург, 2002
  Бондарева Г.А., Сахарова Е.В., Королькова Л.Н., Информатика. Методические указания. Ставрополь, СТИС, 2006
  Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. – М.: Финансы и статистика, 1989.
  Гончаров А. Ю. Access 2003. Самоучитель с примерами., Москва, 2004г.
  Григорьев В.А., Ревунков В.И. Банки данных. Учебник для вузов. – М., МВТУ им.Баумана, 2002.
  Домашняя страница Access: справка и обучение http://office.microsoft.com/ru-ru/access/FX100487571049.aspx
  Мейер М. Теория реляционных баз данных. – М.: Мир, 1987.
  Основы проектирования реляционных баз данных. Электронное учебное пособие.
  Симонович С. В., Евсеев Г. А., Алексеев А. Г. Специальная информатика: Учебное пособие. – М.: АСТ-ПРЕСС: Инфорком-Пресс, 2000
  Хаббард Дж. Автоматизированное проектирование баз данных. – М.: Мир, 1984.

 


Дата добавления: 2015-08-05; просмотров: 115 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Первая нормальная форма| Газовый тракт

mybiblioteka.su - 2015-2024 год. (0.025 сек.)