Навигация


Главная
УСЛУГИ
Гостевая книга
Правила пользования
Авторизация / Регистрация
 
Главная arrow Банковское дело arrow Информационные технологии в банках - Страхарчук АЯ
Предыдущая   СОДЕРЖАНИЕ   Следующая

242 Реляционная модель данных

Сетевые и иерархические модели данных были разработаны в период возникновения СУБД Приведенный в разделе 241 (см. рис 2 17, 218) пример организации данных даже на основе двух типов записей подтверждают сложность иерархической и сетевой моделей Организация моделей данных на примере десятков, сотен таких типов записей значительно усложняется усовершенствований этих моделей данных привели к появлению новой модел и - реляционной Реляционная модель направлена ??на обработку не отдельных типов записей, а на документ в целом Кроме того, реляционная модель не требует от пользователей знаний программирования, а только знаний основ и нформацийнои технологии и умение работать с персональным компьютеромкомп'ютером.

Реляционные модели данных также относятся к моделям на основе записей, однако отличаются от рассмотренных выше сетевых и иерархических простотой структур данных, удобным для пользователя табличным представ тавленням и доступом к данным В основе реляционной модели данных лежит понятие отношения (relation) - двумерная таблица (табл. 24.4).

Таблица 24

Пример отношение

Фамилия и инициалы

Курс

Группа

Специальность

Аверчук Л Д

1

105

Банковское дело

- Кортеж 1

Невойда0 М

1

105

Банковское дело

- Кортеж 2

Певец П Б

2

203

Банковское дело

- Кортеж 3

Каждая строка в таблице содержит определенные данные, каждый столбец таблицы описывает атрибуты данных Иногда строки называют кортежами, а столбцы - атрибутами В практической работе бывает и другая интерпретация этих пон занятий (табл. 252.5).

Таблица 25

Эквивалентная терминология реляционной модели

Терминология реляционной модели

Терминология программиста

Терминология пользователя

Отношение

Файл

Таблица

Кортеж

Запись

Строка

Атрибут

Поле

Столбец

Чтобы двумерная таблица была отношением, она должна удовлетворять определенные ограничения Во-первых, значения в ячейках таблицы должны быть одиночными Все записи в столбце должны быть одного типа Например, если т третий столбец первой строки таблицы содержит номер группы, тогда и в других строках таблицы третий столбец также должен содержать номер группы Каждый столбец должен иметь уникальное имя Наконец, в отношении не может быть двух одинаковых строк Обобщенный формат отношения - Студент (Фамилия, Курс, Группа, Специальность) - называется структурой отношенииошення.

2421 Нормализация данных

Для понимания понятия \"нормализация\" надо прежде всего определить два важных понятия: функциональная зависимость и ключ

Функциональная зависимость - это связь между атрибутами Допустим, если нам известно значение одного атрибута, тогда можем найти значение другого атрибута Например, если нам известен номер счета клиента а, мы можем определить состояние этого счета В таком случае мы можем сказать, что атрибут СтанРахункуКлиента функционально зависит от атрибута Номер счета Клиента Другими словами, если нам известно значения X, мы можем определить значение Y Функциональные зависимости значки: НомерСтудента - специальностиальність.

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

В функциональные зависимости могут быть включены группы атрибутов Рассмотрим отношение Оценки (НомерСтудента, Дисциплина, Оценка) Функциональная зависимость (НомерСтудента, Дисциплина) - Оценка определяет собой оценку студента по дисциплинампліни.

Ключ (key) - это группа из одного или более атрибутов, которая уникальным образом идентифицирует строку Рассмотрим отношение Секция, которое имеет атрибуты НомерСтудента, Секция, Плата (табл. 26)

Таблица 26

Отношение Секция

НомерСтудента

Секция

Плата

10701

Борьба

70

15002

Плавание

45

20003

Гимнастика

80

Строка этого отношения содержит информацию о том, что студент посещает определенную секцию за определенную плату при условии, что студент одновременно не может посещать более одного секцию, значение атрибута НомерСтуд дента идентифицирует единственную строку, поэтому этот атрибут является ключем.

Ключи могут также состоять из нескольких атрибутов Например, если студентам разрешено посещать более одного секцию, тогда один и тот же номер студента может появиться в разных строках таблицы и атрибут НомерСтудента не будет уникальным образом определять строку В этом случае ключом будет комбинация НомерСтудента, Секция Следует отметить, что каждое отношение имеет минимум один ключ, поскольку любое в идношення не может иметь одинаковых строкків.

