для чего нужны формы в базе данных

Работа с формами в Access

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

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

Зачем использовать формы?

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

Это справедливо и для форм в Access. Когда вы вводите информацию в форму в Access, данные идут именно туда, куда она должна идти: в одну или несколько связанных таблиц. Хотя ввод данных в простые таблицы довольно прост, запись данных становится более сложной, так как вы начинаете заполнять таблицы записями из других источников в базе данных. Например, таблица Orders в базе данных хлебобулочных изделий может ссылаться на информацию о клиентах, продуктах и ценах, полученных из связанных таблиц. Запись с информацией об одном заказе может выглядеть так:

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

Форма, содержащая те же данные, может выглядеть так:

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

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

Работа с формами

Чтобы работать с формами в Access, вам нужно знать, как открыть форму, а также как просматривать и редактировать информацию в форме.

Чтобы открыть существующую форму:

Ввод и изменение данных

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

Как добавить новую запись

Существует два способа добавить новую запись в форму:

Как найти существующую запись для просмотра или редактирования

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

Чтобы сохранить текущую запись:

Чтобы удалить текущую запись:

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

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

Источник

Информационные технологии. 10 класс (Базовый уровень)

§ 3. Создание форм базы данных

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

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

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

Работать с формами в Access можно в трех режимах:

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

2. Режим макета. В этом режиме удобно изменять размер (если размер поля не соответствует расположенным в нем данным) и положение элементов на форме (для лучшего восприятия данных).

3. Конструктор. Позволяет изменять те свойства формы, которые нельзя изменить в режиме макета — добавлять в форму дополнительные элементы, изменять размеры и оформление разделов формы.

В Access имеются различные инструменты для создания форм (пример 3.2). К ним относятся:

1. Форма. С помощью этого инструмента форма создается из существующего объекта БД и содержит все поля источника. После создания такая форма открывается в режиме макета. В окне формы одновременно отображается только одна запись (пример 3.3).

2. Пустая форма. В этом случае пользователь в режиме макета по своему усмотрению размещает на форме блоки названий полей и их значений.

3. Мастер форм (пример 3.4). Позволяет создавать формы, различные как по стилю, так и по содержанию.

4. Конструктор форм ( см. Приложение к главе 1). Предназначен для создания формы любой сложности.

В структуре любой формы можно выделить следующие основные разделы:

1. Заголовок. Располагается в верхней части формы. В области заголовка могут располагаться текст, графика и другие элементы управления. Для добавления или удаления области заголовка необходимо выбрать в контекстном меню для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных, также можно воспользоваться кнопкой для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данныхинструментов Конструктора форм.

2. Область данных. Определяет основную часть формы, содержащую данные, полученные из источника. Является обязательной. Может содержать элементы управления, а также неизменяемые данные, например надписи. Для размещения в области данных элементов управления используют список полей и панель элементов Конструктора форм (см. Приложение к главе 1).

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

При конструировании однотабличной формы нужно выполнить ряд действий (пример 3.6):

Для удаления элемента его нужно выделить и нажать Del.

После добавления поля на форму в области данных появляются связанные элементы Надпись и Поле (пример 3.7). Элемент Надпись содержит название поля, а элемент Поле — значение этого поля, которое меняется от записи к записи. При перемещении пара этих элементов движется синхронно. Для перемещения одного из них курсор необходимо подвести к маркеру элемента — серому квадратику, расположенному в верхнем левом углу рамки, и перетащить.

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

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

2. Нажать левую кнопку мыши и перетащить границу раздела вверх для получения нужного размера.

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

Таблицы баз данных глубоко скрыты от посторонних глаз, а формы — это средства, с помощью которых с базами данных работают пользователи. Поэтому к формам предъявляются повышенные требования по дизайну. Форматирование элементов формы выполняется инструментами конструктора форм, вкладка Формат (пример 3.8).

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

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

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

Пример 3.1. Режимы работы с формами.

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

Пример 3.2. Группа инструментов Формы вкладки Создание.

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

Пример 3.3. Создание формы с помощью инструмента Форма.

1. Выделить таблицу, которая будет являться источником данных.

2. Выбрать для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данныхв группе Формы вкладки Создание.

3. При необходимости в режиме Макет изменить размеры полей. Для этого:

3.1. Выделить поле или группу полей, требующих изменения размеров.

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

