Операция условного соединения (бинарная операция)
В отличие от рассмотренных специальных операций реляционной алгебры: фильтрации и проектирования, которые являются унарными, то есть производятся над одним отношением, операция условного соединения является бинарной, то есть исходными для нее являются два отношения, а результатом — одно.
Это одна из важных операций рел.алгебры. Она имеет большое практическое значение. На самом деле выделяют несколько ее разновидностей, которые мы рассмотри дальше.
Операцию соединения можно рассматривать как декартово произведение с последующей операцией выборки.
Общий подход:
Пусть R = {r}, Q = {q} — исходные отношения, со схемами SR, Sq.
SR=(A1, A2, … ,Am); SQ = (B1 B2, ... , Bn), где Аi , Bj — имена атрибутов.
Заданы наборыq-сравнимых атрибутов А и В A Í { Ai }; B Í { Bj }, i,j=1,k (!!!)
Соединение отношений R и Q при условии b это подмножество декартова произведения отношений RÄQ, кортежи которого удовлетворяют условию b.
R[ b ]Q = { (r,q) | r.Ai b q.Bi = «Истина», i=1,k}
Существуют различные типы операций соединения:
· тета-соединение R►◄FQ;
· соединение по эквивалентности R►◄=Q;
· естественное соединение R►◄Q;
· внешнее соединение R ◄Q; R► Q;
· полусоединение R►FQ.
Операция тета-соединения R►◄FQ определяет отношение, которое содержит кортежи из декартова произведения отношений RÄQ, удовлетворяющие предикату F. Предикат F имеет вид R.ai Θ Q.bj, где вместо Θ может быть указан один из операторов сравнения (>, >=, <, <=, =, <>).
|
|
Если предикат F содержит только оператор равенства (=), то соединение называется соединением по эквивалентности R►◄=Q.
Естественным соединением R►◄Q называется соединение по эквивалентности двух отношений R и Q, выполненное по всем общим атрибутам, из результатов которого исключается по одному экземпляру каждого общего атрибута
Левым внешним соединением R ◄Q называется соединение, при котором кортежи отношения R, не имеющие совпадающих значений в общих столбцах отношения Q, также включаются в результирующее отношение.
Правое внешнее соединениеR► Q, в результирующем отношении содержатся все кортежи правого отношения Q.
Имеется и полное внешнее соединение R ◄Q; R► Q;, в его результирующее отношение помещаются все кортежи из обоих отношений, а для обозначения несовпадающих значений кортежей в нем используются определители NULL.
Операция полусоединения определяет отношение, содержащее те кортежи отношения R, которые входят в соединение отношений R и Q.
Последней операцией, включаемой в набор операций РА, является операция деления.
Для ее определения рассмотрим сначала понятие множества образов.
|
|
Пусть R — отношение со схемой SR = (А1 А2 ,..., Аk);
А —набор атрибутов А Ì { Ai } i=1,k;
A1 — набор атрибутов, не входящих в множество А,
причем, АÇА1 =Æ ;: AÈА1 = SR.
Тогда множеством образов у элемента х проекции R[A] называется множество таких элементов у проекции R[A1], для которых сцепление (x, у) является кортежами отношения R, то есть
Q R[A1] = {у | у Î R[A1] ^ (х, у) Î R} - множество образов.
Дадим теперь определение операции деления.
Пусть даны два отношения R(делимое) и Т(делитель) соответственно со схемами:
SR = (А1 А2, ... , Ak); ST = (В2 В2, ... , Вm);
А и В — наборы атрибутов этих отношений, одинаковой длины (без повторений);
А Ì SR ; В Ì ST.
Атрибуты А1 — это атрибуты из R, не вошедшие в множество А.
АÇА1 = Æ и AÈА1 = SR. Проекции R[A] и Т[В] совместимы по объединению, то есть имеют эквивалентные схемы: SR[A] ~ ST[B]
Операция деления ставит в соответствие отношениям R и Т отношение Q = R[А:В]Т, кортежи которого являются теми элементами проекции R[A1], для которых Т[В] входит в построенные для них множество образов:
R[A:B]T = {r | r Î R[A1] ^T[B] Í {у | у Î R [А1] Ù (x, у) Î R } }.
Операция деления удобна тогда, когда требуется сравнить некоторое множество характеристик отдельных атрибутов.
|
|
Другими словами!!!
R (делимое) | T (делитель) | Частное | ||
(A1)Job | (A2)Chair | (B)Chair | (C)Job | |
Зав.каф. | 22 | 22 | Зав.каф. | |
Проф. | 22 | Проф. | ||
Доц. | 22 | Доц. | ||
Зав.каф. | 23 | |||
Доц. | 23 | |||
Ст.преп. | 24 | 22 | Зав.каф. | |
ассист | 24 | 23 | Доц |
Результат операции деления R:T - набор кортежей отношения R, определенных на множестве атрибутов C, которые соответствуют комбинации всех кортежей отношения T.
R определено на множестве атрибутов A, а отношение T - на множестве атрибутов B,
причем B A и C=A – B.
T1=R[C]; ð (Зав.каф.,Проф.,Доц.,Ст.преп.,ассист)T2=((TÄT1)-R)[C]; ð (Ст.преп. 22,ассист 22)R[А:В]Т= T1 - T2. ð (Зав.каф.,Проф.,Доц)Язык SQL.
История развития SQL
SQL {Structured Query Language) — Структурированный Язык Запросов — стандартный язык запросов по работе с реляционными БД. Язык SQL появился после реляционной алгебры, и его прототип был разработан в конце 70-х годов в компании IBM Research. Он был реализован в первом прототипе реляционной СУБД фирмы IBM System R. В дальнейшем этот язык применялся во многих коммерческих СУБД и в силу своего широкого распространения постепенно стал стандартом «де-факто» для языков манипулирования данными в реляционных СУБД.
|
|
Первый международный стандарт языка SQL был принят в 1989 г. (SQL/89 или SQL1). Иногда стандарт SQL1 также называют стандартом ANSI/ISO, и подавляющее большинство доступных на рынке СУБД поддерживают этот стандарт полностью. Однако развитие информационных технологий, связанных с базами данных, и необходимость реализации переносимых приложений потребовали в скором времени доработки и расширения первого стандарта SQL.
В конце 1992 г. был принят новый международный стандарт языка SQL, который в дальнейшим будем называть SQL/92 или SQL2. И он не лишен недостатков, но в то же время является существенно более точным и полным, чем SQL/89. В настоящий момент большинство производителей СУБД внесли изменения в свои продукты так, чтобы они в большей степени удовлетворяли стандарту SQL2.
В 1999 г. появился новый стандарт, названный SQL3. Имеет серьезные качественные преобразования. (Введены новые структурированные типы данных, соответств.объектной ориентации. Добавлен стандарт на события и триггеры. В рамках управления транзакциями произошел возврат к старой модели транзакций, допускающей точки сохранения (savepoints), и возможность указания в операторе отката ROOLBACK точек возврата позволит откатывать транзакцию не в начало, а в промежуточную ранее сохраненную точку.
SQL нельзя, в полной мере, отнести к традиционным языкам программирования. Он не содержит традиционные операторы, управляющие ходом выполнения программы, операторы описания типов и многое другое. Он содержит только набор стандартных операторов доступа к данным, хранящимся в базе данных. Операторы SQL встраиваются в базовый язык программирования, которым может быть любой стандартный язык типа C++, PL, COBOL и т. д. Кроме того, операторы SQL могут выполняться непосредственно в интерактивном режиме.
Дата добавления: 2018-04-15; просмотров: 724; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!