Нормализация - это процесс анализа отношений с целью выявления и ликвидации аномалий модификации Аномалии могут быть ликвидированы путем разбиения исходного отношения на два или более новых отношений

Для понимания сути аномалии модификации снова рассмотрим отношение Секция (табл. 26) Если мы удалим строку, в котором записаны данные о студенте с номером 10701, то не только потеряем информацию пр ро то, что студент с номером 10701 является борцом, но и тот факт, что абонемента секцию борьбы стоит 70 грн Это называется аномалией изъятия - то есть, исключая факты по одной сущности (студент из номер ом 10701 является борцом), мы изымаем факты относительно другой сущности (плата за абонемент в секцию борьбы) Выполнив одну операцию извлечения, мы теряем информацию о двух сущностяхтності.

На примере того же отношение можно продемонстрировать аномалию вставки Допустим, мы хотим записать в базу данных тот факт, что абонемент в секцию тенниса стоит 120 грн, однако мы не можем ввести ты эти данные в отношение Секция, пока хотя 6 один студент не запишется в секцию тенниса Это ограничение представляется бессмысленным есть, чтобы указать стоимость абонемента, следует ждать, пока кто-то запишется я в секцию Это ограничение называется аномалией вставки Суть его в том, что мы не можем записать в таблицу определенный факт об одной сущности, не указав дополнительно иного факта о другой сущностьюність.

Мы можем ликвидировать как аномалию изъятие, так и аномалию вставки, разделив отношение Секция на два отношения, каждое из которых будет иметь информацию по определенной теме Например, в первое отношение мы и включим атрибуты НомерСтудента и Секция (назовем это отношение Студент / Секция), а в другое - атрибуты Секция и плата (назовем это отношение Секция / Плата) Эти два отношения данным из нашего примера отражены в табл 27,27,2.8.

Таблица 27 Студент / Секция (НомерСтудента, Секция)

НомерСтудента

Секция

10701

Борьба

15002

Плавание

20003

Гимнастика

Таблица 28 Секция / Плата (Секция, Плата)

Секция

Плата

Борьба

70

Гимнастика

80

Плавание

45

Теперь, если мы удалим запись о студенте с номером 16002 из таблицы Студент / Секция, мы уже не потеряем того факта, что абонемент в секцию Плавание стоит 45 грн Более того, мы можем добавить в таблицу ю Секция / Плата секцию Теннис с указанием стоимости абонемента, не дожидаясь, пока кто-то запишется в эту секцию Таким образом, аномалии изъятия и вставки ликвидированыні.

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

Есть пять основных форм нормализации отношений (от 1NF к 5NF) Каждая следующая ликвидирует один из видов избыточных данных На практике нормальные формы 4NF и 5NF используют крайне редко

Первая нормальная форма (1NF) закладывает основы реляционной системы При первой нормальной формы все атрибуты отношения являются простыми В 1NF на пересечении строки и столбца значения не могут повторяться, т.е. н не могут располагаться несколько значений В таблице 29 Клиенты / Арендаторы приведены базу данных без нормализации, ключевым атрибутом которой является Код_клиента На пересечении строк и столбцов табл 29 содержится несколько с определяемой, а именно: два значения (РА4 и РА5) в ячейке Код_ объекта, два значение в ячейке Адрес т.д. Значениями, повторяющиеся называются значения, которые образуются из одного и более атрибутов таблице эти и определяются ключевым атрибутом таблицы Таким образом, структура значений, повторяющихся для табл 29 является такой: Значение, которые повторяются (Код_обьекта, Адрес, Початкова_дата, Кинцева_дата, Сума_ор энды, Код_власника, Имя ^ владельцам'я^власника).

Таблица 29 Ненормализована таблица Клиенты / Арендаторы

Код клиента

Имя клиента

Код объекта недвижимости

Адрес объекта

Начальная дата

аренды

Конечная

дата аренды

Арендная плата

Код владельца

Имя владельца

R76

Волк Б Волк Б

РА4 РА5

Львов, ул Панча, 26 Стрый, ул Коперника, 1

1062002 1082002

311205 311206

4000 5800

С040 С039

Леськив В Ващук С

Савчук Д

PA 8

Львов, ул Панча, 26

1072002

15072004

3900

С040

Леськив В

R77

Савчук Д

PA9

Стрый, ул Стуса, 12

1092002

31082007

6700

С039

ВащукС

Савчук Д

РАЮ

Львов, ул Зеленая, 98

1042002

31052006

4700

С041

Мазур X

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

• изъятие значений, повторяющихся с помощью введения в каждую строку соответствующих сведений о клиенте Первичным ключом этого отношения выберем группу (Код_клиента и Код_ объекта) и расположим в атрибуты этого первичного ключа рядом, слева в отношении (табл. 210)0);

