Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Ю. А. Григорьев, Г. И. Ревунков - Банки данных

.pdf
Скачиваний:
339
Добавлен:
10.02.2015
Размер:
7.54 Mб
Скачать

2.Модели данных

3.Операции декартово произведение (R\ х R2) соответствует выражение

и^' "%3u)(3v)(Rxiu) л 7?2(v) л /[1] = w[l] л ... л t[k] = и[к] л /[А:+ 1] = = v[l] л ... л t[k + т] = v[w]}.

Здесь рассматривается все множество кортежей / арности (к + т) та­ ких, что существует кортеж и, принадлежащий R\, и существует кортеж v, принадлежащий ^2, причем к первых компонентов кортежа t образуют ком­ поненты кортежа и, а следующие т компонентов кортежа / образуют ком­ поненты кортежа v.

4. Операции проекции П.^.^ .^{R) соответствует выражение

{f\3u){Rx{u) л /[1] = u[U] л ... л t[k] = u[h])}.

5. Операции селекции G].(R) соответствует выражение {///?(/) л F'},

где выражение F' есть выражение F, в котором каждый операнд, обозна­ чающий компонент /, заменен на /[/].

Примером реального языка, реализующего реляционное исчисление с переменными-кортежами, является язык запросов QUEL.

Реляционное исчисление с неременными на доменах. В реляцион­ ном исчислении с переменными на доменах не существует переменныхкортежей. Вместо них вводятся переменные на доменах. В остальном реля­ ционное исчисление с переменными на доменах строится также, как и реля­ ционное исчисление с переменными-кортежами с использованием тех же самых операторов.

Атомами формул могут быть:

1. R{x\, Х2, ..., Xk)y где R — А:-арное отношение; Х/ — константа или пе­ ременная на некотором домене.

Атом R(x\, JC2, ..., х/с) указывает на то, что значения тех л:,, которые яв­ ляются переменными, должны быть выбраны так, чтобы (Х), Х2, ..., х^) было кортежем отношения R.

2. xQy, где X и у — константы или переменные на некотором домене; 6 — арифметический оператор сравнения.

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

Формула в реляционном исчислении с переменными на доменах так­ же использует логические связки л, v, 1 и кванторы (VJC) И (3JC), где х — переменная на доменах. Аналогично используются понятия свободных и связанных переменных.

Выражение реляционного исчисления с переменными на доменах имеет вид

{л:1, Х2,..., Xi(/^{x\, Х2,..., Xk)},

80

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

где ^ — формула; Х], JC2, ..., ^А: — различные свободные переменные. Например, выражение

{Хи X2/R\(Xu Х2) л (Уу)(]К2(Хи у) л 1/?2(X2, у))}

имеет место для бинарных отношений R] и Ri и означает множество корте­ жей в отношении R] таких, что ни один из их компонентов не является пер­ вым компонентом какого-либо кортежа отношения /?2-

Для учета ограничения — конечности реальных отношений — анало­ гично вводятся и рассматриваются безопасные выражения.

Выражение исчисления с переменными на доменах, эквивалентное заданному выражению исчисления с переменными-кортежами

строится следующим образом.

1. Если / является кортежем арности к, то вводится к новых перемен­ ных на доменах:

t2,..., t/c.

2.Атомы /?(/) заменяются атомами /?(/i, /2, •••, h)-

3.Каждое свободное вхождение /[/] заменяется на /,.

4.Для каждого квантора (Зи) или (Vw) вводится т новых переменных на доменах u\, г/2,..., u„j, где т — арность и.

В области действия этой квантификации выполняются замены:

R{u) на R{u], U2,..., w,„); u[i] на w,;

(Зи) на {3u\){3u2)...(3unj); (\/и) на (Vw])(Vw2)...(Vw,„).

5. Выполняется построение выражения

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

ления с переменными на доменах эквивалентно исходному выражению ре­ ляционного исчисления с переменными-кортежами.