3.2. Подвести курсор к границе выделенных полей и перетащить в необходимом направлении.

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

Пример 3.4. Создание формы с помощью Мастера форм.

1. Выбрать для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данныхв группе Формы вкладки Создание.

2. На каждом шаге следовать инструкции.

3. Результат (был выбран ленточный вид отображения данных и исключено поле Код):

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

Пример 3.5. Структура формы.

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

Пример 3.6. Создание формы с помощью Конструктора форм.

1. Выбрать для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данныхв группе Формы вкладки Создание.

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

2. Связать форму с источником данных (таблицей).

Для этого нажать на кнопку для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных.

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

3. Поместить требуемые поля в область данных конструктора формы.

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

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

4. При необходимости поменять положение и размеры полей в области данных (перетащить и выровнять).

Добавить заголовок и ввести текст заголовка:

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

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

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

Добавить на форму разделительные линии можно с помощью инструмента Линия для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных.

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

Пример 3.7. Связанные элементы Надпись и Поле.

В режиме Конструктор форм:

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

Пример 3.8. Форматирование элементов формы.

1. Изменение параметров шрифта.

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

2. Изменение цвета фона для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных.

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

3. Вставка фонового изображения для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных.

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

Пример 3.9. Окно свойств раздела Заголовок формы.

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

Пример 3.10. Добавление записи в таблицу с помощью формы.

Источник

Зачем нужны формы?

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

Запросы на изменение

Выше мы говорили о том, что все виды запросов на выборку созда­ют временные результирующие таблицы. Базовые таблицы при этом не изменяются. Тем не менее, специально для разработчиков баз данных существует особая группа запросов, которые назы­ваются запросами на изменение. Они позволяют автоматически создавать новые таблицы или изменять уже имеющиеся. Логика использования запросов на изменение такая:

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

• после запуска запроса образуется временная результирующая таблица;

• данные из этой временной таблицы используют для создания новых таблиц или изменения существующих.

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

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

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

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

4. Эта команда находится в меню Запрос, которое доступно только в режиме Конструктора.

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

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

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

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

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

Источник

Базы данных Access: формы

Ищем педагогов в команду «Инфоурок»

для чего нужны формы в базе данных. Смотреть фото для чего нужны формы в базе данных. Смотреть картинку для чего нужны формы в базе данных. Картинка про для чего нужны формы в базе данных. Фото для чего нужны формы в базе данных

Описание презентации по отдельным слайдам:

Базы данных Access:формы Подготовила учитель информатики: Радова А.Ф. ТМТЛ им. С. Демиреля С.Конгаз

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

Рассмотрим некоторые из перечисленных способов. 1. Выполните команду: вкладка ленты Создание → панель инструментов Формы → Другие формы → Мастер форм. 2. В диалоговом окне Создание форм выберите таблицы (запросы) и поля, которые будут помещены в форму. Щелкните по кнопке Далее. 3. В следующих диалоговых окнах мастера выберите внешний вид формы, стиль, задайте имя формы. Щелкните по кнопке Готово. 4. С помощью Мастера создайте формы по таблицам готовым.

5. Откройте форму Elevi в режиме Конструктора. Этот режим предназначен для создания и редактирования форм. 6. Разместите элементы в удобном для вас порядке, измените размер и цвет текста. 7. В заголовок формы добавьте текст Ученики лицея ТМТЛ. 8. В примечание формы добавьте объект Кнопка (вкладка ленты Конструктор → панель инструментов Элементы управления). 9. После того как вы «нарисуете» кнопку указателем, на экране появится диалоговое окно Создание кнопок. 10. В категории Работа с формой выберите действие Закрытие формы и нажмите кнопку Далее. Выберите рисунок или текст, который будет размещаться на кнопке.

11. В последнем диалоговом окне Мастера кнопок задайте имя кнопки и нажмите Готово. 12. Мастер кнопок написал для данной кнопки процедуру на языке Microsoft Visual Basic. Просмотреть процедуру обработки события можно с помощью команды Обработка событий контекстного меню кнопки. 13. Самостоятельно создайте кнопки Выход из приложения, Поиск записи, Удаление записи. 14. Иногда на форме требуется разместить несколько страниц, содержащих данные из различных источников, справочную или вспомогательную информацию. Для этой цели можно использовать набор вкладок.

