Введение в системы БД (542480), страница 45
Текст из файла (страница 45)
СогЫ Е.Р. ТЬе Ке1айопа1 Моде! Гог Ра!аЬаве Мапайешеп! Чегвюп 2. — Кеаб!п8, Ма55а Абб!воп-%ев!еу, 1990. Длительное время в конце 1980-х годов Кодд пересматривал и расширял свою изначальную модель (которую теперь называют реляционной моделью первой версии— 'ЕЬе Ке)айопа! Моде! Четв!оп 1" или ЕМ%1), в результате чего появилась эта книга. В ней описывается так называемая реляционная модель второй версии — "!Ье Ке!абопа! Моде! Чеггйоп 2" или ВМ7Ч2. Основное различие между версиями состоит в следующем.
Первая версия создавалась как абстрактный план для определенных аспектов общей проблемы баз данных (по большей части, наиболее фундаментальных аспектов), а вторая — как абстрактный план для всей системы. Поэтому, в то время как первая версия разделена только на 3 части (структуры, манипулирование и поддержка целостности), модель ЕМ%2 содержит 18 частей, которые включают не только 3 исходные части, что само собой разумеется, но и части, касающиеся представлений, каталогов, прав доступа, наименований, распределенных баз данных и других аспектов управления базами данных. Для удобства ссылок ниже приводится полный перечень этих 18 частей.
5.3. 5.4. 5.5. 5.6. мены ограничивают сравнения. Например, для базы данных поставщиков и деталей сравнение Я.Я() = Р.Р() будет некорректным, поскольку сравниваемые величины принадлежат разным типам. Следовательно, связать поставщиков и детали путем сопоставления их номеров не удастся. Кодл, тем не менее, предложил свой вариант некоторых операторов реляционной алгебры — так называемые операторы РСО (Ропза!и СЬес1с Очеггьйе).
Они выполняются, даже если при этом сравниваются значения разных типов. Так, например, РСО-версия оператора, рассмотренного выше, позволяет связать поставщиков и детали несмотря на то, что атрибуты Я.Я$ и Р.Р() принадлежат разным типам (предполагается, что соединение производится путем сопоставления не типов, а их представлений). Однако именно в этом и состоит проблема. Вся идея РСО основана па путанике между типами и их представлениями. Считая домены тем, чем они являются на самом деле (т.е. типами), со всеми вытекающими отсюда последствиями, мы получаем возможность контроля доменов, а также своего рода совместимость с РСО, Следующее выражение служит примером сравнения номера поставщика с номером детали на уровне допустимых представлений. РНЕ Я() ( Я() ) = ЖНЕ Р() ( РВ ) Здесь обе части равенства принадлежат типу Сйяй.
Таким образом, мы утверждаем, что предложенный в разделе 5.2 механизм обеспечивает нас всеми необходимыми средствами очевидным и систематизированным образом. В частности, отпадает необходимость загромождать реляционную модель новыми операторами наподобие 000,701Н. Рапиеп Н. ТЬе Рцр!!вйу оТ Рпр!!саге Кочгв В Ке1аг!опа! 0агаЬаве %гй!пйв 1989- 1991, — Кеайпй, Маваг Адд!воп-Фев!еу, 1992. Эта статья была написана лля подтверждения аргументов, уже представленных в !4.11), в пользу известного требования реляционной модели: в таблицах не должно содержаться одинаковых строк. В статье не только представлены новые версии этих аргументов, но и выдвинуты дополнительные аргументы.
Основной вопрос состоит в следующем: лля того чтобы конструктивно обсуждать совпадение двух объектов, необходим критерий идентичности для рассматриваемого класса объектов (иначе говоря, что означает для двух объектов, будь это строки в таблице или что-нибудь еще, понятие "быть одним и тем же"). Рагччеп Н. Ке!аг!оп-Ча!цед Ацг!Ьц!ев В Ке)айопа! Ра[аЬаве %гй!пйв 1989 — 1991.— Кеад!п8, Маваг Адд!воп-Фев! еу, 1992. Рагччеп Н. ТЬе Хп1!о(оН!вг щ Ке!аг!оп!апд В Ке!айопа! РагаЬаве %гй!пйв 1989— 1991, — Кеад!пй, Маваг Адд!воп-%ев!еу, 1992. Нуллагия — это согласно Дарвену "учение об абсолютном ничто" или, иначе говоря, учение о пустых множествах. Множества в реляционной теории вездесущи, поэтому вопрос о том, что будет, если одно или несколько из них окажутся пустыми, возник не случайно. На самом деле в некоторых случаях пустые множества играют фундаментальную роль.
С темой настоящей главы (реляционными объектами данных) связаны раздел 2 этой статьи (" Таблицы без строк") и раздел 3 (" Таблицы без столбцов*'). (См. также ответ к упр. 5.9.) Оа!е СД. 'чЧЬу Рпрйса!е Кожа Аге ргоЫЪйес$ В Ке!азиопа! РагаЬаве %гй!пйв 1985- 1989. — Кеад!п8, Мазал Адд!воп-'эЧев!еу, 1990. Глава 5. Домены, отношения и базовые переменные-отношения 183 Представляются многочисленные аргументы (с примерами) в пользу требования реляционной модели того, чтобы в таблицах не было дублирующихся строк. В частности, в статье показано, что дублирующиеся строки являются главным препятствием дяя оптимизации (см, главу !7, а также [5.3)). 5.7. Оаге С.А Хогез Тосчагд а Кесопжйщед Оебпйюп оГСЬе Ке!адопа! Моде! Чегвюп 1 (КМ/Ч!) // Ке!абопа! ОагаЬеве %пг!пйз 1989 — 1991. — Кеад!п8, Маза.: Адд!зоп-Фез!еу, 1992, Приводятся критика и резюме к реляционной модели Кодда КМ/Ч! [5.2) и дается альтернативное определение.
Подразумевается, что крайне важно получить верную "версию 1", прежде чем обсуждать переход к какой-то "версии 2". Замечание. Версия реляционной модели, описанная в настоящей книге, — это, по большей части, "воспроизведенная" версия, кратко описанная в данной статье (а затем уточненная и описанная в [3.3)). 5.8. Оа!е С.А А Сг!г!са! КеЫеч оТ Ке!айопа! Моде! Чегяоп 2 (КМ/Ч2) // Ке!асюпа! ОагаЬазе %г!С!пйз 1989 — 1991.
— Кеад!п8, Мазза АсЫ!зоп-усгез!еу, 1992. Приводятся критика и резюме к реляционной модели Колда КМИЧ2 [5.2). 5.9. Оасе С.3. 30 Уеагз оТ Ке!адопа! (сборник из 12 статей) Н 1псеййепг Епгегрдзе1,— ОссоЬег, !998. — № 1-9. Замечание. Большинство этих статей можно также найти по адресу ччч.йпсеШ9епсепсегргйзе.сов. В данных статьях приводятся тщательный, беспристрастный обзор и оценка вклада Кодда в реляционную модель на основании его публикаций в 1970-х годах.
В частности, в них детально исследованы следующие статьи (а также несколько других). ° ОедчЬс!пу, Кедцпдапсу, апд Сопя!мепсу оГ Ке!айопз Бсогед !и 1.агйе Раса Вап!св (первое издание статьи [5.1)) ° А Ке!айова! Моде! оТ Паса Гог !.агйе Язагед Вап!сз [5.1) ° Ке!айопа! Сошр! есепезз оТ Эата Вазе БчЫапйчайез [6. ! ) ° А Оаса Вазе БцЫапй зайе Гоцпдес! оп сйе Ке!айопа! Са1сц!цз [7.1) ° ГцгсЬег Хоппайгагюп обсйе Оага Вазе Ке!аг!опа! Мос1е1 [10.4) ° Ехсепд!п8 гйе Ке!асюпа! ОагаЬазе Мос!е! со Саршге Моте Меапшй [13.6) ° 1псегасс!че Бцрроп Гог Хопргойгапипегз; ТЬе Ке!а!юла! апд Хепчог1с Арргоасйез [25 8) 5.10. МагЕ А.К., Когсй Н.Г., 81!Ьегзсйасг А.
Ехсепдед А18еЬга апд Са!сц!чз бог Хезсед Ке!асюпа1 ОасаЬазез Н АСМ ТООБ 13. — ОесешЬег, 1988. — № 4. Спустя несколько лет группой исследователей были предложены так называемые "отношения ХГ", где ХГ' = ХГХГ = "поп бпп поппа! Гопп*' (не первая нормальная форма). Что подразумевается под термином ХГз, — не совсем очевидно. Возможно, следующая интерпретация этого термина внесет некоторую ясность. Пусть пг — это ХГзотношение и пусть "атрибуз" А отношения пг принадлежит типу 7.
Тогда некоторый "кортеж" г "отношения" пг может содержать любое количество значений (возможно, даже нулевое) чатрибугап А и разные "кортежи" могут содержать разное число значений "атрибута" А'з. (В этом случае А называется атрибутом повторяющейся группы; см. ци- ГЗ Некоторые авторы отбрасывают данное определение и определяют Фге-отношение как произвольное отношение затя бы с однич атрибутам, причиняющим в качестве значений атно.
щения. Однако у нас есть свои причины не соглашаться с этич определением, поскольку фактически такое отношение будят записано в первой нормальной форме. 184 Часть 11 Реляционная модель таты из предыдущего излания этой книги в разделе 5.3 этой главы.) Обратите внимание на то, что "отношение" пг не нормализовано (оно не содержит ровно по одному значению каждого атрибута в каждом кортеже). В действительности пг вовсе не является отношением в контексте реляционной модели. Как бы то ни было, в данной работе рассматривается один из вариантов идеи ХЕ . В частности, автор определяет лля ХЕ- отношений исчисление и алгебру (см. главы б и 7) и доказывает нх эквивалентность. Он также ссылается на другие работы, посвященные этой теме. Ответы к некоторым упражнениям 5.1.
а) Очевидные изменения суммированы и даны ниже. заменяется на Обратите внимание, что переменная-отношение ТАВОТЕ (теперь уже ВЕНЧАН) должна иметь еше один атрибут (ЕЧК1Н0), значения которого указывают ее тип (базовая переменная-отношение или представление). Структура каталога будет выглядеть таким образом. КЕЬЧАК КЧ)ЧАМЕ )ЗЕСКЕЕ САВ)З КЧК1г))З АТТК1В()ТЕ КВАМЕ АТТКХАМЕ б) Нужна новая переменная-отношение каталога (ТХРЕ), содержащая элемент для каждого типа, а также новый атрибут (ТТРЕНАИЕ) в переменной-отношении АТТВ1ВОТЕ, представляющий тип каждого атрибута каждой переменной- отношения.
Структура каталога будет подобна следующей. ТУРЕ КЕЕЧАВ КЧХАМЕ )ЗЕСКЕЕ САК)З ВЧК1)ЧЭ АТТК1В1)ТЕ КЧХАМЕ АТТК)ЯАМЕ ТУРЕМАМЕ В качестве вспомогательного упражнения читатель мог бы, вероятно, учесть, что дальнейшее расширение каталога могло бы потребоваться для представления информации о первичных и внешних ключах. в) (АТТН1ВОТЕ НЕЕНЕ ТТРЕНАИЕ = НАИВ('ЕИР()')) (НЧНАИЕ) Здесь обратите внимание на вызов оператора выбора НАИВ (см, ответ к упр. 5.2). г) Если системой не поддерживаются типы, определенные пользователем, то очевидно, что невозможно написать запрос к каталогу относительно этих типов! Можно только написать запрос относительно атрибутов. Вообще говоря, ре- Глава 5.
Домены, отношения и базовые переменные-отношения 185 ТАВОТЕ СОВОИН ТАВНАИЕ СОЬСООНТ НОНСООНТ СОЬНАИЕ НЕ1ЛАН АТТЕ1ВОТЕ ЕЧНАИЕ 0ЕСВЕЕ САЕ01НА01ТТ (сокращенно — САВО) АТТВНАИЕ комендуется по возможности называть атрибуты именами соответствующих типов данных (даже если эти типы системе неизвестны) или хотя бы использовать имя типа как часть имени атрибута.
Если при определении базы данных вы придерживались подобных соглашений об именах, такой запрос атрибута, возможно, будет решением проблемы. 5.2. Очевидно, что дать исчерпывающий ответ на этот вопрос нельзя. Вот несколько дополнительных указаний. определен на домене В свою очередь, предполагается, что эти домены определены следующим образом.