17226

ТЕОРЕТИКО-МНОЖЕСТВЕННЫЕ ОПЕРАЦИИ РЕЛЯЦИОННОЙ АЛГЕБРЫ

Лекция

Информатика, кибернетика и программирование

Лекция №5 Теоретикомножественные операции реляционной алгебры Объединение Как было отмечено теоретикомножественные операции Определение. Объединением двух совместимых по типу отношений и называется отношение с той же схемой что и у отношений и сос

Русский

2013-06-30

126.5 KB

14 чел.

Лекция №5

Теоретико-множественные операции реляционной алгебры

Объединение

Как было отмечено, теоретико-множественные операции

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

Синтаксис операции объединения:

или A  B

Замечание. Объединение, как и любое отношение, не может содержать одинаковых кортежей. Поэтому, если некоторый кортеж входит и в отношение , и отношение , то в объединение он входит один раз.

Пример. Пусть даны два отношения  и  с информацией о сотрудниках:

Таблица 1 Отношение A 

Табельный номер

Фамилия

Зарплата

1

Иванов

1000

2

Петров

2000

3

Сидоров

3000

Таблица 2 Отношение B 

Табельный номер

Фамилия

Зарплата

1

Иванов

1000

2

Пушников

2500

4

Сидоров

3000

Объединение отношений  и  будет иметь вид:

Таблица 3 Отношение A UNION B 

Табельный номер

Фамилия

Зарплата

1

Иванов

1000

2

Петров

2000

3

Сидоров

3000

2

Пушников

2500

4

Сидоров

3000

Синтаксическая конструкция на SQL таких запросов описывается следующим образом:

SELECT X,Y,…Z FROM A

UNION

SELECT X,Y,…Z FROM B

Для приведенного примера SQL – запрос соответствует структуре:

SELECT Табельный номер, Фамилия, Зарплата FROM A 

UNION

SELECT Табельный номер, Фамилия, Зарплата FROM B

Замечание. Как видно из приведенного примера, потенциальные ключи, которые были в отношениях  и  не наследуются объединением этих отношений. Поэтому, в объединении отношений  и  атрибут "Табельный номер" может содержать дубликаты значений. Если бы это было не так, и ключи наследовались бы, то это противоречило бы понятию объединения как "объединение множеств". Конечно, объединение отношений  и  имеет, как и любое отношение, потенциальный ключ, например, состоящий из всех атрибутов.

Пересечение

Определение. Пересечением двух совместимых по типу отношений  и  называется отношение с той же схемой, что и у отношений  и , и экземпляром, состоящим из кортежей, принадлежащих одновременно обоим отношениям  и .

Синтаксис операции пересечения:

A EXCEPT B или A B

Пример 3. Для тех же отношений  и , что и в предыдущем примере пересечение имеет вид:

Таблица 4 Отношение A EXCEPT B 

Табельный номер

Фамилия

Зарплата

1

Иванов

1000

Синтаксическая конструкция на SQL таких запросов описывается следующим образом:

SELECT X,Y,…Z FROM A

EXCEPT

SELECT X,Y,…Z FROM B

Для приведенного примера SQL – запрос соответствует структуре:

SELECT Табельный номер, Фамилия, Зарплата FROM A 

EXCEPT

SELECT Табельный номер, Фамилия, Зарплата FROM B

Устно. Казалось бы, что в отличие от операции объединения, потенциальные ключи могли бы наследоваться пересечением отношений. Однако это не так. Вообще, никакие реляционные операторы не передают результирующему отношению никаких данных о потенциальных ключах. Причина этого заключается в том, что потенциальный ключ - семантическое понятие, отражающее различимость объектов предметной области. Наличие потенциальных ключей не выводится из структуры отношения, а явно задается для каждого отношения, исходя из его смысла. Реляционные же операторы являются формальными операциями над отношениями и выполняются одинаково, независимо от смысла данных, содержащихся в отношениях. Поэтому, реляционные операторы ничего не могут "знать" о смысле данных.

Вычитание

Определение. Вычитанием двух совместимых по типу отношений  и  называется отношение с той же схемой, что и у отношений  и , и экземпляром, состоящим из кортежей, принадлежащих отношению  и не принадлежащих отношению .

Синтаксис операции вычитания:

A INTERSECT B или A B

Пример 4. Для тех же отношений  и , что и в предыдущем примере вычитание имеет вид:

Таблица 5 Отношение A INTERSECT B 

Табельный номер

Фамилия

Зарплата

