КАТЕГОРИИ: Архитектура-(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) |
Пример 4. Результатом деления отношения R1 с атрибутами A и B на отношение R2 с атрибутом B (R1 Divideby R2), где A и B простые или составные атрибуты
R1 [Автор, Год]
(R1 Where Год>1996) [Название]
Результатом деления отношения R1 с атрибутами A и B на отношение R2 с атрибутом B (R1 Divideby R2), где A и B простые или составные атрибуты, причем атрибут B – общий атрибут, определенный на одном и том же домене (множестве доменов составного атрибута), является отношение R с заголовком A и телом, состоящим из кортежей r таких, что в отношении R1 имеются кортежи (r, s), причем множество значений s включает множество значений атрибута B отношения R2.
Пример 5. Естественное соединение (эквисоединение). Пусть отношения A и B имеют заголовки { X1, X2, …, Xm, Y1, Y2, …, Yn } и { Y1, Y2, …, Yn, Z1, Z2, …, Zk } соответственно. Предположим, что атрибуты с одинаковыми именами определены на одном и том же домене. Будем рассматривать выражения { X1, X2, …, Xm }, { Y1, Y2, …, Yn } и { Z1, Z2, …, Zk } как три составных атрибута X, Y и Z соответственно. Тогда естественным соединением отношений A и B (A Join B ) называется отношение с заголовком {X, Y, Z} и телом, содержащим множество всех кортежей { X:x, Y:y, Z:z }, таких, для которых в отношении A значение атрибута X равно x, а атрибута Y равно y, и в отношении B значение атрибута Y равно y, а атрибута Z равно z. Естественное соединение обладает свойствами ассоциативности и коммутативности. Q-соединение (Θ-соединение). Эта операция предназначена для тех случаев, когда нужно соединить вместе два отношения на основе некоторых условий отличных от эквивалентности. Пусть отношения A и B не имеют общих имен атрибутов (как и в рассмотренной выше операции декартового произведения) и Θ – логическое выражение над атрибутами, определенными на одном (нескольких – для составного атрибута) домене. Тогда Θ-соединением отношения A по атрибуту X с отношением B по атрибуту Y называется результат вычисления выражения (A Times B) Where X Θ Y Дополнительные операции реляционной алгебры, предложенные Дейтом: переименования, расширения, подведения итогов. Основные операторы позволяющие изменить тело существующего отношения, это операции присвоения, вставки, обновления, удаления, реляционного сравнения. Операция переименования позволяет изменить имя атрибута отношения и имеет вид: RENAME <исходное отношение> <старое имя атрибута> AS <новое имя атрибута> Пример. RENAME Год AS Издание Расширением операции переименования является операция множественного переименования: RENAME <отн.> <ст. имя атр.1> AS <нов. Имя атр.1>, <ст. имя атр.2> AS <нов. Имя атр2>, … Операция расширения порождает новое отношение, похожее на исходное, но отличающееся наличием добавленного атрибута, значения которого получаются путем некоторых скаляоных вычислений. EXTEND <исходное отношение> ADD <выражение> AS <новый атрибут>. К исходному отношению добавляется новый атрибут подсчитанный по правилам, заданным <выражением>. Помимо арифметических операций и операций сравнения, в выражении можно использовать функции, называемые итоговыми: COUNT (количество), SUM (сумма), AVG (среднее), MAX (максимальное), MIN (минимальное). Пример. EXTEND R2 ADD (Автор+Название) AS Заголовок Операция подведения итогов SUMMARIZE выполняет «вертикальные» или групповые вычисления: SUMMARIZE < исх. Отн.> BY (<список атрибутов>) ADD <выр.> AS <новый атрибут>. Результатом операции SUMMARIZE является отношение R с заголовком, состоящим из атрибутов списка, расширенного новым атрибутом. Для получения тела отношения R сначала выполняется проецирование исходного отношения на атрибуты A1, A2, …, An, после чего каждый кортех проекции расширяется новым (n+1)-м атрибутом. Значение (n+1)-го атрибута каждого кортежа отношения R формируется путем вычисления выражения над соответствующей этому кортежу группой кортежей исходного отношения. Пример. Рассмотреть нахождение наименьшей оценки по предметам сессии. SUMMARIZE R BY (Номер) ADD MIN Оценка AS Худшая_оценка Операция множественного подведения итогов, подобно соответствующим операциям переименования и расширения, выполняет одновременно несколько «вертикальных» вычислений и записывает результаты в отдельные новые атрибуты. Пример. SUMMARIZE R BY (Номер) ADD MIN Оценка AS Худшая_оценка AVG Оценка Операцию присвоения можно представить следующим образом: <выражение-цель>:=<выражение-источник>. Где оба выражения задают совместимые (точнее, эквивалентные) по структуре отношения. Типичный случай: в левой части - имя отношения, а в правой – некоторое выражение реляционной алгебры. Выполнение операции присвоения сводится к замене предыдущего значения отношения на новое, определенное выражением-источником. С помощью операции отношения можно не только полностью заменить все значения отношения-цели, но добавить или удалить кортежи. Пример. В рассматриваемом примере в отношение R1 дописывается один новый кортеж. R1:=R1 UNION {{<П#:’S5’, <Автор: ‘Фаронов’, <Название: ‘DELPHI 5. Учебный курс’>, <Год: ‘2000’>}}. Обычно более удобными операциями изменения тела отношения являются операции вставки, обновления и удаления. Операция вставки имеет следующий вид: INSERT <выражение-источник> INTO <выражение-цель>. Выполнение операции сводится к вычислению <выражение-источник> и вставке полученных кортежей в отношение, заданное <выражение-цель>. Оба выражения должны быть совместимы по структуре. Пример. INSERT R1 UNION {{<П#:’S5’, <Автор: ‘Фаронов’, <Название: ‘DELPHI 5. Учебный курс’>, <Год: ‘2000’>}} INTO R1 INSERT (R1 WHERE Год>1998) INTO Temp Операция обновления имеет вид: UPDATE <выражение-цель> <список элементов>. <Список элементов> представляет собой последовательность разделенных запятыми операций присвоения <атрибут>:=<скалярное выражение>. Результатом выполнения операции обновления является отношение, полученное после присвоения соответствующих значений атрибутам отношения, заданного целевым выражением. Пример. UPDATE R1 WHERE Год<1998 Год:=1998 Операция удаления имеет вид: DELETE <выражение-цель>. <Выражение-цель> представляет собой реляционное выражение, описывающие удаляемые кортежи. Пример. DELETE R1 WHERE Год<1998 Операция реляционного сравнения может использоваться для прямого сравнения двух отношений. Ее синтаксис: <выражение1> Θ <выражение2>. Знак Θ обозначает один из операторов сравнения; = (равно), ≠ (не равно), ≤ (собственное подмножество), < (подмножество), ≥ (надмножество), > (собственное надмножество). Пример.
Дата добавления: 2015-05-09; Просмотров: 748; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |