Разновидности операции соединения двух отношений (JOIN)
Разновидности операции 2-х соединений JOIN:
1)Тета-соединение (INNER JOIN-внутреннее соединение) – «T=R »
Операция тета-соединения определяет отношение, которое содержит кортежи из декартова произведения отношений R и S, удовлетворяющие предикату C. Предикат C имеет вид:( ), где вместо может быть указан один из операторов сравнения ( >, >=, <, <=, =, <>). Если предикат С содержит только оператор равенства ( = ), то соединение называется соединением по эквивалентности. Используется, когда нужно включить все строки из обеих таблиц, удовлетворяющие условию объединения. В этом случае строится декартово произведение строк первой и второй таблиц, а из полученного набора данных отбираются записи, удовлетворяющие условиям объединения. Блоки данных из двух таблиц объединяются, как только в указанных полях будут найдены совпадающие значения. В условиях объединения могут участвовать поля, относящиеся к одному и тому же типу данных и содержащие один и тот же вид данных, но они не обязательно должны иметь одинаковые имена.
2)Соединение по эквивалентности – «T=R = ».
Из этой формулы видно, что результат экви-соединения 2-х отношений представляет собой подмножество декартового соединения этих отношений. Если перечислять ряд таблиц или запросов и не указывать условия объединения, в качестве исходной таблицы будет выбрано декартовое (прямое) произведение всех таблиц. Из отношения ( )представляющего собой декартовое соединение выбираются только те картежи, которые удовлетворяют условию С. Также можно обойтись без экви-соединения, но декардовое – это трудоемкий процесс. Экви-соединение было создано, чтобы избежать вычисления декартового соединения.
3)Естественное соединение – «T=R »
Естественным соединением называется соединение по эквивалентности двух отношений R и S, выполненное по всем общим атрибутам, из результатов которого исключается по одному экземпляру каждого общего атрибута. Отличия от экви-соединения:1)предполагается, что атрибуты каждой пары Ai и Bi от 1 до n, значения которых проверяются на совпадения должны иметь одинаковые имена;2)в результирующем отношении T из каждой пары атрибутов Ai и Bi остается только один атрибут. Естественное соединение можно получить из экви-соединения, применив операцию ЭПИ.
4)Левое внешнее соединение – «T=R »
Левым внешним соединением называется соединение, при котором кортежи отношения R, не имеющие совпадающих значений в общих столбцах отношения S, также включаются в результирующее отношение. Предполагается, что поле отношений R и S, по которым производится соединение имеют одинаковые имена, как и у естественных соединений. Для обозначения отсутствующих значений в таблице S используется пустое или неопределенное значение Null.
5)Правое внешнее соединение – «T=R »
Существует и правое внешнее соединение , называемое так потому, что в результирующем отношении содержатся все кортежи правого отношения.
6)Полное внешнее соединение – «T=R »
Кроме того, имеется и полное внешнее соединение, в его результирующее отношение помещаются все кортежи из обоих отношений, а для обозначения несовпадающих значений кортежей в нем используются определители NULL.
7)Полусоединение – «T=R »
Операция полусоединения определяет отношение, содержащее те кортежи отношения R, которые входят в соединение отношений R и S .
Типы данных языка SQL
1)Символьные типы данных – содержат буквы, цифры и специальные символы
·CHAR или CHAR(n) – символьные строки фиксированной длины. Длина строки определяется параметром (n). CHAR без параметра соответствует CHAR(1). Для хранения таких данных всегда отводится n байт вне зависимости от реальной длины строки.
·VARCHAR(n) – символьная строка переменной длины. Для хранения данных этого типа отводится число байт, соответствующее реальной длине строки.
2)Целые типы данных - поддерживают только целые числа. Над этими типами разрешается выполнять арифметические операции и применять к ним агрегирующие функции.
·INTEGER или INT– целое, для хранения которого отводится, как правило 4 байта.
3)Вещественные типы данных DECIMAL(p,n),где p – общее количество десятичных цифр, n- количество цифр после десятичной запятой, описывают числа с дробной частью.
4)Денежные типы данных– описывают, естественно, денежные величины. Для типа данных MONEY(p,n) все аналогично типу DECIMAL(p,n). Данный тип вводится потому, что некоторые СУБД предусматривают для него специальные методы форматирования
5)Типы данных Дата и Время–используются для хранения даты, времени и их комбинаций.
·DATE– тип данных для хранения даты.
·TIME– тип данных для хранения времени
6)Двоичные типы данных BINARY– позволяют хранить данные любого объема в двоичном коде. Определения этих типов наиболее сильно различаются от системы к системе, часто используется ключевое слово BINARY.
NULL–используется для всех типов данных и означает «не определено». При создании таблицы можно указать СУБД, могут ли элементы того или иного столбца иметь данное значение.