2

Петров

2000

3

Сидоров

3000

Синтаксическая конструкция на SQL таких запросов описывается следующим образом:

SELECT X,Y,…Z FROM A

INTERSECT

SELECT X,Y,…Z FROM B

Для приведенного примера SQL – запрос соответствует структуре:

SELECT Табельный номер, Фамилия, Зарплата FROM A 

INTERSECT

SELECT Табельный номер, Фамилия, Зарплата FROM B

Декартово произведение

Определение. Декартовым произведением двух отношений  и  называется отношение, схема которого является объединением схем отношений  и :

,

а экземпляр включает кортежи, полученные сцеплением кортежей отношений  и :

,

таких, что , .

Синтаксис операции декартового произведения:

A  B

Замечание. Перемножать можно любые два отношения, совместимость по типу при этом не требуется.

Замечание. Мощность произведения A  B равна произведению мощностей отношений  и , т.к. каждый кортеж отношения  соединяется с каждым кортежем отношения .

Замечание. Если в отношения  и  имеются атрибуты с одинаковыми наименованиями, то перед выполнением операции декартового произведения такие атрибуты необходимо переименовать.

Пример. Пусть даны два отношения  и  с информацией о поставщиках и деталях:

Таблица 6 Отношение A (Поставщики) 

Номер поставщика

Наименование поставщика

1

Иванов

2

Петров

3

Сидоров

Таблица 7 Отношение B (Детали) 

Номер детали

Наименование детали

1

Болт

2

Гайка

3

Винт

Декартово произведение отношений  и  будет иметь вид:

Таблица 8 Отношение A  B 

Номер поставщика

Наименование поставщика

Номер детали

Наименование детали

1

Иванов

1

Болт

1

Иванов

2

Гайка

1

Иванов

3

Винт

2

Петров

1

Болт

2

Петров

2

Гайка

2

Петров

3

Винт

3

Сидоров

1

Болт

3

Сидоров

2

Гайка

3

Сидоров

3

Винт

Замечание. Сама по себе операция декартового произведения не очень важна, т.к. она не дает никакой новой информации, по сравнению с исходными отношениями. Для реальных запросов эта операция почти никогда не используется. Однако операция декартового произведения важна для выполнения специальных реляционных операций, в контексте некоторых запросов.

Замечание. По умолчанию операции UNION, INTERSECT и EXCEPT удаляют из результирующих отношений повторяющиеся строки. Но если требуется оставить все строки, в SQL используются специальные формы операций UNION ALL, INTERSECT ALL и EXCEPT ALL.

Примеры использования реляционных операций

(Примеры таблиц смотреть в лекции 4)

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

Решение:

PNAME(DNUM = 2(DP JOIN P))

select P.PNAME

from DP inner join P on DP.PNUM = P.PNUM

where DNUM = 2

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

Решение:

PNAME((DNAME = Гайка(D JOIN DP) JOIN P))

select PNAME

from D inner join DP on D.DNUM = DP.DNUM

where D.DNAME = ‘Гайка

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

Решение:

PNAME((PNUM, DNUM(DP) / DNUM(D)) JOIN P)

Ответ на этот запрос можно получить и пошагово:

T1 = PNUM, DNUM(DP) – получить список номера поставщиков и поставляемые ими детали;

T2 = DNUM(D) – получить список номеров всех деталей;

T3 = T1 / T2 – получить список всех поставляемых деталей;

T4 = T3 JOIN P – получить список номеров деталей и имена поставщиков;

T5 = PNAME(T4) – список имен поставщиков поставляющих все детали.

Замечание. Используя средства SQL, одним запросом эту выборку сформулировать нельзя.

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

Решение:

PNAME (PNUM (PNUM(P) INTERSECT (DNUM = 2 (P JOIN DP))) JOIN P)

Ответ на этот запрос можно получить и пошагово:

T1 = PNUM(P) - получить список номеров всех поставщиков;

T2 = P JOIN DP - соединить данные о поставщиках и поставках

T3 = DNUM = 2(T2) - в данных о поставщиках и поставках оставить только данные о поставках детали номер 2.

T4 = PNUM(T3) - получить список номеров поставщиков, поставляющих деталь номер 2.

T5 = T1 INTERSECT T4 - получить список номеров поставщиков, не поставляющих деталь номер 2.

T6 = T3 JOIN P - соединить список номеров поставщиков, не поставляющих деталь номер 2 с данными о поставщиках (получатся полные данные о поставщиках, не поставляющих деталь номер 2).

