Скачать 0.72 Mb.
|
Альтернативная «техническая» терминология (профессиональный сленг, SQL).
Лекция 8 Реляционная алгебраИзвестно, что алгебра определяет некоторое множество элементов и набор операций над этими элементами. Основным свойством операций является их замкнутость, т.е. операции определены на заданном множестве и результатом этих операций также являются элементы этого множества. Реляционная алгебра – это коллекция операций, которые принимают отношения в качестве операндов и возвращают отношение в качестве результата. Первая версия этой алгебры была определена Коддом в 1970 г. Его оригинальная алгебра включала 8 операций:
В реляционной алгебре определен ряд операций над отношениями. 5 операций являются основными: проекция, объединение, разность, декартово произведение и селекция. Другие часто используемые операции: пересечение, соединение, деление, их можно выразить через пять основных операций. Свойство замкнутости РА является очень важным: благодаря ему становится возможным использовать вложенные выражения. Это превращает алгебру практически в язык запросов.
Предположим, что отношение R имеет атрибуты X, Y, . . ., Z (а также, возможно, некоторые другие). В таком случае проекция отношения R по атрибутам X, Y, ..., Z, которая определяется с помощью следующего выражения R { X, Y, . . . , Z } является отношением, соответствующим описанным ниже требованиям.
Таким образом, применение операции проекции фактически приводит к получению "вертикального" подмножества заданного отношения, а именно подмножества, полученного путем удаления всех атрибутов, не указанных в разделенном запятыми списке имен атрибутов, и последующего устранения дубликатов (суб)кортежей из множества оставшихся кортежей. Пример 1: Исходное отношение , тогдаR[M,T]= Пример 2: Пусть имеется отношение КЛИЕНТ (НОМЕР-КЛИЕНТА, ФАМИЛИЯ-И-ИМЯ, АДРЕС). Схема выполнения операции проекция: КЛИЕНТ
КЛИЕНТ [ФАМИЛИЯ-И-ИМЯ]
Выше приведен полученный результат — проекция отношения КЛИЕНТ на атрибут ФАМИЛИЯ-И-ИМЯ.
Если даны отношения R1 и R2 одного и того же типа, то объединение этих отношений R1UR2 является отношением того же типа с телом, которое состоит из всех кортежей, присутствующих в R1 или R2 или в обоих отношениях. Пример: где R1 и R2 — исходные отношения, а R — объединение отношений, т.е. кортеж [и к л] входит в результирующее отношение только один раз.
Можно это определение отобразить диаграммой Венна. Разность R отношений изображена в виде штрихованной области. Пример:
В математике декартовым произведением (или сокращенно произведением) двух множеств является множество всех таких упорядоченных пар, что в каждой паре первый элемент берется из первого множества, а второй — из второго множества. Поэтому декартово произведение двух отношений, неформально выражаясь, представляет собой множество упорядоченных пар кортежей. Но мы снова должны сохранить свойство замкнутости; иными словами, необходимо, чтобы результат содержал кортежи как таковые, а не упорядоченные пары кортежей. Поэтому реляционной версией декартова произведения служит расширенная форма этой операции, в которой каждая упорядоченная пара кортежей заменяется одним кортежем, являющимся объединением двух рассматриваемых кортежей (будем называть эту операцию конкатенацией). Это означает, что если даны следующие кортежи R1 = { A1 a1, A2 а2, . . . , Am am } , где Аi – атрибут, а ai – значение кортежа и R2 = { B1 b1, B2 b2, ..., Bn bn }, где Bi – атрибут, а bi – значение кортежа, то конкатенация этих двух кортежей представляет собой приведенный ниже единственный кортеж. R = R1+R2 = { A1 a1, A2 а2, ... , Am am, B1 b1, B2 b2, ..., Bn bn } Кардинальность декартова произведения будет равна k1+k2, где k1 кардинальность отношения R1, а k2 — кардинальность отношения R2. Отсюда следует, что результирующее отношение может иметь очень большие размеры. Пример с произведением самого на себя. Проблемы при конкатенации возникают, когда имена атрибутов в перемножаемых отношениях совпадают. В оригинальной алгебре Кодда атрибуты идентифицировались номером позиции, но в нашем определении идентификация производится по имени, а порядок не важен. В этом случае нужно переименовывать названия совпадающих атрибутов.
Пусть R – некоторое отношение, а P — логическое выражение, принимающее значения атрибутов кортежа отношения R в качестве входных параметров. Опр.: Селекцией отношения R является отношение с тем же заголовком, что и в R, и с телом, состоящим из всех кортежей отношения R, таких, что функция P принимает истинное значение для рассматриваемого кортежа. Оператор селекции, по сути, позволяет получить "горизонтальное" подмножество заданного отношения, т.е. подмножество кортежей заданного отношения, для которых удовлетворяется некоторое указанное условие. Результат выполнения селекции над отношением УЧЕТ, в котором задано условие F=ОКЛАД>2000: Исходное отношение Результат — отношение СПИСОК
называется отношение, представляющее собой произведение R1 и R2, к которому применены операции проекции и селекции. В формуле P – это логическое условие, по которому производится селекция. Виды соединений Естественное соединение (Natural Join) Допустим, что R1 {A1, A2, … Ai, B1, B2, … Bj}, R2 {C1, C2, … Ck, B1, B2, … Bj }, имеют общий набор атрибутов B1…Bj. Тогда естественное соединение представляет собой соединение R1 и R2 с заголовком {A’, B’, C’} и телом, в котором в результате селекции оставлены только те кортежи, у которых значение атрибутов Bi из R1 соответственно равно значениям атрибутов Bi из R2 и соответственно равны значениям атрибутов Bi в результирующем отношении R. В данном определении для простоты были сгруппированы множества атрибутов Ai в A’, Bi в B’, Ci в C’. Пример естественного соединения на примере студенты – группы. Лекция 9 Реляционная алгебра: http://www.intuit.ru/department/database/rdbintro/3/ θ-соединение θ – это операция, принимающая на вход значения двух атрибутов заданного типа и возвращающая истину или ложь. Типичными примерами θ-операции являются <, >, =, != и подобные. θ-соединением называется соединение, в котором тета-операция принимает значения двух атрибутов и используется как условие селекции. Если θ — арифметический оператор равенства, то операцию называют эквисоединением. Естественное соединение является случаем эквисоединения в случае, когда соединение происходит по одному атрибуту, т.е. множество B (из определения) состоит из одного атрибута. Пример: исходные отношения
Результат операции эквисоединения этих отношений:
Сначала получаем декартово произведение , затем в нем рассматриваем все кортежи и оставляем те из них, у которых значения атрибутов B и D совпадают. В примере остается только один кортеж. Столбец В остается, а одинаковый с ним столбец D вычеркивается. В приведенных операциях вначале использовано обращение к элементам кортежей по номерам столбцов отношения. Здесь же показано, что можно обращаться по именам столбцов, при этом, должны выполняться преобразования имени столбца в его порядковый номер и обратно.
Пересечением отношений R и S называется множество кортежей, принадлежащих R и S. Отношения R и S должны иметь одинаковую степень. Т.е., RS=R-(R-S). Пример операции пересечения:
Операция деления R=R1\R2 является бинарной операцией, причем степень отношения-делимого должна удовлетворять условию n1>=2, а арность отношения-делителя — условию n2<=n1-1, т.е. в отношении R2 атрибутов должно быть по крайней мере на 1 меньше, чем в отношении R1 . Формирование кортежей нового отношения выполняется на основе равенства значений атрибутов связи. Эта операция называется еще частным отношений R1 и R2. Опр.: Результатом деления отношения R1(A’,B’) на отношение R2(B’), где A’ и B’ — подмножество атрибутов, причем B’ — подмножество общих для обоих отношений атрибутов, — атрибутов связи, является новое отношение R(A’), содержащее атрибуты A и кортежи отношения R1 с одинаковыми c R2 значениями атрибутов связи B’. Пример деления отношений: //??Операция называется делением, потому что (R1 / R2)xR2 = R1. Пусть имеются отношения r1{A, B} и r2{B}. Утверждается, что результат r1 DIVIDE BY r2 совпадает с результатом выражения (r1 PROJECT A) MINUS (((r2 TIMES (r1 PROJECT A)) MINUS r1) PROJECT A) в терминах операций реляционной алгебры Кодда. Пусть заданы два отношения – R1 с заголовком {A1, A2, ..., An, B1, B2, ..., Bm}= {A’, B’} и R2 с заголовком {B1, B2, ..., Bm} = {B’}. Будем считать, что атрибут bi отношения A и атрибут bi отношения B (i = 1, 2, …, m) не только обладают одним и тем же именем, но и определены на одном и том же домене. Назовем множество атрибутов {Aj} составным атрибутом A, а множество атрибутов {Bj} – составным атрибутом B. После этого будем говорить о реляционном делении «бинарного» отношения R1{A’, B’} на унарное отношение R2{B’}. По определению, результатом деления R1 на R2 является отношение R{A'}, тело которого состоит из кортежей v таких, что в теле отношения R1 содержатся кортежи v + w такие, что множество {w} включает тело отношения B. Операция реляционного деления не является примитивной и выражается через операции декартова произведения, взятия разности и проекции. Примеры: A WHERE (comp1 AND comp2) то же, что (A WHERE comp1) INTERSECT (A WHERE comp2) PROJECT СЛУЖАЩИЕ_В_ПРОЕКТЕ_1 {СЛУ_ОТД_НОМ} СЛУЖАЩИЕ JOIN (ПРОЕКТЫ RENAME (ПРО_НОМ, ПРО_НОМ1)) WHERE (СЛУ_ЗАРП = ПРО_ЗАРП) то же, что СЛУЖАЩИЕ NATURAL JOIN ПРОЕКТЫ Реляционная алгебра – формальный язык запросов. Приведем примеры запросов к БД, которая используется на ЛР. Выбрать преподавателей, которые ведут лабораторные по курсу «Управление данными». PROJECT (Преподаватели JOIN Занятия WHERE Тип занятия = ‘Лабораторная’) {ФИО} Выбрать всех студентов (в виде ФИО, Номер группы), которые не сдали курсовой по управлению данными. PROJECT ((PROJECT Студенты {ID_Студента, ФИО, ID_Группы} MINUS PROJECT ((Семестровые испытания JOIN Курсы WHERE Курс = ‘Управление данными’ AND Название испытания = ‘курсовое проектирование’) JOIN Зачётная ведомость JOIN Студенты) {ID_Студента, ФИО, ID_Группы}) JOIN Группы) {ФИО, Номер группы} Выбрать пары студентов, у которых совпадают ФИО и они учатся в одной группе. PROJECT Студенты {ID Студента, ФИО, ID Группы} TIMES (PROJECT Студенты {ID Студента, ФИО, ID Группы} RENAME (ID Студента -> ID Студента2; ФИО -> ФИО2; ID Группы -> ID Группы2)) WHERE ФИО = ФИО2 AND ID Группы = ID Группы2 AND ID Студента <> ID Студента2 Не были рассмотрены операции: Расширения (Extend), агрегирования, транзитивного замыкания Лекция 10 |
Хирургический метод лечения имеет большое значение в клинической медицине. Одну четверть заболеваний составляют хирургические болезни.... | Редактор Т. Липкина Художник Л. Чинёное Корректор Г. Казакова Компьютерная верстка М. Егоровой | ||
Лекция: Обзор наиболее важных стандартов и спецификаций в области информационной безопасности 3 | Лекция Основные требования к scada-системам и их возможности. Аппаратные и программные средства scada-систем 17 | ||
Цель: ознакомить со спецификой перевода текстов по специальности на немецком языке, дать характеристику трудностей, возникающих при... | Жением. В связи с этим, пятая лекция будет посвящена также вопросам налогового законодательства: налог на прибыль, налог на имущество,... | ||
Надеюсь, для последующих лекций нам удастся найти зал побольше. А некоторые лекции мы хотим вообще сделать публичными, чтобы на них... | Спецкурс «Актуальные вопросы оперативно-розыскной деятельности» как открытая учебная дисциплина представляет устоявшуюся систему... | ||
Лекция №15. Тема: «Проложение хода технического нивелирования и ведение полевого журнала». Учебник В. Д. Киселёв, Д. Ш. Михелёв.... |
Поиск Главная страница   Заполнение бланков   Бланки   Договоры   Документы    |