- •Реляционная модель данных
- •Содержание
- •Раздел 1. Теория реляционных баз данных 9
- •Раздел 2. Проектирование реляционных баз данных на основе принципов нормализации 39
- •Раздел 3. Лабораторная работа 58
- •Введение
- •Раздел 1. Теория реляционных баз данных
- •1.1. Основные понятия реляционных баз данных
- •Виды связей реляционных баз данных
- •1.2. Реляционная алгебра и реляционное исчисление
- •Операции реляционной алгебры. Формулы исчисления кортежей
- •Проекция. Проекцией отношения а по атрибутам X, y,..., z, где каждый из атрибутов принадлежит отношению а.
- •Extend Группа add (2011-ГодПоступления) as Курс
- •Контрольные вопросы по разделу 1
- •Контрольное задание по разделу 1
- •Примерные задания для подготовки к тестированию в системе Moodle по материалу раздела 1
- •Раздел 2. Проектирование реляционных баз данных на основе принципов нормализации
- •2.1 Целостность баз данных. Ограничения целостности.
- •3. Ограничения, связанные с коллективным доступом к бд.
- •2.2 Теория нормальных форм
- •Первая нормальная форма (1нф)
- •Вторая нормальная форма (2нф)
- •Третья нормальная форма (знф)
- •2.3 Избыточное дублирование данных и аномалии.
- •Контрольные вопросы по разделу 2
- •Контрольное задание по разделу 2
- •Примерные задания для подготовки к тестированию в системе Moodle по материалу раздела 2
- •Раздел 3. Лабораторная работа Основы проектирования реляционных баз данных Разработка структуры базы данных
- •Практическое руководство: создание логической и физической моделей с помощью Microsoft Visio 2007
- •Нотация idef1x
- •Контрольные вопросы по разделу 3:
- •Глоссарий
- •Список литературы
2.2 Теория нормальных форм
Проектирование баз данных, как правило, играет одну из ключевых ролей в большинстве проектов. Грамотно спроектированная база позволяет без особых проблем вносить изменения, изменять структуру системы. Очень важной составляющей процесса проектирования БД является нормализация.
Нормализация – метод создания набора отношений с заданными свойствами на основе требований к данным, установленных в некоторой организации.
Нормальная форма – требование, предъявляемое к структуре таблиц в теории реляционных баз данных для устранения из базы избыточных функциональных зависимостей между атрибутами (полями таблиц).
Отношение было представлено как состоящее из некоторого количества атрибутов, а реляционная схема — из некоторого количества отношений. Атрибуты могут группироваться в отношения с образованием реляционной схемы на основе либо собственного опыта разработчика базы данных, либо посредством вывода реляционной схемы из разработанной ER-диаграммы. При использовании любого из этих двух подходов часто требуется применять определенный формальный метод, способный помочь проектировщику базы данных найти оптимальную группировку атрибутов для каждого отношения в схеме [9].
Процесс нормализации является формальным методом, позволяющим определять отношения на основе их первичных или потенциальных ключей и функциональных зависимостей, существующих между их атрибутами. Проектировщики баз данных могут использовать нормализацию в виде наборов тестов, применяемых к отдельным отношениям с целью нормализации реляционной схемы до заданной конкретной формы, что позволит предотвратить возможное возникновение аномалий обновления.
Нормализация — это формальный метод анализа отношений на основе их первичного ключа (или потенциальных ключей) и существующих функциональных зависимостей. Он включает ряд правил, которые могут использоваться для проверки отдельных отношений таким образом, чтобы вся база данных могла быть нормализована до желаемой степени. Если некоторое требование не удовлетворяется, то противоречащее данному требованию отношение должно быть разделено на отношения, каждое из которых (в отдельности) удовлетворяет всем требованиям нормализации.
Чаще всего нормализация осуществляется в виде нескольких последовательно выполняемых этапов, каждый из которых соответствует определенной нормальной форме, обладающей известными свойствами. В ходе нормализации формат отношений становится все более ограниченным (строгим) и менее восприимчивым к аномалиям обновления.
При работе с реляционной моделью данных важно понимать, что для создания отношений приемлемого качества обязательно только выполнение требований первой нормальной формы (1НФ). Все остальные формы могут использоваться по желанию проектировщиков. Но для того чтобы избежать аномалий обновления, нормализацию рекомендуется выполнять как минимум до третьей нормальной формы (ЗНФ). Некоторые отношения в форме 1НФ могут находиться также в форме ЗНФ, отношения 2НФ — в форме ЗНФ и т.д.
Примеры трудностей, которые могут возникнуть при работе с не нормализованной таблицей. Дана таблица, отображенная на рисунке 2.1. В этой таблице хранится весь каталог товаров. Каждая строка состоит из имени категории и списка продуктов, которые в нее входят.
Рисунок 2.1 – Пример реляционной таблицы
Рассмотрим недостатки такой организации хранения данных о товарах. При редактировании каталога необходимо проводить операции добавление/ удаление/ редактирование товара и добавление/ удаление/ редактирование категории. К примеру, для удаления товара необходимо очистить нужную ячейку нужной строки. При этом процесс выполнения данной операции будет затянут за счет поиска необходимого товара по всем ячейкам всех строк таблицы. Для редактирования товара необходимо выполнить такой же объем операций. При добавлении товара пользователь столкнется еще с большими трудностями: если все ячейки, отведенные под товары в категории уже заняты, то в таблицу придется добавлять новый столбец. Но проблема возникает уже перед этим – для определения свободных мест для продукта, нужно будет пройти их все (или проверить занятые).
