Введение в системы БД (542480), страница 103
Текст из файла (страница 103)
Таким образом, строку 4 можно опустить. На этом все операции вывода завершаются и множество становится неприводимым. А — з С С вЂ” > А ВС вЂ” э Р ВŠ— ~ С СІ> Г Сà — э В 0 — з Е 0 — з Г Вывод можно осуществить иначе. ° Строка 2 подразумевает функциональную зависимость СР— э АСР (по правилу композиции), которая со строкой 4 подразумевает функциональную зависимость СР— з В (по правилу транзитивности), так что строку 4 можно заменить зависимостью СР— > В.
° Строка 2 подразумевает строку б, так что строку 6 можно опустить (как и прежде). ° Строки 2 и 9 подразумевают функциональную зависимость СГ -+ АР (по правилу композиции), которая подразумевает функциональную зависимость СГ -+ АРС (по правилу дополнения), которая вместе со строкой 4 подразумевает функциональную зависимость Сà — з В (по правилу транзитивности). Таким образом, строку 8 можно опустить.
На этом все операции вывода завершаются и множество становится неприводимым. А — з С С вЂ” з А ВС вЂ” > Р СР— > В ВŠ— з С СŠ— э Г Сà — э 0 0 — з Е 0-+Г Обратите внимание, что тем самым получено два разных неприводимых покрытия для исходного множества функциональных зависимостей. 10.13.Потенциальными ключами являются Ь, РРС и РГТ. 10.14. Используя сокращенную запись М, К, С, Т и Е для атрибутов МАМЕ, ЯТВЕЕТ, С?ТУ, ЯТАТЕ и ЕТР соответственно, можно получить следующие функциональные зависимости. м †> Ест Вст — з г 8 — + ст 420 Часть 111.
Проектирование базы данньсх Очевидно, что эквивалентным неприводимым множеством является следующее.  — эй и — эС и — эТ ВСТ-+ Š— +С В вЂ” эт Единственным потенциальным ключом является атрибут й. 10.!5.Ответ к этому упражнению будет дан не полностью, хотя некоторые рассуждения здесь все же будут изложены. Во-первых, множество, очевидно, не является не- приводимым, так как функциональные зависимости С вЂ” э Л и СЮ вЂ” > 1 совместно подразумевают зависимость С вЂ” > 1. Во-вторых, очевидным суперктючон является множество (й,В,С,Р,Р,Л] (т.е. множество всех атрибутов, упомянутых в левых частях заданных функциональных зависимостей). Из этого множества можно исключить атрибут Л, поскольку существует зависимость С вЂ” > Л, а также исключить атрибут Р, поскольку существует зависимость й — > Р. Так как ни один из атрибутов й, В, С, Р не находится в правой части любой заданной функциональной зависимости, множество (й, В, С, Р) является потенциальным ключом.
Глава 10. Функциональные зависимости 421 Глава 1 1 Дальнейшая нормализация: формы 1НФ, 2НФ, ЗНФ и НФБК 11.1. Введение До сих пор в этой книге в качестве примера рассматривалась база данных поставщиков и деталей с приведенной ниже логической структурой. Б ( И, ЯМКИН, ЯТЛТОЯ, С1ТХ ) РК1МАКХ КЕХ ( Б4 Р ( Р(, РййМЕ, СОЬОК, ИЕ1ОНТ, С1ТХ ) РК1МАКХ КЕХ ( Р$ ) БР ( ЯХ, Рз, Отх ) РН1млкх кех ( Я(1, Р(! ) РОКЕ10Н КЕХ ( Я$ ) КЕРЕКЕИСЕЯ Я РОКЕ1СМ КЕХ ( Р» ) КЕРЕКЕНСЕЯ Р Теперь структура этой базы данных стала нам понятней.
Очевидно, что в ней присутствуют три переменные-отношения (Я, Р и ЯР), в которых определены те нли иные атрибуты. Например, атрибут С1ТХ для города поставщика определен в переменной-отношении Я, атрибут СОЬОК дпя цвета детали — в переменной-отношении Р, атрибут ОТХ для количества деталей — в переменной-отношении ЯР и т.д. Но откуда нам это известно? Кое-что можно понять, определенным образом изменив макет базы данных. Предположим, например, что атрибут С1ТХ удален из переменной-отношения поставщиков Я и добавлен в переменную- отношение поставок ЯР. (Однако интуитивно это действие можно охарактеризовать как ошибочное, поскольку понятие "город поставщика" очевидным образом связано с поставщиками, а не с поставками.) На рис.11.1 представлен пример содержания переменной- отношения поставок, измененной подобным образом.
Замечание. Чтобы избежать путаницы, связанной с исходной переменной- отношением БР, которой мы оперировали ранее, эта измененная переменная-отношение будет далее обозначаться ЯСР, как и в главе 1О. На рнс. 11.1 легко заметить один недостаток, свойственный организации переменной- отношения ЯСР, а именно — ее избы~очность. Говоря конкретнее, в каждом кортеже переменной-отношения ЯСР дпя поставщика с номером 'Я!' содержится информация о том, что этот поставщик находится в Лондоне; в каждом кортеже переменной-отношения ЯСР для по- Часть Ш. Проектирование базы данных сгавщика с номером 'Я2' содержится информация о том, что зтот поставщик находится в Париже, и т.д.
Иначе говоря, сведения о городе, в котором находится конкретный поставщик, повторяются в отношении столько раз, сколько данный поставщик выполняет поставок. Эта избыточность, в свою очередь, приводит к некоторым проблемам. Например, после обновления данных в качестве местонахождения поставщика с номером 'Я1' в одном из кортежей может быть указан Лондон, а в другом — Амстердам'. Таким образом, для создания хорошего макета следует придерживаться принципа "по одному факту в олпом месте" (т.е. следует избегать избыточности данных). Предметом нармазз>зации, в сущности, ятяется всего лишь фармапоация подобных простых идей, однако зто должна быть формализация, которая действительно будет иметь большое практическое значение при проектировании базы данных.
Рис. 11. 1. Пример значений данных в переменной-атнашени» 5СР Конечно, как уже упоминалось в главе 5, атнаизения в реляционной модели всегда нормализованы. Можно сказать, что первменнан-атнаи>ение также нормализована, поскольку ее допустимыми значениями являются нормализованные отношения. Следовательно, в контексте реляционной модели переменная-отношение также всегда нормализована. Аналогично можно сказать, что переменные-отношения (и отношения) всегда находятся в первой нормальной форме, или 1НФ.
Иначе говоря, понятия "нормализованная переменная-отношение" и "переменная-отношение в ) НФ" означают в точности одна и та жв, хотя следует иметь в виду, что понятие "нормализованная переменная- отношение" может также относиться к нормализации более высоких уровней (обычно для обозначения >претьей нормальной формы, или 3НФ). Последний вариант использования этого термина не совсем точен, но достаточно широко распространен.
) Лачве в этаи и паследующш главах нужна сделать (дастин>ачна правдападабпае!) предпалаже>шг а там, чпю капп>раз пргдькатав перез>енных-атнаи>гний поддерживается не в полном абьвмв. Эта неаахаднлю, паскашлу в пративпам случае вписанные выше праблемы просто не.магли бы возникнуть (бы>а бы невазмажна абнавить данные а городе пастави1ика с номером >В1 талька в нвкатарых картезкак). В дейсп>вип>взьнасп>и нар.нал>аацию целесаабразна пан>спать следующим абрахам> ана памагагт спраектирааать базу датта таким образом, чтобы сделать более лагически прнгмлел>ыми аперации абнавчен»л ап>дельных кортежей, чта в пропп>внах> случае (т.е, когда макет базы далнь>х нв нарчачизапан) х>алчет аказатьсл затруднителы>ыи.
Эиа цель дагп>игаетсл благодаря таму, чта в пал пастью карл >азизаван нам .макете пред икоты перел>енных-ам наш ений имеют бал ее простой вид. Глава ! !. Дальнейшая нормализация: форлзы )НФ, 2НФ, 3НФ и НФБК 423 Однако некоторая переменная-отношение может быть нормализованной в указанном смысле и все еше обладать определенными нежелательными свойствами. Примером может служить переменная-отношение ЯСР, показанная на рис. 1.1.
Принципы дальнейшей нормализации позволяют распознать подобные случаи и привести такие переменные- отношения к более приемлемой форме. В случае переменной-отношения ЯСР зти принципы позволили бы точно установить ее недостатки и указать на необходимость ее разбиения на две "более приемлемые" переменные-отношения: одну с заголовком (ЯР, СТТТ) и другую с заголовком (Я$, Р$, 0ТТ). Нормальные формы Процесс дальнейшей нормализации, который ниже будет упоминаться просто как нормализация, основывается на концепции нормальных форм. Говорят, что переменная-отношение находится в определенной нормальной форме, если она удовлетворяет заданному набору условий.
Например, переменная-отношение находится во второй нормальной форме (или в 2НФ) тогда и только тогда, когда она находится в 1НФ и удовлетворяет дополнительному условию, приведенному в разделе 11.3. На рис. 11.2 показано несколько нормальных форм, которые определены к настоящему времени. Первые три (1НФ, 2НФ и ЗНФ) были определены Коддом (Содд) [!0.4). Как видно из рис.
11.2, все нормализованные переменные-отношения находятся в 1НФ, некоторые переменные-отношения в 1НФ также находятся в 2НФ и некоторые переменные- отношения в 2НФ также находятся в ЗНФ. Мотивом введения дополнительных определений было то, что вторая нормальная форма "более желательна" (в смысле, который будет разъяснен ниже), чем первая, а третья, в свою очередь, "более желательна", чем вторая. Таким образом, в обшем случае при проектировании базы данных целесообразно использовать переменные-отношения в третьей нормальной форме, а не в первой или второй. Рис. !й2. Уровни нормализации В [10.41 также приводится описание процедуры нормализации, с помощью которой переменная-отношение в некоторой нормальной форме, например в 2НФ, может быть преобразована в несколько переменных-отношений в другой, более желательной нормальной форме, например в ЗНФ.
(В исходном варианте эта процедура определена только до третьей формы, но, как будет показано в следующей главе, она может быть последовательно расширена вплоть до пятой нормальной формы.) Такую процедуру можно охарактеризовать как последовательное приведение данного набора переменныхопзношений к некоторой более желанзельной форме. Следует отметить, что зта процеду- 424 Часть!И. !!роектирование базы данньп ра обратима, т.е. всегда можно использовать ее результат (например, множество переменных-отношений, находящихся в ЗНФ) для обратного преобразования (в исходную переменную-отношение, находящуюся в 2НФ). Возможность выполнения обратного преобразования является весьма важной характеристикой, поскольку это означает, что в процессе нормализации иьфориация не утрачиваегися.