Программирование >>  Хронологические базы данных 

1 ... 43 44 45 [ 46 ] 47 48 49 ... 348


Замечание. Действительно, понятие следование иногда необходимо для стыковки базы данных с базовым языком программирования, например с языком С или COBOL (см. обсуждение курсоров SQL и предложения ORDER BY в главе 4). Однако эта необходимость привносится не реляционной моделью, а базовым языком. В сущности, базовый язык требует, чтобы неупорядоченные наборы были преобразованы в упорядоченные списки или массивы (кортежей), и тогда такая операция, как выбор следующего кортежа, будет иметь смысл. Обратите также внимание на то, что эти средства составляют часть исключительно программного интерфейса приложений и конечному пользователю не предъявляются.

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

Свойство 3, Отсутствие упорядочения атрибутов (слева направо)

Данное свойство следует из того факта, что заголовок отношения также определен как множество (атрибутов). Например, на рис. 5.1 атрибуты отношения S могли быть представлены, скажем, в таком порядке: SNAME, CITY, STATUS, St. Это было бы то же самое отношение, по крайней мере с точки зрения реляционной модели. Поэтому не существует первого атрибута или последнего атрибута (и т.п.), не существует следующего атрибута (т.е. нет понятия следование ). Иначе говоря, атрибут всегда определяется по имени, а не по расположению. Это позволяет избежать некоторых ошибок и неясностей при написании программ. Например, не существует (или не должно существовать) возможности возникновения сбоя системы из-за наложения одного атрибута на другой. Эта ситуация отличается от ситуации во многих системах программирования, где часто можно использовать физическую смежность логически дискретных элементов, как умышленно, так и случайно, причем многими, но одинаково губительными способами.

Заметим, что вопрос, связанный с порядком атрибутов, - это еще одна область, в которой конкретное представление отношения в виде таблицы предполагает наличие неверных фактов: столбцы таблицы упорядочены слева направо, а атрибуты отношения - нет.

Свойство 4, Каждый кортеж содержит ровно одно значение для каждого атрибута

Последнее свойство непосредственно следует из определения кортежа: кортеж является множеством из п компонентов или упорядоченных пар вида A\:v (/ = 1, 2, п). Отношение, удовлетворяющее этому свойству, называется нормализованным или представленным в первой нормальной форме (1НФ).

Замечание. Данное свойство может показаться совершенно очевидным, каковым оно на самом деле и является, особенно если учесть (как вы, возможно, уже догадались), что все отношения нормализованы по определению. Тем не менее у этого свойства есть несколько важных следствий, о которых можно узнать из аннотации к статье [5.10], из главы 18 (обсуждение вопроса об отсутствующих данных), а также из следующего раздела.

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



Атрибуты, значениями которых являются отношения

в разделе 5.2 говорилось, что характер значений, составляющих тип данных, может быть произвольным. В частности, возможно существование типа, значениями которого будут отношения, и, следовательно, существование отношения с атрибутами, значениями которых также являются отношения. Другими словами, возможно существование отношений, в которые вложены другие отношения. Рассмотрим, например, отношение S SP, показанное на рис. 5.3. Здесь значением атрибута PQ является отношение. Заметьте, в частности, что пустому множеству деталей, поставляемых поставщиком с номером S5, соответствует пустое множество (а точнее, пустое отношение).

S SP

SNAME

STATUS

CITY

Smith

London

PI P2

300 200

100 1

Jones

Paris

PI P2

300 200

Adams

Athens

Puc. 5.3. Отношение с атрибутом, значениями которого являются отношения

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

Обратите внимание на то, что все значения столбцов атомарные... Это значит, что на каждом месте в столбце или строке всегда находится ровно одно значение, а не группа из нескольких значений. Поэтому, например, в таблице ЕМР мы имеем

DEPT#

EMP#

Dl Dl

El E2

вместо

DEPT#

EMP#

E1,E2



Столбец EMPi второй таблицы является примером так называемой повторяющейся группы. Повторяющаяся группа- это столбец, ...содержащий по нескольку значений в каждой строке (в общем случае - различное количество значений в разных строках). В реляционных базах данных повторяющиеся группы недопустимы, поэтому использование второго варианта таблицы в рамках реляционной модели запрещено. Вот еще одна цитата из той же книги. [Домены] состоят только из атомарных значений... [Поэтому] отнощения не содержат повторяющихся фупп. Отношение, отвечающее этим условиям, называется нормапизованным или, что равносильно, отношением в первой нормальной форме... Под термином отнощение в контексте реляционной модели всегда будет подразумеваться нормализованное отношение. Однако, по крайней мере в целом, эти высказывания неверны. Они являются следствием ошибочного понимания автором истинной природы типов и предикатов. По причинам, которые будут рассмотрены в главе 11 (раздел 11.6), маловероятно, чтобы эти заблуждения привели к серьезным ошибкам на практике. Тем не менее мы приносим свои извинения всем, кто был введен нами в заблуждение. Во всяком случае в предыдущем издании утверждение о том, что в реляционной модели все отношения всегда нормализованы, соответствует действительности. Дальнейшее обсуждение этого вопроса будет продолжено в главе 11.

Отношения и их интерпретация

в заключение этого раздела напомним, что, как сказано в разделе 3.4 главы 3, заголовок отношения можно считать предикатом, а любой кортеж - истинным высказыванием, полученным из этого предиката в результате подстановки значения соответствующего типа вместо параметров (или местодержателей) в этом предикате ( конкретизация предиката ). В действительности допущение замкнутости мира (известное также как интерпретация замкнутости мира) гласит: если какой-то другой допустимый кортеж (т.е. согласованный с заголовком отношения) не содержится в теле отнощения, можно предположить, что соответствующее ему утверждение ложно. Другими словами, тело отношения содержит все такие и только такие кортежи, которым соответствуют истинные утверждения.

5.4. Переменные-отношения

Как уже говорилось в главе 3, существует две разновидности переменных-отношений (relation variable или кратко - relvar): базовые переменные-отношения и представления (которые иногда называют реальными и виртуальными переменными-отношениями соответственно). В этом разделе рассматриваются только базовые переменные-отношения. Представления будут обсуждаться в главе 9.

Определение базовых переменных-отношений

Базовые переменные-отношения определяются следующим образом.

VAR <имя переменной-отношения > BASE <тип отношение

<перечень определений потенциальных ключей> [ <перечень определений внешних ключей> ] ;



1 ... 43 44 45 [ 46 ] 47 48 49 ... 348

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика