Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Операции реляционной алгебры над отношениями

МОДЕЛИ ДАННЫХ ч.2

Лекция 3

Операторы SOME и ANY взаимозаменяемы

Например

Использование операторов EXISTS, ANY, ALL и SOME

Эти операторы берут подзапросы в качестве аргументов. Оператор EXISTS используется для указания предикату на то, чтобы производить вывод в подзапросе, в качестве результата он выдает значение ИСТИНА или ЛОЖЬ. Он может работать с булевскими выражениями AND, OR и NOT.

SELECT * FROM USP

WHERE USP.OCENKA = 5 AND

EXISTS

(SELECT * FROM USP WHERE

USP.OCENKA = 5)

Позволяет извлекать данные из таблицы успеваемости, если в ней присутствуют отличные оценки.

SELECT * FROM STUDENTS

WHERE SNUM = ANY

(SELECT SNUM FROM USP)

Выводит студентов, которые получили оценки по разным предметам.

Этот же запрос можно записать с использованием оператора IN

SELECT * FROM STUDENTS

WHERE SNUM IN

(SELECT SNUM FROMN USP)

Для вывода названия учебных предметов, для которых существует хотя бы одна учебная дисциплина с количеством часов, меньшим, чем у текущей необходимо:

 

SELECT PNAME FROM PREDMET

WHERE HOURS > ANY

(SELECT HOURS FROM PREDMET)

Оператор ALL работает таким образом, что предикат является верным, если каждое значение, выбранное подзапросом, удовлетворяет условию в предикате внешнего запроса:

SELECT * FROM USP

WHERE OCENKA >= ALL

(SELECT OCENKA FROM USP

WHERE UDATE = 10/06/1999)

Выводит только тех студентов, чьи оценки выше или равны полученным 10/06/1999.

Операторы ANY и ALL не работают с NULL значениями.

 

 

 

Рассмотрим основные операции над отношениями

 

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

 

Пусть заданы два отношения R1 ={r1} и R2 ={r2}, где r1 и r2 – соответственно кортежи отношений R1 и R2, то объединение

 

R3 = R1 U R2 = { r | r Î R1 U r Î R2 }, (1)

 

где r – кортеж нового отношения, U – операция логического сложения «ИЛИ».

 

Пример:

 

Исходными отношениями являются отношения R1 и R2 , которые содержат перечень номеров заказов и вес двух различных отдела сбыта. Отношение R3 содержит общий перечень заказов, оформляемых в отделе сбыта.

 

R1 R2

Номер заказа Вес заказа Номер цеха   Номер заказа Вес заказа Номер цеха
             
             
             
             
             

 

 

R3

Номер заказа Вес заказа Номер цеха
     
     
     
     
     
     

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

 

R4 = R1 Ç R2 = { r | r Î R1 Ç r Î R2 }, (2)

 

где r – кортеж нового отношения, Ç – операция логического умножения «И».

Пример:

 

В отношении R4 содержится перечень заказов, которые оформляются одновременно на двух участках сбыта.

 

R1 R2

Номер заказа Вес заказа Номер цеха   Номер заказа Вес заказа Номер цеха
             
             
             
             
             

 

R4

Номер заказа Вес заказа Номер цеха
     
     
     

 

 

Разностью отношений R1 и R2 называется отношение, содержащее множество кортежей, принадлежащих R1 и не принадлежащих R2:

 

R5 = R1 R2 = { r | r Î R1 Ç r Ï R2 }, (3)

 

Разностью отношений R2 и R1 называется отношение, содержащее множество кортежей, принадлежащих R2 и не принадлежащих R1:

 

R6 = R2 R1 = { r | r Î R2 Ç r Ï R1 }, (4)

 

 

Пример:

В отношении R5 содержится перечень заказов, которые оформляются только на первом участке, а в отношении R6 содержится перечень заказов, которые оформляются только на втором участке.

R5 R6

Номер заказа Вес заказа Номер цеха   Номер заказа Вес заказа Номер цеха
             
             

 

Следует отметить, что первые две операции, объединение и пересечение являются коммутативными операциями, то есть результат операции не зависит от порядка аргументов в операции. Операция разности является принципиально несимметричной операцией, то есть результат операции будет различным для разного порядка аргументов (сравни отношения R5 и R6).

 

Операция Выборки (фильтрации).

 

Для этой операции вводится дополнительное булевское выражение a(r), составленное из термов сравнения с помощью связок И (Ç), ИЛИ (U), НЕ (-).

 

Термами сравнения могут быть выражения «=»,«>», «<».

 

В этом случае результатом операции выбора, или фильтрации, заданной на отношении R в виде булевского выражения, называется отношение:

 

R[a(r)] = {r| r Î R Ç (r) = «Истина»} (5)

 

Операция фильтрации является одной из основных при работе с реляционной базой данных. Условия a(r) может быть сколь угодно сложным.

 

Пример:

Выбрать из отношения R7 заказы с номером 1021. В результате получим отношение R8

 

R8 = R7 [ Номер заказа = «1021»]

 

R7 R8

Номер заказа Вес закза Номер цеха   Номер заказа Вес закзаза Номер цеха
             
             
             
             
             
             
             
             

 

 

Операция проекции

Это выбор атрибутов в отношении. Пусть в отношении R выбирается подмножество его атрибутов Y. Тогда проекцией PY (R) будет отношение, в которое входят все кортежи R, содержащие только значения атрибутов из подмножества Y.

 

Пример:

 

Пусть задано вышеуказанное отношение R7, а подмножество Y включает два атрибута – «Номер заказа» и «Вес заказа». Тогда проекцией PY (R) является отношение R9:

 

R9

Номер заказа Вес заказа
   
   
   
   
   
   
   
   

 

Главные достоинства реляционной модели данных заключаются в том, что она простота для понимания, наглядна и имеет строгое математическое обоснование.

Недостатки проявляются в следующем:

· реляционная модель данных не допускает представления объектов со сложной структурой, поскольку в ее рамках возможно моделирование лишь с помощью двумерных таблиц;

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

 

<== предыдущая лекция | следующая лекция ==>
Вложенные запросы | Физическая оптика. Явления дисперсии, поглощения, рассеяния, поляризации, интерференции, дифракции света
Поделиться с друзьями:


Дата добавления: 2014-01-20; Просмотров: 280; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.025 сек.