Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
!!!ГОСы информатика и вычислительная техника.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.93 Mб
Скачать
  1. Понятие отношения. Условия, при которых таблицу можно считать отношением.

Отношения

Для понимания истинного смысла термина “отношение” рассмотрим несколько ма­тематических понятий. Допустим, у нас есть два множества D1 и D2 , где D1 = {2,4} и D2 = {1,3,5}. Декартовым произведением этих двух множеств (обозначается как D1 x D2) называется набор из всех возможных пар, в которых первым идет элемент множест­ва D1, а вторым – элемент множества D2. Альтернативный способ выражения этого произведения заключается в поиске всех комбинаций элементов, в которых первым идет элемент множества D1, а вторым – элемент множества D2. В данном примере по­лучим следующий результат:

D1 х D2 = {(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 D1, y D2, у = 1}.

На основе тех же множеств можно сформировать другое отношение S, в котором первый элемент всегда должен быть в два раза больше второго. Тогда определение отношения S можно сформулировать так:

S = {(x,y) | x D1, y D2, х = 2у}.

В данном примере только одна возможная пара данного декартового произведения соответствует этому условию: S = {(2,1)}.

Понятие отношения можно легко распространить и на три множества. Пусть име­ется три множества: D1, D2 и D3. Декартово произведение D1 x D2 x D3 этих трех мно­жеств является набором, состоящим из всех возможных троек элементов, в которых первым идет элемент множества D1, вторым – элемент множества D2, а третьим – элемент множества D3. Любое подмножество этого декартового произведения является отношением. Рассмотрим следующий пример трех множеств и вычислим их декарто­во произведение:

D1 = {(1,3)}, D2= = {(2,4)}, D3 = {(5,6)},

D1 х D2 x D3 = {(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 множеств D1, D2, .., Dn. Декартово произведение для этих n. множеств можно определить следующим образом:

D1 x D2 x….x Dn = {(d1, d2,..., dn) | d1D1, d2D2,...,dnDn.

Обычно это выражение записывают в следующем символическом виде: .

Любое множество n-арных кортежей этого декартового произведения является отношением n множеств. Обратите внимание на то, что для определения этих отноше­ний необходимо указать множества, или домены, из которых выбираются значения.

Используя указанные концепции в контексте базы данных, получим следую­щее определение реляционной схемы. Реляционная схема – имя отношения, за которым следует множество пар имен атрибутов и доменов. Например, для атрибутов А1, А2, ..., Аn с доменами D1, D2, ..., Dn реляционной схе­мой будет множество {A1 : D1, A2 : D2, ... , An : Dn}. Отношение R, заданное реляционной схемой S, является множеством отображений имен атрибутов на соответствующие им домены. Таким образом, отношение R является множеством таких n-арных кортежей { A1 : d1, A2 : d2, ... , An : dn }, где d1D1, d2D2,..., dnDn.

Каждый элемент n-арного кортежа состоит из атрибута и значения этого атрибу­та. Обычно при записи отношения в виде таблицы имена атрибутов перечисляются в заголовках столбцов, а кортежи образуют строки формата (d1, d2, ..., 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-арных корте­жей, образующих отношение в некоторый заданный момент времени. Это замечание объясняет, почему строки таблицы в реляционной модели называются кортежами.

Фундаментальные свойства отношений

Отношение обладает следующими характеристиками:

• оно имеет имя, которое отличается от имен всех других отношений;

• каждая ячейка отношения содержит только атомарное (неделимое) значение;

• каждый атрибут имеет уникальное имя;

• значения атрибута берутся из одного и того же домена;

• порядок следования атрибутов не имеет никакого значения;

• каждый кортеж является уникальным, т.е. дубликатов кортежей быть не может;

• теоретически порядок следования кортежей в отношении не имеет никако­го значения. (Однако практически этот порядок может существенно по­влиять на эффективность доступа к ним.)

Для иллюстрации смысла этих ограничений рассмотрим отношение Branch (см. табл. 1). Поскольку каждая ячейка должна содержать только одно значение, то не допускается хранение в одной и той же ячейке двух номеров те­лефона одного и того же отделения компании. Иначе говоря, отношения не могут со­держать повторяющихся групп. Об отношении, которое обладает таким свойством, говорят, что оно нормализовано, или находится в первой нормальной форме. (Более подробно нормальные формы рассматриваются ниже.)

Имена столбцов, указанные в их верхней строке, соответствуют именам атрибутов отношения. Значения атрибута Bno берутся из домена BRANCH_NUMBERS – не допускает­ся размещение в этом столбце иных значений, например почтового индекса. Столбцы можно менять местами при условии, что имя атрибута перемещается вместе с его значениями. Таблица все еще будет представлять то же отношение, если атрибут Tel_No расположить в ней перед атрибутом Postcode, хотя для лучшей читабельности ра­зумнее было бы располагать отдельные части адреса поблизости.

Отношение не может содержать кортежей-дубликатов. Например, строка ( 23, Москва, 111111, Победы, 1231112, 1231113) может быть представлена в отношении только один раз. При необходимости строки можно менять местами произвольным образом (например, переместить строку отделения ‘23’ на место строки отделения ‘24’), само отношение при этом останется прежним.

Большая часть свойств отношений происходит от свойств математических отношений реляционной алгебры, рассмотренных выше:

• Поскольку отношение является множеством, то порядок элементов не имеет значения. Следовательно, порядок кортежей в отношении несущественен.

• В множестве нет повторяющихся элементов. Аналогично, отношение не может содержать кортежей-дубликатов.

• Как и при вычислении декартового произведения множеств с простыми одно­значными элементами (например, целочисленными значениями), каждый элемент в каждом кортеже должен иметь единственное значение. Однако матема­тическое отношение не нуждается в нормализации. Кодд предложил запре­тить наличие повторяющихся групп с целью упрощения реляционной мо­дели данных.

• В математическом отношении порядок следования элементов в кортеже имеет значение. Например, допустимая пара значений (1, 2) совершенно отлична от допустимой пары (2, 1). Это утверждение неверно для отношений в реляционной мо­дели, где специально оговаривается, что порядок атрибутов несущественен. Дело в том, что заголовки столбцов однозначно определяют, к какому именно атрибуту от­носится данное значение. Следствием этого факта является положение о том, что по­рядок следования заголовков столбцов в заголовке отношения несущественен. Одна­ко, если структура отношения уже определена, то порядок элементов в кортежах те­ла отношения должен соответствовать порядку имен атрибутов.