Реляционная алгебра — различия между версиями
(Добавлен текст) |
|||
Строка 1: | Строка 1: | ||
==Запросы. Мотивация== | ==Запросы. Мотивация== | ||
− | + | Предположим, что так или иначе мы научились проектировать базы данных. Теперь хотелось бы их использовать. Действительно, | |
− | * Выборка данных: | + | базы данных не только хранить данные, но и делать выборки, изменять их каким-либо образом. Для этого вводится понятие запроса. |
− | * Область действия обновлений: | + | При первом рассмотрении, запросы нужны как минимум для выполнения следующих действий: |
− | * Ограничения целостности: до сих пор было только два вида ограничений (ключи и внешние ключи). | + | * Выборка данных: получить данные из базы, чтобы тем или иным способом обрабатывать их уже извне. |
+ | * Область действия обновлений: запросы позволят указывать область действия тех или иных операций, что крайне полезно. Например, к таким операциям относятся операции удаления или изменения данных: хочется указывать, на какие именно записи эти операции подействуют. | ||
+ | * Ограничения целостности: до сих пор было только два вида ограничений (ключи и внешние ключи). Некоторые базы данных позволяют создавать произвольные ограничения целостности, заданные на поддерживаемом языке. В рамках этих ограничений очень удобно пользоваться запросами. | ||
* Ограничения доступа. | * Ограничения доступа. | ||
+ | |||
+ | Одним из способов описания запросов является реляционная алгебра. | ||
== Реляционная алгебра == | == Реляционная алгебра == | ||
− | |||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | '''Реляционная алгебра''' {{---}} | + | '''Реляционная алгебра''' {{---}} алгебра над множеством всех [[Реляционная_модель_данных._Ключи|отношений]]. Далее будут определены операции, замкнутые над носителем, и ограничения, им соответствующие. |
}} | }} | ||
+ | |||
+ | В целом, реляционная алгебра {{---}} это императивный язык для работы с отношениями: он позволяет в явном виде, по действиям, описать, каким образом получить требуемый результат. | ||
== Примеры операций == | == Примеры операций == | ||
− | + | В качестве примеров рассмотрим несколько простых операций в рамках реляционной алгебры. | |
− | |||
− | + | * Проекция: <tex>\pi_A(R)</tex>. Проекция отношения <tex>R</tex> на набор атрибутов <tex>A</tex>. | |
+ | * Естественное соединение: <tex>R_1 \bowtie R_2</tex>. Естественное соединение отношений <tex>R_1</tex> и <tex>R_2</tex>. | ||
− | + | Все операции в алгебре замкнуты по определению, поэтому можно комбинировать применения тех или иных операций любым разумным способом. Например: <tex>\pi_A(R_1 \bowtie \pi_B(R_2)) \bowtie R_3</tex>. | |
− | + | == Операции == | |
− | |||
− | |||
− | |||
− | |||
− | + | В текущем контексте полезно уточнить, что именно понимается под операцией над отношениями в рамках реляционной алгебры. А именно, для того, чтобы определить операцию, необходимо определить следующее: | |
− | + | * Правило построения заголовка по заданным отношениям. | |
− | + | * Правило построения тела по заданным отношениям. | |
− | + | * Условия, при которых операция выполнима, то есть ограничения на отношения, к которым она применяется. |
Версия 15:37, 22 декабря 2021
Запросы. Мотивация
Предположим, что так или иначе мы научились проектировать базы данных. Теперь хотелось бы их использовать. Действительно, базы данных не только хранить данные, но и делать выборки, изменять их каким-либо образом. Для этого вводится понятие запроса. При первом рассмотрении, запросы нужны как минимум для выполнения следующих действий:
- Выборка данных: получить данные из базы, чтобы тем или иным способом обрабатывать их уже извне.
- Область действия обновлений: запросы позволят указывать область действия тех или иных операций, что крайне полезно. Например, к таким операциям относятся операции удаления или изменения данных: хочется указывать, на какие именно записи эти операции подействуют.
- Ограничения целостности: до сих пор было только два вида ограничений (ключи и внешние ключи). Некоторые базы данных позволяют создавать произвольные ограничения целостности, заданные на поддерживаемом языке. В рамках этих ограничений очень удобно пользоваться запросами.
- Ограничения доступа.
Одним из способов описания запросов является реляционная алгебра.
Реляционная алгебра
Определение: |
Реляционная алгебра — алгебра над множеством всех отношений. Далее будут определены операции, замкнутые над носителем, и ограничения, им соответствующие. |
В целом, реляционная алгебра — это императивный язык для работы с отношениями: он позволяет в явном виде, по действиям, описать, каким образом получить требуемый результат.
Примеры операций
В качестве примеров рассмотрим несколько простых операций в рамках реляционной алгебры.
- Проекция: . Проекция отношения на набор атрибутов .
- Естественное соединение: . Естественное соединение отношений и .
Все операции в алгебре замкнуты по определению, поэтому можно комбинировать применения тех или иных операций любым разумным способом. Например:
.Операции
В текущем контексте полезно уточнить, что именно понимается под операцией над отношениями в рамках реляционной алгебры. А именно, для того, чтобы определить операцию, необходимо определить следующее:
- Правило построения заголовка по заданным отношениям.
- Правило построения тела по заданным отношениям.
- Условия, при которых операция выполнима, то есть ограничения на отношения, к которым она применяется.