Например, выражение {tlR\{t) v /?2(0} после всех подстановок примет следующий вид:

{/1, /2,..., hlR^{tu /2,..., h)^R2{tu

^2,..., h)}.

В реляционном исчислении с переменными на доменах доказаны сле­ дующие две теоремы.

Теорема 2. Для каждого безопасного выражения реляционного ис­ числения с переменными-кортежами существует эквивалентное безопасное выражение реляционного исчисления с переменными на доменах.

81

2. Модели данных

Теорема 3. Для каждого безопасного выражения реляционного ис­ числения с переменными на доменах существует эквивалентное ему выра­ жение реляционной алгебры.

Примером реального языка запросов (осуществляется реляционное исчисление с переменными на доменах) является язык QBE.

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

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

Дополнительные возможности ЯМД в реляционных системах. В

общем случае ЯМД выходят за рамки абстрактных языков, так как для об­ работки данных требуются операции, выходящие за рамки возможностей реляционной алгебры или реляционного исчисления. Это прежде всего сле­ дующие команды: включить данные; модифицировать данные; удалить данные.

Кроме этих операций можно использовать следующие дополнитель­ ные возможности.

1. Арифметические выражения. Арифметические вычисления и срав­ нения включают в формулы селекции реляционных алгебраических выра­ жений или в атомы в выражениях реляционного исчисления.

2.Команды присваивания и печати.

3.Агрегатные функции. Это функции, применяемые к столбцам от­ ношений, в результате выполнения которых вычисляется одна-единственная величина. Например, максимальное или минимальное значение, сумма, среднее.

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

82

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

кортежами либо,- что равносильно, реляционного исчисления с переменны­ ми на доменах или реляционной алгебры.

Ограничения модели

Отношения в БД обладают всеми свойствами множеств. Основным ограничением является невозможность представления в отношении корте­ жей-дубликатов, т.е. каждое отношение имеет, по крайней мере, хотя бы один первичный ключ (в крайнем случае, этот ключ состоит из всех атрибутов).

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

Отношение может иметь несколько ключей, называемых ВОЗМОЖ­ НЫМИ КЛЮЧАМИ. Один из возможных ключей выбирается в качестве первичного ключа отношения.

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

Многие явные ограничения целостности, встречающиеся на практике, — это ограничения на зависимости между атрибутами. Например, значение атрибута ТАБЕЛЬНЫЙ НОМЕР однозначно определяет значение атрибута ВОЗРАСТ в отношении СОТРУДНИК.

Для явного задания ограничений целостности используются так назы­ ваемые ФУНКЦИОНАЛЬНЫЕ и МНОГОЗНАЧНЫЕ зависимости между атрибутами. Кроме того, исследование зависимостей позволяет грамотно проектировать схему БД с необходимыми свойствами.

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

Приведем формальное определение функциональной зависимости: пусть X W Y — атрибуты отношения R. Атрибут У отношения R функцио­ нально зависит от атрибута X отношения /?, если в каждый момент времени каждому значению атрибута X соответствует одно и то же значение атрибу­ та 7. Функциональная зависимость атрибута Y от атрибута X обозначается в следующем виде:

X-^Y,

83

2. Модели данных

Для каждого отношения существует конкретное определенное множе­ ство F функциональных зависимостей между атрибутами данного отноше­ ния. Это множество определяется семантическими знаниями из предметной области об этом отношении. Множество функциональных зависимостей определяет множество допустимых состояний отношения, так как наклады­ вает конкретные ограничения на схему отношения. (Но можно сказать и наоборот: множество допустимых состояний отношения определяет множе­ ство функциональных зависимостей.) В общем случае будем считать, что это множество функциональных зависимостей задано.

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

Рассмотрим аксиомы вывода, с помощью которых можно вывести все функциональные зависимости, вытекающие из функциональных зависимо­ стей множества F.

Аксиома 1 — свойство рефлексивности. Если Х с U, Y (^ f/, 7 е Д то существует функциональная зависимость Jf-> 7 (где U— полное множест­ во атрибутов отношения К).

Также всегда имеет место функциональная зависимость Х - ^ X Аксиома 2 — свойство пополнения. Если Jf с f/, 7 е U,Z^ U и зада­

на зависимость А" —> Г, которая принадлежит полному множеству функцио­ нальных зависимостей данного отношения или получена с помощью правил вывода, то

XUZ-^YUZ.

Аксиома 3 — свойство транзитивности. Если X с U, YQ U, Z ^ Un заданы зависимости X -> 7, 7 -> Z, которые принадлежат множеству функ­ циональных зависимостей либо получены из него по правилам вывода, то имеет место зависимость

X^Z.

Аксиома 4 — свойство аддитивности. Если Х ^ ?7, 7 с t/, Z с )7и за­ даны зависимости X -^ 7 и Jf -> Z, то имеет место функциональная зависи­ мость

Х-> YUZ.

 

Аксиома 5 — свойство проективности. Если XQU, Y^U,

Za^Un

задана зависимость Jf^- YUZ, то имеет место функциональная зависимость

X^Y.

84

 

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

Аксиома 6 — свойство псевдотранзитивности. Если Jfc f/, F c U,Z^

^U,Wa,U\\

заданы зависимости X-> Yw YUZ -> W, то имеет место функ­

циональная зависимость XUZ -> И^.

Рассмотренная система аксиом 1...6 считается полной; это означает, что каждая функциональная зависимость, которая следует из множества F, может быть выведена путем одноили многократного применения к множе­ ству F этих аксиом. В общем случае эта система аксиом вывода избыточна. Например, аксиомы 3, 4, 5 выводятся из других.

Аксиомы 1, 2 и 6 являются независимыми. Ни одна из них не может быть получена из двух других. При этом они также являются полной систе­ мой аксиом. Эти три аксиомы вывода принято называть аксиомами Армст­ ронга (Armstrong W.W.), хотя они отличаются от исходных.

Существует еще целый ряд аксиом, полезных при выполнении вывода новых функциональных зависимостей отношения.

Аксиома расширения. ЕслиХс f/, Уе Uw задана зависимость Х^^ 7, то для любого Z с f/имеет место функциональная зависимость Xf/Z-^ Y.

Аксиома декомпозиции. Если X ^ U, Y ^ U, Z <^ U, задана зависи­ мость X -^ Y W имеет место Z е F, то имеет место функциональная зависи­ мость J^—>Z.

Многозначные зависимости

Многозначная зависимость существует, если при заданных значениях атрибута X существует множество, состоящее из нуля (или более) ассоции­ рованных значений атрибута F, причем множество значений атрибута Y не связано каким-либо способом со значениями атрибутов в отношении U-X- Y.

Многозначная зависимость обозначается следующим образом:

X-^^Y.

Приведем некоторые аксиомы многозначных зависимостей.

Аксиома 1. Рефлексивность для многозначных зависимостей. Если Х^ Ц то имеет место многозначная зависимость

Х-^-^Х.

Аксиома 2. Дополнение для многозначных зависимостей. ЕслиХс f/, YQ UHX->-> 7, то имеет место многозначная зависимость

Х-^-> U-X-Y.

Аксиома 3. Пополнение для многозначных зависимостей. Еслиу^Ге U, VQ и, W^ и, YQ и, VQ WHX->-^ У, то имеет место многозначная зави­ симость

JVUX->-> VUY.

85

2 Модели данных

Аксиома 4. Аддитивность для многозначных зависимостей. Если

Х<^и, Г е U,Zа,

UwX^->

F, X-^->

Z, то имеет место многозначная за­

висимость

 

X->->ZU Y.

 

 

Аксиома 5. Транзитивность для многозначных зависимостей. Если

Х с С/, 7 е [/, Z c

С/иХ->->

7, 7->-> Z, то имеет место многозначная зави­

симость

 

X^->Z-Y,

 

 

Аксиома 6. Псевдотранзитивность для многозначных зависимостей.

ЕслиХс и, 7 с f/,

Z c (/, W(^ f/,X->->

7, Г U W^ Z, то имеет место мно­

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

^F - > - ^Z - (7U W).

 

^ и

Аксиома 7. Проективность для многозначных зависимостей. Если ^ с [/,

7 е f/, Z e [/иХ—>-> 7,Х->-> Z, то имеет место многозначная зависимость

X ^ - > Z n Y,X->-^Y-Z.

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

 

Ключи отношений

Приведем формальное определение ключа. Если R — схема отноше­

ния с атрибутами А\, Ai,

... А^ и множеством F функциональных зависимо­

стей, X— подмножество множества атрибутов {^ь Аг, ... А^}, то X называ­

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

1. Зависимость X -^ А\А2..Ап принадлежит замыканию F+ (полному

множеству функциональных зависимостей, которые можно получить из F с

помощью правил вывода).

2. Ни для какого

собственного подмножества X зависимость 7 -^

-> А]А2... А„, где YdX^HQ

принадлежит замыканию F+.

Условие 2 ставит вопрос о минимальности ключа, т.е. данный ключ только тогда будет ключом, когда он является максимальным. Иначе клю­ чом будет одно (или более) из его подмножеств.

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

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

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

86

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

вариантов и приводит к проблеме выбора рационального варианта из мно­ жества альтернативных вариантов схемы отношений.

Рациональные варианты группировки атрибутов в отношения должны отвечать следующим требованиям.

1. Выбранные для отношений первичные (возможные) ключи должны быть минимальными.

2.Выбранный состав отношений базы должен быть минимальным (отличаться минимальной избыточностью атрибутов).

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

4.Перестройка набора отношений при введении новых типов данных должна быть минимальной.

5.Разброс времени ответа на различные запросы к БД должен быть небольшим.

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

Например, имеется реляционная БД со следующей схемой и экземп­ ляром отношения:

Поставка (Индекс, Название Поставщика, Адрес, Товар, Цена)

Здесь Адрес поставщика повторяется для каждого поставляемого то­ вара. Аномалия модификации заключается в том, что в случае, если у по­ ставщика изменился адрес, должны выполняться соответствующие измене­ ния этого данного во всех кортежах, где оно встретилось. Если же по какимлибо причинам это данное изменилось бы не во всех кортежах, то БД стала бы противоречивой проблемой нарушения целостности данных.

Аномалия удаления в нашем примере возникает при попытке удале­ ния всех кортежей, где есть поставка от одного поставщика. В этом случае в системе теряется адрес и название поставщика, хотя с ним заключен, на­ пример, договор на весь год и срок следующей поставки наступит несколь­ ко позже. При такой ситуации система выдаст неверный ответ, например, на такой запрос: «С какими поставщиками заключен договор?».

Аномалия включения возникает в том случае, когда с поставщиком только что заключен договор, но еще не было поставок. Нельзя включать в БД Название поставщика и Адрес поставщика, поскольку нельзя полностью сформировать кортеж — нет данных о поставках. Можно, конечно, помес­ тить неопределенные значения (например, пробелы) в компоненты Товар и Цена, но это чревато своими трудностями и не всегда возможно. Если по­ добные атрибуты входят в состав ключа, то организовать в отношении по­ иск кортежа с неопределенным значением ключа невозможно.

Чтобы решить все перечисленные выше вопросы, выполняется нор­ мализация исходных схем отношений проекта БД — их композиция либо

87

2. Модели данных

декомпозиция и назначение ключей для каждого отношения по определен­ ным правилам нормализации.

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

Нормальные формы схем отношений

Существуют четыре уровня нормализации схем отношений и соответ­ ственно четыре нормальные формы отношений: 1НФ, 2НФ, ЗНФ, 4НФ. Эти формы подчиняются правилу вложенности по возрастанию номеров: если отношение находится в 4НФ, то оно будет соответствовать ЗНФ, 2НФ и 1НФ, и обратно, если отношение находится в 1НФ, но не в 2НФ, то оно не будет соответствовать ни ЗНФ, ни 4НФ.

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

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

Вторая нормальная форма. Если X— ключ отношения /?, Y{X,A

непервичный атрибут отношения /?, то говорят, что в отношении R имеет место частичная зависимость (неполная функциональная зависимость), ког­ да наблюдается

Х^АиУ-^А.

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

Третья нормальная форма. Схема отношения R находится в третьей нормальной форме (ЗНФ), если она находится в 2НФ и ни один из непер­ вичных атриб>утов в 7? не является транзитивно зависимым от первичного ключа. Иными словами, схема отношения R находится в третьей нормаль­ ной форме, если она находится в 2НФ, и каждый непервичный атрибут (не­ ключевой) нетразитивно зависит от первичного ключа.

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

88

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

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

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

Четвертая нормальная форма. Если в отношении присутствуют многозначные зависимости, то схема отношения должна находиться в чет­ вертой нормальной форме (4НФ). В противном случае снова возникнут со­ ответствующие аномалии. Схема отношения R находится в 4НФ, если вся­ кий раз, когда существует многозначная зависимость X ->-> Y (где Y не пусто и не является подмножеством X, и Ж/F состоит не из всех атрибутов К), А" содержит ключ отношения R.

Декомпозиция схем отношений

Нормализация отношений выполняется декомпозицией их схем. Де­ композицией схемы отношений R = {А\, Ai, А^, ..., An} называется замена ее совокупностью схем г- {Ru Ri, • •, Rk} подмножествR, таких, что R\ U R2U ...

... и Rk = R= {А\, Ai, ..., An). При этом не требуется, чтобы схемы Л, были непересекающимися.

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

Контрольные вопросы

1.Укажите основные характеристики иерархической и реляционной МД.

2.Опишите конструкции наборов сетевой МД и их назначение.

3.Поясните различия между подсхемой и схемой в сетевой МД.

4.Приведите пример нормализации отношения.

5.Охарактеризуйте основные языки запросов в реляционной МД.

89