Элементами отношения являются кортежи, или строки, таблицы. Кортеж – это строка отношения. В отношении Branch каждая строка содержит 6 значений, по одному для каждого атрибута. Кортежи могут располагаться в любом порядке, при этом отношение будет оставаться тем же самым, а значит, и иметь тот же смысл.
Описание структуры отношения вместе со спецификацией доменов и любыми другими ограничениями возможных значений атрибутов иногда называют его заголовком (или содержанием (intension)). Обычно оно является фиксированным, до тех пор пока смысл отношения не изменяется за счет добавления в него дополнительных атрибутов. Кортежи называются расширением (extension), состоянием (state) или телом отношения, которое постоянно меняется.
Степень отношения определяется количеством атрибутов, которое оно содержит.
Отношение Branch (см. табл. 1) имеет шесть атрибутов и, следовательно, его степень равна шести. Это значит, что каждая строка таблицы является 6-арным кортежем, т.е. кортежем, содержащим семь значений. Отношение только с одним атрибутом имеет степень 1 и называется унарным (unary) отношением (или 1-арным кортежем). Отношение с двумя атрибутами называется бинарным (binary), отношение с тремя атрибутами – тернарным (ternary), а для отношений с большим количеством атрибутов используется термин n - арный (n -ary). Определение степени отношения является частью заголовка отношения.
Количество содержащихся в отношении кортежей называетсякардинальностью отношения. Эта характеристика меняется при каждом добавлении или удалении кортежей. Кардинальность является свойством тела отношения и определяется текущим состоянием отношения в произвольно взятый момент. И, наконец, мы подошли к определению самой реляционной базы данных.
Реляционная база данных – набор нормализованных отношений. Реляционная база данных состоит из отношений, структура которых определяется с помощью особых методов, называемых нормализацией (normalization).
Альтернативная терминология. Терминология, используемая в реляционной модели, порой может привести к путанице, поскольку помимо предложенных терминов существует еще один. Отношение в нем называется файлом (file), кортежи – записями (records), а атрибуты – полями (fields). Эта терминология основана на том факте, что физически СУБД может хранить каждое отношение в отдельном файле. В табл. 3 показаны соответствия, существующее между тремя упомянутыми выше группами терминов.
Таблица 3
Альтернативные варианты терминов в реляционной модели
Отношения
Для понимания истинного смысла термина“отношение” рассмотрим несколько математических понятий. Допустим, у нас есть два множества D 1и D 2, где D 1 = {2,4} и D 2 = {1,3,5}. Декартовым произведением этих двух множеств (обозначается как D 1 x D 2) называется набор из всех возможных пар, в которых первым идет элемент множества D 1, а вторым – элемент множества D 2. Альтернативный способ выражения этого произведения заключается в поиске всех комбинаций элементов, в которых первым идет элемент множества D 1,а вторым – элемент множества D 2. В данном примере получим следующий результат:
D 1 х D 2= {(2,1),(2,3),(2,5),(4,1),(4,3),(4,5)}.
Любое подмножество этого декартового произведения является отношением. Например, в нем можно выделить отношение R:
R = ((2,1),(4,1)}.
Для определения тех возможных пар, которые будут входить в отношение, можно задать некоторые условия их выборки. Например, если обратить внимание на то, что отношение R содержит все возможные пары, в которых второй элемент равен 1, то определение отношения R можно сформулировать следующим образом:
R = {(x,y) | x D 1, y D 2, у = 1}.
На основе тех же множеств можно сформировать другое отношение S, в котором первый элемент всегда должен быть в два раза больше второго. Тогда определение отношения S можно сформулировать так:
S = {(x, y) | x D 1, y D 2, х = 2 у }.
В данном примере только одна возможная пара данного декартового произведения соответствует этому условию: S = {(2,1)}.
Понятие отношения можно легко распространить и на три множества. Пусть имеется три множества: D 1, D 2и D 3. Декартово произведение D 1 x D 2 x D 3этих трех множеств является набором, состоящим из всех возможных троек элементов, в которых первым идет элемент множества D 1, вторым – элемент множества D 2, а третьим – элемент множества D 3. Любое подмножество этого декартового произведения является отношением. Рассмотрим следующий пример трех множеств и вычислим их декартово произведение:
D 1= {(1,3)}, D 2= = {(2,4)}, D 3= {(5,6)},
D 1х D 2x D 3= {(1,2,5), (1,2,6), (1,4,5), (1,4,6), (3,2,5), (3,2,6), (3,4,5), (3,4,6)}.
Любое подмножество из приведенных выше троек элементов является отношением. Увеличивая количество множеств, можно дать обобщенное определение отношения на n доменах. Пусть имеется n множеств D 1, D 2,.., Dn. Декартово произведение для этих n. множеств можно определить следующим образом:
D 1x D 2 x….x Dn = {(d 1, d 2,..., dn) | d 1 D 1, d 2 D 2,..., dnDn.
Обычно это выражение записывают в следующем символическом виде:.
Любое множество n -арных кортежей этого декартового произведения является отношением n множеств. Обратите внимание на то, что для определения этих отношений необходимо указать множества, илидомены, из которых выбираются значения.
Используя указанные концепции в контексте базы данных, получим следующее определение реляционной схемы. Реляционная схема – имя отношения, за которым следует множество пар имен атрибутов и доменов. Например, для атрибутов А 1, А 2,..., Аn с доменами D 1, D 2,..., Dn реляционной схемой будет множество { A 1: D 1, A 2: D 2,..., An: Dn }. Отношение R, заданное реляционной схемой S, является множеством отображений имен атрибутов на соответствующие им домены. Таким образом, отношение R является множеством таких n -арных кортежей { A 1: d 1, A 2: d 2,..., An: dn }, где d 1 D 1, d 2 D 2,..., dnDn.
Каждый элемент n -арного кортежа состоит из атрибута и значения этого атрибута. Обычно при записи отношения в виде таблицы имена атрибутов перечисляются в заголовках столбцов, а кортежи образуют строки формата (d 1, d 2,..., dn), где каждое значение берется из соответствующего домена. Таким образом, в реляционной модели отношение можно представить как произвольное подмножество декартового произведения доменов атрибутов, тогда как таблица – это всего лишь физическое представление такого отношения.
В примере, рассмотренном ранее, отношение Branch имеет атрибуты Bno, Street, City, Postcode, Tel_No и Fax_No с соответствующими им доменами. Отношение Branch представляет собой произвольное подмножество декартового произведения доменов или произвольное множество 6-арных кортежей, в которых первым идет элемент из домена BRANCH_NUMBER, вторым – элемент из домена STREET_NAME и т.д. Например, один из 6-арных кортежей может иметь такой вид:
{(23, Москва, 111111, Победы, 1231112, 1231113)}.
Этот же кортеж можно записать в более корректной форме:
{(Bno: ‘23’, City: ‘Москва’, Postcode: ‘111111’, Street: ‘Победы’, Tel_№: ‘1231112’, Fax _№: ‘1231113’)}
Таблица Branch представляет собой удобный способ записи всех 6-арных кортежей, образующих отношение в некоторый заданный момент времени. Это замечание объясняет, почему строки таблицы в реляционной модели называются кортежами.