Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
17-06-2015_23-01-11 / Учебное пособие ИОБД_2013.doc
Скачиваний:
188
Добавлен:
15.02.2016
Размер:
2.9 Mб
Скачать

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

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

Множество состоит из элементов и определяется своими элементами. Существенными при этом являются следующие обозначения и операции над множествами.

Основные обозначения:

  • Множество: А={а1, а2, ..., аn}, аiА;

  • Множество А, состоящее из элементова, удовлетворяющих условиюР:А={а : а Р};

  • Пустое множество: ;

  • Аявляется подмножествомВ:А В;

  • Ане является подмножествомВ:А В;

  • Множества АиВсовпадают:А = В.

Основные операции:

  1. Объединение: АВ= {а:аАаВ}

  2. Пересечение: А В = {а: аАаВ}

  3. Разность: А \ В = {а: а АаВ}

  4. Декартово произведение: А В = = {(а, в): аАbВ }

  5. Бинарным отношением называется всякое подмножество С = А В, причем аRв, аАbВ (R – символ отношения)

  6. N – арное отношение по аналогии, где Y = А В...С

Свойства отношений:

  1. Рефлексивность: а А аRа

  2. Антирефлексивность: условие рефлексивности не выполняется

  3. Симметричность: аi А аj А аiRaj аjRai

  4. Антисимметричность: условие симметричности не выполняется

  5. Тождественность: аi А аj А аiRaj аj=ai

  6. Транзитивность: аi А аj А аk А аiRaj аjRak аiRak

  7. Полнота: (аi, аj) всегда выполняетсяаiRajаjRai

Кроме того, в теории множеств существуют стандартные отношения, показанные в табл.1.

Таблица 1

Основные стандартные отношения и определяющие их свойства

Отношения

Свойства

Эквивалентность

Квазипорядок

Порядок

Строгий порядок

Полный порядок

Нерефлексивный полный порядок

Рефлексивность

+

+

Антирефлексивность

+

+

+

+

Симметричность

+

Антисимметричность

+

+

+

+

+

Тождественность

+

+

Транзитивность

+

+

+

+

+

+

Полнота

+

+

С учетом введенных понятий определяются свойства реляционных отношений.

Эквивалентность кортежей

Любая схема отношения есть отношение эквивалентности на множестве своих атрибутов.

Следовательно, кортежи одного отношения эквивалентны (подобны).

Отсутствие кортежей-дубликатов

То свойство, что отношения не содержат кортежей-дубликатов, следует из определения отношения как множества кортежей.

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

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

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

Отсутствие упорядоченности кортежей

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

Отсутствие требования к поддержанию порядка на множестве кортежей отношения дает дополнительную гибкость СУБД при хранении данных во внешней памяти и при выполнении запросов к базе данных.

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

Отсутствие упорядоченности атрибутов

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

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

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

Атомарность значений атрибутов

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

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

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

Номер группы

ГРУППА

Номер зачетной книжки

Фамилия

Имя

Отчество

Дата рождения

Коммерческий

1005

4444

Иванов

Иван

Иванович

10.01.71

Да

5555

Петров

Петр

Петрович

20.05.73

Да

...

...

...

...

...

...

1006

7777

Михайлов

Петр

Сергеевич

12.03.71

Нет

1007

8888

Боков

Илья

Семенович

11.08.69

Нет

Рис.6. Ненормализованное отношение

Можно сказать, что здесь мы имеем бинарное отношение, значениями атрибута ГРУППА которого являются отношения.

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

Зачислить студента (Номер зачетной книжки =3000, Фамилия =Кузнецов, Имя =Владимир, Отчество=Владимирович, Дата рождения=02.02.70, Коммерческий=Да) в группу номер 1009 и

Зачислить студента (Номер зачетной книжки =3000, Фамилия =Кузнецов, Имя =Владимир, Отчество=Владимирович, Дата рождения=02.02.70, Коммерческий=Да) в группу номер 1005.

Если работать с ненормализованным отношением ГРУППА, то первый оператор выразится в занесение кортежа, а второй - в добавление информации о Кузнецове в множественное значение атрибута ГРУППА кортежа с первичным ключом 1005.

Соседние файлы в папке 17-06-2015_23-01-11