Структурные свойства
В оригинальной модели было три основных компонента – структура, целостность и средства манипулирования, и я коротко опишу каждый из них. Но сразу прошу учесть, что все даваемые мной «определения» очень нестроги; я уточню их в последующих главах, когда это будет уместно.
Итак, начнем со структуры. Конечно, главным структурным свойством является само отношение, и, как всем известно, отношения принято изображать на бумаге в виде таблиц (пример на рис. 1.1 не нуждается в пояснениях). Отношения определены над типами (их называют так- же доменами). По существу, тип представляет собой концептуальное множество значений, которые могут принимать фактические атрибуты фактических отношений. Обращаясь к простой базе данных об от- делах и служащих, которая показана на рис. 1.1, мы можем выделить тип DNO («номера отделов»), представляющий все допустимые номера отделов, и тогда атрибут DNO в отношении DEPT и атрибут DNO в отношении EMP будут принимать значения из соответствующего ему концептуального множества. (Кстати, атрибуты не обязательно – хотя иногда это и разумно – называть так же, как соответствующий тип, и часто так не делают. Ниже мы увидим много контрпримеров.)
Как я уже сказал, таблицы, подобные представленной на рис. 1.1, изображают отношения, точнее n-арные отношения. N-арные отношения можно нарисовать в виде таблицы с n столбцами; столбцы будут соответствовать атрибутам отношения, а строки – кортежам. Здесь n – произвольное неотрицательное целое число. 1-арное отношение называют унарным, 2-арное – бинарным, 3-арное – тернарным и т. д.
Реляционная модель поддерживает также различные виды ключей. Начнем с того – и это крайне важно! – что в каждом отношении есть по меньшей мере один потенциальный ключ1. Потенциальный ключ – это просто уникальный идентификатор; иными словами, это комбинация атрибутов – часто, но не всегда, «комбинация» состоит всего из одного атрибута, – такая, что значения этой комбинации во всех кортежах от- ношения различны. Так, на рис. 1.1 у каждого отдела имеется уникальный номер отдела, а у каждого служащего – уникальный номер служащего, поэтому мы можем сказать, что {DNO} – потенциальный ключ отношения DEPT, а {ENO} – потенциальный ключ отношения EMP. Кстати, обратите внимание на фигурные скобки; повторю, что потенциальные ключи всегда являются комбинациями, или множествами, атрибутов – даже если конкретное множество состоит всего из одного атрибута, а множества на бумаге традиционно изображают в виде заключенного в фигурные скобки списка элементов, перечисленных через запятую.
Отступление
Здесь я впервые употребил термин список (разделенный запятыми)(commalist), который далее будет встречаться очень часто. Его можно определить следующим образом. Пусть xyz – некоторая синтаксическая конструкция (напри- мер, «имя атрибута»). Тогда список xyz означает последовательность из нуля или более элементов xyz, в котором каждая пара соседних элементов разделе- на запятой (дополнительно перед и после запятой может находиться один или несколько пробелов). Так, если A, B и C – имена атрибутов, то каждая из показанных ниже конструкций представляет собой список имен атрибутов:
A , B , C C , A , B A , C
B
Списком является и пустая последовательность имен атрибутов. Кроме того, если список заключен в фигурные скобки и, следовательно, обозначает множество, то (а) порядок следования элементов в списке не существенен (так как множества по определению неупорядочены) и (б) если элемент встречается более одного раза, то считается, что он встретился только один раз (так как множества не содержат дубликатов).
Далее, первичным ключом называется такой потенциальный ключ, который по каким-то причинам интерпретируется специальным образом. Если рассматриваемое отношение имеет только один потенциальный ключ, то его с равным успехом можно назвать первичным. Но если потенциальных ключей несколько, то обычно один из них выбирается в качестве первичного, то есть считается, что он в каком-то отношении «равнее других». Предположим, к примеру, что у каждого служащего имеется как уникальный номер, так и уникальное имя – пример, пожалуй, не слишком реалистичен, но вполне пригоден для иллюстрации, – тогда и {ENO}, и {ENAME} являются потенциальными ключами EMP. В этом случае мы можем назначить, например, {ENO} первичным ключом.
Обратите внимание: я сказал, что первичный ключ обычно выбирается. Обычно – но не обязательно. Если имеется всего один потенциальный ключ, то вопрос о выборе вообще не встает; но если таких ключей два или больше, то выбор одного из них в качестве первичного от дает произвольностью (по крайней мере, мне так кажется). Разумеется, бывают ситуации, когда нет веских оснований отдать предпочтение конкретному кандидату. В этой книге я, как правило, буду выбирать какой-то первичный ключ – и на рисунках, подобных рис. 1.1, обозначать составляющие первичный ключ атрибуты двойным подчеркиванием, – но хочу особо подчеркнуть, что с точки зрения реляционной теории важность представляют именно потенциальные, а не первичные ключи. Отчасти по этой причине я в дальнейшем под словом ключ, без уточнения, буду понимать любой потенциальный ключ. (Если вам интересно, то скажу, что «специальная интерпретация» первичных ключей по сравнению с потенциальными носит в основном синтаксический характер; она не является фундаментальной особенностью и вообще не очень существенна.)
Наконец, внешним ключом называется множество атрибутов одного от- ношения, значения которых должны совпадать со значениями некоторого потенциального ключа в каком-то другом (или в том же самом) от- ношении. Так, на рис. 1.1 {DNO} – внешний ключ в отношении EMP, значения которого должны совпадать со значениями потенциального ключа {DNO} в отношении DEPT (что я и попытался отразить на рисунке по- средством соответственно надписанной стрелочки). Говоря «должны со- впадать», я имею в виду, что если отношение EMP содержит, к примеру, кортеж, в котором DNO имеет значение D2, то и DEPT должно содержать кортеж, в котором DNO имеет значение D2, – иначе в отношении
EMP окажется служащий, который работает в несуществующем отделе, и база данных перестанет быть «верной моделью реальности».
Дата добавления: 2017-01-17; просмотров: 814;