Введение в системы БД (542480), страница 105
Текст из файла (страница 105)
И это действительно так, что подтверждается теоремой Хита (Неаг)з) (! 1.4]. ° Теорема Хита, Пусть В(А, В, С) является переменной-отношением, где А, В и С вЂ” множества атрибутов этой переменной-отношения. Если В удовлетворяет функциональной зависимости А — з В, то В равна соединению ее проекций (А, В) и (А, С).
Если принять, что А — это атрибут Яз,  — это атрибут ЯТАТВЯ, а С вЂ” это атрибут С1ТТ, то данная теорема подтверждает, как отмечалось выше, что переменная-отношение Я может быть разбита с помощью операции декомпозиции на проекции (Я$, ЯТАТВЯ) и (Яз, С1ТТ) без потери информации. В то же время уже известно, что переменная-отношение Я немоэкет быть разбита без потери информации на проекции (Яз, ЯТАТСЯ) и (ЯТАТВЯ, С1ТТ). Теорема Хита не дает объяснения, почему так происходитз. Однако интуитивно можно предположить, что при такой декомпозиции утрачивается одна из функциональных зависимостей, т.е.
зависимость Яз — з ЯТАТВЯ будет присутствовать (благодаря проекции (Яз, ЯТАТВЯ)), а зависимость Яз — з С1ТТ будет утрачена. Точггее, в исходной переменной-отношении Я вместе со всеми кортежами будут содержаться "холеные" кортежи, посколыу при обрапгггой операции никогда нельзя получить перелге>тую-опшошение, которая было бы меньше исходной переменной-отношения Я (Упражнение Попробуйте доказать это утверждение) Поскольку не существует общего метода различения ложных и подлинных кортежей, инфорлгацня в этом случае действителыго будет утеряна Дело в том, что она формулируепкя в выражениях "если, то ", а не "тогда и тол~ко тогда, когда " Об этап также идет речь в упр П! Более строгая формулировка теоремы Хита будет представлена в следующей гяаве (в разделе !2 2) 428 Часть 111.
Проектирование базы данных Еще о функциональных зависимостях В завершение перечислим некоторые дополнительные замечания, касающиеся функциональных зависимостей. 1. Неприводимые слева ФЗ. Вспомним из главы !0, что функциональная зависимость называется неприводичой слева, если ее левая часть "не очень велика". Рассмотрим, например, переменную-отношение ЯСР, приведенную в разделе!!.1, которая удовлетворяет следующей функциональной зависимости. ( Яю, Р4 ) -+ С1ТХ Однако атрибут РМ в левой части этой функциональной зависимости является избыточным и она может быть переписана в следующем виде. Я(! -+ С1ТТ (Иначе говоря, атрибут С1ТТ функционально зависит от Я(!.) Эта последняя функциональная зависимость является неприводимой слева, а предыдущая — нет.
Таким образом, можно сказать, что атрибут С1ТТ неприводичо зависич от атрибута Я$, но не неприводимо зависим от множества атрибутов (Я(1, Р(!)4. Неприводимые слева ФЗ и неприводимые зависимости играют важную роль при определении второй и третьей нормальной форм (подробности приводятся в разделе ! 1.3). 2. Диаграммы ФЗ. Пусть дана переменная-отношение й и пусть к ней применимо некоторое неприводимое множество функциональных зависимостей 1 (более подробные сведения о неприводимых множествах ФЗ приводятся в главе 10).
Удобнее всего представить это множество ФД в виде диаграммы функциональных зависичостей (диаграммы ФЗ). Например, на рис. 11.4 показаны вполне очевидные по смыслу диаграммы функциональных зависимостей для переменных-отношений Я, ЯР и Р соответственно. Такие диаграммы будут часто использоваться далее в этой главе. Рис.
!1.4. Диаграмча фупкционапьнь<х зависимостей для пере- менных-отношений Я, ЯР и Р Как можно видеть, на рис. 11.4 каждая стрелка начинается с потенциального ключа (на самом деле — с первичного ключа) соответствующей переменной- отношения. По определению стрелки должны начинаться с каждого потенциально- л Здесь термины "неприводичая слева ФЗ" и "неприводичо зовисич" используются вместо терл<иков "полная ФЗ" и "полностью зависим", копюрые часто можно встретить в литературе и прежних изданиях этой книги. Хотя последние термины отличаются кроткосптю, они л<енее информативны и потому не очен~ удобны.
Глава П. Дальнейшая нормализация: формы 1НФ, 2НФ, ЗНФ и НФБК 429 го ключаз, поскольку одному значению такого ключа всегда соответствует еще по крайней мере одно какое-либо значение. Некоторые из существующих стрелок в определенных случаях необходимо будет искчючить ввиду того, что они вызывают определенные затруднения, однако стрелки, начинающиеся с потенциальных ключей, никогда не могут быть исключены. Таким образом, процедуру нормализации можно неформально охарактеризовать как процедуру исключения стрелок, которые не начинаются с потенциальных ключей.
3. ФЗ как семантическое поня~не. Конечно, функциональные зависимости — это особый вид ограничений целостности, а потому они, несомненно, являются понятием сеиантическим. Распознавание функциональных зависимостей представляет собой часть процесса выяснения смысла тех или иных данных. Тот факт, что переменная-отношение Я удовлетворяет зависимости Б$ -э С1Тх, по сути, означает, что каждый поставщик находится точно в одном городе.
Иначе эту ситуацию можно охарактеризовать следуюцэим образом. ° В реальном мире существует некоторое ограничение, представленное в этой базе данных, а именно: каждый поставщик находится точно в одном городе. ° Поскольку это ограничение является частью семантического описания предметной области, оно должно быть каким-то образом представлено в базе данных. ° Для этого ограничение необходимо описать в определении базы данных таким образом, чтобы оно могло быть приведено в действие средствами СУБД.
° Способ описания ограничения в определении базы данных состоит в объявлении соответствующей функциональной зависимости. Как будет показано ниже, концепции нормализации позволяют использовать весьма простые способы объявления ФЗ. 11.3. Первая, вторая и третья нормальные формы Предостережение. В этом разделе для простоты изложения предполагается, что каждая переменная-отношение имеет в точности один потенциальный кэюч, который является первичным ключом. Подобное допущение наито отражение в приведенных ниже доказательствах, которые (как уже отлэечолось) являются не очень строгими.
Далее, в разделе /э'.5, будет рассмотрен случай, когда переменная-отношение имеет два или более потенциазьных ключей. Прежде чем перейти к подробному описанию трех нормальных форм, исходно предложенных Коддом, следует дать предварительное и весьма неформальное определение третьей нормальной формы для того, чтобы в общих чертах обрисовать основную цель изложения. Затем будет рассмотрена процедура приведения произвольной переменной- отношения к эквивалентному набору переменных-отношений в ЗНФ. Попутно будут даны более точные определения первых трех нормальных форм. Однако в качестве отступления следует отметить, что формы 1НФ, 2НФ и ЗНФ сами по себе не имеют особого значения и должны рассматриваться лишь как промежуточные этапы на пути построения формы НФБК (и форм более высокого уровня).
З Точнее, стрелки должны начинат~ха с суперключей. Но если множество ФЗ является не- приводимым, все функциональные зависимости (или "стрелки" ) будут неприводимы слева. 430 Часть 1П. Проектирование базы данных Итак, ниже дается предварительное определение ЗНФ. м Третья нормальная форма (очень неформальное определение). Переменная- отношение находится.в ЗНФ тогда и только тогда, когда ее неключевые атрибуты (если они вообще есть) являются: а) взаимно независимыми; б) неприводимо зависимыми от первичного ключа. Понятия "неключевые атрибуты" и "взаимно независимые атрибуты'* поясняются ниже. ° Неключевой атрибут — это атрибут, который не входит в состав первичного ключа рассматриваемой переменной-отношения. ° Два или более атрибутов называются взаимно независиимми, если ни один из них функционально не зависит от какой-либо комбинации остальных атрибутов.
Подобная независимость подразумевает, что каждый такой атрибут может обновляться независимо от значений остальных атрибутов. Например, согласно приведенному ниже определению переменная-отношение Р (переменная-отношение деталей) находится в ЗНФ, а именно: атрибуты РйлйЕ (название детали), СОМЕ (цвет), яЕ10НТ (вес) и СХТХ (город) независимы (т.е, цвета деталей можно менять, не изменяя их вес и т.д.) и неприводимо зависимы по отношению к первичному ключу (Р1) (номер детали). Такое неформальное определение ЗНФ может быть интерпретировано следующим, еше более неформальным образом.
° Третья нормальная форма (ек1е более неформальное определение). Переменная- отношение находится в ЗНФ тогда и только тогда, когда каждый кортеж состоит из значения первичного ключа, идентифицирующего некоторую сущность, и набора из нуля или более взаимно независимых атрибутов, некоторым образом описывающих эту сущность. К переменной-отношению Р применимо и это определение, поскольку каждый кортеж переменной-отношения Р состоит из значения первичного ключа (номер детали), идентифицирующего некоторую деталь в реальном мире, и четырех дополнительных взаимно независимых значений (название, цвет, вес детали и город, в котором она находится), описывающих отдельные свойства детали. Теперь можно вернуться к описанию процедуры нормализации и дать определение первой нормальной формы.
° Первая нормальная форма. Переменная-отношение находится в 1НФ тогла и только тогда, когда в любом допустимом значении этой переменной-отношения каждый ее кортеж содержит только одно значение для каждого из атрибутов. Фактически в этом определении всего лишь утверждается, что все переменные- отношения всегда находятся в 1НФ, что, несомненно, верно. Однако переменная- отношение, которая находится только в 1НФ (т.е, не находится ни во второй, ни в третьей нормальной форме), обладает структурой, не совсем желательной по некоторым причинам. Для иллюстрации этого факта допустим, что информация о поставщиках и поставках содержится не в двух переменных-отношениях Я и ЯР, а в одной, имеющей следующую структуру. Глава 11.
Дальнейшая нормализацияг формы 1НФ, 2НФ, 3НФ и НФБК 431 Р1КБТ ( Б0, ЯТАТЯЯ, С1ТУ, Р$, 0ТУ ) РК1КАКТ КЕУ ( Я0, Р$ ) Это расширенная версия переменной-отношения ЯСР, приведенной выше, в разделе ! !. !. Ее атрибуты имеют тот же смысл, что и ранее, за исключением следующего дополнительного ограничения, специально введенного в этом примере. С1ТУ вЂ” э ЯТАТСЯ (Иными словами, атрибут ЯТАТСБ функционально зависим от атрибута С1ТХ; и смысл этого ограничения состоит в том, что статус поставщика определяется его местонахождением, например все поставщики из Лондона должны иметь статус 10.) Кроме того, для упрощения атрибут ЯМАМЕ далее будет игнорироваться. Первичным ключом переменной-отношения Г1КЯТ является комбинация атрибутов (Я$, Р(), а диаграмма ее функциональных зависимостей будет иметь вид, представленный на рис. ! !.5.