Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по курсу ИСиТ.docx
Скачиваний:
6
Добавлен:
07.02.2024
Размер:
1.07 Mб
Скачать

Рмд: языки манипулирования данными (ямд)

ЯМД разбиваются на 3 больших класса:

  1. Основанные на реляционной алгебре (РА) (процедурные языки);

  2. Основанные на исчислении отношений (непроцедурные языки);

  3. Основанные на операции отображения (SQL, QBE и др.)

ЯМД, основанный на РА

РА: UR=<R, R>, где R – основное множество (отношения); R - сигнатура (множество операций).

РА является замкнутой алгеброй относительно R, т.е. операнды и результаты операций являются отношениями.

Теоретико-множественные операции РА

Они применяются к отношениям, имеющим одинаковую схему отношений:

R (A1, A2, …, An) и S (A1, A2, …, An)

  1. одинаковое количество атрибутов;

  2. одноименные атрибуты определены на одних и тех же доменах.

Такие отношения имеют одну и ту же область определения – U:

U = dom (A1) * dom (A2) * … * dom (An)

РА определяется кортежом <P(n), , , , , U>

Пусть r и s – отношения со схемой R (A1, A2, …, An);

r(R) и s(R) – это исходные отношения, а q(R) – результирующее отношение.

r(R)

ШД

Цвет

Б

ч

Г

ч

Г

с

s(R)

ШД

Цвет

Г

с

Г

к

  1. Операция объединения: q(R) = r(R)  s(R) = {t(R)  t  r  t  s}

Операция объединения используется для первоначальной загрузки таблиц БД, для добавления записей.

q(R)

ШД

Цвет

Б

ч

Г

ч

Г

с

Г

к

  1. Операция пересечения: q(R) = r(R)  s(R) = {t(R)  t  r  t  s}

Используется для выделения необходимых коррекций.

q(R)

ШД

Цвет

Г

с

  1. Операция разности: q(R) = r(R) \ s(R) = {t(R)  t  r  t  s}

Используется для удаления кортежей из отношения.

q(R)

ШД

Цвет

Г

ч

Б

ч

  1. Операция дополнения (унарная операция): q(R) = r(R) = {t(R)  t  r}

Или q(R) = dom (R) \ r

q(R)

ШД

Цвет

Б

к

Б

с

Г

к

Специальные операции РА

  1. Операция проекции отношения на один или несколько атрибутов (унарная операция)

Исходные данные: r(R) X  R

Результирующее отношение: q(X)

q(X) = { t(X)  t(R)  r  t(X)  t(R)}

В q(X) входят такие подкортежи t(X), которые являются частью кортежей t(R), входящих в отношение r. Обозначение операции: x(r) или r(X)

Пример:

R

ШД

Цвет

Б

ч

Г

с

Г

ч

Найти имена всех деталей – q(ШД) = ШД(r)

q

ШД

Б

Г

Г

Дублирующие кортежи вычеркиваются (по определению)

  1. - соединение, где  - некоторая операция отношения.

Введем понятие  - сравнимых атрибутов. Если операция  определена на декартовом произведении доменов dom (A) * dom (B), то A и B называются

-сравнимыми. Один атрибут может рассматриваться -сравнимым сам с собой.

Исходные данные: r(R) и s(S); R  S = ; T = R  S; A  R; B  S; A и B

-сравнимы. Обозначим: tr для t(R)  r, ts для t(S)  s. Результирующее отношение: q(T).

q(T) = {t(T)  t(R)= tr  t(S)= ts  tr(A)  ts(B)}

В q(T) входят различные сцепления кортежей tr и ts, для которых предикат tr(A)  ts(B) является истинным.

Короткая запись операции: q(T)=r[A  B]s

Пример: ABC

AB

№ рейса

Вылет

Прилет

BC

№ рейса1

Вылет1

Прилет1

AC = AB [Прилет < Вылет1] BC

Условие вхождения кортежей может быть логически сложным (логические операции: , , ).

На языке SQL: SELECT AB.*, BC.* FROM AB, BC WHERE AB.ПРИЛЕТ < BC.ВЫЛЕТ1

3) - ограничение (или выборка) – частный случай  - соединения.

Исходные данные: r(R); A  R; a  dom (A);

Результирующее отношение: q(R).

q(R) = {t(R)  t(A)  a} Короткая запись: q(R) = Aa(R)

В q(R) входят такие кортежи t(R) из отношения r, для которых предикат t(A)  a является истинным.

Пример:

R

ШД

Цвет

Б

ч

Г

с

Г

ч

Найти кортежи, в которых черные детали: q(R) = Цвет=’ч’(R)

Q

ШД

Цвет

Б

ч

Г

ч

4) Операция декартова произведения кортежей отношения.

Исходные данные: r(R) и s(S); T = R  S; R  S = .

Результирующее отношение: q(T).

q(T) = {t(T)  t(R)= tr  t(S)= ts} Короткая запись: q(T)=r(R) * s(S)

В q(T) входят всевозможные сцепления кортежей tr и ts. Это очень опасная операция, т.к. мощность результата P=P1*P2.

  1. Операция эквисоединения

Исходные данные: r(R) и s(S); F = R  S   (имеются одноименные атрибуты).

Результирующее отношение: q(T).

q(T) = {t(T)  t(R)= tr  t(S)= ts  tr(F) = ts(F)} Короткая запись: q(T) = r  s

В q(T) входят различные сцепления tr и ts, для которых значения одноименных атрибутов равны.

Пример:

Пост.

ШП

ШД

П1

Б

П2

Г

Деталь

ШД

Цвет

Б

ч

Г

с

Г

ч

q(ШП, ШД, Цвет) = Пост. (ШП, ШД)  Деталь(ШД, Цвет)

q

ШП

ШД

Цвет

П1

Б

ч

П2

Г

с

П2

Г

ч

Соседние файлы в предмете Информатика