Манипуляционная часть реляционной модели данных: реляционная алгебра.

Презентация:



Advertisements
Похожие презентации
Реляционное исчисление. Общая характеристика Запрос – формула некоторой формально-логической теории; описывает свойства желаемого результата. Ответ –
Advertisements

Базы данных Лекция 4 Базисные средства манипулирования реляционными данными: реляционная алгебра Кодда.
Основы реляционных баз данных Лекция 5. Реляционная модель. Основы реляционной алгебры Желенкова Ольга Петровна, с.н.с. ОИ САО РАН, к.ф.-м.н апреля.
Операции реляционной алгебры базовые теоретико- множественные Объединение Разность Пересечение Произведение специальные реляционные Проекция Выборка Деление.
Реляционная модель данных Определения Основные операции над отношениями (реляционная алгебра)
РЕЛЯЦИОННАЯ АЛГЕБРА. Элементы РМД и формы их представления Сущность – это объект любой природы. Данные о сущности хранятся в отношении (таблице). Атрибуты.
Реляционная алгебра – механизм манипулирования реляционными данными Все операции производятся над отношениями, и результатом операции является отношение.
Модуль 1. Математические основы баз данных и знаний 1.
РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ БАЗЫ ДАННЫХ Реляционная Алгебра.
Базы данных Лекция 5 Базисные средства манипулирования реляционными данными: алгебра A Дейта и Дарвена.
Обзор реляционной алгебры В реляционной модели, манипуляционная часть, утверждает, что доступ к реляционным данным осуществляется при помощи реляционной.
Определения Банк данных (БнД) это система специальным образом организованных дан­ных - баз данных, программных, технических, языковых, организационно-
Лекция: Реляционная алгебра. Третья часть реляционной модели, манипуляционная часть, утверждает, что доступ к реляционным данным осуществляется при помощи.
Реляционная алгебра Презентация подготовлена зав. кафедрой ИБ, д.п.н., профессором З.В. Семеновой.
ОРГАНИЗАЦИЯ БАЗ ДАННЫХ И ЗНАНИЙ ТЕМА 4 ДОСТУП К ДАННЫМ В РЕЛЯЦИОННЫХ МОДЕЛЯХ ХРАНЕНИЯ ДАННЫХ.
Базы данных Операции реляционной алгебры. Язык SQL основан на операциях реляционной алгебры (РА). Операции РА применяются к отношениям и в результате.
РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ БАЗЫ ДАННЫХ Реляционная Алгебра.
Языки манипулирования данными. Общая характеристика Язык, в котором можно (по крайней мере) моделировать исчисление с переменными- кортежами, либо, что.
Язык SQL Вложенные запросы и внешние объединения.
Определение РМД Основная идея реляционной модели данных заключается в том, чтобы представить любой набор данных в виде двумерного массива – таблицы. В.
Транксрипт:

Манипуляционная часть реляционной модели данных: реляционная алгебра

Общая характеристика Основа – спецификационные операторы, базирующиеся на теории множеств. Языки запросов: алгебраические языки (реляционная алгебра) – как получить требуемый результат языки исчисления предикатов (реляционное исчисление) – что должно быть получено –с переменными-кортежами –с переменными на доменах

Реляционная алгебра: введение (1) Предоставляет средства для записи и интерпретации выражений: операнд1 операция операнд2 результат 1. Операнды и результат – отношения: свойство замкнутости R 1 опц R 2 опц R 3 … 2. Отношение задается интенсионалом (схема отношения) и экстенсионалом (реализация отношения)

Реляционная алгебра: введение (2) Правила наследования имен атрибутов: Даны операнды: R 1 (A 1, A 2, …), R 2 (B 1, B 2, …). Выражение реляционной алгебры: R = R 1 опц R 2 Результат R(C 1, C 2, …), где C i – атрибут, совпадающий с A j, или B k

Операции реляционной алгебры Теоретико-множественные объединение, вычитание, пересечение, прямое (декартово) произведение Специальные выбор (селекция), проекция, соединение, деление Переименования

