Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Bazy_dannykh_teoria_Avtosokhranenny.docx
Скачиваний:
76
Добавлен:
23.03.2015
Размер:
8 Мб
Скачать
☆

7)Внешние объединения в языке sql. Привести примеры.

Часто необходимо объединять таблицы таким образом, чтобы в результат попали все строки из первой таблицы, а вместо тех строк второй таблицы, для которых не выполнено условие соединения, в результат попадали бы неопределенные значения. Или наоборот, включаются все строки из правой (второй) таблицы, а отсутствующие части строк из первой таблицы дополняются неопределенными значениями. Такие объединения были названы внешними.

синтаксис части FROM.

Выражения объединения

Виды объединений

  • INNER — обычное прямое объединение

  • LEFT— левое объединение, то есть в результат входят все строки таблицы 1, а части резуль­тирующих кортежей, для которых не было соответствующих значений в таб­лице 2, дополняются значениямиNULL

  • RIGHTозначает правое внешнее объединение, и в отличие от левого объединения в этом случае в результирующее отношение включаются все строки таблицы 2, а не­достающие части из таблицы 1 дополняются неопределенными значениями

  • FULLопределяет полное внешнее объединение: и левое и правое. При полном внешнем объединении выполняются и правое и левое внешние объеди­нения и в результирующее отношение включаются все строки из таблицы 1» до­полненные неопределенными значениями, и все строки из таблицы 2, также до­полненные неопределенными значениями

  • Перекрестное объединение в трактовке стандарта SQL2 соответствует операции расширенного декартова произведения, то есть операции соединения двух таблиц, при которой каждая строка первой таблицы соединяется с каждой строкой второй таблицы.

Обычное (внутреннее) объединение (inner join) возвращает записи из двух таблиц, если значение первичного ключа первой таблицы соответствует значению внешнего ключа второй таблицы, связанной с первой. Предположим, необходимо получить все записи из одной таблицы, участвующей в объединении, вне зависимости от того, существуют ли связанные записи в другой таблице. В этом случае необходимо использовать внешнее объединение (outer join).

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

  • SELECT FirstName, LastName, OrderDate

  • FROM tblCustomer LEFT OUTER JOIN

  • tblOrder ON tblCustomer.ID = tblOrder.CustomerID

Правое внешнее объединение (right join) аналогичнолевому внешнему объединению (left join), за исключением того, что оно возвращает все записи из второй таблицы, участвующей в объединении (имеется в виду таблица с правой стороны), независимо от того, есть ли соответствующие им записи в первой таблице (расположенной с левой стороны). (Левое и правое объединения являются разновидностями внешнего объединения и в определенных обстоятельствах могут возвращать идентичные результаты.)

8)Понятие функциональной и транзитивной зависимости. Аксиомы Армстронга.

Функциональная зависимость, по сути, является связью типа «многие одному» между множествами атрибутов (столбцов) рассматриваемого отношения. Т.е., если в отношении R, содержащем атрибуты А и В, атрибут. В функционально зависит от атрибута А, то каждое отдельное значение атрибута А связано только с одним значением атрибута В (причем в качестве А и В могут выступать группы атрибутов).

Пример: Учебный план (№*, дисциплина, семестр, кол-во часов, форма отчетности, препод.)

Дисциплина, семестр и форма отчетности функционально зависят от №

Транзитивная зависимость. Если для атрибутов А, В и С некоторого отношения существуют функциональные зависимости А→В, В→С, говорят, что атрибут С связан транзитивной зависимостью с атрибутом А через атрибут В (при этом атрибут А не должен функционально зависеть ни от атрибута В, ни от атрибута С).

Пример: Учебный план (семестр*, Дисциплина*, форма отчетности*, кол-во часов, ФИО препод., должность)

ФИО препод. зависит от первичного ключа, а должность зависит от ФИО преподавателя → должность преподавателя связана транзитивной зависимостью с первичным ключом через ФИО преподавателя.

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