Нормализация отношений

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

Методику нормализации таблиц разработал американский ученый Э.Ф. Кодд в 1970 г. Ее суть сводится к приведению таблиц путем их декомпозиции к той или иной нормальной форме. Были выделены три нормальные формы – 1НФ, 2НФ, 3НФ. Позже стали выделять нормальную форму Бойса–Кодда (НФБК), а затем 4НФ и 5НФ. Каждая последующая нормальная форма вводит определенные ограничения на хранимые в базе данные.

Реляционная база данных считается эффективной, если все ее таблицы находятся как минимум в 3НФ.

Определение 1НФ

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

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

Функциональная зависимость – это семантическое понятие, отображающее определенную семантическую связь между атрибутами сущности.

Пусть сущность характеризуется множеством атрибутов Х. Некий атрибут или подмножество атрибутов данного множества – А является функционально зависимым от Х тогда и только тогда, когда каждой комбинации значений Х соответствует одно и только одно значение А. Это обозначается так:

Х ® А

Определение 2НФ

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

Пусть {Х1, Х2,…,Хк} – множество полей, образующих первичный ключ. Неключевое поле А функционально полно зависит от первичного ключа, если:

· оно функционально зависит от первичного ключа, т.е. {Х1, Х2,…,Хк} ® А;

· не существует функциональной зависимости А ни от какого подмножества полей первичного ключа (в противном случае А находится в частичной функциональной зависимости от первичного ключа).

Определение 3НФ

Отношение находится в 3НФ, если оно удовлетворяет требованиям 2НФ и не содержит транзитивных зависимостей.

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

Процедуры проектирования реляционной базы данных

Процедуры концептуального проектирования:

1) определение сущностей и их документирование;

2) определение связей между сущностями и их документирование;

3) создание ER-модели предметной области;

4) определение атрибутов и их документирование;

5) определение доменов атрибутов и их документирование;

6) определение первичных ключей для сущностей и их документирование;

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

Процедуры логического проектирования:

1) выбор модели данных;

2) определение набора таблиц исходя из ER-модели и их документирование;

3) нормализация таблиц;

4) проверка логической модели данных на предмет возможности выполнения всех операций, предусмотренных пользователями;

5) определение требований поддержки целостности данных и их документирование;

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

Процедуры физического проектирования:

1) проектирование таблиц БД средствами выбранной СУБД;

2) реализация бизнес-правил в среде выбранной СУБД;

3) проектирование физической организации БД;

4) разработка стратегии защиты БД;

5) организация мониторинга функционирования БД и ее настройка.

СОВРЕМЕННЫЕ СУБД

СУБД существуют практически для всех компьютерных платформ (от карманных компьютеров до суперкомпьютеров) и используются во всех АСУП и многих приложениях иного назначения.

Понятие СУБД

Система управления базами данными – это совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.

Функции СУБД – это описание данных, манипулирование данными, использование данных.

Языковые средства СУБД включают: язык описания данных (ЯОД), язык манипулирования данными (ЯМД), язык запросов, язык программирования.

Программные средства СУБД обеспечивают работу с физической БД и выполнение всех ее функций.

Функциональные возможности СУБД

Основные функциональные возможности СУБД следующие:

· создание БД;

· обновление хранящихся в ней данных;

· быстрое извлечение из БД необходимых данных по запросам пользователей;

· выполнение вычислений над данными;

· создание форм для удобства работы с данными БД;

· создание отчетов на основе информации БД для ее анализа пользователями;

· разработка приложений;

· экспорт/импорт данных в БД из других приложений;

· публикация БД в Internet;

· управление БД, а именно:

§ поддержка целостности БД с помощью механизма транзакций. Транзакция – совокупность операций с БД, которые должны быть выполнены обязательно до конца, чтобы БД осталась в непротиворечивом состоянии;

§ защита данных от несанкционированного доступа, от сбоев в работе компьютерной системы;

§ восстановление БД в случае ее повреждения.

Архитектура СУБД

СУБД включает три компонента:

· подсистему средств проектирования БД и ее приложений;

· подсистему обработки компонентов приложений;

· ядро СУБД, которое:

§ является посредником между данными подсистемами и БД;

§ участвует в управлении транзакциями, блокировке, резервном копировании и восстановлении данных.

Классификация СУБД

Ее дадим по трем признакам:

1) по степени универсальности:

· СУБД общего назначения;

· СУБД специального назначения.

2)по типу поддерживаемой модели данных:

· иерархические. Первая иерархическая СУБД – IMSкомпании IBM (1968г.);

· сетевые. Первая сетевая СУБД – IDS компании General Electric;

· реляционные. Первые коммерческие реляционные СУБД – от компаний IBM, Oracle Corporation и др. (в нач.80-х);

· постреляционные. Например,

UniVers, Bubba, Dasdb

· объектно-ориентированные. Например,

Наши рекомендации