Операция переименования Изменяет только схему отношения, сохраняя реализацию. Пример: переименовать атрибут C в SC. До переименования После переименования SABC abc dbe SABSC abc dbe

Теоретико-множественные операции Объединение Вычитание Пересечение Прямое (декартово) произведение

Объединение множеств (1) Операция объединения теории множеств: Даны два множества S 1 и S 2. Объединение множеств: S = S 1 S 2 = { s i | s i S 1 и/или s i S 2 }

Объединение множеств (2) D 1 = {1, 3, 5, 7, 9}, D 2 = {a, b, c}, D 3 = {2, 4, 6, 8}. Объединение D 1 и D 2 : S = D 1 D 2 = {1, 3, 5, 7, 9, a, b, c} – множество, но не домен Объединение D 1 и D 3 : D = D 1 D 3 = {1, 3, 5, 7, 9, 2, 4, 6, 8} – домен

Объединение множеств (3) R 1 (A 1 :D 1, A 2 :D 1 ), r 1 = {, } R 2 (A 1 :D 1, A 2 :D 2 ), r 2 = {, } R 3 (A 1 :D 1, A 2 :D 3 ), r 3 = {, } Объединение r = r 1 r 2 = {,,, } – не отношение Объединение r = r 1 r 3 = {,,, } – отношение

Совместимость по объединению Простые домены считаются совместимыми по объединению, если они состоят из элементов одного типа. Два отношения считаются совместимыми по объединению, если: оба отношения имеют одно и то же множество атрибутов, одноименные атрибуты двух отношений определены на совместимых по объединению доменах.

Объединение отношений (1) Объединением (Union) двух отношений r 1 (R 1 ) и r 2 (R 2 ), совместимых по объединению, называется отношение s = r 1 r 2, для которого: схема отношения совпадает с R 1 или R 2, реализация отношения представляет множество кортежей, принадлежащих реализации r 1 и/или r 2

Объединение отношений (2) Даны r 1 (R 1 ), r 2 (R 2 ), r 1 = {t 1i }, r 2 = {t 2i }, R 1 R, R 2 R. s = r 1 r 2 = s(R), s = {t i | t i r 1 и/или t i r 2 } r1r1 ABCr2r2 ABCrABC abcaecabc aecdccaec dbadbddba dcc dbd

Объединение отношений (3) Свойства операции: коммутативна r 1 r 2 r 2 r 1 ассоциативна r 1 (r 2 r 3 ) (r 1 r 2 ) r 3 r 1 r 2 r 3

Вычитание отношений (1) Вычитанием (Except) двух отношений r 1 (R 1 ) и r 2 (R 2 ), совместимых по объединению, называется отношение s = r 1 – r 2, для которого: схема отношения совпадает с R 1 или R 2, реализация отношения представляет множество кортежей, принадлежащих реализации r 1, за исключением тех, которые имеются в r 2

Вычитание отношений (2) Даны r 1 (R 1 ), r 2 (R 2 ), r 1 = {t 1i }, r 2 = {t 2i }, R 1 R, R 2 R. s = r 1 – r 2 = s(R), s = {t i | t i r 1 и t i r 2 } r1r1 ABCr2r2 ABCrABC abcaecabc aecdccdba dbadbd

Вычитание отношений (3) Свойства операции: не коммутативна не ассоциативна

Пересечение отношений (1) Пересечением (Intersect) двух отношений r 1 (R 1 ) и r 2 (R 2 ), совместимых по объединению, называется отношение s = r 1 r 2, для которого: схема отношения совпадает с R 1 или R 2, реализация отношения представляет множество кортежей, содержащихся и в r 1, и в r 2

Пересечение отношений (2) Даны r 1 (R 1 ), r 2 (R 2 ), r 1 = {t 1i }, r 2 = {t 2i }, R 1 R, R 2 R. s = r 1 r 2 = s(R), s = {t i | t i r 1 и t i r 2 } r1r1 ABCr2r2 ABCrABC abcaecaec aecdcc dbadbd

