Реляционная алгебра: унарные операции — различия между версиями
Dzhiblavi (обсуждение | вклад) м |
м (rollbackEdits.php mass rollback) |
||
(не показаны 4 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
− | В этом разделе будут описаны унарные операции в рамках [[Реляционная_алгебра|реляционной алгебры]]. В соответствии с определением, для каждой операции | + | В этом разделе будут описаны унарные операции в рамках [[Реляционная_алгебра|реляционной алгебры]]. В соответствии с определением, для определения каждой операции нужно указать способ построения заголовка, тела [[Реляционная_модель_данных._Ключи|отношения]], а также условия применимости, если такие есть. |
== Проекция == | == Проекция == | ||
Строка 10: | Строка 10: | ||
}} | }} | ||
− | + | Данная операция полезна как минимум для следующего: | |
+ | * Привести отношение к виду, в котором с ним можно будет осуществить другую операцию (например, объединение); | ||
+ | * Выбрать из отношения только нужные данные (для выборки). | ||
+ | |||
+ | Ниже приведено пояснение определения для операции <tex>\pi_{A_2, A_4, A_5}(A)</tex>: | ||
[[Файл:Primitive_Projection_0.png]] | [[Файл:Primitive_Projection_0.png]] | ||
+ | |||
+ | Синим обозначены столбцы, которые есть в результирующем отношении. Остальные столбцы не используются, и результат не зависит от данных, которые там находятся. | ||
'''Примеры''' | '''Примеры''' | ||
+ | |||
+ | Приведем несколько тривиальных примеров применения проекции. | ||
* <tex>\pi_{FirstName, LastName}</tex> | * <tex>\pi_{FirstName, LastName}</tex> | ||
Строка 26: | Строка 34: | ||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | <tex>\sigma_{condition}(A)</tex> {{---}} фильтрация отношения <tex>A</tex> по условию. <br> | + | <tex>\sigma_{condition}(A)</tex> {{---}} фильтрация (селекция, выборка из) отношения <tex>A</tex> по условию. <br> |
'''Заголовок''' результирующего отношения равен заголовку исходного.<br> | '''Заголовок''' результирующего отношения равен заголовку исходного.<br> | ||
'''Тело''': кортежи, удовлетворяющие заданному условию. | '''Тело''': кортежи, удовлетворяющие заданному условию. | ||
}} | }} | ||
− | + | Данная операция крайне часто используется для | |
+ | * Ограничения области действия изменяющих запросов; | ||
+ | * Получения выборки данных, соответствующих определенному условию. | ||
+ | |||
[[Файл:Primitive_Section_0.png]] | [[Файл:Primitive_Section_0.png]] | ||
'''Примеры''' | '''Примеры''' | ||
+ | |||
+ | Приведем несколько тривиальных примеров применения фильтрации. | ||
+ | |||
* <tex>\sigma_{Id > 2}</tex> | * <tex>\sigma_{Id > 2}</tex> | ||
[[Файл:Primitive_Section_2.png]] | [[Файл:Primitive_Section_2.png]] | ||
− | * <tex>\sigma_{Id > 2 \wedge FirstName=Иван}</tex> | + | * Можно писать и более сложные условия: <tex>\sigma_{Id > 2 \wedge FirstName=Иван}</tex> |
[[Файл:Primitive_Section_3.png]] | [[Файл:Primitive_Section_3.png]] | ||
− | * <tex>\sigma_{length(FirstName) + 2 \geq length(LastName)}</tex> | + | * Еще можно исопльзовать функции, доступные в БД: <tex>\sigma_{length(FirstName) + 2 \geq length(LastName)}</tex> |
[[Файл:Primitive_Section_4.png]] | [[Файл:Primitive_Section_4.png]] | ||
+ | |||
+ | Стоит обратить внимание на то, что отношение {{---}} это множество, поэтому повторяющиеся кортежи учитываются ровно по одному разу. | ||
Строка 55: | Строка 71: | ||
}} | }} | ||
+ | Операция часто применяется для того, чтобы отношение можно было использовать в рамках другой операции (например, при объединении с другим отношением). | ||
'''Примеры''' | '''Примеры''' | ||
+ | |||
+ | Ниже приведен тривиальный пример-пояснение для операции переименования. | ||
+ | |||
* <tex>\rho_{Name=FirstName, Surname=LastName}</tex> | * <tex>\rho_{Name=FirstName, Surname=LastName}</tex> | ||
[[Файл:Primitive_Rename_2.png]] | [[Файл:Primitive_Rename_2.png]] |
Текущая версия на 19:17, 4 сентября 2022
В этом разделе будут описаны унарные операции в рамках реляционной алгебры. В соответствии с определением, для определения каждой операции нужно указать способ построения заголовка, тела отношения, а также условия применимости, если такие есть.
Проекция
Определение: |
Заголовок результирующего отношения: пересечение заголовка | — проекция отношения на аттрибуты .
Данная операция полезна как минимум для следующего:
- Привести отношение к виду, в котором с ним можно будет осуществить другую операцию (например, объединение);
- Выбрать из отношения только нужные данные (для выборки).
Ниже приведено пояснение определения для операции
:Синим обозначены столбцы, которые есть в результирующем отношении. Остальные столбцы не используются, и результат не зависит от данных, которые там находятся.
Примеры
Приведем несколько тривиальных примеров применения проекции.
Фильтрация
Определение: |
Заголовок результирующего отношения равен заголовку исходного. | — фильтрация (селекция, выборка из) отношения по условию.
Данная операция крайне часто используется для
- Ограничения области действия изменяющих запросов;
- Получения выборки данных, соответствующих определенному условию.
Примеры
Приведем несколько тривиальных примеров применения фильтрации.
- Можно писать и более сложные условия:
- Еще можно исопльзовать функции, доступные в БД:
Стоит обратить внимание на то, что отношение — это множество, поэтому повторяющиеся кортежи учитываются ровно по одному разу.
Переименование
Определение: |
Заголовок результирующего отношения равен заголовку исходного с точностью до изменения названий | — изменение имени атрибута.
Операция часто применяется для того, чтобы отношение можно было использовать в рамках другой операции (например, при объединении с другим отношением).
Примеры
Ниже приведен тривиальный пример-пояснение для операции переименования.