Слайд 4
Теоретической основой этой модели стала теория отношений, основу
которой заложили два логика — американец Чарльз Содерс Пирс
(1839-1914) и немец Эрнст Шредер (1841-1902).
Слайд 5
В руководствах по теории отношений было показано, что
множество отношений замкнуто относительно некоторых специальных операций, то есть
образует вместе с этими операциями абстрактную алгебру. Это важнейшее свойство отношений было использовано в реляционной модели для разработки языка манипулирования данными, связанного с исходной алгеброй.
Слайд 6
Американский математик Э. Ф. Кодд в 1970 году
впервые сформулировал основные понятия и ограничения реляционной модели, ограничив
набор операций в ней семью основными и одной дополнительной операцией.
Слайд 7
Основной структурой данных в модели является отношение, именно
поэтому модель получила название реляционной (от английского relation —
отношение).
N-арным отношением R называют подмножество декартова произведения D1x D2x ... xDn множеств D1, D2, ..., Dn ( n > 1 ), необязательно различных. Исходные множества D1, D2, ..., Dn называют в модели доменами.
\[ R \subseteq D_{1} \times D_{2} \times \dots \times D_{n} \]
где D1 x D2 x ... xDn — полное декартово произведение
Слайд 8
Полное декартово произведение — это набор всевозможных сочетаний
из n элементов каждое, где каждый элемент берется из
своего домена.
Слайд 9
D1 содержит три фамилии, D2 — набор из
двух учебных дисциплин и D3 — набор из трех
оценок
D1 = {Иванов, Крылов, Степанов};
D2 = {Теория автоматов, Базы данных} ;
D3 = {3, 4, 5}
Тогда полное декартово произведение содержит набор из 18 троек, где первый элемент — это одна из фамилий, второй — это название одной из учебных дисциплин, а третий — одна из оценок.
Слайд 10
Отношение R моделирует реальную ситуацию и оно может
содержать, допустим, только 5 строк, которые соответствуют результатам сессии
(Крылов экзамен по "Базам данных" еще не сдавал):
<Иванов,Теория автоматов,4>;
<Крылов,Теория автоматов,5>;
<Степанов,Теория автоматов,5>;
<Иванов,Базы данных,3>;
<Степанов,Базы данных,4>;
Слайд 12
Данная таблица обладает рядом специфических свойств:
В таблице нет
двух одинаковых строк.
Таблица имеет столбцы, соответствующие атрибутам отношения.
Каждый атрибут
в отношении имеет уникальное имя.
Порядок строк в таблице произвольный.
Слайд 13
Вхождение домена в отношение принято называть атрибутом.
Строки
отношения называются кортежами.
Количество атрибутов в отношении называется степенью, или
рангом, отношения.
Слайд 14
Следует заметить, что в отношении не может быть
одинаковых кортежей, это следует из математической модели: отношение —
это подмножество декартова произведения, а в декартовом произведении все n -ки различны.
В соответствии со свойствами отношений два отношения, отличающиеся только порядком строк или порядком столбцов, будут интерпретироваться в рамках реляционной модели как одинаковые
Слайд 16
Схемой отношения R
называется перечень имен атрибутов данного отношения
с указанием домена, к которому они относятся:
\[ S_{R} =
(A_{1}, A_{2}, A _{n}), A_{i} \subseteq D_{i} \] .
Если атрибуты принимают значения из одного и того же домена, то они называются \[ \theta \] - сравнимыми,где \[ \theta \] — множество допустимых операций сравнения, заданных для данного домена.
Слайд 17
Схемы двух отношений называются эквивалентными,если они имеют одинаковую
степень и возможно такое упорядочение имен атрибутов в схемах,
что на одинаковых местах будут находиться сравнимые атрибуты, то есть атрибуты, принимающие значения из одного домена.
Слайд 18
Связь между основным и подчиненным отношениями
Слайд 19
Операции над отношениями. Реляционная алгебра
Слайд 20
алгеброй называется множество объектов с заданной на нем
совокупностью операций, замкнутых относительно этого множества, называемого основным множеством
Основным
множеством в реляционной алгебре является множество отношений .
Слайд 21
8 операций
теоретико-множественные операции(4)
Три первые теоретико-множественные операции являются
бинарными, то есть в них участвуют два отношения и
они требуют эквивалентных схем исходных отношений.
специальные операции
Слайд 22
Объединением двух отношений называется отношение, содержащее множество кортежей,
принадлежащих либо первому, либо второму исходным отношениям, либо обоим
отношениям одновременно
Пусть заданы два отношения R1 = { r1 } , R2 = { r2}, где r1 и r2 - соответственно кортежи отношений
\[ R_{1} \cup R_{2} = \{ r | r \in R_{1} \vee r \in R_{2}\} \] .
Здесь r — кортеж нового отношения, \[ \vee \] — операция логического сложения "ИЛИ".
Слайд 23
Пересечением отношений называется отношение, которое содержит множество кортежей,
принадлежащих одновременно и первому и второму отношениям. R1 и
R2:
\[ R_{3} = R_{1} \cap R2 =\{ r | r \in R1 \wedge r \in R_{2} \} \]
Разностью отношений R1 и R2 называется отношение, содержащее множество кортежей, принадлежащих R1 и не принадлежащих R2:
\[ R_{5} =R_{1} \setminus R_{2} =\{ r | r \in R1 \wedge r \notin R_{2}\} \]
Слайд 24
R1= (ФИО, Паспорт, Школа) ;
R2= (ФИО, Паспорт, Школа)
;
R3= (ФИО, Паспорт, Школа).
Слайд 25
1. Список абитуриентов, которые поступали два раза и
не поступили в вуз.
\[ R = R_{1} \cap R_{2}
\setminus R_{3} \]
2. Список абитуриентов, которые поступили в вуз с первого раза, то есть они сдавали экзамены только один раз и сдали их так хорошо, что сразу были зачислены в вуз.
\[ R = (R_{1} \setminus R_{2} \cap R_{3}) \cup (R_{2} \setminus R_{1} \cap R_{3}) \]
3. Список абитуриентов, которые поступили в вуз только со второго раза.
Прежде всего это те абитуриенты, которые присутствуют в отношениях R1 и R2, потому что они поступали два раза, и присутствуют в отношении R3, потому что они поступили.
\[ R=R_{1} \cap R_{2} \cap R_{3 } \]
4. Список абитуриентов, которые поступали только один раз и не поступили.
Это прежде всего те абитуриенты, которые присутствуют в R1 и не присутствуют в R2, и те, кто присутствуют в R2 и не присутствуют в R1. И разумеется, никто из них не присутствует в R3.
\[ R = (R_{1} \setminus R_{2}) \cup (R_{2} \setminus R_{1}) \setminus R_{3} \]
Слайд 26
Операции объединения, пересечения и разности применимы только к
отношениям с эквивалентными схемами
Слайд 27
Сцеплением,или конкатенацией,кортежей c =
и q = называется кортеж,
полученный добавлением значений второго в конец первого. Сцепление кортежей c и q обозначается как (c , q).
(c, q) =
Здесь n — число элементов в первом кортеже с, m — число элементов во втором кортеже q.
Слайд 28
Расширенным декартовым произведением отношения R1 степени n со
схемой
SR1 = (A1, A2, ... , An),
и отношения R2
степени m со схемой
SR2 = (B1, B2, ..., Bm),
называется отношение R3 степени n+m со схемой
SR3 = (A1, A2, ... , An, B1, B2, ..., Bm),
Слайд 29
Специальные операции реляционной алгебры
Первой специальной операцией реляционной алгебры
является горизонтальный выбор,или операция фильтрации,или операция ограничения отношений.
Слайд 30
Пусть а — булевское выражение, составленное из термов
сравнения с помощью связок И ( \[ \wedge \]
), ИЛИ ( \[ \vee \] ), НЕ ( \[ \neg \] ) и, возможно, скобок. В качестве термов сравнения допускаются:
терм А ос а,
где А — имя некоторого атрибута, принимающего значения из домена D ; a — константа, взятая из того же домена D, \[ a \in D \] ; oc — одна из допустимых для данного домена D операций сравнения;
терм А ос В,
где А, В — имена некоторых \[ \theta \] -сравнимых атрибутов, то есть атрибутов, принимающих значения из одного и то же домена D.
Слайд 31
Тогда результатом операции выбора, или фильтрации, заданной на
отношении R в виде булевского выражения, определенного на атрибутах
отношения R, называется отношение
\[ R[\alpha ] \] ,
включающее те кортежи из исходного отношения, для которых истинно условие выбора или фильтрации:
\[ R[\alpha (r)] = \{ r | r \in R \wedge \alpha (r) = "Истина"\} \]
Слайд 32
операция проектирования
Пусть R — отношение, SR = (A1,
... , An) — схема отношения R.
Обозначим через B
подмножество [ Ai ] ; \[ B \subseteq \{ A_{i}\} \] .
При этом пусть B1 — множество атрибутов из { Ai}, не вошедших в B.
Если B = {A1i, Ai2,..., Aik}, B = {A1, A2j ,..., Akj} и \[ r = < a^{1}_{i}, a^{2}_{i},\dots ,a^{k}_{i} >, a^{k}_{i} \in A^{k}_{ii} \] ,
то r [B], s = < a1j, a2j, ... , amj > ; \[ a^{m}_{j} \in A^{m}_{j} \] .
Слайд 33
Проекцией отношения R на набор атрибутов В, обозначаемой
R[B], называется отношение со схемой, соответствующей набору атрибутов В
SR[B] = B, содержащему кортежи, получаемые из кортежей исходного отношения R путем удаления из них значений, не принадлежащих атрибутам из набора В.
R[B] = { r[B] }
Слайд 34
Операция проектирования, называемая иногда также операцией вертикального выбора,
позволяет получить только требуемые характеристики моделируемого объекта. Чаще всего
операция проектирования употребляется как промежуточный шаг в операциях горизонтального выбора, или фильтрации. Кроме того, она используется самостоятельно на заключительном этапе получения ответа на запрос.
Слайд 35
операция условного соединения.
В отличие от рассмотренных специальных операций
реляционной алгебры: фильтрации и проектирования, которые являются унарными, то
есть производятся над одним отношением, операция условного соединения является бинарной, то есть исходными для нее являются два отношения, а результатом — одно.
Слайд 36
операция деления.
даны два отношения R и T соответственно
со схемами:
SR = (A1, A2, ... , Ak); ST
= (B1, B2, ... , Bm) ;
A и B - наборы атрибутов этих отношений, одинаковой длины (без повторений);
операция деления ставит в соответствие отношениям R и T отношение Q = R[A:B]T, кортежи которого являются теми элементами проекции R[A1], для которых T[B] входит в построенные для них множество образов:
\[ R[A:B]T = \{ r | r \in R[A^{1}] \wedge T[B] \subseteq \{ y | y \in R [A] \wedge (r, y) \in R \} \} \] .
Слайд 37
пример
R1 = ;
R2 =
;
R3 = < Группы, Дисциплина>,
где R1
— информация о попытках (как успешных, так и неуспешных) сдачи экзаменов студентами;
R2 — состав групп;
R3 — список дисциплин, которые надо сдавать каждой группе.
Слайд 38
Список студентов, которые сдали экзамен по БД на
"отлично". Результат может быть получен применением операции фильтрации по
сложному условию к отношению R1 и последующим проектированием на атрибут "ФИО" (нам ведь требуется только список фамилий).
\[ S = (R_{1}[Оценка = 5 \wedge Дисциплина = "БД"])[ФИО] \] ;
Слайд 39
Список тех, кто должен был сдавать экзамен по
БД, но пока еще не сдавал. Сначала найдем всех,
кто должен был сдавать экзамен по БД. В отношении R3 находится список всех дисциплин, по которым каждая группа должна была сдавать экзамены, ограничим перечень дисциплин только "БД". Для того чтобы получить список студентов, нам надо соединить отношение R3 с отношением R2, в котором определен список студентов каждой группы.
\[ R_{4} = (R_{2}[R_{3}.НомерГруппы = R_{2}.НомерГруппы \wedge R_{3}.Дисциплина = "БД"] R_{3})[ФИО] \] ;
Слайд 40
Теперь получим список всех, кто сдавал экзамен по
"БД" (нас пока не интересует результат сдачи, а интересует
сам факт попытки сдачи, то есть присутствие в отношении R1 ):
R5 = (R1 [Дисциплина = "БД"])[ФИО] ;
и, наконец, результат — все, кто есть в первом множестве, но не во втором:
S=R4 \R5 ;
Слайд 41
Список несчастных, имеющих несколько двоек:
\[ S = (R_{1}[R_{1}.ФИО
= R'_{1}.ФИО \wedge R_{1}.Дисциплина \ne R'_{1}.Дисциплина \wedge R_{1}.Оценка
2 \wedge R'_{1}.Оценка < 2] R'_{1})[ФИО] \]
Список круглых отличников. Строим список всех пар <студент—дисциплина>, которые в принципе должны быть сданы:
R4 = (R2[R2 Группа = R3.Группа] R3)[ФИО, Дисциплина] ;
Слайд 42
Строим список пар , где получена оценка "отлично":
R5
= (R1[Оценка = 5])[ФИО, Дисциплина] ;
Строим список студентов, что-либо
не сдавших на "отлично":
R6 = (R4 \ R5)[ФИО].
R2[ФИО] \ R6