Тема 3 Реляционные базы данных
Фундаментальные свойства отношений
Остановимся теперь на некоторых важных свойствах отношений, которые следуют из приведенных ранее определений.
Отсутствие кортежей-дубликатов
То свойство, что отношения не содержат кортежей-дубликатов, следует из определения отношения как множества кортежей. Из этого свойства вытекает наличие у каждого отношения так называемого ключа - набора атрибутов, значения которых однозначно определяют кортеж отношения. Для каждого отношения, по крайней мере, полный набор его атрибутов обладает этим свойством.
Отсутствие упорядоченности кортежей
Отсутствие упорядоченности кортежей отношения является следствием определения отношения, как множества кортежей. Это не противоречит тому, что при формулировании запроса к БД, например, на языке SQL, можно потребовать сортировки результирующей таблицы в соответствии со значениями некоторых столбцов. Такой результат, вообще говоря, не отношение, а некоторый упорядоченный список кортежей.
Отсутствие упорядоченности атрибутов
Атрибуты отношений не упорядочены, поскольку по определению схема отношения есть {имя атрибута, его домен}. Для ссылки на значение атрибута в кортеже отношения всегда используется имя атрибута.
Атомарность значений атрибутов
Значения всех атрибутов являются атомарными. Это следует из определения домена атрибута как множества значений простого типа данных - среди значений домена не могут содержаться отношения.
Операции над отношениями реляционных БД
При рассмотрении отношений и операций над ними введем следующие понятия:
Степень отношения – число входящих атрибутов
Мощность отношения – число кортежей отношения
Совместные отношения – имеют одинаковые степени и одинаковые типы соответствующих атрибутов
Для манипулирования отношениями используют операции реляционной алгебры. Отношения реляционной алгебры - это множества, поэтому средства работы с отношениями базируются на традиционных операциях теории множеств, которые дополняются некоторыми операциями, специфичными для баз данных. Чаще всего выделяют следующие операции реляционной алгебры:
1.объединение отношений;
2.пересечение отношений;
3.разность отношений;
4.произведение отношений;
5.деление отношений;
6.ограничение (выборка) отношения;
7.проекция отношения;
8.соединение отношений.
Кроме перечисленных выше, в СУБД, как правило, реализуются также операция присваивания, позволяющая сохранять в базе данных результаты обработки, операция переименования атрибутов и операция агрегации (итоговые).
Операции реляционной алгебры могут быть описаны следующим образом.
1)Операция объединения двух отношений позволяет создать отношение, включающее все кортежи отношений-операндов. Отношения операнды должны быть совместны.
2) Результат операции пересечения отношений - отношение, содержащее строки, которые входят одновременно в оба отношения-операнда. Отношения операнды должны быть совместны.
3) Разность (вычитание) отношений используется для выделения строк, которые входят в первое отношение-операнд и не входят во второе. Отношения операнды должны быть совместны.
4) При выполнении операции декартово произведение двух отношений каждая строка первого отношения-операнда сцепляется (конкатенируется) с каждой строкой второго отношения-операнда. Сцепленные строки образуют отношение-результат. Степень результата – сумма степеней сомножителей. Мощность – произведение мощностей сомножителей. Множества атрибутов отношений-операндов не должны пересекаться.
5) Операция деления "обратна" операции прямого (декартова) умножения. Делитель должен содержать подмножество атрибутов делимого. Результат содержит только те атрибуты делимого, которых нет в делителе, и включает кортежи, декартовы произведения которых с делителем содержатся в делимом.
6) Операция выбора (селекции) - это выбор из отношения подмножества кортежей, удовлетворяющих заданному условию.
7) Операция проекции позволяет выбрать из отношения-операнда (здесь один операнд, унарная операция) определенные атрибуты отношения (на них выполняется проекция), исключая повторения в кортежах.
8) Операция соединениявыполняется над несколькими отношениями, в каждом из которых имеется соединяющий атрибут. Результат включает все атрибуты соединяемых отношений.
Существует очень мало СУБД, язык которых поддерживают все операции. Большинство СУБД поддерживают только выбор, проекцию, соединение.
Связи в реляционной модели баз данных
Понятие функциональной зависимости и ключи