• изъятие значений, повторяющихся и перемещение их в другое отношение вместе с копией ключевого атрибута Код_ клиента (табл. 21 января, 212)

Таблица 210

Первая нормальная форма таблицы Клиенты / Арендаторы

Код клиента

Код объекта недвижимости

Имя клиента

Адрес объекта

Начальная дата

аренды

Конечная дата аренды

Арендная плата

Код владельца

Имя владельца

R76

РА4

Волк Б

Львов, ул Панча, 26

1062002

311205

4000

С040

Леськив В

R76

РА5

Волк Б

Стрмй, ул Коперника, 12

1082002

311206

5800

С039

Ващук С

R77

РА8

Савчук Д

Львов, ул Панча, 26

1072002

150704

3900

С040

Леськив В

R77

РА9

Савчук Д

Стрый, ул Коперника, 12

1092002

310807

6700

С039

Ващук С

R77 п

РАЮ

Савчук Д

Львов, ул Зеленая, 98

1042002

310506

4700

С041

Мазур X

Отношение Клиенты / Арендаторы теперь находится в первой нормальной форме, поскольку на пересечении каждой строки и каждого столбца есть одно значение В то же время в этом отношении данные о клиентах, пашет ендовани объекты недвижимости и их владельцев, которые несколько раз повторяются Таким образом, отношение Клиенты / Арендаторы характеризуется значительным избытком-вестью данных Во избежание этого недостатка потриб но преобразовать таблицу в другую нормальную формрму.

Используя второй подход нормализации, значение, повторяющиеся (сведения о арендованные объекты недвижимости), извлекается из отношения, нормализуются, и вносят в другое отношение вместе с ко опиею входного ключевого атрибута (табл. 211) Остаток атрибутов входного отношения приведены в табл 212 Первичными ключами для отношения Код_обьекта / Арендатор будет Код_клиента и Код_обьекта, а для отно ния Клиенты - первичный ключ Код_клиентлієнта

Таблица 211

Альтернативное представление первой нормальной формы-_видношення Код_ объекта / Арендатор

Код клиента

Код объекта

Адрес объекта

Начальная дата аренды

Конечная дата аренды

Арендная плата

Код владельца

Имя владельца

R76

РА4

Львов, ул Панча, 26

1062002

31122005

4000

С040

Леськив В

R76

РА5

Стрый, ул Коперника, 12

1082002

31122006

5800

С039

Ващук С

R77

РА8

Львов, ул Панча, 26

1072002

15072004

3900

С040

Леськив В

R77

РА9

Стрый, дядю Коперника, 12

1092002

31082007

6700

С039

Ващук С

R77

РАЮ

Львов, ул Зеленая, 98

1042002

J 31052006

4700

С041

Мазур X

Таблица 212

Альтернативное представление первой нормальной формы - отношение Клиенты

Код_клиента

Имья_клиента

R76

Волк Б

R77

Савчук Д

Оба отношения - Код_обьекта / Арендатор и Клиенты - содержащиеся в первой нормальной форме, поскольку на пересечении каждой строки и каждого столбца стоит единственное значение Отношение Клиенты содержит данные о клиентов аренды, а отношение Код_обьекта / Арендатор - о арендованные объекты недвижимости и их владельцев Однако, как видно из табл 211, отношение также характеризуется определенной избыточностьюістю.

Для демонстрации дальнейшего процесса нормализации отношений с переходом от 1NF в 2NF будем использовать только отношение Клиенты / Арендаторы (табл. 210)

Вторая нормальная форма основана на понятии полной функциональной зависимости

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

Во второй нормальной форме все атрибуты отношения являются простыми и каждый неключевых атрибут функционально полно зависит от ключа Для иллюстрации рассмотрим следующую функциональную зависимость: Призвище_студент и Предмет - Оценка Здесь каждая пара значений Призвище_студентаента і

