Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
inform sistem.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
3.22 Mб
Скачать

Примеры реляционных выражений.

Рассмотрим несколько примеров использования реляционной алгебры для выражения словесных запросов в виде формул и в виде команд языка SQL.

1. Получить имена поставщиков, которые поставляют деталь P4:

(( SP JOIN S ) WHERE P#='P4') [SNAME]

Запрос на языке SQL:

SELECT DISTINCT S.SNAME

FROM S, SP

WHERE S.S# = SP.S# AND SP..P#='P4'

2. Получить имена поставщиков, которые поставляют, по крайней мере, одну красную деталь.

(((P WHERE COLOR='Red') JOIN SP) [S#] JOIN S) [SNAME]

Запрос на языке SQL:

SELECT DISTINCT S.SNAME

FROM S

WHERE S.S# IN

(SELECT SP.S#

FROM SP

WHERE SP.P# IN

(SELECT P.P#

FROM P

WHERE P.COLOR='Red'))

3. Получить имена поставщиков, которые поставляют все детали.

((SP[S#,P#] DIVIDEBY P[P#] JOIN S) [SNAME]

Запрос на языке SQL:

SELECT DISTINCT S.SNAME

FROM S

WHERE NOT EXISTS

(SELECT *

FROM P

WHERE NOT EXISTS

(SELECT *

FROM SP

WHERE SP.S#=S.S# AND SP.P#=P.P#))

или такой запрос

SELECT DISTINCT S.SNAME

FROM S

WHERE ( SELECT COUNT(SP.P#)

FROM SP

WHERE SP.S#=S.S#)=(SELECT COUNT(P.P#)

FROM P)

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

Примечание: Из 8 операторов Кодда 3 оператора (соединение, пересечение, деление) можно выразить через остальные операторы.

35

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