Пересечение отношений (3) Свойства операции: коммутативна r 1 r 2 r 2 r 1 ассоциативна r 1 (r 2 r 3 ) (r 1 r 2 ) r 3 r 1 r 2 r 3 Операцию пересечения можно выразить через операцию вычитания: r 1 r 2 = r 1 – (r 1 – r 2 )

Декартово произведение (1) Декартовым произведением двух отношений r 1 (R 1 ) и r 2 (R 2 ), схемы отношений которых не имеют одноименных атрибутов, называется отношение s = r 1 r 2, для которого: схема отношения определяется сцеплением (объединением) схем R 1 и R 2, реализация отношения представляет множество кортежей, которое получается путем сцепления каждого кортежа из r 1 с каждым кортежем из r 2

Декартово произведение (2) Даны r 1 (R 1 ), R 1 (A 1, A 2, …, A m ), r 2 (R 2 ), R 2 (B 1, B 2, …, B n ), r 1 = {t 1i }, r 2 = {t 2i }, R 1 R 2 = 0 s = r 1 r 2 = s(R), R(A 1, A 2, …, A m, B 1, B 2, …, B n ), s = {u i v j | u i r 1, v j r 2 } r1r1 ABr2r2 XYZsABXYZ abadxabadx cbxacabxac cdbabcdb cbadx cbxac cbcdb

Декартово произведение (3) Свойства операции: коммутативна r 1 r 2 r 2 r 1 ассоциативна r 1 (r 2 r 3 ) = (r 1 r 2 ) r 3 = r 1 r 2 r 3 В теории множеств данная операция и не коммутативна, и не ассоциативна

Специальные операции Проекция Выбор (или селекция) Соединение Деление

Проекция (1) Проекцией отношения r(R), R = {A i }, на некоторый список имен атрибутов (подмножество атрибутов) L из R, L R, называется отношение s = L (r), для которого: схема отношения определяется списком L, реализация отношения есть множество кортежей, полученных из кортежей отношения r путем вычеркивания элементов, соответствующих атрибутам R – L, и исключением дубликатов

Проекция (2) Дано r(R), R(A 1, A 2, …, A m ), r = { } s(L) = L (r), L(B 1, B 2, …, B k ), B i R, s = { | таких, что u i = t j, если B i A j } rABCD S = AB (r) AB abcdab abxcdb dbac

Проекция (3) Свойство проекции: Если Y R и X R, то Y ( X (r)) X ( Y (r)) X Y (r) Если Y X R, то Y ( X (r)) Y (r)

Выбор (1) Выбором из отношения r(R) по условию F называется отношение s = F (r), для которого: схема отношения совпадает со схемой R, реализация отношения есть множество кортежей из r, удовлетворяющих условию F

Выбор (2) Условие (предикат) F: операнды – атрибуты отношения и/или константы; операции – операции отношения (=, и т.д.) и логические операции (,, ).

Выбор (3) Дано r(R), r = {t i } s(R) = F (r), s = {u i | u i R и F(u i ) – истинно} rABC A = a C = c (r) ABC abcabc adcadc cbd

Выбор (4) Свойства операции: коммутативна F1 ( F2 (r)) = F2 ( F1 (r)) = F1 F2 (r) дистрибутивна относительно операций = (,, –): F (r s) = F (r) F (s)

Соединение Естественное соединение Соединение по условию

Естественное соединение (1) Естественным соединением отношений r 1 (R 1 ), R 1 = XY, и r 2 (R 2 ), R 2 = YZ, где Y – общее подмножество атрибутов из R 1 и R 2, определенных на одних и тех же доменах, называется отношение s(R) = r 1 r 2, для которого: схема отношения R = R 1 R 2 = XYZ, реализация отношения есть множество кортежей {t}, для которых XY (t) r 1 и YZ (t) r 2