T7 = PNAME(T6) - искомый ответ (имена поставщиков, не поставляющих деталь номер 2).

Используя SQL операцию вычитанию можно реализовать одним запросом, например

select PNAME

from P

where P.PNUM not in (select P.PNUM

from DP inner join P

on DP.PNUM = P.PNUM

where DNUM = 2)


 

А также другие работы, которые могут Вас заинтересовать

35659. Изготовление блинчиков. Творческий проект 253.46 KB
  Опарное дрожжевое творог фрукты тесто начинка грибы Пресное повидло икра Выбор идеального варианта. Я выбрала из предложенных вариантов блинчики с ягодами и дрожжевое тесто. Некоторые национальные рецепты требуют добавления в тесто дрожжей или пищевой соды. Тесто не должно быть густым.
35660. Украшение дня рождения в японском стиле 919.84 KB
  Оценка стоимости изделия 10. Оценка изделия 11. Оценка проектирования Определение потребности Приближался мой день рождения. Планирование работы Распределить ткань на стены; Нарисовать акриловой черной краской на ткане иероглифы; В некоторых местах подвязать ткань красивой лентой; Оборудовать стол Надуть шарики Оценка стоимости изделия Для украшения стен нам понадобилось купить: ленты – на ленты мы потратили 120 рублей; ткань стоимость ткани не обсчитывается т.
35661. Лоскутное шитье. Творческий проект 749.98 KB
  Процесс выращивания этих культур обработки сырья был очень длительным и трудоемким поэтому ткани ткали шириной 40 см соответственно крою рубахи или полотенца чтобы при шитье практически не оставалось отходов. Ширина ситцевого полотна составляла 7580 см то есть была шире кроя одежды и смекалистые хозяйки оставшимися лоскутками стали удлинять детскую одежду украшать подолы рубах рукава и оплечья. Расчет себестоимости наименование использованных материалов цена руб. расход материалов на изделие затраты на материалыруб.
35663. Чернігівська кераміка. Особливості її форми та колориту 1.77 MB
  До побутових художніх керамічних виробів належать полив’яні глиняні яйця так звані писанки широко розповсюджені на Русі в тому числі і в Чернігові. У формах керамічних виробів того часу помітні прототипи форм і елементів декору гончарних виробів наступних віків горщик макітра миска. У формах керамічних виробів того часу помітні прототипи форм і елементів декору гончарних виробів наступних віків горщик макітра миска. Розпис ангобами в оздобленні глиняних виробів набув широкого розповсюдження в ХVІ–ХVІІ ст.
35664. Вишивка атласними стрічками. Картина Кошик з квітами 1.69 MB
  Його мета полягає в тому щоб з’ясувати якої вони думки щодо того якою повинна бути обрана мною картина. Аналіз об’єктіваналогів Ця картина приваблює мене своєю кольоровою гамою у поєднанні з ніжним віддтінком тканини. Ця картина приваблює мене своїми дрібними деталями тобто вони виконані францюзькими вузликами.
35665. Вязання крючком. Творчий проект 208.84 KB
  Відповідно до метиоб’єкту і предмету роботи були поставлені такі завдання: Проаналізувати та теоретично обґрунтувати особливості в’язання крючком. Висока якість виконання речей з могил коптів дозволяє вважати що техніка в'язання була відома набагато раніше. У 1867 році Вільям Фелкін висунув гіпотезу що в'язання було відоме ще за часів Троянської війни.
35666. Технологія пошиття повсякденної спідниці 64.07 KB
  Але де взяти нову спідницю щоб вона була не тільки модна але і подобалася б у всіх деталях добре сиділа на фігурі і була не дуже дорога Найкраще зшити її самої. Мета: Зшити спідницю. Завдання: 1 Навчитися шити спідницю 2 Ознайомитися з технологією пошиття спідниці 3 Зшити спідницю. Мистецтво шиття Для того щоб зшити спідницю потрібно виконати кілька етапів.
35667. Випалювання сови. Творчий проект 2.23 MB
  Випалювання сови Хід проектування У ході проектування свого виробу я повинен пройти такі етапи: І. Щоправда я вимушений був розчаруватись бо не мав спеціального пристрою для випалювання по дереву. І коли у школі задали домашнє завдання зробити якийнебудь виріб то одразу ж згадав про випалювання і прийшовши додому взявся за роботу. Серед багатьох художніх ремесел що з обробкою дерева окреме місце посідає декоративне випалювання.