Реляционная алгебра и реляционное исчисление.ppt
- Количество слайдов: 21
Реляционная алгебра и реляционное исчисление
2 Реляционная алгебра – процедурный язык, используемый для того, чтобы указать СУБД, как следует построить новое отношение на базе существующих. Реляционная алгебра – основа языков манипулирования данными Операции реляционной алгебры • Выборка • Проекция • Декартово произведение • Объединение • Разность • Пересечение • Соединение • Деление
Операции над отношениями 3 Выборка (ограничение) – определяет результирующее отношение, которое содержит только те кортежи, которые удовлетворяют заданному условию (предикату) Список водолазов - R Name Age Max_depth John Doe 35 200 Ихтиандр 20 250 Jane Doe 25 240 Mermaid 70 300 Capt. Nemo 60 350 Name Age Max_depth Ихтиандр 20 250 Jane Doe 25 240
Операции над отношениями 4 Проекция – определяет результирующее отношение, содержащее вертикальное подмножество исходного отношения, создаваемое посредством извлечения значений указанных атрибутов и исключения из результата строк-дубликатов Список водолазов - R Name Age Max_depth Class Name Class John Doe 35 200 M John Doe M Ихтиандр 20 250 3 Ихтиандр 3 Jane Doe 25 240 2 Jane Doe 2 Mermaid 70 300 1 Mermaid 1 Capt. Nemo 60 350 M Capt. Nemo M
Операции над отношениями 5 Декартово произведение – определяет новое отношение Rx. S, которое является результатом конкатенации каждого кортежа отношения R с каждым кортежем отношения S Список водолазов - R Name John Doe Jane Doe Mermaid Age 35 25 70 Max_depth 200 240 300 Список классности - S Name Ихтиандр Mermaid Class 3 1 Rx. S S. Name Age Max_depth John Doe 35 200 Jane Doe 25 240 Mermaid 70 300 R. Name Mermaid Age Max_depth 70 300 R. Name Ихтиандр Mermaid S. Name Mermaid Class 3 1 3 1 Class 1
6 Операции над отношениями Объединение – теоретико-множественное объединение отношений R и S с исключением из результата строкдубликатов Список водолазов на объекте 1 - R Name Age Max_depth Class Ихтиандр 20 250 3 Jane Doe 25 240 2 Mermaid 70 300 1 Список водолазов на объекте 2 - S Name Age Max_depth Class John Doe 35 200 M Ихтиандр 20 250 3 Capt. Nemo 60 350 M Список водолазов в городе - R S Name Age Max_depth Class John Doe 35 200 M Ихтиандр 20 250 3 Jane Doe 25 240 2 Mermaid 70 300 1 Capt. Nemo 60 350 M Для выполнения операции отношения должны быть совместимы по объединению (иметь одинаковые наборы атрибутов с одинаковыми доменами)
7 Операции над отношениями Пересечение – теоретико-множественное пересечение отношений R и S Список водолазов на объекте 1 - R Name Age Max_depth Class Ихтиандр 20 250 3 Jane Doe 25 240 2 Mermaid 70 300 1 Список водолазов на объекте 2 - S Name Age Max_depth Class John Doe 35 200 M Ихтиандр 20 250 3 Capt. Nemo 60 350 M Список водолазов, работающих на двух объектах - R S Name Age Max_depth Class Ихтиандр 20 250 3 Для выполнения операции отношения должны быть совместимы по объединению (иметь одинаковые наборы атрибутов с одинаковыми доменами)
8 Операции над отношениями Разность RS – теоретико-множественная разность отношений R и S (кортежи, имеющиеся в отношении R, но отсутствующие в S) Список водолазов на объекте 1 - R Name Age Max_depth Class Ихтиандр 20 250 3 Jane Doe 25 240 2 Mermaid 70 300 1 Список водолазов на объекте 2 - S Name Age Max_depth Class John Doe 35 200 M Ихтиандр 20 250 3 Capt. Nemo 60 350 M Список водолазов, работающих только на объекте 1 – RS Name Age Max_depth Class Jane Doe 25 240 2 Mermaid 70 300 1 Для выполнения операции отношения должны быть совместимы по объединению (иметь одинаковые наборы атрибутов с одинаковыми доменами) Примечание. Операцию пересечения можно задать эквивалентным образом с помощью операции разности: R S = R(RS)
9 Операции соединения являются производными от операции декартового произведения и эквивалентны выборке результатов по условию, указанному в предикате соединения из декартового произведения исходных отношений, к которой может применяться операция проекции. Операции соединения • -соединение • Соединение по эквивалентности • Естественное соединение • Внешнее соединение • Полусоединение
Операции соединения 10 -соединение – определяет отношение R FS, содержащее кортежи из декартового произведения отношений R и S, удовлетворяющие предикату F, имеющему вид R. ai S. bi, где одна из операций сравнения ( , , , ). Если предикат содержит только оператор равенства, то соединение называется соединением по эквивалентности (эквисоединением). Список классности - S Список водолазов - R Name John Doe Jane Doe Mermaid Age 35 25 70 Max_depth 200 240 300 Name John Doe Ихтиандр Mermaid Class M 3 1 Список водолазов, имеющих классную квалификацию R R. Name=S. Name. S R. Name Age Max_depth S. Name Class John Doe 35 200 John Doe M Mermaid 70 300 Mermaid 1 Для выполнения операции атрибуты, используемые в предикате, должны иметь одинаковые домены
Операции соединения 11 Естественное соединение R S – это соединение по эквивалентности отношений R и S, выполненное по общим атрибутам, из результатов которого исключается по одному экземпляру каждого общего атрибута. Список водолазов - R Name John Doe Jane Doe Mermaid Age 35 25 70 Список классности - S Max_depth 200 240 300 Name John Doe Ихтиандр Mermaid Class M 3 1 Список водолазов, имеющих классную квалификацию Name Age Max_depth John Doe 35 200 Mermaid 70 300 Class M 1 Для выполнения операции общие атрибуты, по которым выполняется соединение, должны иметь одинаковые домены
Операции соединения 12 Внешнее соединение выполняется в случае, когда требуется, чтобы строка из одного отношения была представлена в результате соединения, даже если в другом отношении нет совпадающего значения. Левым внешним соединением R S называется соединение, при котором кортежи отношения R, не имеющие совпадающих значений в общих столбцах, также включаются в результирующее отношение. Список водолазов - R Name John Doe Jane Doe Mermaid Age 35 25 70 Список классности - S Max_depth 200 240 300 Name John Doe Ихтиандр Mermaid Class M 3 1 Список водолазов с указанием классности, если есть R S Name John Doe Jane Doe Mermaid Age Max_depth 35 200 25 240 70 300 Class M NULL 1
13 Операции соединения Аналогично определяется Правое внешнее соединение R S (в результат включаются также кортежи из отношения S, для которых нет совпадающих значений) Name Age Max_depth Class John Doe 35 200 M Ихтиандр. NULL 3 Mermaid 70 300 1 и Полное внешнее соединение R S (в результат включаются также кортежи из обоих отношений, для которых нет совпадающих значений) Name Age Max_depth John Doe 35 200 Jane Doe 25 240 Ихтиандр NULL Mermaid 70 300 Class M NULL 3 1 Преимуществом внешнего соединения является то, что информация, содержащаяся в исходных отношениях, не теряется.
Операции соединения 14 Полусоединение R FS – определяет кортеж, содержащий кортежи из отношения R, которые входят в соединение отношений R и S. Полусоединение можно эквивалентно выразить с помощью операторов проекции и соединения (полутета-соединение): R FS= ПA(R FS), где A – набор всех атрибутов отношения R. Список водолазов - R Name John Doe Jane Doe Mermaid Age 35 25 70 Max_depth 200 240 300 Список классности - S Name John Doe Ихтиандр Mermaid Class M 3 1 Список водолазов, имеющих какую-либо классную квалификацию R R. Name=S. Name. S= ПR. Name, Age, Max_depth(R R. Name=S. Name. S), R. Name Age Max_depth John Doe 35 200 Mermaid 70 300 При использовании полусоединения сокращается количество кортежей, которые нужно обработать для получения соединения отношений, что может быть полезным при вычислении соединений в распределенных системах.
15 Операции над отношениями Пусть отношение R определено на множестве атрибутов A, а отношение S – на множестве атрибутов B, причем B A. Пусть С=AB, т. е. С – множество атрибутов R, которые не являются атрибутами S. Тогда оператор деления отношений определяет новое отношение Т=R S, определенное на множестве атрибутов C, которые соответствуют комбинации всех кортежей отношения S, т. е. : T 1=ПС(R); T 2=ПC((Sx. T 1)R); T=T 1T 2. Акваланги - S Водолазы - R Name Ихтиандр John Doe Capt. Nemo Jane Doe Mermaid Model Mk. I Mk. V Mk. III Mk. VI Mk. IV Mk. II Mk. IV Mk. VI Mk. II Mk. VI Mk. IV Model Mk. III Mk. IV Mk. VI Max_depth 150 300 250 230 350 Задача: вывести список водолазов, которые могут работать со всеми типами глубоководного оборудования (>240 м)
16 Операции над отношениями 1. Выбираем все акваланги, рассчитанные на заданную глубину: Model Mk. II Mk. IV Mk. VI 2. Осуществляем деление отношений R S': 2. 1. T 1=ПName(R) 2. 2. T 2=ПName((S'x. T 1)R) Name Ихтиандр John Doe Capt. Nemo Jane Doe Mermaid 2. 3. T=T 1T 2 Name Capt. Nemo Jane Doe Mermaid Name Ихтиандр John Doe
17 Реляционное исчисление Является способом непроцедурного описания запросов к реляционным базам данных, основанным на исчислении предикатов. Формы реляционного исчисления • реляционное исчисление кортежей (Кодд); • реляционное исчисление доменов (Лакруа и Пиро). Предикат – истинностная функция с аргументами. {x|P(x)} – множество значений переменной x, при которых предикат P является истинным. Предикаты могут соединяться с помощью логических операторов для построения формул (составных предикатов).
18 Реляционное исчисление кортежей Задача – нахождение кортежей, для которых предикат является истинным. В построении формул используются переменные кортежа, областью определения которых является отношение, что записывается в виде RANGE OF S IS Divers (областью определения переменной S является отношение Divers). Выражение "множество всех кортежей, для которых предикат P(S) является истинным" записывается как {S|P(S)}. При построении формул для указания количества экземпляров, к которым должен быть применен предикат, используются кванторы общности ( ) и существования ( ) Правила построения формул • Если P является n-арной формулой, а t 1, t 2, …, tn – константы или переменные, то P(t 1, t 2, …, tn) – правильная формула • Если t 1 и t 2 являются константами или переменными из одного домена, а - один из операторов сравнения ( , , , ), то t 1 t 2 – правильная формула; • Конъюнкция, дизъюнкция и отрицание формул являются формулами; • Если F 1 – выражение со свободной переменной X, то выражения F(X) и F(X) – также формулы.
19 Реляционное исчисление кортежей Примеры Divers Qualification Name Age Max_depth John Doe 35 200 Ихтиандр 20 250 Jane Doe 25 240 Mermaid 70 300 Capt. Nemo 60 350 Name Class John Doe M Ихтиандр 3 Jane Doe 2 Capt. Nemo M 1. Найти всех водолазов с допуском на глубину >230 м (выборка) RANGE S IS Divers {S. Name|S. Max_depth > 230} 2. Найти всех водолазов-мастеров боевой квалификации RANGE S IS Divers RANGE P IS Qualification {S. Name| P(P. Name=S. name P. Class="M") } 2. Найти всех водолазов, не имеющих классной квалификации RANGE S IS Divers RANGE P IS Qualification {S. Name| P(P. Name S. name) }
20 Реляционное исчисление кортежей Выражения реляционного исчисления могут генерировать бесконечное число кортежей, например: {S| (S Divers)} (набор кортежей, не входящих в Divers) Выражения такого типа называются опасными. Для того, чтобы избежать их возникновения, следует добавить ограничение, требующее, чтобы все результирующие значения входили в область определения формулы.
21 Реляционное исчисление доменов В реляционном исчислении доменов используются переменные, значения которых берутся из доменов, а не из кортежей отношений. Если P(d 1, d 2, …, dn) – предикат, то множество всех переменных домена d 1, d 2, …, dn, для которых предикат P будет истинным, обозначается {d 1, d 2, …, dn | P(d 1, d 2, …, dn)} В реляционном исчислении доменов проверяется условие принадлежности для определения того, принадлежат ли значения указанному отношению. Выражение R(X, Y) считается истинным тогда, когда в отношении R есть кортеж со значениями X и Y в двух атрибутах Примеры 1. Найти всех водолазов с допуском на глубину >230 м (выборка) {Name | Max_depth (Divers(Name, Max_Depth) Max_Depth>230)} 2. Найти всех водолазов-мастеров боевой квалификации {Name | Class (Divers(Name) Qualification(Name, Class) Class="M")} Вообще, реляционное исчисление доменов эквивалентно реляционному исчислению кортежей, ограниченному безопасными выражениями, которое, в свою очередь, эквивалентно реляционной алгебре, т. е. для каждого выражения реляционного исчисления кортежей существует эквивалентное выражение реляционной алгебры, и наоборот.
Реляционная алгебра и реляционное исчисление.ppt