русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2013-12-23; просмотров: 1912; Нарушение авторских прав


Реляционные основы даталогического концептуального проектирования.

 

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

При проектировании необходимо выделить отношения и их атрибуты. Сначала эта задача решалась интуитивно. Но затем Кодд разработал технологию проектирования РБД - это нормализация отношений путем анализа функциональных зависимостей.

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

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

 

Выделяют несколько НФ:

1НФ – 2НФ — 3НФ — НФБойса-Кодда – 4НФ — 5НФ.

 

Каждая следующая НФ улучшает свойства схемы, причем свойства предыдущей НФ сохраняются. Достаточной считается 3НФ.

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

Пусть X и Y два атрибута некоторого отношения R. Говорят, атрибут Y отношения R функционально зависит от атрибута X того же отношения, если в каждый момент времени любому значению атрибута X соответствует только одно значение атрибута Y. Если два кортежа отношения имеют одно и то же значение атрибута X, то они будут иметь одно и то же значение атрибута Y.



 

Студенты(№гр, №зач, Разм_стип, Фамилия)

 

Атрибут «№зач» не является функционально зависимым от атрибута «Разм_стип», т.к. несколько студентов могут иметь одинаковую стипендию, также фамилия не может определять «№зач», т.к. могут быть однофамильцы. Все атрибуты функционально зависят отатрибута «№зач».

 

Служащие (Таб№, Фамилия, Паспорт, ИНН, Страх_Свид)

Возможным ключом называется набор атрибутов, который однозначно определяет кортеж отношения (строку) (в примере 4 возможных ключа). Атрибуты, которые входят хотя бы в один из возможных ключей, называют основными атрибутами. Возможных ключей в общем случае может быть несколько, среди них выбирают один главный и он называется первичным ключом(Таб№). Атрибуты, входящие в него, называются первичными. Атрибуты не входящие ни в один из возможных ключей называются неключевыми.

 

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

Рейсы (№рейса, Дата, Кол-пасс, Пункт_назн)

 

Полная функциональная зависимость. Атрибут (или набор атрибутов) Y из отношения R называется полностью зависимым от другого набора атрибутов X отношения R, если Y функционально зависит от всего множества X, но функционально не зависит ни от какого подмножества X.

Если X -> Y и Y функционально полно зависит от X, то говорят, что X – детерминант Y. Первичный ключ всегда является детерминантом.

Например, в отношении «Рейсы» атрибут «Кол_пасс» является полностью зависимым от составного ключа «№рейса+Дата».

 

Транзитивная зависимость. Пусть X, Y и Z – три атрибута. Если Z зависит от Y, а Y – от X, то Z зависит от X. Если при этом обратное соответствие неоднозначно, т.е. X не зависит от Y или Y не зависит от Z, то говорят, что Z транзитивно зависит от X.

 
 

 

 


Исполнители (Таб№, №проекта, Дата_заверш_проекта)

 

(при ограничении, что каждый сотрудник работает только над одним проектом, но над проектом могут работать несколько сотрудников)

 

Например, атрибут «Дата_заверш_проекта» зависит от атрибута «№проекта», который в свою очередь зависит от атрибута «Таб№», т.о. «Дата_заверш_проекта» транзитивно зависит от атрибута «Таб№».

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

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

 

Студенты (№зач, Фамилия, Дата_рожд, Адрес, Наим_общ_раб).

 

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

 

Студенты (№зач, Наим_общ_раб, Фамилия, Дата_рожд, Адрес).

 

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

Следующее отношение не является отношением во 2НФ:

 

Рейсы (№рейса, Дата, Кол-пасс, Пункт_назн, Время_отпр)

В 2НФ каждый неключевой атрибут должен полностью зависеть от всего ключа. Атрибуты «Пункт_назн» и «Время_отпр» не будучи основными, функционально зависят только от атрибута «№рейса», который является подмножеством составного ключа. Это приводит к неудобствам заполнения базы.

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

 

Рейсы (№рейса, Дата, Кол-пасс)

Расписание (№рейса, Пункт_назн, Время_отпр)

 

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

 

Исполнители (Таб№, №проекта, Дата_заверш_проекта)

 

Атрибут «Дата_заверш_проекта» транзитивно зависит от атрибута «Таб№». Для получения 3НФ замыкающая цепочка в транзитивной зависимости выносится в отдельное отношение.

 

Исполнители (Таб№, №проекта)

Проекты (№проекта, Дата_заверш_проекта)

 

Каждая следующая нормальная форма удаляет избыточные ФЗ.

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

Рассмотрим пример ПО «Сотрудники».

 

Построим таблицу «Сотрудники»


Таб№ ФИО Оклад Комната Телефон Дети

Имя Возраст

211 Иванов 1500 12 616 Саша 10

Женя 7

Ваня 3

358 Петров 1700 12 616 Вова 5

 

 

360 Сидоров 2300 15 305 Таня 8

Саша 6

 


Таблица не плоская, есть повторяющаяся группа, элементы таблицы не атомарные. Нет 1НФ. Для получения 1НФ приведем таблицу к плоской, получим т.н. универсальное отношение R1.

 



<== предыдущая лекция | следующая лекция ==>
Пример представления ИЛМ в РБД | Информационные системы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.