- •7.7.6. Определить общее количество поставщиков
- •7.7.7. Определить в поставках максимальное
- •7.7.8. Для каждой поставляемой детали указать номер и общий объем поставки в штуках
- •7.7.9. Указать номера всех типов деталей, поставляемых более чем одним поставщиком
- •7.7.10. Определить имена поставщиков детали с номером т2'
- •7.7.11. Определить имена поставщиков по крайней мере одной красной детали
- •7.7.12. Указать номера поставщиков, статус которых меньше текущего максимального статуса
- •7.7.13. Указать имена поставщиков детали с номером 'р2'
- •7.7.14. Выбрать имена поставщиков, которые не поставляют деталь с номером 'р2'
- •7.7.15. Определить имена поставщиков всех типов деталей
- •7.7.16. Определить номера деталей, которые либо весят более 16 фунтов, либо поставляются поставщиком с номером 's2', либо и то, и другое
- •7.8. Резюме
- •8.2. Ограничения типа
- •8.3. Ограничения атрибута
- •8.4. Ограничения переменной-отношения
- •8.5. Ограничения баз данных
- •8.6. "Золотое правило"
- •8.7. Ограничения состояния и ограничения перехода
- •8.8. Ключи
- •3. Пусть r1 и r2 — ссылающаяся и ссылочная переменные-отношения соответственно.
- •8.9. Средства языка sql
- •8.10. Резюме
- •9.1. Введение
- •9.2. Для чего нужны представления
- •9.3. Выборка данных из представлений
- •9.4. Обновление данных в представлениях
- •9.5. Моментальные снимки
- •9.6. Поддержка представлений в языке sql
- •9.7. Резюме
- •Часть III
- •10.1. Введение
- •10.2. Основные определения
- •10.3. Тривиальные и нетривиальные зависимости
- •10.4. Замыкание множества зависимостей
- •10.5. Замыкание множества атрибутов
- •10.6. Неприводимые множества зависимостей
- •10.7. Резюме
- •Глава 1 1
- •I Переменные-отношения в знф I
- •11.2. Декомпозиция без потерь
- •11.3. Первая, вторая и третья нормальные формы
- •11.4. Сохранение зависимостей
- •11.5. Нормальная форма Бойса-Кодда
- •11.6. Замечание по поводу атрибутов, содержащих в качестве значений отношения
- •11.7. Резюме
- •12.1. Введение
- •12.2. Многозначные зависимости и четвертая нормальная форма
- •12.3. Зависимости соединения и пятая нормальная форма
- •Соединение по комбинации атрибутов j#,s#
- •Исходное состояние spj
- •12.4. Общая схема процедуры нормализации
- •12.5. Денормализация
- •12.6. Ортогональное проектирование (небольшое отступление от темы)
- •12.7. Другие нормальные формы
- •12.8. Резюме
- •12.3. Brosda V., Vossen g. Update and Retrieval Through a Universal Schema Interface // acm tods. — December, 1988. — 13, № 4.
- •12.5. Date c.J. Will the Real Fourth Normal Form Please Stand Up? // c. J. Date and Hugh Darwen. Relational Database Writings 1989-1991.— Reading, Mass.: Addison-Wesley, 1992.
- •12.20.Kent w. The Universal Relation Revisited // acm tods. — December, 1983. — 8, № 4.
- •12.22.Maier d., Ullman j.D. Fragments of Relations // Proc. 1983 sigmod Intern. Conf. On Management of Data. — San Jose, Calif. — May, 1983.
- •12.24.Maier d., Ullman j.D. Maximal Objects and the Semantics of Universal Relation Databases // acm tods. — March, 1983. — 8, № 1.
- •Глава 13
- •13.1. Введение
- •13.2. Общий подход
- •Каждыи экземпляр сущности ности «Произведение"
- •13.3. Модель "сущность/связь"
- •13.5. Проектирование базы данных с помощью метода er-моделирования
- •13.6. Краткий анализ er-модели
- •13.7. Резюме
12.3. Brosda V., Vossen g. Update and Retrieval Through a Universal Schema Interface // acm tods. — December, 1988. — 13, № 4.
В предыдущих попытках предоставления интерфейса "универсального отношения" (см. аннотацию к [12.19]) рассматривались только операции извлечения данных. В этой статье предлагается подход на основе операций обновления.
12.4. Carlson C.R., Kaplan R.S. A Generalized Access Path Model and Its Application to a Relational Data Base System // Proc, 1976 ACM SIGMOD Intern. Conf. on Management of Data. — Washington, D.C., June, 1976.
См. аннотацию к [12.19].
12.5. Date c.J. Will the Real Fourth Normal Form Please Stand Up? // c. J. Date and Hugh Darwen. Relational Database Writings 1989-1991.— Reading, Mass.: Addison-Wesley, 1992.
В работе отмечается, что "существует несколько различных понятий в области проектирования баз данных, которые разные авторы называют одинаково — четвертая нормальная форма (4НФ)". Назначение данной работы — прояснить смысл
этого понятия. Здесь, вероятно, следует добавить, что единственно правильное определение 4НФ приводится в данной главе... Не верьте никаким другим!
12.6. Date C.J. The Normal Is So... Interesting (в двух частях) // DBP&D. — November- December, 1997. — 10, Nos. 11-12.
Обсуждение нормализации в разделе 12.5 взято из этой работы. Кроме того, следует отметить некоторые дополнительные особенности.
Даже в такой базе данных, которая используется только для чтения, необходимо задавать ограничения целостности, поскольку они определяют смысл данных, а, как отмечается в разделе 12.4, отказ от денормализации предоставляет простой способ определения некоторых важных ограничений. Если же база данных используется не только для чтения, то исключение денормализации ее данных предоставляет простой способ реализации этих ограничений.
Денормализация предполагает наличие повышенной избыточности данных, но (что противоречит широко распространенному ошибочному мнению) повышенная избыточность данных необязательно предполагает использование процедуры денормализации! По этому поводу многие авторы заблуждались и продолжают заблуждаться до сих пор.
В общем случае следует придерживаться такого правила: денормализацию (на логическом уровне) следует использовать в качестве тактики повышения производительности "только в ситуации, когда все другие методы себя исчерпали".
12.7. Date C.J. The Final Normal Form! (в двух частях) // DBP&D. — January-February, 1998. — 11, Nos. 1-2.
Учебное пособие по зависимостям соединения и 5НФ.
Date C.J. What's Normal, Anyway? // DBP&D. — March, 1998. — 11, Nos. 3. Обзор некоторых "патологических" примеров нормализации, в частности примера с переменной-отношением USA из упр. 11.2 главы 11.
Date C.J. Normalization Is No Panacea // DBP&D. — April, 1998. — 11, Nos. 4. Обзор некоторых аспектов проектирования базы данных, когда применение теории нормализации не дает результата. Данную статью не следует рассматривать как критику этой теории.
12.10.Date C.J., Fagin R. Simple Conditions for Guaranteeing Higher Normal Forms in Relational Databases // C. J. Date and Hugh Darwen. Relational Database Writings 1989-1991. — Reading, Mass.: Addison-Wesley, 1992. (Работа также опубликована в ACM TODS. — September, 1992. — 17, № 3.)
В этой работе показано, что если переменная-отношение R находится в ЗНФ и все потенциальные ключи переменной-отношения R простые (т.е. состоят из одного атрибута), то переменная-отношение R автоматически находится в 5НФ. Иначе говоря, в таком случае не стоит беспокоиться о разных относительно сложных вопросах, связанных с многозначными зависимостями, зависимостями соединения, 4НФ и 5НФ, которые обсуждались в данной главе.
Замечание. В статье также доказан другой результат, а именно: если переменная-отношение R находится в НФБК и хотя бы один из ее потенциальных ключей является простым, то переменная-отношение R автоматически находится в 4НФ, но необязательно в 5НФ.
12.ll.Date С. J., McGovern D. A New Database Design Principle // Relational Database Writings 1991-1994. — Reading, Mass.: Addison-Wesley, 1995.
12.12.Delobel C, Parker D.S. Functional and Multivalued Dependencies in a Relational Database and the Theory of Boolean Switching Functions // Tech. Report No. 142. — Dept. Maths. Appl. et lnformatique, Univ. de Grenoble, France. — November, 1978. В этой работе описанные в [10.3] результаты распространяются на многозначные зависимости по образу и подобию функциональных зависимостей.
12.13.Fagin R. Multivalued Dependencies and a New Normal. Form for Relational Databases // ACM TODS. — September, 1977. — 2, № 3.
Под упомянутой в заголовке этой статьи новой нормальной формой подразумевается 4НФ.
Здесь следует добавить замечание о внедренных многозначных зависимостях. Допустим, что переменная-отношение СТХ, рассмотренная в этой главе, расширена дополнительным атрибутом DAYS, представляющим количество дней, затраченных на преподавание предмета по учебнику TEXT некоторым преподавателем TEACHER, ведущим некоторый курс обучения COURSE. Назовем такую расширенную переменную-отношение именем CTXD и рассмотрим приведенный ниже пример ее данных.
CTXD
COURSE |
TEACHER |
TEXT |
DAYS |
Physics |
Prof. Green |
Basic Machanics |
5 |
Physics |
Prof. Green |
Principles of Optics |
5 |
Physics |
Prof. Brown |
Basic Machanics |
6 |
Physics |
Prof. Brown |
Principles of Optics |
4 |
Math |
Prof. Green |
Basic Machanics |
3 |
Math |
Prof. Green |
Vector Analysis |
3 |
Math |
Prof. Green |
Trigonometry |
4 |
Комбинация атрибутов {COURSE, TEACHER, TEXT} в таком случае является потенциальным ключом этой переменной-отношения, в которой имеет место следующая функциональная зависимость.
{ COURSE, TEACHER, TEXT } -> DAYS
Можно заметить, что данная переменная-отношение находится в 4НФ, поскольку не содержит никаких многозначных зависимостей, которые не являются одновременно и функциональными зависимостями (если вспомнить определения 4НФ и МЗЗ). Однако она содержит две внедренные многозначные зависимости (атрибута TEACHER от атрибута COURSE и атрибута TEXT от атрибута COURSE). Внедренная многозначная зависимость атрибута В от атрибута А имеет место в переменной-отношении R, если в некоторой проекции переменной-отношения R выполняется "обычная" многозначная зависимость А —>-> В. Обычная многозначная зависимость является специальным случаем внедренной многозначной зависимости, но не все внедренные многозначные зависимости являются обычными многозначными зависимостями. Как иллюстрируется в данном примере, внедренные многозначные зависимости также предполагают избыточность, как и обычные МЗЗ, однако она не может быть исключена с помощью разбиения на проекции. Представленную выше переменную
отношение нельзя подвергнуть декомпозиции без потерь (она фактически находится не только в 4НФ, но и в 5НФ), поскольку атрибут DAYS зависит от всех трех атрибутов, COURSE, TEACHER и TEXT, и потому не может присутствовать в отношении без какого-либо из этих атрибутов. Значит, две внедренные многозначные зависимости следует рассматривать как дополнительные явно заданные ограничения для данной переменной-отношения (подробности приводятся в последующих главах книги).
12.14.Fagin R. Normal Forms and Relational Database Operators // Proc. 1979 ACM SIGMOD Intern. Conf. on Management of Data. — Boston, Mass. — May-June, 1979. В статье представлена концепция проекционно-соединительной нормальной формы (или 5НФ). Эта концепция также может рассматриваться как определение того, что можно назвать "классической" теорией нормализации, т.е. теорией декомпозиции без потерь, основанной на проекции как операторе декомпозиции и на естественном соединении как соответствующем операторе композиции.
12.15.Fagin R. A Normal Form for Relational Databases That Is Based on Domains and Keys // ACM TODS. — September, 1981. — 6, № 3.
12.16.Fagin R. Acyclic Database Schemes (of Various Degrees): A Painless Introduction // IBM Research Report RJ3800. — April, 1983. (Переиздано: Proc. CAAP83 8th Colloquium on Trees in Algebra and Programming: Springer-Verlag Lecture Notes in Computer Science No. 159 (eds. G. Ausiello and M. Protasi).— New York, N.Y.: Springer-Verlag, 1983.)
В разделе 12.3 этой главы было показано, как некоторая тройная переменная-отношение SPJ, удовлетворяющая определенному циклическому ограничению, может быть подвергнута декомпозиции без потерь с образованием трех бинарных переменных-отношений. Полученная в результате структура базы данных (в этой работе она называется схемой) является циклической, поскольку каждая из трех переменных-отношений имеет атрибут, общий с каждой из остальных двух переменных-отношений. (Если структура описана в виде гиперграфа, в котором ребра представляют отдельные переменные-отношения, а узел, соединяющий два ребра, представляет общие для этих двух переменных-отношений атрибуты, то становится понятно, почему используется термин "циклическая структура".) Многие реальные структуры, наоборот, являются ациклическими. Они обладают большим количеством формальных свойств, которые не применимы для циклических структур. В этой статье Фейгин представляет и разъясняет некоторые из таких свойств.
Ацикличность удобно представить в следующем виде: как теория нормализации позволяет определить целесообразность реструктуризации отдельной переменной-отношения, так и теория ацикличности позволяет определить целесообразность реструктуризации набора переменных-отношений. 12.17.Fagin R., Vardi M.Y. The Theory of Data Dependencies — A Survey// IBM Research Report RJ4321. — June, 1984. (Переиздано: Mathematics of Information Processing // Proc. Symposia in Applied Mathematics 34, American Mathematical Society, 1986.) В этой работе излагается краткая история теории зависимостей по состоянию на середину 1980-х годов (следует обратить внимание, что слово "зависимость" в данном случае относится не только к функциональным зависимостям). В частности, в статье подытожены основные достижения в трех отдельных областях этой
теории с перечнями рекомендуемой литературы по каждой из тем. Эти три темы включают (1) проблему импликации, (2) универсальную реляционную модель и (3) ациклические схемы. Проблема импликации состоит в выяснении для заданного множества зависимостей D и некоторой отдельной зависимости d, будет ли зависимость d логическим следствием множества зависимостей D (подробности приводятся в разделе 10.7). Универсальная реляционная модель и ациклические схемы кратко обсуждаются в комментариях к [12.19] и [12.16] соответственно. 12.18.Fagin R., Mendelzon А.О., Ullman J.D. A Simplified Universal Relation Assumption and Its Properties // ACM TODS. — September, 1982. — 7, № 3. Здесь содержится предположение о том, что реальный мир всегда может быть представлен с помощью универсальной переменной-отношения [12.19], которая удовлетворяет точно одной зависимости соединения вместе с некоторым множеством функциональных зависимостей, а также обсуждаются следствия такого предположения.
12,19.Kent W. Consequences of Assuming a Universal Relation // Ibid. — December, 1981. —6, №4.
Здесь несколькими способами представлена концепция универсальной переменной-отношения. В первом способе согласно порядку нормализации, описанному в последних двух главах, предполагается возможность задания исходного универсального отношения (а точнее, универсальной переменной-отношения), которое включает все атрибуты рассматриваемой базы данных. Затем демонстрируется, как такая переменная-отношение может последовательно заменяться "меньшими" проекциями (т.е. отношениями меньшей степени) вплоть до достижения некоторой "приемлемой" структуры. Но является ли исходное предположение реальным или справедливым? В работе утверждается, что это не так с практической и теоретической точек зрения. В ответ на данную статью появилась публикация [12.32], а в ответ на нее — [12.20].
Во втором способе, более существенном с практической точки зрения, концепция универсальной переменной-отношения выступает в качестве интерфейса пользователя. Основная идея здесь совершенно ясна и действительно (с интуитивной точки зрения) весьма притягательна: пользователям следует составлять запросы не в терминах переменных-отношений и их соединений, а на основе одних только атрибутов, например так, как показано в приведенном ниже выражении, где требуется "получить статус всех поставщиков красных деталей".
RETRIEVE STATUS WHERE COLOR - 'Red'
В этой связи идея имеет две более или менее различающиеся интерпретации.
1. Одна возможность заключается в том, что система должна каким-то образом самостоятельно определить, какому логическому пути нужно следовать для выполнения запроса (в частности, какие соединения ей необходимо создавать). Таков подход, предлагаемый в [12.4] (эта статья, по всей видимости, является первой статьей, посвященной возможности создания универсального интерфейса пользователя, хотя сам термин "универсальная переменная-отношение" в ней не упоминается). Этот подход в значительной степени зависит от правильного именования атрибутов. Таким образом, например, для двух атрибутов номера поставщика (в переменных
отношениях S и SP соответственно) должны быть заданы одинаковые имена; и наоборот, для атрибутов города, в котором находится поставщик, и города, в котором хранятся детали (в переменных-отношениях S и Р соответственно), должны быть заданы разные имена. Если какое-либо из этих правил будет нарушено, то некоторые запросы могут быть выполнены не совсем корректно. 2. В другой, менее амбициозной, интерпретации все запросы рассматриваются в терминах предопределенного набора соединений — в действительности предопределенного представления, состоящего из соединения всех переменных-отношений в рассматриваемой базе данных. Хотя нет сомнений в том, что любой из представленных здесь подходов позволяет значительно упростить выражения при формулировании многих практических запросов (причем тот или иной вариант данного подхода будет весьма уместен в клиентских приложениях, поддерживающих естественный язык общения), ясно, что в общем случае система должна поддерживать и средства явного указания логического пути доступа. Для подтверждения данного тезиса рассмотрим следующий запрос.
RETRIEVE STATUS WHERE COLOR Ф 'Red'
Что означает запрос "Получить статус всех поставщиков не красных деталей" или "Получить статус всех поставщиков, которые не поставляют красные детали"? Какой бы смысл из двух предложенных не был выбран системой, должен также существовать способ формулировки и другого варианта запроса. (К тому же первый пример может иметь альтернативную интерпретацию: "Получить статус для поставщиков только красных деталей".) В качестве третьего примера можно привести запрос "Получить имена поставщиков, находящихся в одном и том же городе", для которого, очевидно, придется явным образом задать соединение (поскольку в нем предусматривается соединение переменной-отношения S с самой собой).