15. Создайте пустую форму. 16. Для добавления к форме набора вкладок щелкните по кнопке Вкладка на панели инструментов Элементы управления. Сначала добавятся только две вкладки с формальными именами Вкладка 1 и Вкладка 2. 17. Добавьте еще одну вкладку. 18. Переименуйте ярлычки вкладок так, чтобы на них отображались названия данных, которые будут в них располагаться: Elevi,Profesori. 19. Перейдите на вкладку Profesori и перетащите на нее мышкой из базы данных форму Profesori. 20. Аналогичным образом поместите форму Менеджеры на вкладку Менеджеры.

21. На вкладку Помощь поместите некоторые советы по работе с базой данных. 22. Данную форму сохраните с именем Работники лицея. 23. В Microsoft Access можно создавать кнопочные формы. Они содержат только кнопки и предназначены для выбора основных действий в базе данных. Для создания кнопочной формы необходимо на вкладке ленты Работа с базами данных выбрать команду Диспетчер кнопочных форм. 24. Если кнопочной формы в базе данных нет, то будет выведен запрос на подтверждение ее создания. Нажмите Да в диалоговом окне подтверждения. 25. Перед вами появится Диспетчер кнопочных форм, в котором щелкни­те по кнопке Создать. 26. В диалоговом окне Создание (рис. 10) введите имя новой кнопочной формы и нажмите ОК.

Домашнее задание. Контрольные вопросы 1. Для чего предназначены формы? 2. Почему форма является незаменимым средством в БД? 3. С помощью чего можно создавать формы? 4. На основе чего можно создавать формы? 5. Как создать кнопку на форме? 6. Как можно разместить несколько таблиц и запросов на одной форме? 7. Как создать главную кнопочную форму?

Источник

Нормализация отношений. Шесть нормальных форм

В данной теме я затрону 6 нормальных форм и методы приведения таблиц в эти формы.

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

Используемые термины

Атрибут — свойство некоторой сущности. Часто называется полем таблицы.

Домен атрибута — множество допустимых значений, которые может принимать атрибут.

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

Отношение — конечное множество кортежей (таблица).

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

Проекция — отношение, полученное из заданного путём удаления и (или) перестановки некоторых атрибутов.

Функциональная зависимость между атрибутами (множествами атрибутов) X и Y означает, что для любого допустимого набора кортежей в данном отношении: если два кортежа совпадают по значению X, то они совпадают по значению Y. Например, если значение атрибута «Название компании» — Canonical Ltd, то значением атрибута «Штаб-квартира» в таком кортеже всегда будет Millbank Tower, London, United Kingdom. Обозначение: -> .

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

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

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

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

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

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

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

Первая нормальная форма

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

Например, есть таблица «Автомобили»:

Вторая нормальная форма

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

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

Например, дана таблица:

МодельФирмаЦенаСкидка
M5BMW55000005%
X5MBMW60000005%
M1BMW25000005%
GT-RNissan500000010%

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

МодельФирмаЦена
M5BMW5500000
X5MBMW6000000
M1BMW2500000
GT-RNissan5000000

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

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

МодельМагазинТелефон
BMWРиал-авто87-33-98
AudiРиал-авто87-33-98
NissanНекст-Авто94-54-12

Таблица находится во 2НФ, но не в 3НФ.
В отношении атрибут «Модель» является первичным ключом. Личных телефонов у автомобилей нет, и телефон зависит исключительно от магазина.
Таким образом, в отношении существуют следующие функциональные зависимости: Модель → Магазин, Магазин → Телефон, Модель → Телефон.
Зависимость Модель → Телефон является транзитивной, следовательно, отношение не находится в 3НФ.
В результате разделения исходного отношения получаются два отношения, находящиеся в 3НФ:

Нормальная форма Бойса-Кодда (НФБК) (частная форма третьей нормальной формы)

Определение 3НФ не совсем подходит для следующих отношений:
1) отношение имеет два или более потенциальных ключа;
2) два и более потенциальных ключа являются составными;
3) они пересекаются, т.е. имеют хотя бы один общий атрибут.

Для отношений, имеющих один потенциальный ключ (первичный), НФБК является 3НФ.

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

Предположим, рассматривается отношение, представляющее данные о бронировании стоянки на день:

