((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.

Обратим внимание, что кардинальное число результата = произведениюкардинальных чисел исходных отношений А и В, а степень равна сумме их степеней.

A TIMES 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 и т. д..

НЕ нашли? Не то? Что вы ищете?

City

London

Paris

Athas

 
 

S[City]

Color

City

Red

Green

Blue

Blue

London

Paris

Rome

Paris

 
 

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# и соответствующее общее количество деталей.

Введем в ранее определенную синтаксическую таблицу еще один вид унарных выражений.

SUMMARIZE term BY (attribute commalist ADD agregate-expression AS attribute)

 
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.

Здесь COUNT – итоговая функция добавляется как дополнительный атрибут NSP

 
CITY

NSP

London

Paris

Rome

5

6

1


Введение в БД

Постоянные Данные:

Объекты и отношения

Преимущество использ. баз данных. Реляционные Иерархические и сетевые модели данных.

Администрирование данных и баз данных

Преимущества централизованног подхода.

Независимость данных.

Реляционные объекты данных, домены и отношения.

Домены.

Отношения

Определение данных.

Свойства отношений.

Виды отношений.

Отношения и предикаты.

Реляционные БД.

Потенциальные ключи.

Первичный и альтернативный ключи.

Внешние ключи.

Правило внеш ключей

NULL – значение

Q СОЕДИНЕНИЕ:

Деление.

Примеры использования реляционной алгебры.

Назначение алгебры.

Операция обновления.

Реляционные сравнения

Произведение:

Выборка :

Проекция:

Соединение:

Операции расширения и подведения итогов

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3