ТОП 10:

Отношения совместимые по типу.



Будем называть отношения совместимые по типу, если они имеют идентичные заголовки, а именно:

1) Отношение имеет одно и тоже множество имён атрибутов.

2) Атрибуты с одинаковыми именами определены на одних и тех же доменах.

Оператор переименования атрибутов. Rename atr1 as new atr1.

City rename city_num as cityID

Объединение. Объединение 2х совместимых по типу отношений А и Б называется отношение с тем же заголовком что и отношение А и Б и телом состоящим из кортежей принадлежащих или А или Б или обеим отношениям.

A UNION B

Пример:

Фамилия ЗП
Иванов
Петров
Сидоров

 

Фамилия Зп
Иванов
Пушников
     
Сидоров

 

Фамилия Зп
Иванов
Петров
Сидоров
Пушников
Сидоров

Пересечение. Пересечением 2х совместимых по типу отношений А и Б называют сооотношение с тем же заголовком А и Б и телом состоящим из кортежей состоящим одновременно обоим отношениям.

Фамилия Зп
Иванов

 

Вычитание. Вычитание 2х совместимых по типу отношений с тем же заголовкм что у А и Б и телом состоящим из кортежей принадлежащих отношению А и не принадлежащих отношению Б.

Декартово произведение называется отношение заголовок которого является сцеплением заголовков А и Б , а тело состоит из кортежей являющихся сцеплением кортежей отношений А и Б.

Если в отношении А и Б имеются атрибуты с одинаковыми наименованиями, то ……………………………………необходимо переименовать.

Специальные реляционные операторы. Выборка селекция или ограничение.

Выборкой на отношении А с условием с называется отношением с тем же заголовком что и у отношения А и телом состоящим из кортежей, значения атрибутов которых при подстановке в условие с даёт значение истина. «с» представляет собой логическое выражение в которое могут входить атрибуты отношения А или скалярные выражения.

Синтаксис выборки

A WHERE c

Пример:

Фамилия ЗП
Иванов
Петров
Сидоров

A where зп<3000; (зарплата меньше 3 тыс руб.)

Итог:

Фамилия ЗП
Иванов
Петров

 

Данная операция даёт горизонтальный срез отношению.

Оператор Проекция.

Проекция отношения А по атрибутам х,у,z…где каждый атрибут принадлежит отношения А называется отношением с заголовком х,у,z и телом содержащим множество картежей вида (х,у,z), таких для которых в отношении А найдутся картежи со значением атрибута Х равного х, У=у и Z=z.

Синтаксис:

А[x,y,z]

Даёт вертикальный срез отношения в котором удалены все возникшие при таком срезе дубликаты картежей.

Пример:

Наименование Город
1 Иванов Уфа
2 Петров москва
3 Сидоров москва
4 Сидоров Челябинск

А[город поставщика] будет иметь вид:

Город
Уфа
москва
москва
Челябинск

Соединение.

Разновидности:

1) Общая операция соединения. Соединением отношения А и В по условию с, называется отношением вида ( A TIMES B) where c, где

С-логическое выражение в которое могут входить атрибуты отношения А и В или скалярные выражения.

Операция соединения-это р-т последовательного применения операции декартового произведения и выборки.

2) Тетта-соединение.Пусть отношение А содержит атрибут х, отношение В содержит атрибут у. А тетта – один из операторов сравнения, тогда тетта соединение отношения А по атрибуту х с отношение В по атрибуту у, называется отношением (А Times B) where x «тетта» у.

Пример:

Наименование Статус
Макаров
Маринкин
Черкасов

Отношение детали:

Наименование Статус
Болт
гайка
винт

Вопрос:какие поставщики имеют право поставлять какие детали?

Ответ: A[x>=y]B.А само отношение будет выглядеть

№поставщика Наименование Поставщика Статус поставщика №детали Наименование детали Статус детали
макаров болт
макаров Гайка
макаров Винт
маринкин Винт
черкасов Гайка
черкасов винт

 

3) Экви-соединение. Частичный случай тетта-соединиения, поэтому А[x=y]B. Пример: отношение Р

№поставщика Наименование поставщика
Макаров
Маринкин
черкасов

Отношение D

№ детали   Наименование детали
Болт
Гайка
Винт

Отношение PD

№ поставщика № детали Кол-во
     

Какие детали поставляются какими поставщиками записываются в след виде:

P[N-пост=N-пост]

(P rename n-пост as nпост 1)

[N пост 1=n пост 2]

(pdrename nпост as n пост 2)

№ пост наименование № пост 2 № детали количество
макаров
макаров
макаров
маринкин
маринкин
Черкасов

 

4) Естественное. Пусть даны отношенияА с атрибутами (А1 а2 аn x1 x2 xn) и В(X1 X2 Xn b1 b2 bn)

Естественным отношением А и В называется отношение с заголовком (А1 А2 Аn x1 x2 xn b1 b2 bn

И телом(a1 a2 an x1 x2 xn b1 b2 bn)

(a1 a2 an x1 x2 xn)принадлежит А и (x1 x2 xn b1 b2 bn)принадл В

Аjoin B

Естественное соединение проходит по всем одинаковым полям. Оно эквивалентно след последовательности раляционных операций:

1) Переименовать одинаковые имена

2) Выполнить декартовое произведение отношений

3) Выполнить выборку по совпадающим атрибутам имеющим одинаковые имена

4) Выполнить проекцию удалив повторяющие атрибуты

5) Переименовать атрибуты вернув им первоначальные имена

Можно выполнить последовательное естественное соединение нескольких отношений:

(A join B) join C= a join(Bjoin C)=a join B join C

Пример:

P join PD join D

Имя поставщика № детали Наименование детали Кол-во
Макаров Болт
Макаров Гайка
Макаров Винт
Маринкин Болт
Маринкин Гайка
черкасов болт

 

Операция деления.

Пусть даны отношения А(Х1 Х2 Хн У1 У2 Ун) и отношение В (У1 У2 Ун)

Деление отношения А на В называется отношением с заголовком (х1 х2 хн) и телом содержащим но-во кортежей (х1 х2 хн) т.ч. для всех кортежей у1 у2 ун принадлеж В в отношении А найдётся кортеж (х1 х2 хн у1 у2 ун). Отношение А называют делимым, отношение В называют делителем.

Синтаксис: А devidby b. В формулировке вопроса всегда есть всё и все.

Пример: вопрос: Какие поставщики поставляют все детали??

1) В качестве делимого возмём проэкцию X=PD[N_пост, N_дет]

№ пост №дет

Y=D[Nдет]

N пост

 

X devide by y

Проверочная

Получить имена поставщиков которые пост по крайней мере 1 гайку.

1й способ((((D where наим детали=гайка)join DP))jon P)[имя поставщика]

2ой способ(((d join Dp)join P)where наименование D =гайка)[наименование поставщика]

2)Поучить имена поставщиков поставляющих все детали

((DP [N_D, N_P] devideby D[D_N])join P)[наим пост]

Получить имена поставщиков не пост деталь номер 2

T1-имена пост (табл)

Т1=Р[N_P]

T2=P join PD

T3= T2 where N_D=2

T4=T3 [N_P]

T5=T1 minus T4

T6 T5 join P

T7=t6[имя]

((P[N_пост]minus ((P join DP)where N_D=2)[N_пост])join P)[наим_пост]

Лекция







Последнее изменение этой страницы: 2017-01-25; Нарушение авторского права страницы

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 35.173.57.202 (0.009 с.)