Основные положения проектирования схем реляционных баз данных
Проектирование базы данных (БД) – одна из наиболее сложных и ответственных задач, связанных с созданием информационной системы (ИС). В результате её решения должны быть определены содержание БД, эффективный для всех её будущих пользователей способ организации данных и инструментальные средства управления данными.
Основная цель процесса проектирования БД состоит в получении такого проекта, который удовлетворяет следующим требованиям:
• | корректность схемы БД, т. е. база должна быть гомоморфным образом моделируемой предметной области (ПО), где каждому объекту предметной области соответствуют данные в памяти ЭВМ, а каждому процессу – адекватные процедуры обработки данных; |
• | обеспечение ограничений ; |
• | эффективность функционирования ; |
• | защита данных (от аппаратных и программных сбоев и несанкционированного доступа); |
• | простота и удобство эксплуатации; |
• | гибкость, т. е. возможность развития и адаптации к изменениям предметной области и/или требований пользователей. |
Процесс проектирования включает в себя следующие этапы.
Концептуальное проектирование – это процедура конструирования информационной модели, не зависящей от каких-либо физических условий реализации.
Логическое проектирование – это процесс конструирования информационной модели на основе существующих моделей данных, не зависимо от используемой СУБД и других условий физической реализации.
Физическое проектирование – это процедура создания описания конкретной реализации БД с описанием структуры хранения данных, методов доступа к данным.
В начало
ИЗБЫТОЧНОСТЬ ДАННЫХ И АНОМАЛИИ ОБНОВЛЕНИЯ.
Основная цель проектирования заключается в определении атрибутов в отношении, чтобы минимизировать избыточность данных и т.о. сократить объем памяти, которая необходима для физического хранения отношения.
Сотрудник (Nсотр, ФИО, Адрес, Должность, З/П, Nотд)
Отдел (Nотд, Адрес, Nтел)
Сотрудники отдела (Nсотр, ФИО, Адрес, Должность, З/П, Nотд, Адрес_отд, Nтел_отд)
В отношении «Сотрудники отдела» есть избыточность данных.
Поскольку сведения об отделе будет повторяться для каждого сотрудника отдела. В связи с этим в «Сотрудники отдела» существует следующее отношения обновления.
- При добавлении нового сотрудника отдела, необходимо указывать все сведения об этом отделе.
- При добавлении сведений о новом отделе, который еще не имеет сотрудников, придется присвоить значение NULL ключевому полю, что нарушает целостность данных.
При возникновении подобных аномалий рекомендуется отношение разбивать на две части. Для отношений «Сотрудники» и «Отдел» подобных аномалий уже не будет.
В начало
ФУНКЦИОНАЛЬНЫЕ ЗАВИСИМОСТИ
Функциональная зависимость описывает связь между отношениями: R(A,B) A->B.
Атрибут B функциональная зависимость от атрибута A, что означает, что каждое значение атрибута A связано только с одним значением атрибута B. При наличии функциональной зависимости атрибут или группа атрибутов, которые расположены слева от стрелки называются детерминантом.
Сотрудники_отделения:
Nсотр -> ФИО, Адрес, Должность, З/П, Nотд, Адрес_отд, Nтел_отд.
Nотд -> Адрес_отд, Nтел_отд.
Адрес_отд -> Nотд, Nтел_отд.
Nтел_отд -> Nотд, Адрес_отд.
Первичный ключ - Nотд, поскольку все остальные атрибуты функционально зависят отNотд.
В начало
НОРМАЛЬНЫЕ ФОРМЫ
В рамках реляционной модели данных Э.Ф. Коддом (E.F. Codd) был разработан аппарат нормализации отношений и предложен механизм, позволяющий любое отношение преобразовать к
Введём понятие простого и сложного атрибута. Простой атрибут – это атрибут, значения которого атомарны (т.е. неделимы). Сложный атрибут может иметь значение, представляющее собой конкатенацию нескольких значений одного или разных доменов. Аналогом сложного атрибута может быть агрегат или повторяющийся агрегат данных.
Первая нормальная форма (1НФ).Отношение приведено к 1НФ, если все его атрибуты простые.
Для того чтобы привести к 1НФ отношение, содержащее повторяющиеся атрибуты (агрегаты), нужно построить декартово произведение всех повторяющихся агрегатов с кортежами, к которым они относятся. Для идентификации кортежа в этом случае понадобится составной ключ, включающий первичный ключ исходного отношения и идентифицирующие атрибуты агрегатов.
Введём понятие функциональной зависимости. Пусть X и Y – атрибуты некоторого отношения. Если в любой момент времени каждому значению X соответствует единственное значение Y, что Y функционально зависит от X (X→Y). Атрибут (группа атрибутов) Х называется детерминантом.
В нормализованном отношении все неключевые атрибуты функционально зависят от ключа отношения. Говорят, что неключевой атрибут функционально полно зависит от составного ключа, если он функционально зависит от ключа, но не находится в функциональной зависимости ни от какой части составного ключа.
Вторая нормальная форма (2НФ).Отношение находится во 2НФ, если оно приведено к 1НФ и каждый неключевой атрибут функционально полно зависит от составного ключа.
Для того чтобы привести отношение ко 2НФ, нужно:
• | построить его проекцию, исключив атрибуты, которые не находятся в функционально полной зависимости от составного ключа; |
• | построить дополнительно одну или несколько проекций на часть составного ключа и атрибуты, функционально зависящие от этой части ключа. |
Рассмотрим понятие транзитивной зависимости. Пусть X, Y, Z – атрибуты некоторого отношения. При этом X→Y и Y→Z, но обратное соответствие отсутствует, т.е. Z не зависит от Y или Y не зависит от X. Тогда говорят, что Z транзитивно зависит от X
(X→Z).
Третья нормальная форма (3НФ).Отношение находится в 3НФ, если оно находится во 2НФ и каждый неключевой атрибут нетранзитивно зависит от первичного ключа.
Для того чтобы привести отношение к 3НФ, нужно:
• | построить его проекцию, исключив транзитивно зависящие от ключа атрибуты; |
• | построить дополнительно одну или несколько проекций на детерминанты исходного отношения и атрибуты, функционально зависящие от них. |
Введём понятие многозначной зависимости. Многозначная зависимость существует, если заданным значениям атрибута X соответствует множество, состоящее из нуля (или более) значений атрибута Y (X–>>Y).Различают тривиальные и нетривиальные многозначные зависимости. Тривиальной называется такая многозначная зависимость X–>>Y, для которой Y является подмножеством X. В противном случае зависимость называется нетривиальной.
Четвертая нормальная форма (4НФ).Отношение находится в 4НФ, если оно находится в 3НФ и в нём отсутствуют нетривиальные многозначные зависимости.
Для того чтобы привести отношение к 4НФ, нужно построить две или более проекции исходного отношения, каждая из которых содержит ключ и одну из многозначных зависимостей. Нормализация отношений позволяет сократить дублирование данных, но появление новых отношений порождает проблему поддержки семантической целостности данных.
В начало