((SP JOIN S ) WHERE P#=’P2’ ) [SNAME]
2. Получить имена поставщиков, которые поставляют по крайней мере одну красную деталь.
(((P WHERE COLOR=’RED’ ) JOIN SP)[S#] JOIN S)[SNAME]
Второй вариант решения :
(((P WHERE COLOR=’RED’)[P#] JOIN SP) JOIN S) [SNAME]
3.Получить номера поставщиков, которые поставляют по крайней мере все те детали, которые поставляет поставщик S2
SP[S#,P#] DEVIDEBY (SP WHERE S#=’S2’)[P#]
4. Получить имена поставщиков которые не поставляют деталь P2
((S[S#] MINUS (SP WHERE P#=’P2’)[S#]
5. Получить все пары номеров поставщиков размещенных в одном городе
((( S RENAME S# AS FIRSTS)[FIRSTS, CITY] JOIN (S RENAME S# AS SECONDS)[SECONDS, CITY] WHERE
FIRSTS<SECONDS)[FIRSTS, SECONDS]
Назначение алгебры.
До сих пор мы предполагали, что главное назначение алгебры –это выборка данных. Но это не совсем так. Основная цель алгебры - обеспечить запись выражений, т. е. выражение служит для символического высокоуровневого представления намерений пользователя (например, некоторого определенного запроса.) Поэтому этими выражениями можно манипулировать в соответствии с многочисленными правилами преобразования. Например выражение
((SP JOIN S) WHERE P#=’P2’)[SNAME]
можно преобразовать в эквивалентное, но возможно более рациональное выражение
((SP WHERE P#=’P2’) JOIN S)[SNAME]
Таким образом алгебра служит хорошим базисом для оптимизации.
Операция обновления.
Введем операцию реляционного присвоения. Её синтаксис target:=sourse. Здесь sourse и target реляционные выржения, представляющие совместимые по типу отношения. Вычисленное значение source присваевается отношению target, заменяя его старое значение. Теоретически операцию обновления можно было бы выполнять с использованием приведенной операции присвоения и операции UNION и MINUS. Однако такой подход не позволяет должным образом обрабатывать ошибки, поэтому на практике в реляционных системах существуют явные оперции INSERT, DELETE, UPDATE.
Приведем синтаксис этих операций:
INSERT source INTO target
Пример: INSERT(S WHERE CITY=’London’) INTO TEMР
UPDATE target assignment-commalist
Каждое присвоение (аssignment) имеет форму attribute:=scalar_expression
Пример: UPDATE P WHERE COLOR =Red CITY:=Paris;
DELETE target
Пример:DELETE S WHERE STATUS<20;
Реляционные сравнения
Изначально определенная реляционная алгебра не поддерживает прямого сравнения 2-х отношений. Для исправления этого упущения определим новый вид условия - реляционное сравнение со следующим синтаксисом:
EXPRESSION Q EXPRESSION
Здесь EXPRESSION – это в обоих случаях выражение реляционной алгебры, представляющее совместимые по типу отношения, а Q – один из операторов сравнения.
Примеры:
1) S[CITY]¹P[CITY]. Значение: совпадает ли проекция отношения S по атрибуту CITY с проекцией отношения P по атрибуту CITY
2) S[S#]=SP[S#]
Значение: Есть ли поставщики, не поставляющие детали.
Новый вид условия допустим для использования в операциях выборки.
Пример: S WHERE (( SP RENAME S# AS X) WHERE X=S#)[P#]=P[P#]
При вычислении этого выражения получаем отношение, содержащее кортежи поставщиков, поставляющих все детали.
Произведение:
A Times B
Декартовое произведение А и В, где А и В не имеют общих имен аттрибутов определяются как отношение заголовков, которое представляет собой сцепление двух заголовков А и В и телом из кортежей, таких что t представляет собой сцепление кортежа a Î A и кортежа bÎ B.
Обратим внимание, что кардинальное число результата = произведениюкардинальных чисел исходных отношений А и В, а степень равна сумме их степеней.
|
![]() |
S# |
S1 S2 S3 S4 S5 |
Выборка :
A WHERE XQY
Q (>, >=,не =, =, …).
Операцию выборки часто также наз. операцией ограничения. Выборка – это сокращенное название Q-выборки, где Q - любой скалярный оператор сравнения.
Q - выборка из отношения А по аттрибутам X и Y A WHERE XQY называется отношение, имеющее тот же заголовок, что и отношение А и тело, содержащее множество всех кортежей t отношения А, для которых проверка условия XQY дает значение истина.
X и Y должны быть определены на одном и том же домене, а оператор должен иметь смысл для этого домена.
Скалярное литеральное знчение можт быть указано как вместо аттрибута X, так и вместо аттрибута Y, а также вместо обоих.
A WHERE XQliteral.
Благодаря св-ву замкнутости, определение можно однозначно расширить до формы, в которой условие в выражении WHERE будет содержать произвольное число логических сочетаний таких простых сравнений, юлагодаря следующим тождествам:
A WHERE C1 AND C2 º (A WHERE C1) INTERSECT (A WHERE C2)
A WHERE C1 OR C2 º (A WHERE C1) UNION (A WHERE C2)
A WHERE NOT C º A MINUS (A WHERE C)
S WHERE CITY = “LONDON”
P WHERE WEIGHT <14
SP WHERE S# = “S1” AND P# = “P1”
Проекция:
Проекцией отношения А по аттрибутам X, Y,…,Z, где каждый из аттрибутов ÎА называется отношение с заголовком {X, Y,…,Z} и телом, содержащим мн-во кортежей вида {X:x, Y:y, Z:z} таких, для которых в отношении А значение аттрибутов X равно x и т. д..
|
S[City]
|
P[color, city]
S WHERE CITY = “PARIS” [S#]
Соединение:
Имеет несколько разновидностей. Наиболее важная – естественное соединение. Для его обозначения используется ключевое слово JOIN. Пусть отношение А и В имеют заголовки:
{x1,x2,..,xm, y1,y2,…,yn} (A)
{y1,y2,…,yn, z1,z2,…,zp} (B)
Предположим, что соответствующие аттрибуты (т. е. аттроибуты с одинаковыми именами на одном и том же домене). Будем теперь рассматривать выражение
{x1,…,xm},{y1,…,yn} и {z1,…,zp} как 3 составных аттрибута X, Y,Z соответственно. Тогда естественным соединением отношений А и В (A join B) называется отношение с заголовком {X, Y,Z}и телом, содержащим мн-во всех кортежей {X:x, Y:y, Z:z} таких, для которых в отношении А значение аттрибута X равно x, А аттрибута Y равно y и в отношении В значение аттрибута Y = y, а значение Z = z.
S# | SNAME | STATUS | CITY | P# | PNAME | COLOR | WEIGHT |
S1 | SMITH | 20 | LONDON | P1 | NOT | RED | 12 |
S1 | … | 20 | … | P4 | SCREW | RED | 14 |
S1 | … | 20 | … | P6 | COG | RED | 19 |
S2 | JONES | 10 | PARIS | P2 | BOLT | GREEN | 17 |
S2 | … | 10 | … | P5 | CAM | BLUE | 12 |
Операции расширения и подведения итогов
Для обеспечения возможностей проведения скалярных вычислений в бд предназначена операция расширения. С помощью этой операции из определенного отношения создается новое отношение, содержащее наряду с имеющимися атрибутами новый атрибут, значение которого получаются посредством некоторых скалярных вычислений, например можно написать:
EXTEND P ADD (WEIGHT *454) AS GMWT, теперь можно использовать атрибут GMWT в операциях проекции, выборки, и т. д. Например (EXTEND P ADD (WEIGHT *454) AS GMWT)w WHERE GMWT >10000
Расширим ранее определенный синтаксис операцией EXTEND добавив новый вид унарных выражений EXTEND term ADD scalar-expression AS attribute. Рассмотренная операция расширения обеспечивает возможность горизонтального или построчного вычисления в алгебре. Операция SUMMARIZE (подведение итогов) выполняет аналогичную функцию для вертикальных вычислений, например с помощью выражения SUMMARIZE SP BY (P#) ADD SUM(QTY) AS TOTQTY вычисляется выражение с заголовком P#, TOTQTY в котором существует один кортеж для каждого значения P# в отношении SP. В этом кортеже содержаться значения P# и соответствующее общее количество деталей.
| TOTQTY | ||
P1 P2 P3 P4 P5 P6 | 600 1000 400 500 500 100 |
Рассмотрим еще один пример, показывающий что операнд терм оператора SUMMARIZE может быть произвольным реляционным выражением, заключенным в круглые скобки:
SUMMARIZE (P JOIN SP) BY (CITY) ADD COUNT AS NSP.
| NSP | ||
London Paris Rome | 5 6 1 |
Введение в БД
Постоянные Данные:
Объекты и отношения
Преимущество использ. баз данных. Реляционные Иерархические и сетевые модели данных.
Администрирование данных и баз данных
Преимущества централизованног подхода.
Независимость данных.
Реляционные объекты данных, домены и отношения.
Домены.
Отношения
Определение данных.
Свойства отношений.
Виды отношений.
Отношения и предикаты.
Реляционные БД.
Потенциальные ключи.
Первичный и альтернативный ключи.
Внешние ключи.
Правило внеш ключей
NULL – значение
Q СОЕДИНЕНИЕ:
Деление.
Примеры использования реляционной алгебры.
Назначение алгебры.
Операция обновления.
Реляционные сравнения
Произведение:
Выборка :
Проекция:
Соединение:
Операции расширения и подведения итогов
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 |



