Появление
Теоретической основой этой модели стала теория отношений, основу которой заложили два логика — американец Чарльз Содерс Пирс (1839-1914) и немец Эрнст Шредер (1841-1902). В руководствах по теории отношений было показано, что множество отношений замкнуто относительно некоторых специальных операций, то есть образует вместе с этими операциями абстрактную алгебру. Это важнейшее свойство отношений было использовано в реляционной модели для разработки языка манипулирования данными, связанного с исходной алгеброй. Американский математик Э. Ф. Кодд в 1970 году впервые сформулировал основные понятия и ограничения реляционной модели, ограничив набор операций в ней семью основными и одной дополнительной операцией. Предложения Кодда были настолько эффективны для систем баз данных, что за эту модель он был удостоен престижной премии Тьюринга в области теоретических основ вычислительной техники.
Основной структурой данных в модели является отношение, именно поэтому модель получила название реляционной (от английского 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 — полное декартово произведение.
Полное декартово произведение — это набор всевозможных сочетаний из n элементов каждое, где каждый элемент берется из своего домена. Например, имеем три домена: D1 содержит три фамилии, D2 — набор из двух учебных дисциплин и D3 — набор из трех оценок. Допустим, содержимое доменов следующее:
D1 = {Иванов, Крылов, Степанов};D2 = {Теория автоматов, Базы данных} ;D3 = {3, 4, 5}Тогда полное декартово произведение содержит набор из 18 троек, где первый элемент — это одна из фамилий, второй — это название одной из учебных дисциплин, а третий — одна из оценок.
<Иванов,Теория автоматов,3>; <Иванов,Теория автоматов,4>; <Иванов,Теория автоматов,5> <Крылов,Теория автоматов,3>; <Крылов,Теория автоматов,4>; <Крылов,Теория автоматов,5>; <Степанов,Теория автоматов,3>; <Степанов,Теория автоматов,4>; <Степанов,Теория автоматов,5>; <Иванов,Базы данных,3>; <Иванов,Базы данных,4>; <Иванов,Базы данных,5>; <Крылов,Базы данных,3>; <Крылов,Базы данных,4>; <Крылов,Базы данных,5>; <Степанов,Базы данных,3>; <Степанов,Базы данных,4>; <Степанов,Базы данных,5>;
Отношение R моделирует реальную ситуацию и оно может содержать, допустим, только 5 строк, которые соответствуют результатам сессии (Крылов экзамен по "Базам данных" еще не сдавал):
<Иванов,Теория автоматов,4>; <Крылов,Теория автоматов,5>; <Степанов,Теория автоматов,5>; <Иванов,Базы данных,3>; <Степанов,Базы данных,4>;
Отношение имеет простую графическую интерпретацию, оно может быть представлено в виде таблицы, столбцы которой соответствуют вхождениям доменов в отношение, а строки — наборам из n значений, взятых из исходных доменов, которые расположены в строго определенном порядке в соответствии с заголовком. Такие наборы из n значений часто называют n -ками.
| R | ||
|---|---|---|
| Фамилия | Дисциплина | Оценка |
| Иванов | Теория автоматов | 4 |
| Иванов | Базы данных | 3 |
| Крылов | Теория автоматов | 5 |
| Степанов | Теория автоматов | 5 |
| Степанов | Базы данных | 4 |
Данная таблица обладает рядом специфических свойств:
Вхождение домена в отношение принято называть атрибутом. Строки отношения называются кортежами.
Количество атрибутов в отношении называется степенью, или рангом, отношения.
Следует заметить, что в отношении не может быть одинаковых кортежей, это следует из математической модели: отношение — это подмножество декартова произведения, а в декартовом произведении все n -ки различны.
В соответствии со свойствами отношений два отношения, отличающиеся только порядком строк или порядком столбцов, будут интерпретироваться в рамках реляционной модели как одинаковые, то есть отношение R и отношение R1, изображенное далее, одинаковы с точки зрения реляционной модели данных.
| R1 | ||
|---|---|---|
| Дисциплина | Фамилия | Оценка |
| Теория автоматов | Крылов | 5 |
| Теория автоматов | Степанов | 5 |
| Теория автоматов | Иванов | 4 |
| Базы данных | Иванов | 3 |
| Базы данных | Степанов | 4 |
Любое отношение является
Схемой отношения R называется перечень имен атрибутов данного отношения с указанием домена, к которому они относятся:
$$S_{R} = (A_{1}, A_{2}, A _{n}), A_{i} \subseteq D_{i}$$.
Если атрибуты принимают значения из одного и того же домена, то они называются $$\theta$$ - сравнимыми,где $$\theta$$ — множество допустимых операций сравнения, заданных для данного домена. Например, если домен содержит числовые данные , то для него допустимы все операции сравнения, тогда $$\theta = \{ =, <>,\ge ,\le ,<,>\}$$
Однако и для доменов, содержащих символьные данные, могут быть заданы не только операции сравнения по равенству и неравенству значений. Если для данного домена задано
Схемы двух отношений называются эквивалентными,если они имеют одинаковую степень и возможно такое упорядочение имен атрибутов в схемах, что на одинаковых местах будут находиться сравнимые атрибуты, то есть атрибуты, принимающие значения из одного домена.
SR1 = (A1, A2, ..., An) — схема отношения R1.
SR2 = (Bi1, Bi2,..., Bin) — схема отношения R2 после упорядочения имен атрибутов.
Тогда
$$S_{R1} — S_{R2} \Leftrightarrow \left\{ \begin{smallmatrix}1, n = m \\ 2, A_j, B_j \subseteq D_j\end{smallmatrix}$$Как уже говорилось ранее, реляционная модель представляет базу данных в виде множества взаимосвязанных отношений. В отличие от теоретико-PRIMARY KEY ), который однозначно определяет кортеж основного отношения. В подчиненном отношении для моделирования связи должен присутствовать набор атрибутов, соответствующий первичному ключу основного отношения. Однако здесь этот набор атрибутов уже является вторичным ключом, то есть он определяет множество кортежей подчиненного отношения, которые связаны с единственным кортежем основного отношения. Данный набор атрибутов в подчиненном отношении принято называть внешним ключом ( FOREIGN KEY ).
Например, рассмотрим ситуацию, когда надо описать карьеру некоторого индивидуума. Каждый человек в своей трудовой деятельности сменяет несколько мест работы в разных организациях, где он работает в разных должностях. Тогда мы должны создать два отношения: одно для моделирования всех работающих людей, а другое для моделирования записей в их
(рис 4.1) Связь между основным и подчиненным отношениямиPRIMARY KEY отношения Сотрудник атрибут Паспорт является FOREIGN KEY для отношения "карьера".
Напомним, что алгеброй называется множество объектов с заданной на нем совокупностью операций, замкнутых относительно этого множества, называемого основным множеством.
Основным множеством в
Теоретико-множественные операции реляционной алгебры
Объединением двух отношений называется отношение, содержащее множество кортежей, принадлежащих либо первому, либо второму исходным отношениям, либо обоим отношениям одновременно.
Пусть заданы два отношения R1 = { r1 } , R2 = { r2}, где r1 и r2 - соответственно R1 и R2, то объединение
$$R_{1} \cup R_{2} = \{ r | r \in R_{1} \vee r \in R_{2}\}$$.
Здесь r — кортеж нового отношения, $$\vee$$ — операция логического сложения "ИЛИ".
Пример применения операции объединения приведен на рис. 4.1. Исходными отношениями являются отношения R1 и R2, которые содержат перечни деталей, изготавливаемых соответственно на первом и втором участках цеха. Отношение R3 содержит общий перечень деталей, изготавливаемых в цеху, то есть характеризует общую номенклатуру цеха.
| R1 | |
|---|---|
| Шифр детали | Название детали |
| 00011073 | Гайка M1 |
| 00011075 | Гайка М2 |
| 00011076 | Гайка М3 |
| 00011003 | Болт М1 |
| 00011006 | Болт М3 |
| 00013063 | Шайба М1 |
| 00013066 | Шайба М3 |
| R2 | |
|---|---|
| Шифр детали | Название детали |
| 00011073 | Гайка M1 |
| 00011076 | Гайка М3 |
| 00011077 | Гайка М4 |
| 00011004 | Болт М2 |
| R3 | |
|---|---|
| Шифр детали | Название детали |
| 00011073 | Гайка M1 |
| 00011075 | Гайка М2 |
| 00011076 | Гайка М3 |
| 00011003 | Болт М1 |
| 00011006 | Болт М3 |
| 00013063 | Шайба М1 |
| 00013066 | Шайба М3 |
| 00011077 | Гайка М4 |
| 00011004 | Болт М2 |
Пересечением отношений называется отношение, которое содержит множество кортежей, принадлежащих одновременно и первому и второму отношениям. R1 и R2:
$$R_{3} = R_{1} \cap R2 =\{ r | r \in R1 \wedge r \in R_{2} \}$$
здесь $$\wedge$$ — операция логического умножения (логическое "И").
В отношении R4 содержатся перечень деталей, которые выпускаются одновременно на двух участках цеха.
| R4 | |
|---|---|
| Шифр детали | Название детали |
| 00011073 | Гайка M1 |
| 00011076 | Гайка М3 |
| 00011006 | Болт М3 |
Разностью отношений R1 и R2 называется отношение, содержащее множество кортежей, принадлежащих R1 и не принадлежащих R2:
$$R_{5} =R_{1} \setminus R_{2} =\{ r | r \in R1 \wedge r \notin R_{2}\}$$
Отношение R5 содержит перечень деталей, изготавливаемых только на участке 1, отношение R6 содержит перечень деталей, изготавливаемых только на участке 2.
$$R_{6} =R_{2} \setminus R_{1} =\{ r | r \in R_{2} \wedge r \notin R_{1} \}$$
| R2 | |
|---|---|
| 00011006 | Болт М3 |
| R5 | |
|---|---|
| Шифр детали | Название детали |
| 00011075 | Гайка М2 |
| 00011003 | Болт М1 |
| 00013063 | Шайба М1 |
| 00013066 | Шайба М3 |
| R6 | |
|---|---|
| Шифр детали | Название детали |
| 00011077 | Гайка М4 |
| 00011004 | Болт М2 |
Следует отметить, что первые две операции, объединение и пересечение, являются коммутативными операциями, то есть результат операции не зависит от порядка аргументов в операции. Операция же разности является принципиально несимметричной операцией, то есть результат операции будет различным для разного порядка аргументов, что и видно из сравнения отношений R5 и R6.
В отличие от навигационных средств манипулирования данными в теоретико-
Для демонстрации возможностей трех первых R1 R2 и R3. Все они имеют эквивалентные схемы.
R1= (ФИО, Паспорт, Школа) ;R2= (ФИО, Паспорт, Школа) ;R3= (ФИО, Паспорт, Школа).Рассмотрим ситуацию поступления в высшие учебные заведения, которая была характерна для периода, когда были разрешены так называемые репетиционные вступительные экзамены, которые сдавались раньше основных вступительных экзаменов в вуз. Отношение R1 содержит список абитуриентов, сдававших репетиционные экзамены. Отношение R2 содержит список абитуриентов, сдававших экзамены на общих условиях. И наконец, отношение R3 содержит список абитуриентов, принятых в институт. Будем считать, что при неудачной сдаче репетиционных экзаменов абитуриент мог делать вторую попытку и сдавать экзамены в общем потоке, поэтому некоторые абитуриенты могут присутствовать как в первом, так и во втором отношении.
Ответим на следующие вопросы:
$$R = R_{1} \cap R_{2} \setminus R_{3}$$
$$R = (R_{1} \setminus R_{2} \cap R_{3}) \cup (R_{2} \setminus R_{1} \cap R_{3})$$
Прежде всего это те абитуриенты, которые присутствуют в отношениях R1 и R2, потому что они поступали два раза, и присутствуют в отношении R3, потому что они поступили.
$$R=R_{1} \cap R_{2} \cap R_{3 }$$
Это прежде всего те абитуриенты, которые присутствуют в R1 и не присутствуют в R2, и те, кто присутствуют в R2 и не присутствуют в R1. И разумеется, никто из них не присутствует в R3.
$$R = (R_{1} \setminus R_{2}) \cup (R_{2} \setminus R_{1}) \setminus R_{3}$$
В отсутствие скобок порядок выполнения R3.
Операции объединения, пересечения и разности применимы только к отношениям с эквивалентными схемами.
Кроме трех перечисленных операций в рамках
Сцеплением,или конкатенацией,кортежей c = <c1, c2, ..., cn> и q = <q1, q2, ..., qm> называется кортеж, полученный добавлением значений второго в конец первого. Сцепление кортежей c и q обозначается как (c , q).
(c, q) = <c1, c2, ... , cn, q1, q2, ..., qm>
Здесь n — число элементов в первом кортеже с, m — число элементов во втором кортеже q.
Все предыдущие операции не меняли степени или
Расширенным декартовым произведением отношения R1 степени n со схемой
SR1 = (A1, A2, ... , An),
и отношения R2 степени m со схемой
SR2 = (B1, B2, ..., Bm),
называется отношение R3 степени n+m со схемой
SR3 = (A1, A2, ... , An, B1, B2, ..., Bm),
содержащее кортежи, полученные сцеплением каждого кортежа r отношения R1 с каждым кортежем q отношения R2.
То есть если R1 = { r }, R2 = { q }
$$R_{1} \otimes R_{2} = \{ (r, q) | r \in R_{1} \wedge q \in R_{2}\}$$
Операцию декартова произведения с учетом возможности перестановки атрибутов в отношении можно считать симметричной. Очень часто операция расширенного декартова произведения используется для получения некоторого
| R7 | |
|---|---|
| Шифр детали | Название детали |
| 00011073 | Гайка M1 |
| 00011075 | Гайка М2 |
| 00011076 | Гайка М3 |
| 00011003 | Болт М1 |
| 00011006 | Болт М3 |
| 00013063 | Шайба М1 |
| 00013066 | Шайба М3 |
| 00011077 | Гайка М4 |
| 00011004 | Болт М2 |
| 00011005 | Болт М5 |
| 00011006 | Болт М6 |
| 00013062 | Шайба М2 |
| R8 |
|---|
| Цех |
| Цех 1 |
| Цех 2 |
| Цех 3 |
Тогда отношение R9, которое соответствует ситуации, когда каждый цех изготавливает все требуемые детали, будет выглядеть следующим образом:
| R9 | ||
|---|---|---|
| Шифр детали | Название детали | Цех |
| 00011073 | Гайка M1 | Цех 1 |
| 00011075 | Гайка М2 | Цех 1 |
| 00011076 | Гайка М3 | Цех 1 |
| 00011003 | Болт М1 | Цех 1 |
| 00011006 | Болт М3 | Цех 1 |
| 00013063 | Шайба М1 | Цех 1 |
| 00013066 | Шайба М3 | Цех 1 |
| 00011077 | Гайка М4 | Цех 1 |
| 00011004 | Болт М2 | Цех 1 |
| 00011005 | Болт М5 | Цех 1 |
| 00011006 | Болт М6 | Цех 1 |
| 00013062 | Шайба М2 | Цех 1 |
| 00011073 | Гайка M1 | Цех 2 |
| 00011075 | Гайка М2 | Цех 2 |
| 00011076 | Гайка М3 | Цех 2 |
| 00011003 | Болт М1 | Цех 2 |
| 00011006 | Болт М3 | Цех 2 |
| 00013063 | Шайба М1 | Цех 2 |
| 00013066 | Шайба М3 | Цех 2 |
| 00011077 | Гайка М4 | Цех 2 |
| 00011004 | Болт М2 | Цех 2 |
| 00011005 | Болт М5 | Цех 2 |
| 00011006 | Болт М6 | Цех 2 |
| 00013062 | Шайба М2 | Цех 2 |
| 00011073 | Гайка M1 | Цех 3 |
| 00011075 | Гайка М2 | Цех 3 |
| 00011076 | Гайка М3 | Цех 3 |
| 00011003 | Болт М1 | Цех 3 |
| 00011006 | Болт М3 | Цех 3 |
| 00013063 | Шайба М1 | Цех 3 |
| 00013066 | Шайба М3 | Цех 3 |
| 00011077 | Гайка М4 | Цех 3 |
| 00011004 | Болт М2 | Цех 3 |
| 00011005 | Болт М5 | Цех 3 |
| 00011006 | Болт М6 | Цех 3 |
| 00013062 | Шайба М2 | Цех 3 |
| R10 | ||
|---|---|---|
| Шифр детали | Название детали | Цех |
| 00011073 | Гайка M1 | Цех 1 |
| 00011075 | Гайка М2 | Цех 1 |
| 00011076 | Гайка М3 | Цех 1 |
| 00011003 | Болт М1 | Цех 1 |
| 00011006 | Болт М3 | Цех 1 |
| 00013063 | Шайба М1 | Цех 1 |
| 00013066 | Шайба М3 | Цех 1 |
| 00011077 | Гайка М4 | Цех 1 |
| 00011004 | Болт М2 | Цех 1 |
| 00011006 | Болт М3 | Цех 2 |
| 00013063 | Шайба М1 | Цех 2 |
| 00013066 | Шайба М3 | Цех 2 |
| 00011077 | Гайка М4 | Цех 2 |
| 00011004 | Болт М2 | Цех 2 |
| 00011006 | Болт М6 | Цех 2 |
| 00013062 | Шайба М2 | Цех 2 |
| 00011073 | Гайка M1 | Цех 3 |
| 00011075 | Гайка М2 | Цех 3 |
| 00011076 | Гайка М3 | Цех 3 |
| 00011003 | Болт М1 | Цех 3 |
| 00011006 | Болт М3 | Цех 3 |
| 00013063 | Шайба М1 | Цех 3 |
| 00013066 | Шайба М3 | Цех 3 |
| 00011077 | Гайка М4 | Цех 3 |
| 00011005 | Болт М5 | Цех 3 |
| 00011006 | Болт М6 | Цех 3 |
| 00011005 | Болт М5 | Цех 1 |
| 00011006 | Болт М6 | Цех 1 |
| 00013062 | Шайба М2 | Цех 1 |
В каких запросах нужно использовать расширенное декартово произведение? Эта операция моделирует некоторую ситуацию, которая характеризуется словом "все". Поэтому если нам надо узнать, какие детали в каких цехах из общей обязательной номенклатуры не выпускаются, то мы можем вычесть из полученного отношения R9 отношение R10, характеризующее реальный выпуск деталей в каждом цехе.
Отношение R11, которое является результатом выполнения этой операции, имеет вид:
R11 =R9 \R10
| R11 | ||
|---|---|---|
| Шифр детали | Название детали | Цех |
| 00011073 | Гайка M1 | Цех 2 |
| 00011075 | Гайка М2 | Цех 2 |
| 00011076 | Гайка М3 | Цех 2 |
| 00011004 | Болт М2 | Цех 3 |
| 00013062 | Шайба М2 | Цех 3 |
| 00011003 | Болт М1 | Цех 2 |
| 00011005 | Болт М5 | Цех 3 |
Группа
$$(R_{1} \cup R_{2}) \setminus (R_{1} \setminus R_{2}) \setminus (R_{2} \setminus R_{1})$$
Однако это достаточно сложная формула, и именно поэтому все три
Далее мы переходим к группе операций, названных специальными
Первой специальной
Пусть а —
терм А ос а,где А — имя некоторого атрибута, принимающего значения из домена D ; a — константа, взятая из того же домена D, $$a \in D$$ ; — одна из допустимых для данного домена D операций сравнения;
терм А ос В,где А, В — имена некоторых $$\theta$$ -сравнимых атрибутов, то есть атрибутов, принимающих значения из одного и то же домена D.
Тогда результатом операции выбора, или фильтрации, заданной на отношении R в виде булевского выражения, определенного на атрибутах отношения R, называется отношение $$R[\alpha ]$$, включающее те кортежи из исходного отношения, для которых истинно условие выбора или фильтрации:
$$R[\alpha (r)] = \{ r | r \in R \wedge \alpha (r) = "Истина"\}$$
Операция фильтрации является одной из основных при работе с реляционной моделью данных. Условие а может быть сколь угодно сложным.
Например, выбрать из R10 детали с шифром "0011003". R12 = R10 [ Шифр детали = "0011003"]
| R12 | ||
|---|---|---|
| Шифр детали | Название детали | Цех |
| 00011003 | Болт М1 | Цех 1 |
| 00011003 | Болт М1 | Цех 3 |
Следующей специальной операцией является операция проектирования.
Пусть 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}$$.
Проекцией отношения R на набор атрибутов В, обозначаемой R[B], называется отношение со схемой, соответствующей набору атрибутов В SR[B] = B, содержащему кортежи, получаемые из кортежей исходного отношения R путем удаления из них значений, не принадлежащих атрибутам из набора В.
R[B] = { r[B] }
По определению отношений все дублирующие кортежи удаляются из результирующего отношения.
Операция проектирования, называемая иногда также операцией вертикального выбора, позволяет получить только требуемые характеристики моделируемого объекта. Чаще всего операция проектирования употребляется как промежуточный шаг в операциях горизонтального выбора, или фильтрации. Кроме того, она используется самостоятельно на заключительном этапе получения ответа на запрос.
Например, выберем все цеха, которые изготавливают деталь "Болт М1".
Для этого нам необходимо из отношения R10 выбрать детали с заданным названием, а потом полученное отношение спроектировать на столбец "Цех". Результатом выполнения этих операций будет отношение R14:
R13 = R10 [ Название детали = "Болт М1" ] R14 = R13 [ Цех ]
| R13 | ||
|---|---|---|
| Шифр детали | Название детали | Цех |
| 00011003 | Болт М1 | Цех 1 |
| 00011003 | Болт М1 | Цех 3 |
| R14 |
|---|
| Цех |
| Цех 1 |
| Цех 3 |
Следующей специальной
В отличие от рассмотренных специальных
Пусть R = {r}, Q={q} - исходные отношения,
SR, SQ - схемы отношений R и Q соответственно.
SR = (A1, A2, ... , Ak) ; SQ = (B1, B2, ... , Bm), где Ai, Bj — имена атрибутов в схемах отношений R и Q соответственно. При этом полагаем, что заданы наборы атрибутов А и В
$$А \subseteq \{ A_{i}\} i=1,k$$ ; $$B \subseteq \{ B_{j}\} j=1,m$$
и эти наборы состоят из $$\theta$$ -сравнимых атрибутов.
Тогда R и Q при условии $$\beta$$ будет подмножество декартова произведения отношений R и Q, кортежи которого удовлетворяют условию $$\beta,$$ рассматриваемому как одновременное выполнение условий:
i=1,k, где k — число атрибутов, входящих в наборы А и В, а $$\theta _{i}$$ — конкретная операция сравнения.i -й Di операций сравнения.$$R [ \beta ] Q = \{ (r,q) | (r, q) | r.A \theta _{i} q.B_{i}= ";Истина"; i=1,k\}$$
Например, рассмотрим следующий запрос. Пусть отношение R15 содержит перечень деталей с указанием материалов, из которых эти детали изготавливаются, и оно имеет вид:
| R15 | ||
|---|---|---|
| Шифр детали | Название детали | Материал |
| 00011073 | Гайка M1 | сталь-ст1 |
| 00011075 | Гайка М2 | сталь-ст2 |
| 00011076 | Гайка М3 | сталь-ст1 |
| 00011003 | Болт М1 | сталь-ст3 |
| 00011006 | Болт М3 | сталь-ст3 |
| 00013063 | Шайба М1 | сталь-ст1 |
| 00013066 | Шайба М3 | сталь-ст1 |
| 00011077 | Гайка М4 | сталь-ст2 |
| 00011004 | Болт М2 | сталь-ст3 |
| 00011005 | Болт М5 | сталь-ст3 |
| 00013062 | Шайба М2 | сталь-ст1 |
| R16 |
|---|
| Название детали |
| Гайка M1 |
| Гайка М3 |
| Шайба М1 |
| Шайба М3 |
| Шайба М2 |
Получим перечень деталей, которые изготавливаются в цеху 1 из материала "сталь-ст1"
$$R16 = (R15[(R15.Шифр \ детали =R_{10}.Шифр \ детали) \wedge R_{10}.Цех = "Цех1" \wedge R15.Материал ="сталь-ст1"] R_{10})[Название \ детали]$$
Последней операцией, включаемой в набор
Для определения операции деления рассмотрим сначала понятие множества образов.
Пусть R — отношение со схемой SR = (A1, A2 ,..., Ak) ;
Пусть A — некоторый набор атрибутов $$А \subseteq \{ A_{i}\} i=1,k,$$ A1 — набор атрибутов, не входящих в множество A.
Пересечение множеств A и A1 пусто: $$A \cap A^{1} =0$$ ; объединение множеств равно множеству всех атрибутов исходного отношения: $$A \cup A^{1} = S_{R}$$.
Тогда множеством образов элемента у проекции R[A] называется множество таких элементов y проекции R[A ], для которых сцепление (x, y) является R, то есть
$$QA(x) = \{ y | y \in R[A ] \wedge (x, y) \in R\}$$ - множество образов.
Например, множеством образов отношения R15 по материалу "сталь-ст2" будет множество кортежей
R15.Материал = {< 00011075, Гайка М2, "сталь-ст2">, < 00011077, Гайка М4, "сталь-ст2">}
Дадим теперь определение операции деления.
Пусть даны два отношения R и T соответственно со схемами:
SR = (A1, A2, ... , Ak); ST = (B1, B2, ... , Bm) ;
A и B - наборы атрибутов этих отношений, одинаковой длины (без повторений);
$$A \subseteq S_{R}$$ ; $$B \subseteq S_{T}$$. Атрибуты A1 — это атрибуты из R, не вошедшие в множество A.
Пересечение множеств $$A \cap A^{1} = \varnothing$$ — пусто и $$A \cup A^{1} = S$$. Проекции R[A] и T[B] совместимы по объединению, то есть имеют эквивалентные схемы: SR[A] ~ ST[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 \} \}$$.
Операция деления удобна тогда, когда требуется сравнить некоторое множество характеристик отдельных атрибутов. Например, пусть у нас есть отношение R7, которое содержит номенклатуру всех выпускаемых деталей на нашем предприятии, а в отношении R10 хранятся сведения о том, что и в каких цехах действительно выпускается. Поставим задачу определить перечень цехов, в которых выпускается вся номенклатура деталей.
Тогда решением этой задачи будет R10 на отношение R7 по набору атрибутов (Шифр детали, Наименование детали).
R 17 = R10[Шифр детали, Наименование детали: Шифр детали, Наименование детали]R7
| R 17 |
|---|
| Цех |
| Цех1 |
Операция деления достаточно сложна для абстрактного представления. Она может быть заменена последовательностью других операций. Действительно, выполним тот же запрос с использованием других операций. Для этого определим последовательность промежуточных запросов, которая приведет нас к конечному результату:
R7 и R8. Это отношение R9:$$R_{9} = R_{7} \otimes R_{8}$$
R11= R9\R10
R11 спроектировать на столбец "Цех":R18 = R11[Цех]
| R18 |
|---|
| Цех |
| Цех 2 |
| Цех 3 |
R17.Посмотрим, как работают
R1 = <ФИО, Дисциплина, Оценка> ; R2 = <ФИО, Группа> ; R3 = < Группы, Дисциплина>,
где R1 — информация о попытках (как успешных, так и неуспешных) сдачи экзаменов студентами; R2 — состав групп; R3 — список дисциплин, которые надо сдавать каждой группе. Домены для атрибутов формально задавать не будем, но, ориентируясь на здравый смысл, будем считать, что доменом для атрибута Дисциплина будет множество всех дисциплин, преподающихся в ВУЗе, доменом для атрибута Группа будет множество всех групп ВУЗа и т. д.
Покажем, каким образом можно получить из этих таблиц интересующие нас сведения с помощью R1, R2, R3 формируются промежуточные отношения и результирующее отношение S, содержащее требуемую информацию.
R1 и последующим проектированием на атрибут "ФИО" (нам ведь требуется только список фамилий).$$S = (R_{1}[Оценка = 5 \wedge Дисциплина = "БД"])[ФИО]$$ ;
R3 находится список всех дисциплин, по которым каждая группа должна была сдавать экзамены, ограничим перечень дисциплин только "БД". Для того чтобы получить список студентов, нам надо соединить отношение R3 с отношением R2, в котором определен список студентов каждой группы.$$R_{4} = (R_{2}[R_{3}.НомерГруппы = R_{2}.НомерГруппы \wedge R_{3}.Дисциплина = "БД"] R_{3})[ФИО]$$ ;
R1 ):R5 = (R1 [Дисциплина = "БД"])[ФИО] ;
и, наконец, результат — все, кто есть в первом множестве, но не во втором:
S=R4 \R5 ;
$$S = (R_{1}[R_{1}.ФИО = R'_{1}.ФИО \wedge R_{1}.Дисциплина \ne R'_{1}.Дисциплина \wedge R_{1}.Оценка < 2 \wedge R'_{1}.Оценка < 2] R'_{1})[ФИО]$$
Этот пример весьма интересен: для поиска строк, удовлетворяющих в совокупности условию больше одного,применяется R1 и назвали ее R'1.
R4 = (R2[R2 Группа = R3.Группа] R3)[ФИО, Дисциплина] ;
Строим список пар <студент—дисциплина>, где получена оценка "отлично":
R5 = (R1[Оценка = 5])[ФИО, Дисциплина] ;
Строим список студентов, что-либо не сдавших на "отлично":
R6 = (R4 \ R5)[ФИО].
Наконец, исключив последнее отношение из общего списка студентов, получаем результат:
R2[ФИО] \ R6
Обратите внимание, что для получения множества студентов, что-либо не сдавших на "отлично" ( R6 ), мы осуществили "инверсию" множества всех отлично сданных пар <студент—дисциплина> ( R5 ) путем вычитания его из предварительного построенного универсального множества ( R4 ). Рекомендуем очень внимательно разобрать этот пример и вникнуть в смысл каждого действия — это очень пригодится для понимания
Задание 1
Даны отношения, моделирующие работу банка и его филиалов. Клиент может иметь несколько счетов, при этом они могут быть размещены как в одном, так и в разных филиалах банка. В отношении R1 содержится информация обо всех клиентах и их счетах в филиалах нашего банка. Каждый клиент, в соответствии со своим счетом, может рассчитывать на некоторый кредит от нашего банка, сумма допустимого кредита также зафиксирована.
| R1 | ||||
|---|---|---|---|---|
| ФИО клиента | № филиала | № счета | Остаток | Кредит |
| . | ||||
| R2 | |
|---|---|
| № филиала | Район |
| . | |
С использованием языка
Задание 2
Даны отношения, моделирующие работу международной фирмы, имеющей несколько филиалов. Филиалы фирмы могут быть расположены в разных странах, это отражено в отношении R1. Клиенты фирмы также могут быть из разных стран, и это отражено в отношении R4. По каждому конкретному заказу клиент мог заказать несколько разных товаров.
| R1 | |
|---|---|
| Филиал | Страна |
| . | |
| R2 | |
|---|---|
| Филиал | Заказчик_ заказа |
| . | |
| R3 | ||
|---|---|---|
| N заказа | Товар | Количество |
| . | ||
| R4 | |
|---|---|
| Заказчик | Страна |
| . | |
С использованием
R3.Задание 3
Даны отношения, моделирующие работу фирмы, занимающейся разработкой программных систем. Каждый сотрудник административно закреплен только за одним отделом. Файлы хранятся на разных серверах. На разных серверах файлы могут иметь одинаковые имена. Создатель файла является его владельцем, поэтому у каждого файла только один владелец, но
| R1 | |
|---|---|
| Название файла | Имя владельца файла |
| . | |
| R2 | ||
|---|---|---|
| Название программы | Название файла | Сервер |
| . | ||
| R3 | |
|---|---|
| Название файла | Название сервера |
| . | |
| R4 | |
|---|---|
| Сотрудник | Отдел |
| . | |
С использованием
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.