Предмет связана с единственным значением Оценка Эта функциональная зависимость является полной, поскольку Оценка не может быть определена отдельно по Фамилией или Предметом В функциональной зависимости Код-сотрудниками ника, Имя сотрудника - Код_пидроздилу каждая пара значений также связана с единственным значением Код_пидроздилу Однако эта функциональная зависимость не является полной, поскольку Код-пидроздилу также функциональных но зависит от атрибута Код_спивробитникітника.

Вторая нормальная форма применяется к отношениям со сложными ключами, то есть до таких отношений, первичный ключ которых состоит из двух или более атрибутов Нормализация iiVF-отношений с образованием 2 2МР-отношений предусматривает изъятие частных функциональных залежностей.

На рис 218 показано функциональные зависимости для отношения Клиенты / Арендаторы (табл. 210) с первичным ключом (Код_клиента, Код_обьекта) Линия со стрелкой указывает на функциональеом зависимость указанного в реквизита от реквизита замеченного линией без стрелки После выявления функциональных зависимостей процесс нормализации отношения Клиенты / Арендаторы продолжается проверкой его принадлежности к другой но рмальнои формы Для этого нужно найти хотя бы один случай частичной зависимости от первичного ключа Нетрудно заметить, что атрибут имья_клиента частично зависит от первичного ключа, то есть он за лежит только от атрибута Код_клиента (эта зависимость представлена ??как Ф32) Кроме того, атрибуты объекта недвижимости (Адреса__обьекта, Орендна_плата, Код__ владельца, Имья_власника) также частично зависимость ать от первичного ключа, но в этом случае только от атрибута Код_обьекта (эта зависимость представлена ??как ФЗЗна як ФЗЗ).

Функціональні залежності відношення Клієнти/Орендарі

Рис 218 Функциональные зависимости отношения Клиенты / Арендаторы

В свою очередь, атрибуты арендованных объектов недвижимости (Начальная дата, Конечная дата) полностью функционально зависят от первичного ключа в целом (эта зависимость представлена ??как Ф31) Таким образом, е идношенню Клиенты / Арендаторы присущи функциональные зависимости Ф31-Ф36 (табл. 21313).

Таблица 213

Функциональные зависимости отношения Клиенты / Арендаторы

Функциональные зависимости

Формат отношение

Зависимость

ФЗИ

Код_клиента, Код_обьекта - Начальная дата аренды Конечная дата аренды

Первичный ключ

Ф32

Код_клиента - Имя клиента

Частичная зависимость

ФЗЗ

Код_обьекта - Адрес объекта, Арендная плата, Код владельца, Имя владельца

Частичная зависимость

Ф34

Код владельца - Имя владельца

транзитивной зависимости

Ф35

Код_клиента, Начальная дата аренды - Код объекта Адрес объекта, Конечная дата аренды, Арендная плата, Код владельца, Имя владельца

Потенциальный КЛЮЧ

Ф36

Код_обьекта, Начальная дата аренды - Код клиента, Имя клиента, Конечная дата аренды

Потенциальный ключ

Выявление частичных зависимостей внутри отношения Клиенты / Арендаторы означает, что отношение не содержится во второй нормальной форме Для преобразования отношение Клиенты / Арендаторы в 2NF следует создать нов е отношение, причем так, чтобы атрибуты, которые не входят в первичного ключа, были перемещены в них вместе с копией части первичного ключа, от которой они функционально зависят Использование этого пр Авила в нашем варианте приведет к созданию трех новых отношений - Клиенты, Обьекти_оренды, Арендаторы, которые представлены в табл 214,215, 216 соотвовідно.

Таблица 214

Отношение Клиенты

Код_клиента

Имья_клиента

R76

Волк Б

R77

Савчук Д

Таблица 215

Отношение Обьекти_Оренды

Код клиента

Код объекта

Начальная дата аренды

Конечная дата аренды

R76

РА4

1062002

31122005

R76

РА5

1082002

31122006

R77

РА8

1072002

15072004

R77

РА9

1092002

31082007

R77

РАЮ

1042002

31052006

Таблица 216

Отношение Арендаторы

Код

объекта

Адрес

объекта

Арендная

плата

Код

владельца

Имя

владельца

РА4

Львов, ул Панча, 26

4000

С040

Леськив В

РА5

Стрый, ул Коперника, 12

5800

С039

Ващук С

РА8

Львов, ул Панча, 26

3900

С040

Леськив В

РА9

Стрый, ул Коперника, 12

6700

С039

Ващук С

РА10

Львов, ул Зеленая, 98

4700

С041

Мазур X

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

