Тема 2. 4. Нормализация реляционной модели данных. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Тема 2. 4. Нормализация реляционной модели данных.



 

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

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

В теории реляционных БД таблица называется отношением По-английски relation – отношение. Отсюда происходит название «реляционные базы данных».. Поэтому ИМЯ_ТАБЛИЦЫ — это имя отношения. Примеры отношений: БИБЛИОТЕКА (ИНВ_НОМЕР. АВТОР. НАЗВАНИЕ. ГОД_ИЗД, ИЗДАТЕЛЬСТВО)

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

Отношение(таблица), включающее в себя все перечисленные данные будет следующим:

 

УСПЕВАЕМОСТЬ (ФАМИЛИЯ, ИМЯ, ПРЕДМЕТ, ПОЛ, ДАТА_ РОЖД, АДРЕС, 1_ЧЕТВ, 2_ЧЕТВ, 3_ЧЕТВ, 4 _ЧЕТВ, ГОД)

 

В этом отношении ключ состоит из: ФАМИЛИЯ ИМЯ, ПРЕДМЕТ. Такой ключ называется составным.

Очевидным недостатком хранения данных в таком виде являет­ся их избыточность. Под избыточностью понимается многократ­ное повторение одних и тех же данных.

Значении полей ФАМИЛИЯ. ИМЯ. ПОД ДАТА_РОЖД. АДРЕС каждого ученика будут повторяться в записях, относящихся к разным предметам Это ведет к лишнему расходу памяти компьютера (избыточности данных). Кроме того, существует вероятность того, что при вводе значений повторяющихся полей в каких-то строч­ках могут быть допущены ошибки. Например, по-разному записан один и тот же адрес в нескольких местах. Такая ситуация называ­ется противоречивостью данных: одни и те же данные представ­лены в разном виде.

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

Вторую таблицу назовем «Успеваемость» В ней учеников мож­но будет идентифицировать их номерами, определенными в пер­вой таблице. Замена фамилии и имени ученика на номер суще­ственно сократят расход памяти. В таблицу «Успеваемость» включается поле ПРЕДМЕТ и сведения о полученных оценках.

Поля НОМЕР УЧЕНИКА и ПРЕДМЕТ образуют составной ключ. В ито­ге модель данных представляется двумя следующими отношениями:

УЧЕНИКИ (НОМЕР УЧ. ФАМИЛИЯ, ИМЯ, ПОЛ ДАТА_ РОЖД, АДРЕС)

 

УСПЕВАЕМОСТЬ (НОМЕР_УЧ, ПРЕДМЕТ, 1_ЧЕТВ, 2_ЧЕТВ, 3_ЧЕТВ, 4_ЧЕТВ, ГОД)

 

Связь между этими отношениями имеет тип «один-ко-многим». Она осуществляется через общее поле НОМЕР_УЧ (номер ученика). В таблице «Ученики» это поле является основным ключом. В таблице «Успеваемость» оно входит в составной ключ. Следовательно, конкретное значение этого поля в первой таблице может присутствовать только в одной записи, а во второй — во множе­стве записей Процесс разложения исходных таблиц на более простые называется нормализацией.

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

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

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

Транзитивная функциональная зависимость – зависимость когда атрибут А зависит от атрибута В, а атрибут В зависит от атрибута С, но обратная зависимость при этом отсутствует.

     

Ранее выполненная нами работа называется нормализацией данных. Полученная двухтабличная структура данных является нормализованной структурой. Основная цель нормализации — избавление от избыточности данных. В идеале неизбыточная БД должна хра­нить каждый факт в одном экземпляре. Для каждого ученика его атрибуты: «фамилия», «имя», «пол», «дата рождения», «адрес» будут заноситься в базу однократно. Если значения каких-то атрибутов изменятся, то их легко исправить. Например, если изменился адрес ученика, то в первом варианте структуры данных его бы пришлось переписывать многократно. В окончательном же вари­анте это нужно будет сделать один раз.

Сущность нормализации заключается в том, что при построе­нии модели данных, относящейся к определенной предметной об­ласти, нужно суметь выделить различные типы объектов (сущностей), которые должны быть представлены в этой модели. В нашем примере такими объектами являются УЧЕНИКИ с их анкетными данными и УСПЕВАЕМОСТЬ (итоги обучения), со сведениями о полученных учениками оценках по разным предме­там. Информация об учениках собрана в таблице «Ученики», ин­формация об итогах обучения — в таблице «Успеваемость».

В теории реляционных БД используется понятие «нормальная форма» отношения.

Отношение (таблица) находится в первой нормальной форме, если все его поля являются атомарными. Атомарное поле далее не делится. Например, объединение в одно поле «ФИО» фамилии, имени в отчества человека нарушает принцип атомарности. Понятие атомарности относительно. Например, если в прило­жениях не потребуется отдельной обработки названия улицы, но­мера дома и квартиры, то адрес можно не разбивать на составляющие и считать его атомарным. Эта форма является основой реляционной модели данных.

Отношение (таблица) находится во второй нормальной форме, если она удовлетворяет требованиям первой нормальной формы и все его неключевые поля полностью функционально зависят от основного (первичного) ключа. Иначе го­воря, значение неключевого поля в каждой записи однозначно связано со значением ключа этой записи. Отношения УЧЕНИКИ и УСПЕВАЕМОСТЬ обладают таким свойством. У данного учени­ка (ключ НОМЕР_УЧ) определенный адрес, фамилия, дата рож­дения и пр. У данного ученика по данному предмету (ключ НОМЕР_УЧ+ ПРЕДМЕТ) определенные оценки за четверти и за год. Если таблица имеет первичный ключ, состоящий из одного поля, она автоматически находится во второй нормальной форме.

Требование третьей нормальной формы: удовлетворение вто­рой нормальной форме и отсутствие в отношении полей, транзитивно зависимых от ключа. В полученных нами отношениях (таблицах) транзитивных зависи­мостей нет. Например, если бы в отношении «Ученик» присутство­вало поле РАЙОН, обозначающее административный район горо­да, где живет ученик, то имела бы место транзитивная зависи­мость. Район однозначно связан с адресом, поэтому транзитивность следующая:

НОМЕР_УЧ--»АДРЕС --» РАЙОН

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



Поделиться:


Последнее изменение этой страницы: 2021-04-13; просмотров: 259; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.161.116 (0.008 с.)