Естественное соединение (2) Даны r 1 (R 1 ), R 1 = XY, и r 2 (R 2 ), R 2 = YZ. s(R) = r 1 r 2, R = R 1 R 2 = XYZ, s = {t | таких, что XY (t) r 1 и YZ (t) r 2 } r1r1 ABCr2r2 BCDs = r 1 r 2 ABCD abcbcdabcd dbcbceabce bbfadbdbcd cadabfdbce cadb

Левое внешнее соединение r 1 r 2 – включает результат операции естественного соединения, дополненный и теми кортежами из r 1, для которых нет соответствующих кортежей из r 2 r1r1 ABCr2r2 BCDs = r 1 r 2 ABCD abcbcdabcd dbcbceabce bbfadbdbcd cadabfdbce bbf– cadb

Правое внешнее соединение r1r1 ABCr2r2 BCDs = r 1 r 2 ABCD abcbcdabcd dbcbceabce bbfadbdbcd cadabfdbce cadb –abf r 1 r 2 – включает результат операции естественного соединения, дополненный и теми кортежами из r 2, для которых нет соответствующих кортежей из r 1

Полное внешнее соединение r1r1 ABCr2r2 BCDs = r 1 r 2 ABCD abcbcdabcd dbcbceabce bbfadbdbcd cadabfdbce bbf– cadb –abf

Соединение по условию (1) Даны два отношения r 1 (R 1 ) и r 2 (R 2 ), для которых R 1 R 2 =. Атрибут A R 1 сравним по условию с атрибутом B R 2. Соединением отношений r 1 (R 1 ) и r 2 (R 2 ) по условию называется отношение s(R) = r 1 r 2, для которого: схема отношения R = R 1 R 2 = R 1 R 2, реализация отношения есть множество кортежей, полученных сцеплением кортежей из r 1 и r 2, удовлетворяющих условию A B A B

Соединение по условию (2) Даны r 1 (R 1 ) и r 2 (R 2 ), R 1 R 2 =. s(R) = r 1 r 2, R = R 1 R 2, s = {uv | таких, что u r 1, v r 2 и для u и v выполняется условие } A B r1r1 ABCr2r2 XYr = r 1 r 2 ABCXY B < X

Деление (1) Даны два отношения r 1 (R 1 ) и r 2 (R 2 ), для которых R 2 R 1 и R 2 не пусто. Частным от деления отношения r 1 на отношение r 2 называется отношение s(R) = r 1 r 2, для которого: схема отношения R = R 1 – R 2, реализация отношения есть множество кортежей t таких, что для всех u i r 2 существует v j r 1 такой, что v j (R 1 – R 2 ) = t и v j (R 2 ) = u i

Деление (2) Даны r 1 (R 1 ), r 2 (R 2 ), R 2 R 1, R 2 0. s(R) = r 1 r 2, R = R 1 – R 2, s = {t j | u r 2 (t j u r 1 )} Другими словами, s r 2 r 1 Выражение реляционной алгебры, эквивалентное операции деления: r 1 r 2 = R1-R2 (r 1 ) – R1-R2 (( R1-R2 (r 1 ) r 2 ) – r 1 )

Деление: пример r1r1 ABCDr2r2 CD r = r 1 r 2 AB abcdcdbc abcfefed bcef bccd edef edcd edcf

Примеры запросов (1) Схема базы данных: S(Sid, SN, SC) – ПОСТАВЩИК ( Номер поставщика, Имя, Город) P(Pid, PN, PC) – ДЕТАЛЬ ( Номер детали, Название, Цена) SP(Sid (FK1), Pid (FK2), QTY) – ПОСТАВКА ( Номер поставщика, Номер детали, Количество)

Примеры запросов (2) Получить имена поставщиков, поставляющих деталь с номером P1. SN ( Pid = P1 (S SP)) Получить имена поставщиков, не поставляющих деталь с номером P1. SN (S) – SN ( Pid = P1 (S SP))

Примеры запросов (3) Получить имена поставщиков, поставляющих только деталь с номером P1 SN ( Pid =P1 (S SP)) – SN ( Pid P1 (S SP)) Получить имена поставщиков, поставляющих все детали SN (( Sid,Pid (SP) Pid (P)) S)