В третьей нормальной форме все атрибуты отношения являются простыми и каждый неключевых атрибут функционально полно зависит от ключа, причем каждый неключевых атрибут нетранзитивно зависит от ключа Хотя 2 2NF-eidHouteHHK) в меньшей степени присуща избыточность данных, чем lNF-отношению, они еще могут страдать от аномалий обновления Так, при попытке обновления имени владельца недвижимости, например, Леськив СВ с кодом С040, надо будет возобновить две строки отношение Арендаторы (табл. 216) Если восстановить только один из двух строк, то база данных трапляе в противоречие Эта аномалия обновления поясн юеться транзитивной зависимостью - если для атрибутов А, В и С некоторого отношения существуют зависимости вида А- В и В- С, тогда говорят, что атрибут С транзитивно зависит от атрибута А через атрибут В, за у языка атрибут А функционально не зависит ни от атрибута В, ни от атрибута від атрибута С.

транзитивно зависимость может быть ликвидирована путем приведения этого отношения к третьей нормальной форме

Таким образом, нормализация 2NF-eidnouienb с образованием 3NF-eidno-шень предусматривает изъятие транзитивных зависимостей Если в отношении существует транзитивное зависимость между атрибутами, транзитивно-зависимые ат трибут изымаются из него и перемещаются в новое отношение вместе с копией их детерминантев.

Для выполнения таких действий сначала рассмотрим функциональные зависимости в отношениях Клиенты, Объекты) _оренды и Арендаторы Отношение Клиенты

Ф32 Код клиента- Имя клиента Отношение Объекты аренды

Ф31 Код клиента, Код объекта- Начальная дата аренды, Конечная дата аренды

Ф35 Код клиента, Дата начала аренды - Код объекта Адрес объекта, Конечная дата аренды, Арендная плата, Код владельца, Имя владельца

Ф36 Код объекта, Начальная дата аренды - Код клиента, Имя клиента, Конечная дата аренды Отношение Арендаторы

ФЗЗ Код объекта - Адрес объекта, Арендная плата, Код владельца, Имя владельца

Ф34 Код владельца Имя владельца

Все атрибуты, не входящие в первичного ключа отношений Клиенты и Обьекти_оренды, функционально зависящие только от их первичных ключей Следовательно, отношения не имеют транзитивных зависимостей, а потому они и уже в третьей нормальной формыі.

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

Для преобразования отношение Арендаторы в третью нормальную форму нужно прежде всего удалить транзитивные зависимости путем создания двух новых отношений Довидник_обьектив_оренды Довидник_Орендари, которые приведены в табл 217, 21.18.

Таблица 217

Довидник_ обьектив_ аренды

Код объекта

Адрес объекта

Арендная плата

Код владельца

РА4

Львов, ул Панча, 26

4000

С040

РА5

Стрый, ул Коперника, 12

5800

С039

РА8

Львов, ул Панча, 26

3900

С040

РА9

Стрый, ул Коперника, 12

6700

С039

РА10

Львов, ул Зеленая, 98

4700

С04И

Таблица 218

Довидник_Орендари

Код владельца

Имя владельца объекта

С040

Леськив В

С039

Ващук С

С041

Мазур X

Таким образом, в результате выполнения нормализации входное отношение (см. табл 210) было преобразовано в четыре отдельные отношения (см. табл 214, 215, 216,217), каждое из которых в третьей нормальной форме На ри ис 219 приведена схема процесса преобразования, которая объясняет, как lNF-отношение было преобразовано в четыре 3 №-отношениях№-відношення.

Схема декомпозиції lNF-відношення Клієнти

Рис 219 Схема декомпозиции lNF-отношение Клиенты / Арендаторы на четыре отношения в третьей нормальной форме

Дальнейшая нормализация отношений может привести к получению новых отношений в четвертой и пятой нормальных формах

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift Enter
Предыдущая   СОДЕРЖАНИЕ   Следующая
 
Дисциплины
загрузка...
Банковское дело
БЖД
Бухучет и Аудит
География
Документоведение
Экология
Экономика
Этика и Эстетика
Журналистика
Инвестирование
Информатика
История
Культурология
Литература
Логика
Логистика
Маркетинг
Медицина
Менеджмент
Педагогика
Политология
Политэкономия
Право
Естествознание
Психология
Религиоведение
Риторика
РПС
Социология
Статистика
Страховое дело
Товароведение
Туризм
Философия
Финансы