Коллектив Авторов - Базы данных: конспект лекций
- Название:Базы данных: конспект лекций
- Автор:
- Жанр:
- Издательство:Конспекты, шпаргалки, учебники «ЭКСМО»b4455b31-6e46-102c-b0cc-edc40df1930e
- Год:2007
- Город:Москва
- ISBN:978-5-699-23778-4
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Коллектив Авторов - Базы данных: конспект лекций краткое содержание
Конспект лекций соответствует требованиям Государственного образовательного стандарта высшего профессионального образования РФ и предназначен для освоения студентами вузов специальной дисциплины «Базы данных».
Лаконичное и четкое изложение материала, продуманный отбор необходимых тем позволяют быстро и качественно подготовиться к семинарам, зачетам и экзаменам по данному предмету.
Базы данных: конспект лекций - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
r 4( S 4) = r 1( S 1) × r 2( S 2) = { t ( S 1∪ S 2) | t [ S 1] ∈ r 1 & t ( S 2) ∈ r 2} , S 1∩ S 2= ∅;
Как видно из приведенного определения, пары кортежей образуются при обязательно непересекающихся схемах отношений. Поэтому и при работе на языке структурированных запросов SQL непременно оговаривается, что исходные отношения-операнды не должны иметь совпадающих имен атрибутов. Но если эти отношения все же имеют одинаковые имена, сложившуюся ситуацию можно легко разрешить с помощью операции переименования атрибутов, т. е. в подобных случаях необходимо просто использовать опцию as, о которой упоминалось ранее.
Рассмотрим пример, в котором нужно найти декартово произведение двух отношений, имеющих некоторые имена своих атрибутов совпадающими. Итак, пусть даны следующие отношения:
R 1( A, B),
R 2(B, C);
Мы видим, что атрибуты R 1.B и R 2.B имеют одинаковые имена. С учетом этого оператор Select, реализующий на языке структурированных запросов эту операцию декартова произведения, будет выглядеть следующим образом:
SelectА, R 1.B asB1, R 2.B asB2, C
FromR 1 cross joinR 2;
Таким образом, с использованием опции переименования as, у машины не возникнет «вопросов», по поводу совпадающих имен двух исходных отношений-операндов.
5. Операции внутреннего соединения.
На первый взгляд может показаться странным, что мы рассматриваем операцию внутреннего соединения раньше операции естественного соединения, ведь, когда мы проходили бинарные операции, все было наоборот. Но анализируя выражение операций на языке структурированных запросов, можно прийти к выводу, что операция естественного соединения является частным случаем операции внутреннего соединения. Именно поэтому рационально рассмотреть эти операции как раз в таком порядке.
Итак, для начала вспомним определение операции внутреннего соединения, которое мы проходили раньше:
r 1( S 1) × P r 2( S 2) = σ
( r 1× r 2) , S 1 ∩ S 2= ∅ .
Для нас в этом определении особенно важно то, что рассматриваемые схемы отношений-операндов S 1и S 2не должны пересекаться.
Для реализации операции внутреннего соединения в языке структурированных запросов существует специальная опция inner join, которая и переводится с английского буквально «внутреннее объединения» или «внутреннее соединение».
Оператор Select в случае осуществления операции внутреннего соединения будет выглядеть следующим образом:
Select *
FromR 1 inner joinR 2;
Здесь, как и раньше, R 1и R 2– имена исходных отношений-операндов.
При реализации этой операции нельзя допускать пересечения схем отношений-операндов.
6. Операция естественного соединения.
Как мы уже говорили, операция естественного соединения является частным случаем операции внутреннего соединения. Почему? Да потому что при действии естественного соединения кортежи исходных отношений-операндов соединяются по особому условию. А именно по условию равенства кортежей на пересечении отношений-операндов, тогда как при действии операции внутреннего соединения такой ситуации допускать было бы нельзя.
Так как рассматриваемая нами операция естественного соединения является частным случаем операции внутреннего соединения, для ее реализации используется та же опция, что и для предыдущей рассмотренной операции, т. е. опция inner join. Но поскольку при составлении оператора Select для операции естественного соединения необходимо еще учесть условие равенства кортежей исходных отношений-операндов на пересечении их схем, то дополнительно к означенной опции применяется ключевое слово on. В переводе с английского, это буквально означает «на», а применительно к нашему смыслу, можно перевести как «при условии».
Общий вид оператора Select для выполнения операции естественного соединения следующий:
Select *
From имя отношения 1 inner join имя отношения 2
on условие равенства кортежей ;
Рассмотрим пример.
Пусть даны два отношения:
R 1( A, B, C),
R 2(B, C, D);
Операцию естественного соединения этих отношений можно реализовать с помощью следующего оператора:
Select А , R 1. B , R 1. C , D
From R 1 inner join R 2
on R 1. B = R 2. B and R 1. C = R 2. C
В итоге этой операции в результат выведутся атрибуты, указанные в первой строке оператора Select, соответствующие кортежам, равным на указанном пересечении.
Следует заметить, что здесь мы обращаемся к общим атрибутам В и С не просто по именам. Это необходимо делать не по той причине, что и в случае реализации операции декартова произведения, а потому, что в противном случае будет не ясно, к какому отношению они относятся.
Интересно, что использованная формулировка условия соединения (R 1.B = R 2.B and R 1.C = R 2.C) предполагает, что общие атрибуты соединяемых отношений Null-значений не допускают. Это изначально встроено в систему языка структурированных запросов.
7. Операция левого внешнего соединения.
Выражение на языке структурированных запросов SQL операции левого внешнего соединения получается из реализации операции естественного соединения заменой ключевого слова innerна ключевое слово left outer.
Таким образом, на языке структурированных запросов эта операция запишется следующим образом:
Select *
From имя отношения 1 left outer join имя отношения 2
on условие равенства кортежей ;
8. Операция правого внешнего соединения.
Выражение для операции правого внешнего соединения на языке структурированных запросов получается из осуществления операции естественного соединения заменой ключевого слова innerна ключевое слово right outer.
Итак, получаем, что на языке структурированных запросов SQL операция правого внешнего соединения запишется следующим образом:
Select *
From имя отношения 1 right outer join имя отношения 2
on условие равенства кортежей ;
9. Операция полного внешнего соединения.
Интервал:
Закладка: