Специальные операции реляционной алгебры
⇐ ПредыдущаяСтр 3 из 3 Операция горизонтального выбора (фильтрации) представляет собой выбор тех кортежей исходного отношения, которые удовлетворяют некоторому условию. Терм сравнения – это элементарное (неделимое) логическое выражение, состоящее из сравниваемых выражений левой и правой части, разделенных операцией сравнения. Пусть a - логическое выражение, состоящее из термов сравнения с помощью связок (И, ИЛИ, НЕ). В качестве термов сравнения допускаются: а) терм А ос а, где А – имя некоторого атрибута, принимающего значения из домена D; а – константа или выражение, областью значений которого является домен; ос – одна из допустимых для данного домена D операций сравнения; б) терм А ос B, где A, B – имена некоторых q -сравнимых атрибутов, т.е. атрибутов, принимающих значение одного и того же домена. Тогда результатом выбора, или фильтрации, заданной на отношении R в виде булевского выражения a, называется отношение R[a], включающее те кортежи из исходного отношения, для которых истинно условие выбора или фильтрации:
.
Таким образом, результатом операции фильтрации является новое отношение, состоящее из тех кортежей исходного отношения, которые удовлетворяют некоторому условию. Условие может быть сколь угодно сложным. При выполнении операции фильтрации происходит выбор тех кортежей исходного отношения, для которых истинно логическое выражение. Поэтому операцию фильтрации часто называют выбором или операцией выбора. Пример: Пусть необходимо выбрать из R10 детали с шифром «110033». R12 = R10 [Шифр детали = «11003»]
Вертикальный выбор (проекция)
Проекцией отношения R на набор атрибутов B (R[B]) называется отношение со схемой, соответствующей набору атрибутов SR[B] = B, содержащему кортежи, получаемые из исходного отношения R путем удаления из них значений, не принадлежащих атрибутам из набора B.
Результатом операции вертикального выбора (операция проекции) является новое отношение, полученное из исходного путем исключения некоторых его атрибутов. Операция проекции позволяет получить только требуемые характеристики моделируемого объекта. Пример: Пусть необходимо выбрать все цеха, которые изготавливают деталь «Болт М1». Для этого необходимо из отношения R10, содержащего фактическую номенклатуру производства по цехам, выбрать детали с заданным названием, а потом полученное значение спроецировать на столбец «Цех». R13 = R10 [ Название детали = «Болт М1» ] R14 = R13 [ Цех ]
Операция условного соединения В отличие от рассмотренных выше операций фильтрации и проекции, операция условного соединения является бинарной, т.е. исходными для нее являются два отношения, а результатом одно. Операция условного соединения представляет собой процесс получения нового отношения на основании двух исходных, соединенных друг Предположим, что имеется некоторое отношение R15 (Схема отношения = { Шифр детали, Название детали, Название материала }), которое содержит перечень деталей с указанием материалов, из которых они изготавливаются. Рассмотренное выше отношение R10 (Схема отношения = { Шифр детали, Название детали, Цех }) содержит список деталей, которые фактически производятся в цехах. Требуется определить перечень деталей, которые изготавливаются Как видно из представленных ниже отношений, список деталей,
R16 = R10 [ Цех = «Цех 1»].
Однако, требуется получить не все детали, которые производит «Цех 1», а только те из них, которые произведены из материала «сталь-ст1». Следовательно, необходимо соединить два отношения по атрибуту «Шифр детали» с тем, чтобы получить отношение, в котором наряду со сведениями по номенклатуре производства по цехам также будут сведения по материалам, необходимых для их производства.
R17 = R15[R15.Шифр детали = R10.Шифр детали]R10.
В результате получим новое отношение, каждый кортеж которого будет представлять собой сцепление кортежей отношения R15 c кортежами отношения R10, удовлетворяющими условию: R15.Шифр детали = R10.Шифр детали.
Теперь необходимо провести операцию горизонтального выбора по условию [(R17.Название материала = «сталь-ст1») Ù (R17.Цех = «Цех 1»)].
R18 = R17[(R17.Название материала = «сталь-ст1») Ù (R17.Цех = «Цех 1»)]
Теперь для получения общего результата необходимо выполнить операцию вертикального выбора по атрибуту «Цех»: R19= R18[Цех].
Запишем операцию условного соединения одним оператором:
R17=R15[R15.Шифр детали = R10.Шифр детали]R10. R18 = R17[(R17.Название материала = «сталь-ст1») Ù (R17.Цех = «Цех 1»)]. R19= R18[Цех].
R19= (R15[(R15.Шифр детали = R10.Шифр детали) Ù (R15.Название материала = «сталь-ст1») Ù (R10.Цех = «Цех 1»)]) R10) [Цех].
Основное преимущество реляционной модели данных состоит в том, что достаточно сложную обработку данных можно реализовать довольно простыми конструкциями. В рассмотренном примере показано, как операции реляционной алгебры могут использоваться вместе для получения необходимых результатов.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|