|
Программирование >> Хронологические базы данных
4. Как сказано в определении, значение п, задающее количество атрибутов некоторого отношения, называется его степенью (иногда используется термин арность). В последнем случае отношение степени 1 называется унарным, степени 2 - бинарным, степени 3 - тернарным, степени п - -арным. Таким образом, реляционная модель в общем случае имеет дело с -арными отношениями, где п - произвольное натуральное число. 5. Иногда вместо термина кортеж используется термин п-кортеж (например 4-кортеж, 5-кортеж и т.д.), однако чаще всего префикс и- опускается. 6. Когда мы говорим, что Н является заголовком отношения г, то, если быть более точным, это означает, что отношение г является отношением типа RELATION{H} (имя этого типа именно RELATION{Н}). Дальнейшее обсуждение данного вопроса будет продолжено в разделе 5.4. В качестве примера рассмотрим представленную на рис. 5.1 таблицу (в этом случае мы умышленно не называем ее отношением), чтобы проверить, насколько она соответствует данному выше определению. В этой таблице есть четыре основных типа, а именно: тип номеров поставщиков (SI), тип имен (NAME), тип значений статуса (STATUS) и тип названий городов (CITY). Замечание. Изображая отношение как таблицу на листе бумаги, мы обычно не заботимся о том, чтобы показать лежащие в основе типы (как в главе 3); но следует понимать, что, по крайней мере концептуально, они всегда есть. В таблице действительно есть две части- строка имен столбцов и некоторое множество строк данных. Рассмотрим вначале строку имен (или заголовков) столбцов. ( S#, SNAME, STATUS, CITY ) Эта строка действительно представляет собой набор упорядоченных пар. {Si : S# SNAME : NAME , STATUS : STATUS , CITY : CITY } Первый компонент каждой пары является именем атрибута, а второй - соответствующим именем типа. Поэтому можно согласиться с тем, что строка заголовков столбцов действительно представляет собой заголовок в смысле приведенного определения. Замечание. Как уже отмечалось, на практике заголовок отношения обычно рассматривают как заголовок, состоящий из набора имен атрибутов (т.е. имена типов часто опускаются), за исключением случаев, когда очень важна точность. Хотя, наверное, эта практика несколько небрежна, она удобна, и мы часто будем ей следовать. Что касается остальной части таблицы, то это, конечно, множество, а именно - множество строк данных. Давайте сконцентрируем внимание на какой-нибудь одной строке, например на следующей. ( S1, Smith, 20, London ) Эта строка в действительности представляет собой множество упорядоченных пар. { SI : S# ( SI ) SNAME : NAME ( Smith ) , STATUS : 20 , CITY : London } Первый компонент каждой пары - это имя атрибута, а второй компонент - соответствующее значение атрибута. Часто в неформальном описании имена атрибутов опускают, поскольку мы знаем, что каждое отдельное значение в таблице в действительности является значением того атрибута, имя которого указано в заголовке соответствующего столбца. Кроме того, известно, что это значение принадлежит типу, положенному в основу данного атрибута. Например, значение S1 (точнее, S#{ S1))- это значение атрибута S# и оно взято из соответствующего типа, а именно - из типа номера поставщика (который также называется S#). Таким образом, можно согласиться, что каждая строка представляет собой некоторый кортеж в смысле данного выше определения. Из всего сказанного можно сделать вывод о том, что таблица S на рис. 5.1 может рассматриваться как изображение отношения в смысле данного выше определения, если условиться, как правильно читать такое изображение (т.е. если будут определены правила интерпретации таких изображений). Иначе говоря, необходимо условиться, что есть некоторые типы, лежащие в основе; каждый столбец соответствует в точности одному из этих типов; каждая строка представляет кортеж; каждое значение атрибута принадлежит соответствующему типу и т.д. Если принять все эти правила интерпретации , тогда и только тогда можно будет говорить, что таблица - это допустимое изображение отношения. Теперь можно с уверенностью сказать, что отношение и таблица- это в действительности не одно и то же (хотя в предыдущих главах мы делали вид, что не знаем этого). Отношение - это некоторый абстрактный вид объекта, соответствующий данному ранее определению, а таблица - это конкретное изображение (обычно на бумаге) данного абстрактного объекта. Повторим, что это не одно и то же. Конечно, они очень близки... и обычно, по крайней мере в неформальном контексте, их отождествляют, что вполне приемлемо. Но, если говорить более формально и более точно (а сейчас мы, конечно, хотим быть более точными), следует признать, что эти два понятия не являются идентичными. Замечание. Если у вас возникли затруднения с пониманием идеи некоторых различий между отношением и таблицей, вам поможет следующее рассуждение. Прежде всего, одним из неоспоримых преимуществ реляционной модели является то, что ее основной абстрактный объект (т.е. отношение) имеет такое простое представление на бумаге (представление в виде таблицы). Именно оно делает реляционные системы простыми в использовании и простыми для понимания, а также упрощает понимание поведения реляционных систем. Однако, к сожалению, табличное представление предполагает некоторые неверные факты. К примеру, оно явно предполагает, что строки таблицы (т.е. кортежи отношения) расположены в определенном порядке сверху вниз, хотя это неверно. Дальнейшее обсуждение этого вопроса приводится в следующем разделе. Свойства отношений Отношения обладают определенными свойствами, причем все они очень важны и вытекают непосредственно из приведенного выше определения отношения. Сначала вкратце перечислим эти свойства, а затем рассмотрим каждое из них более подробно. Итак, отношения обладают следующими свойствами: в них нет одинаковых кортежей; кортежи отношения не имеют упорядоченности в направлении сверху вниз; атрибуты в кортежах не упорядочены слева направо; каждый кортеж содержит ровно одно значение для каждого атрибута. Свойство 1. Отсутствие одинаковых кортежей Данное свойство следует из того факта, что тело отношения - это математическое множество (кортежей), а в математике множества по определению не содержат одинаковых элементов. Замечание. На самом деле совершенно очевидно, что понятие одинаковые кортежи просто бессмысленно. Рассмотрим, например, отношение с атрибутами S# и CITY (имеется в виду, что поставщик с номером S# находится в городе CITY). Допустим, что в этом отношении есть кортеж, отображающий тот истинный факт , что поставщик с номером S1 находится в городе London. Далее, если в отношении есть второй такой же кортеж (допустим, что это возможно), то он также отображает данный истинный факт . Однако, если истинное утверждение повторить два раза, более истинным оно не станет. Между прочим, первое свойство служит хорошей иллюстрацией того факта, что отношение и таблица - это не одно и то же, поскольку таблица (в общем случае) может содержать одинаковые строки (при отсутствии правил, запрещающих это), в то время как отношение не может содержать одинаковых кортежей в принципе. (Суть в том, что отношение , содержащее одинаковые кортежи, по определению не будет отношением!) К большому сожалению, стандарт языка SQL допускает присутствие в таблицах одинаковых строк. Здесь было бы неуместным обсуждать все причины того, почему наличие одинаковых строк является ошибкой (см. развернутое обсуждение этого вопроса в [5.3], [5.6]). Для достижения наших целей достаточно остановиться на том, что реляционная модель просто не допускает наличия одинаковых строк. Здесь и далее в этой книге будет предполагаться, что одинаковые строки отсутствуют. (Это замечание касается, в основном, языка SQL. При рассмотрении самой реляционной модели, конечно, никаких предположений делать не нужно.) Свойство 2, Отсутствие упорядочения кортежей (сверху вниз) Данное свойство также следует из того, что тело отношения - это математическое множество, а простые множества в математике не упорядочены. К примеру, на рис. 5.1 кортежи отношения S могли бы располагаться в противоположном порядке, но оно при этом оставалось бы тем же самым отношением. Поэтому в отношении нет 5-, 97- или 1-го кортежа, т.е. нет понятий позиционной адресации и следования. В статье [5.6], которая уже упоминалась в связи со свойством отсутствия одинаковых кортежей, показано, почему свойство неупорядоченности кортежей также имеет важное значение (на самом деле эти свойства взаимосвязаны).
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |