Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Posibnik.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
5.62 Mб
Скачать

Альтернативная терминология Терминология, используемая в реляционной модели, порой может привести к путанице, поскольку помимо предложенных двух наборов терминов существует еще один – третий.

Отношение в нем называется файлом, кортежизаписями, а атрибуты полями.

Эта терминология основана на том факте, что физически реляционная СУБД может хранить каждое отношение в отдельном файле. В табл. 1.2 показаны соответствия, существующее между тремя упомянутыми выше группами терминов.

Таблица 1.2. Альтернативные варианты терминов в реляционной модели

Официальные термины

Альтернативный

вариант 1

Альтернативный

вариант 2

Отношение

Таблица

Файл

Кортеж

Строка

Запись

Атрибут

Столбец

Поле

Отношения и их свойства в базе данных

Реляционная схема – это имя отношения, за которым следует множество пар атрибутов и доменов.

Например, для атрибутов А1, А2, .... Аn с доменами D1, D2 .... Dn реляционной схемой будет множество {А1:D1...An:Dn}.

Отношение R, заданное реляционной схемой S, является множеством отображений имен атрибутов на соответствующие им домены, т.е. отношение R является множеством таких n-арных кортежей.

Каждый элемент n-арного кортежа состоит из атрибута и значения этого атрибута.

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

Таким образом, в реляционной модели отношение можно представить как произвольное подмножество декартового произведения, тогда как таблица – это всего лишь физическое представление такого отношения.

В примере, показанном на рис. 1.4. отношение Студент имеет атрибуты Номер зачетки, Номер группы, Фамилия, Средний бал с соответствующими им доменами. Отношение Студент представляет собой произвольное подмножество декартового произведения доменов или произвольное множество 4-арных кортежей, в которых первым идет элемент из домена НОМЕР_ЗАЧЕТКИ , вторым - элемент из домена НОМЕР_ГРУППЫ и т.д. Например, один из 4-арных кортежей может иметь такой вид:

{(ТЗ3106, ТЗ31, Иванов, 5)}

Этот же кортеж можно записать в более корректной форме:

{(Номер зачетки: ‘ТЗ3106’, Номер группы: ‘ТЗ31’, Фамилия: ‘Иванов’, Средний бал: ‘5’)}

Таблица Студент представляет собой удобный способ записи всех 4-арных кортежей образующих отношение в некоторый заданный момент времени.

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

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

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

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

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

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

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

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

Отношения не могут содержать повторяющихся групп.

Рассмотрим отношение Студент (рис. 1.4.). Имена столбцов, указанные в их верхней строке, соответствуют именам атрибутов отношения. Значения атрибута Номер зачетки берутся из домена НОМЕР_ЗАЧЕТКИ, не допускается размещение в этом столбце иных значений, например среднего балла.

Столбцы можно менять местами при условии, что имя атрибута перемещается вместе с его значениями.

Отношение не может содержать кортежей-дубликатов.

Например, строка (‘ТЗ3106’, ‘ТЗ31’, ‘Иванов’, ‘5’) может быть представлена в отношении только один раз.

При необходимости строки можно менять местами произвольным образом (например, переместить всю строку, которая относится к студенту 'Иванов' на место строки студента 'Сидоров'), само отношение при этом останется прежним.

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

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

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

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

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

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

Реляционные ключи

Необходимо иметь возможность уникальной идентификации каждого отдельного кортежа отношения по значениям его атрибутов.

Суперкпюч (superkey) атрибут или множество атрибутов, которое единственным образом идентифицирует кортеж данного отношения.

Рассмотрим отношение Студент, показанное на рис. 1.4. Конкретное значение атрибута Номер группы не может однозначно определить студента, поскольку в группе учится некоторое количество студентов. Данный атрибут не может быть выбран в качестве суперключа, с другой стороны, поскольку в учебном проекте для каждого студента задается номер его зачетки, каждое значение этого номера (атрибут Номер зачетки) может определять не больше одного кортежа (в отношении Студент), а потому Номер зачетки является суперключом как отдельно, так и в сочетании с другими атрибутами.

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

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

Таким образом, потенциальным ключом для отношения Студент является Номер зачетки студента, однозначно его определяющий.

Потенциальный ключ К для данного отношения R обладает двумя свойствами:

  • Уникальность. В каждом кортеже отношения R значение ключа К единственным образом идентифицируют этот кортеж.

  • Неприводимость. Никакое допустимое подмножество ключа К не обладает свойством уникальности.

Отношение может иметь несколько потенциальных ключей.

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

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

Тот факт, что в некоторый момент времени не существует значений-дубликатов, совсем не означает, что их не может быть вообще.

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

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

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

Первичный ключ это потенциальный ключ, который выбран для уникальной идентификации кортежей внутри отношения.

Поскольку отношение не содержит кортежей-дубликатов, всегда можно уникальным образом идентифицировать каждую его строку.

Это значит, что отношение всегда имеет первичный ключ.

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

Потенциальные ключи, которые не выбраны в качестве первичного ключа, называются альтернативными ключами.

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

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

Рассмотрим пример. Пусть информация о студентах представлена отношением Студент, включающим столбцы с атрибутами Номер зачетки, Номер группы, Фамилия, Код предмета, который изучает студент. Аналогично, информация о предметах может быть представлена отношением Предмет, включающим столбцы с атрибутами Код предмета, Название предмета, Лекционные часы, Практические часы. На рис. 1.5. показаны примеры отношений Студент и Предмет.

Студент

Номер зачетки

Номер группы

Фамилия

Код предмета

ТЗ3106

ТЗ31

Иванов

101

ТЗ3217

ТЗ32

Петров

102

ТМ3115

ТМ31

Пушников

101

ТМ3220

ТМ32

Сидоров

103

Предмет

Код

предмета

Название

предмета

Лекционные

часы

Практические

часы

101

Физика

18

26

102

Математика

25

30

103

Химия

15

20

Рис. 1.5. Пример отношений Студент и Предмет.

Атрибут Код предмета намеренно включен в отношения Студент и Предмет для установления связи между сведениями о студентах и предметах. В отношении Предмет атрибут Код предмета является первичным ключом, а в отношении Студент он введен для определения изучения студентами предметов. В отношении Студент атрибут Код предмета является внешним ключом. В таком случае говорят, что атрибут Код предмета в отношении Студент ссылается на первичный ключ, т.е. на атрибут Код предмета в базовом отношении Предмет.

Базовое отношение иногда называют целевым отношением.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]