Номер стоянкиВремя началаВремя окончанияТариф
109:3010:30Бережливый
111:0012:00Бережливый
114:0015:30Стандарт
210:0012:00Премиум-В
212:0014:00Премиум-В
215:0018:00Премиум-А

Отношение находится в 3НФ. Требования второй нормальной формы выполняются, так как все атрибуты входят в какой-то из потенциальных ключей, а неключевых атрибутов в отношении нет. Также нет и транзитивных зависимостей, что соответствует требованиям третьей нормальной формы. Тем не менее, существует функциональная зависимость Тариф → Номер стоянки, в которой левая часть (детерминант) не является потенциальным ключом отношения, то есть отношение не находится в нормальной форме Бойса — Кодда.

Недостатком данной структуры является то, что, например, по ошибке можно приписать тариф «Бережливый» к бронированию второй стоянки, хотя он может относиться только к первой стоянки.

Можно улучшить структуру с помощью декомпозиции отношения на два и добавления атрибута Имеет льготы, получив отношения, удовлетворяющие НФБК (подчёркнуты атрибуты, входящие в первичный ключ.):

ТарифНомер стоянкиИмеет льготы
Бережливый1Да
Стандарт1Нет
Премиум-А2Да
Премиум-В2Нет
ТарифВремя началаВремя окончания
Бережливый09:3010:30
Бережливый11:0012:00
Стандарт14:0015:30
Премиум-В10:0012:00
Премиум-В12:0014:00
Премиум-А15:0018:00

Четвертая нормальная форма

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

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

Такая переменная отношения не соответствует 4НФ, так как существует следующая многозначная зависимость:
<Ресторан>→ <Вид пиццы>
<Ресторан>→

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

Для предотвращения аномалии нужно декомпозировать отношение, разместив независимые факты в разных отношениях. В данном примере следует выполнить декомпозицию на <Ресторан, Вид пиццы>и <Ресторан, Район доставки>.

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

Пятая нормальная форма

Отношения находятся в 5НФ, если оно находится в 4НФ и отсутствуют сложные зависимые соединения между атрибутами.
Если «Атрибут_1» зависит от «Атрибута_2», а «Атрибут_2» в свою очередь зависит от «Атрибута_3», а «Атрибут_3» зависит от «Атрибута_1», то все три атрибута обязательно входят в один кортеж.

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

Например, некоторая таблица содержит три атрибута «Поставщик», «Товар» и «Покупатель». Покупатель_1 приобретает несколько Товаров у Поставщика_1. Покупатель_1 приобрел новый Товар у Поставщика_2. Тогда в силу изложенного выше требования Поставщик_1 обязан поставлять Покупателю_1 тот же самый новый Товар, а Поставщик_2 должен поставлять Покупателю_1, кроме нового Товара, всю номенклатуру Товаров Поставщика_1. Этого на практике не бывает. Покупатель свободен в своем выборе товаров. Поэтому для устранения отмеченного затруднения все три атрибута разносят по разным отношениям (таблицам). После выделения трех новых отношений (Поставщик, Товар и Покупатель) необходимо помнить, что при извлечении информации (например, о покупателях и товарах) необходимо в запросе соединить все три отношения. Любая комбинация соединения двух отношений из трех неминуемо приведет к извлечению неверной (некорректной) информации. Некоторые СУБД снабжены специальными механизмами, устраняющими извлечение недостоверной информации. Тем не менее, следует придерживаться общей рекомендации: структуру базы данных строить таким образом, чтобы избежать применения 4НФ и 5НФ.

Пятая нормальная форма ориентирована на работу с зависимыми соединениями. Указанные зависимые соединения между тремя атрибутами встречаются очень редко. Зависимые соединения между четырьмя, пятью и более атрибутами указать практически невозможно.

Доменно-ключевая нормальная форма

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

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

Любая переменная отношения, находящаяся в ДКНФ, обязательно находится в 5НФ. Однако не любую переменную отношения можно привести к ДКНФ.

Шестая нормальная форма

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

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

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

Таб.№ВремяДолжностьДомашний адрес
657501-01-2000:10-02-2003слесарьул.Ленина,10
657511-02-2003:15-06-2006слесарьул.Советская,22
657516-06-2006:05-03-2009бригадирул.Советская,22

Переменная отношения «Работники» не находится в 6НФ и может быть подвергнута декомпозиции на переменные отношения «Должности работников» и «Домашние адреса работников».

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *