Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел-2(СУБД).doc
Скачиваний:
18
Добавлен:
01.09.2019
Размер:
981.5 Кб
Скачать

Отношение

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

Обычное житейское представление отношения – таблица, заголовком которой является схема отношения, столбцами – атрибуты отношения, а строками – кортежи отношения-экземпляра; в этом случае имена атрибутов именуют столбцы этой таблицы. Поэтому иногда говорят «столбец таблицы», имея в виду «атрибут отношения». Этой терминологии придерживаются в большинстве коммерческих реляционных СУБД. В табл. 2.1 представлен обзор некоторых реляционных терминов и даны неформальные эквиваленты (соответствия) этим терминам.

Как видно из табл. 2.1, основные структурные понятия реляционной модели данных (если не считать понятия домена) имеют очень простую интуитивную интерпретацию, хотя в теории реляционных БД все они определяются абсолютно формально и точно.

Таблица 2.1

Неформальные определения реляционных объектов данных

Формальный реляционный термин

Неформальный эквивалент

Отношение

Таблица

Кортеж

Строка или запись таблицы

Кардинальное число

Количество строк

Атрибут

Столбец или поле

Степень (арность)

Количество столбцов

Первичный ключ

Уникальный идентификатор

Домен

Общая совокупность допустимых значений данных в столбце

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

  • один к одному;

  • один ко многим;

  • многие ко многим.

Связь «один к одному» предполагает, что в каждый момент времени каждому элементу (кортежу) отношения А соответствует 0 или 1 элементов (кортежей) отношения В. Например, за каждым работником предприятия закреплен один и только один табельный номер (рис. 2.14, а).

Связь «один ко многим» состоит в том, что в каждый момент времени каждому элементу (кортежу) отношения А соответствует несколько элементов (кортежей) отношения В (рис. 2.14, б). В качестве примера можно привести связь между отношениями «Цех» и «Технологический агрегат»: в одном цехе расположено несколько технологических агрегатов, каждый агрегат установлен только в одном цехе.

Связь «многие ко многим» предполагает, что в каждый момент времени множеству элементов отношения А соответствует множество элементов отношения В. К сожалению, этот тип связи в реляционных СУБД непосредственно не поддерживается. На рис. 2.14, в приведен пример такого типа связи для отношений «Изделие» и «Технологическая операция»: каждое изделие проходит множество технологических операций, в то же время одна технологическая операция выполняется для множества изделий.