|
Программирование >> Хронологические базы данных
pa обратима, т.е. всегда можно использовать ее результат (например, множество переменных-отношений, находяшихся в ЗНФ) для обратного преобразования (в исходную переменную-отношение, находящуюся в 2НФ). Возможность выполнения обратного преобразования является весьма важной характеристикой, поскольку это означает, что в процессе нормализации информация не утрачивается. Возвращаясь к рассмотрению собственно нормальных форм, заметим, что, как будет показано в разделе 11.5, оригинальное определение Кодда для ЗНФ [10.4] приводит к некоторой неадекватности. Переработанное и более точное понятие, данное Бойсом (Воусе) и Коддом в [11.2], является более строгим в том смысле, что любая переменная-отношение в ЗНФ по новому определению является таковой и по старому определению, но не всякая переменная-отношение в ЗНФ по старому определению может являться таковой по новому определению. Для того чтобы эти определения можно было различать, переменную-отнощение в ЗНФ по новому определению обычно называют нормальной формой Бойса-Кодда - НФБК. Впоследствии Фейгином (Fagin) в [11.8] была определена новая, четвертая нормальная форма (4НФ), которая стала четвертой по счету, поскольку в момент ее создания нормальная форма Бойса-Кодда считалась третьей. Совсем недавно Фейгин в [11.9] дал определение еще одной нормальной формы, которую назвал проектив-но-соединительной нормальной формой (ПСНФ); ее еще называют пятой нормальной формой, или 5НФ. Как показано на рис. 11.2, некоторые переменные-отношения в НФБК также находятся в 4НФ и некоторые переменные-отношения в 4НФ также находятся в ЗНФ. Возникает вопрос, нельзя ли продлить эту операцию для получения шестой, седьмой нормальной форм и так до бесконечности. Пока мы еще не готовы дать подробный ответ на этот замечательный вопрос. Но мы вернемся к нему в главе 12. Пока следует заметить, что действительно существуют дополнительные нормальные формы, которые не показаны на рис. 11.2, однако ЗНФ можно рассматривать как окончательную нормальную форму в некотором (и очень важном) смысле. Структура этой главы Назначение данной главы - предоставить описание концепции дальнейшей нормализации до уровня нормальной формы Бойса-Кодда включительно. Оставшиеся две формы будут рассмотрены в главе 12. В целом, материал будет излагаться по следующему плану. После несколько затянувшегося введения в разделе 11.2 описывается фундаментальная концепция декомпозиции без потерь и демонстрируется важное значение понятия функциональной зависимости (ФЗ) в этой концепции. (Действительно, понятие функциональной зависимости является основой выделения трех нормальных форм Кодда и нормальной формы Бойса-Кодда.) Далее, в разделе 11.3, подробно описываются три начальные нормальные формы и на примере некоторой переменной-отношения демонстрируется, как выполняется нормализация вплоть до достижения ЗНФ. В разделе 11.4 делается небольшое отступление с целью обсуждения вопроса альтернативных декомпозиций, т.е. проблемы выбора наилучшей декомпозиции для конкретной переменной-отношения, если, конечно, такой выбор возможен. В разделе 11.5 обсуждается НФБК, а в разделе 11.6 рассматриваются особенности работы с атрибутами, принимающими в качестве значений отношения. И наконец в разделе 11.7 приводится краткое резюме и дается несколько заключительных замечаний. Важно отметить, что далее изложение ведется не столь строго, как раньше, и в рассуждениях автор, в основном, полагается на интуицию. Подобный подход может быть оправдан тем, что такие понятия, как декомпозиция без потерь , нормальная форма Бойса-Кодда и другие, несмотря на их таинственные и загадочные названия, по сути весьма просты и обшедоступны. Во многих работах, на которые имеются ссылки, этот материал излагается в более строгой форме. Кроме того, следует сделать еще два предварительных замечания. 1. Как уже отмечалось, общая идея нормализации заключается в том, что при проектировании базы данных предполагается более целесообразным определять переменные-отношения в окончательной нормальной форме (т.е. в пятой). Однако эту рекомендацию не следует толковать, как обязательное правило, поскольку возможны (довольно часто) ситуации, когда принципами нормализации приходится пренебрегать (об этом упоминается в упр. 11.7). Действительно, здесь необходимо подчеркнуть, что проектирование базы данных может представлять собой чрезвычайно сложную задачу (по крайне мере, в достаточно большой базе данных , поскольку макеты малых баз данных обычно очень просты). Нормализация значительно упрощает этот процесс, но не является панацеей. Хотя разработчику проекта базы данных рекомендуется знать основные принципы нормализации, это не значит, что проект обязательно должен быть создан на основе исключительно этих принципов. В главе 13 обсуждается несколько других аспектов проектирования базы данных, которые имеют весьма отдаленное отношение к нормализации как таковой или совсем не имеют к ней отношения. 2. Как упоминалось выше, процедура нормализации будет использована в качестве основы при описании различных нормальных форм. Однако это не значит, что на практике создание проекта базы данных будет выполняться с помощью этой процедуры. На самом деле, вероятнее всего, для этого будет использована описанная в главе 13 схема типа сверху вниз . Идеи нормализации можно использовать на последующих этапах для проверки того, что полученный в результате проект не нарушает случайным образом каких-либо ее принципов. Как бы там ни было, процедура нормализации является удобным способом описания этих принципов. Для упрощения изложения в данной главе будет сделано полезное допущение о том, что проектирование выполняется с помощью процедуры нормализации. 11.2. Декомпозиция без потерь и функциональные зависимости Прежде чем приступить к рассмотрению подробностей процедуры нормализации, следует обсудить один существенный аспект этой процедуры, а именно - концепцию декомпозиции без потерь. Как уже упоминалось, процедура нормализации включает разбиение, или декомпозицию, данной переменной-отношения на другие переменные-отношения, причем декомпозиция должна быть обратимой, т.е. выполняться без потерь информации. Иначе говоря, интерес представляют только те операции, которые выполняются без потерь информации. Вопрос о том, происходит ли утрата информации при декомпозиции, тесно связан с концепцией функциональной зависимости. в качестве примера рассмотрим уже знакомую переменную-отношение поставщиков S с заголовком {Si, STATUS, CITY} (для упрощения задачи атрибут SNAME в данном случае игнорируется). На рис. 11.3 показан пример значений данных в этой переменной-отношении и указаны два возможных варианта ее декомпозиции: а и б.
Puc. 11.3. Переменная-отношение S и два возможных варианта ее декомпозиции Внимательно ознакомившись с предложенными вариантами декомпозиции, можно заметить две особенности. 1. В случае а информация не утрачивается, поскольку переменные-отношения SST и SC все еще содержат данные о том, что поставщик с номером S3 имеет статус 30 и находится в Париже (Paris), а поставщик с номером S5 имеет статус 30 и находится в Афинах (Athens). Иначе говоря, первая декомпозиция действительно является декомпозицией без потерь. 2. В случае б, наоборот, некоторая информация утрачивается, поскольку оба поставщика имеют статус 30, но при этом нельзя сказать, какой из них в каком городе находится. Иначе говоря, вторая декомпозиция не является декомпозицией без потерь. Почему же получилось так, что одна декомпозиция была проведена без потери, а другая - с потерей информации? Прежде всего следует отметить, что процесс, который до сих пор назывался декомпозицией, на самом деле является операцией проекции, т.е. каждая из показанных на рис. 11.3 переменных-отношений - SST, SC и STC - в действительности является проекцией исходной переменной-отношения S. Таким образом, оператор декомпозиции в процедуре нормализации фактически является оператором проекции. Замечание. Как и в части II этой книги, высказывание вида SST является проекцией переменной-отношения S используется вместо более точного высказывания вида SST является переменной-отношением, значение которой в определенное время является проекцией значения переменной-отношения S, которое она имеет в это же время . Надеемся, что такое сокращение не собьет читателя с толку. Обратите внимание, что в случае а сохранение информации в полном объеме означает, что при обратном соединении переменных-отношений SST и SC будет получена исходная переменная-отношение S. В случае б ситуация противоположная, поскольку при
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |