Типы данных



бет32/36
Дата13.01.2022
өлшемі0,64 Mb.
#23995
1   ...   28   29   30   31   32   33   34   35   36
Байланысты:
Лекции по БД

Номер поставщика
PNUM


Наименование поставщика
PNAME


1

Фирма 1

2

Фирма 2

3

Фирма 3

Таблица 2 Отношение "Поставщики"

Номер поставщика
PNUM


Номер детали
DNUM


Поставляемое количество
VOLUME


1

1

100

1

2

200

1

3

300

2

1

150

2

2

250

3

1

1000

Таблица 3 Отношение "Поставки-2"

Определение 1. Отношение находится в нормальной форме Бойса-Кодда (НФБК) тогда и только тогда, когда детерминанты всех функциональных зависимостей являются потенциальными ключами.

Замечание. Если отношение находится в НФБК, то оно автоматически находится и в 3НФ. Действительно, это сразу следует из определения 3НФ.

Отношение "Поставки" не находится в НФБК, т.к. имеются зависимости (PNUM PNAME и PNAME PNUM), детерминанты которых не являются потенциальными ключами.

Для того чтобы устранить зависимость от детерминантов, не являющихся потенциальными ключами, необходимо провести декомпозицию, вынося эти детерминанты и зависимые от них части в отдельное отношение. Отношения "Поставщики" и "Поставки-2", полученные в результате декомпозиции находятся в НФБК.

Замечание. Приведенная декомпозиция отношения "Поставки" на отношения "Поставщики" и "Поставки-2" не является единственно возможной. Альтернативной декомпозицией является декомпозиция на следующие отношения:


Номер поставщика
PNUM


Наименование поставщика
PNAME


1

Фирма 1

2

Фирма 2

3

Фирма 3

Таблица 4 Отношение "Поставщики"

Наименование поставщика
PNAME


Номер детали
DNUM


Поставляемое количество
VOLUME


Фирма 1

1

100

Фирма 1

2

200

Фирма 1

3

300

Фирма 2

1

150

Фирма 2

2

250

Фирма 3

1

1000

Таблица 5 Отношение "Поставки-3"

На первый взгляд, такая декомпозиция хуже, чем первая. Действительно, наименования поставщиков по-прежнему повторяются, и при изменении наименования поставщика, это наименование придется менять одновременно в нескольких местах (тем более сразу в двух отношениях!). Кажется, что ситуация стала еще хуже, чем была до декомпозиции. Однако такое ощущение возникает от того, что мы интуитивно считаем, что наименования поставщиков могут меняться, а номера - нет. Если же предположить, что номера поставщиков тоже могут меняться (почему бы нет - директор приказал перенумеровать поставщиков!), то первая декомпозиция получается такой же "плохой" как и вторая - повторяющиеся номера придется менять одновременно в нескольких местах и также сразу в двух отношениях.

На самом деле никакого противоречия тут нет. В отношении "Поставки-3" атрибут "Наименование поставщика" (PNAME) является внешним ключом, служащим для связи с отношением "Поставщики". Поэтому, при изменении наименования поставщика, это изменение производится в отношении "Поставщики" и каскадно (см. стратегии поддержания ссылочной целостности в гл. 3) распространяется на отношение "Поставки-3" совершенно так, как изменение номера поставщика каскадно распространяется на отношение "Поставки-2". Поэтому, формально обе декомпозиции совершенно равноправны. В реальной работе разработчик выберет, конечно, первую декомпозицию, но тут важно подчеркнуть, что его выбор основан совсем на других соображениях, не имеющих отношения к формальной теории нормальных форм.

Замечание. Отношение "Поставки-2", полученное в результате декомпозиции имеет всего один потенциальный ключ. Поэтому, для анализа отношения "Поставки-2" не требуется привлекать определение НФБК, достаточно определения 3НФ. Хотя отношение "Поставщики" имеет два потенциальных ключа, но, т.к. других атрибутов в нем нет, оно уже так просто устроено, что упростить его дальше нельзя. Возникает вопрос, имеются ли нетривиальные примеры отношений в НФБК, не находящиеся в 3НФ и не такие простые, как отношение "Поставщики"?

Пример 2. Предположим, что нам по-прежнему необходимо учитывать поставки, но каждый акт поставки должен иметь некоторый уникальный номер (назовем его "сквозной номер поставки"). Отношение может иметь следующий вид:


Номер поставщика
PNUM


Номер детали
DNUM


Поставляемое количество
VOLUME


Сквозной номер поставки

NN


1

1

100

1

1

2

200

2

1

3

300

3

2

1

150

4

2

2

250

5

3

1

1000

6

Таблица 6 Отношение "Поставки-с-номером"

Одним потенциальным ключом данного отношения является, как и раньше, пара атрибутов {PNUM, DNUM}. Другим ключом, в силу уникальности сквозного номера, является атрибут NN. В данном отношении имеются следующие функциональные зависимости:

Зависимость атрибутов от первого ключа отношения:

{PNUM, DNUM} VOLUME, {PNUM, DNUM} NN,

Зависимость атрибутов от второго ключа отношения:



NN PNUM, NN DNUM, NN VOLUME,

Зависимости, являющиеся следствием зависимостей от ключей отношения:



{PNUM, DNUM} {VOLUME, NN}, NN {PNUM, DNUM}, NN {PNUM, VOLUME},

NN {DNUM, VOLUME}, NN {PNUM, DNUM, VOLUME}.

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




Достарыңызбен бөлісу:
1   ...   28   29   30   31   32   33   34   35   36




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет