Операция соединения.
Основные сведения теории баз данных
Если отношение R имеет атрибуты (А1, …, Аn, X1, …, Xp), а отношение S — атрибуты (X1, …, Xp, B1, …, Bm), то естественное соединение будет содержать атрибуты (А1, …, Аn, X1, …, Xp, B1, …, Bm). Степень естественного соединения равна (n+m+p) или сумме степеней R и S за вычетом количества общих атрибутов. Естественное соединение обозначается следующим образом: Иными словами, если, как и прежде… Читать ещё >
Операция соединения. Основные сведения теории баз данных (реферат, курсовая, диплом, контрольная)
Декартово произведение отношений, как правило, содержит избыточную информацию. Поэтому вместо декартова произведения чаще используется операция соединения — одна из самых важных в реляционной алгебре.
Операция соединения отношений эквивалентна операции выборки из их декартова произведения кортежей, удовлетворяющих указанному условию.
Существует несколько типов операции соединения:
- — тета-соединение
- — соединение по эквивалентности
- — естественное соединение
- — внешнее соединение
- — полусоединение .
Определение Тета-соединение отношений R и S — операция, определяющая отношение, которое содержит кортежи декартова произведения R и S, удовлетворяющие условию R.aИS.b, где a — атрибут отношения R, b — атрибут отношения S, а И — один из операторов сравнения (<,, >=, =, ?).
Степень тета-соединения отношений R и S, как и степень декартова произведения, равна сумме степеней отношений R и S.
Определение Соединением по эквивалентности или экви-соединением называется тета-соединение, в котором в качестве оператора сравнения используется оператор «=».
На основе этих таблиц можно получить информацию о том, в каком отделе работает тот или иной сотрудник, если выполнить их соединение по эквивалентности с условием равенства значений атрибута Номер_отдела:
R.Номер отдела. | Название отдела. | Номер сотрудника. | ФИО. | S.Номер отдела. |
В01. | бухгалтерия. | S002. | Петров. | В01. |
В02. | отдел кадров. | S001. | Иванов. | В02. |
В04. | отдел продаж. | S003. | Орлов. | В04. |
Определение Естественным соединением называется соединение по эквивалентности отношений R и S, выполненное по всем общим атрибутам, причем в результат включается только по одному экземпляру каждого общего атрибута.
Если отношение R имеет атрибуты (А1, …, Аn, X1, …, Xp), а отношение S — атрибуты (X1, …, Xp, B1, …, Bm), то естественное соединение будет содержать атрибуты (А1, …, Аn, X1, …, Xp, B1, …, Bm). Степень естественного соединения равна (n+m+p) или сумме степеней R и S за вычетом количества общих атрибутов. Естественное соединение обозначается следующим образом:
R JOIN S.
R JOIN S
Для таблиц, рассмотренных в предыдущем примере, результат естественного соединения будет таким:
Номер отдела. | Название_отдела. | Номер сотрудника. | ФИО. |
В01. | бухгалтерия. | S002. | Петров. |
В02. | отдел кадров. | S001. | Иванов. |
В04. | отдел продаж. | S003. | Орлов. |
Можно выполнять последовательное соединение нескольких отношений. Если при соединении двух отношений для кортежа одного из этих отношений не находится соответствующий кортеж в другом, однако этот не имеющий соответствия кортеж должен войти в результат, используют так называемое внешнее соединение.
Различают левое внешнее соединение и правое внешнее соединение.
Определение Левым внешним соединением отношений R и S называется соединение, при котором в результирующее отношение включаются все кортежи из R (левого отношения), не имеющие отвечающих им кортежей в S. Т. е. если отношение R имеет атрибуты (А1, …, Аn, X1, …, Xp), а отношение S — атрибуты (X1, …, Xp, B1, …, Bm), то в результат левого внешнего соединения включаются все кортежи из R вида (а1, …, аn, х1, …, хp), такие, что в отношении S нет кортежей вида (х1, …, хp, b1, … bm).
Для обозначения отсутствующих во втором отношении значений используется значение NULL.
А. | Х. | В. |
b. | c. | |
b. | d. | |
а. | NULL. |
Левое внешнее соединение R и S.
Определение Правое внешнее соединение отношений R и S содержит все кортежи правого (второго) отношения S, не имеющие отвечающих им кортежей в R. Т. е. если отношение R имеет атрибуты (А1, …, Аn, X1, …, Xp), а отношение S — атрибуты (X1, …, Xp, B1, …, Bm), то в результат правого внешнего соединения включаются все кортежи из S вида (х1, …, хp, b1, … bm), такие, что в отношении R нет кортежей вида (a1, … an, х1, …, хp).
Для обозначения отсутствующих в первом отношении значений используется значение NULL.
Например, для отношений.
Name. | Position. |
Иванов. | секретарь. |
Орлов. | бухгалтер |
Name. | Salary. |
Федоров. | |
Орлов. | |
Петров. |
результат правого внешнего соединения будет следующим:
Position. | Name. | Salary. |
NULL. | Федоров. | |
бухгалтер | Орлов. | |
NULL. | Петров. |
Определение Полное внешнее соединение включает в себя все кортежи обоих отношений; для обозначения несовпадающих значений этих кортежей используется значение NULL.
Иными словами, если, как и прежде, отношение R имеет атрибуты (А1, …, Аn, X1, …, Xp), а отношение S — атрибуты (X1, …, Xp, B1, …, Bm), то в результат полного внешнего соединения включаются все кортежи из R вида (a1, … an, х1, …, хp) и все кортежи из S вида (х1, …, хp, b1, … bm). Для обозначения отсутствующих значений, как и ранее, используется значение NULL.
Схематически операция полного внешнего соединения показана на рис. 13:
А. | Х. | В. |
а. | NULL. | |
b. | c. | |
b. | d. | |
NULL. | е. |
Результат полного внешнего соединения таблиц рассмотренных в предыдущем примере, таков:
Position. | Name. | Salary. |
секретарь. | Иванов. | NULL. |
NULL. | Федоров. | |
бухгалтер | Орлов. | |
NULL. | Петров. |
Отметим, что внешнее соединение сохраняет исходную информацию, т. е. те кортежи, которые были бы исключены при использовании других видов соединения.
Определение Полусоединение отношений R и S определяет отношение, которое содержит лишь кортежи отношения R, которые входят в тета-соединение отношений R и S.
Операцию полусоединения можно понимать как проекцию по всем атрибутам отношения R соединения этих отношений (тета-соединения). Существуют также экви-полусоединения и естественные полусоединения.