Формальная семантика агрегатных операций в табличных алгебрах
В работе проводится расширение табличной алгебры (введенной В.Н. Редько и Д.Б. Буем и являющейся обобщением классической реляционной алгебры Кодда), которое предполагает пополнение универсального домена специальным элементом NULL и расширение сигнатуры табличной алгебры конечных таблиц агрегатными о...
Gespeichert in:
Datum: | 2014 |
---|---|
1. Verfasser: | |
Format: | Artikel |
Sprache: | Russian |
Veröffentlicht: |
Інститут прикладної математики і механіки НАН України
2014
|
Schriftenreihe: | Труды Института прикладной математики и механики |
Online Zugang: | http://dspace.nbuv.gov.ua/handle/123456789/124207 |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Назва журналу: | Digital Library of Periodicals of National Academy of Sciences of Ukraine |
Zitieren: | Формальная семантика агрегатных операций в табличных алгебрах / И.Н. Глушко // Труды Института прикладной математики и механики НАН Украины. — Донецьк: ІПММ НАН України, 2014. — Т. 28. — С. 36-42. — Бібліогр.: 8 назв. — рос. |
Institution
Digital Library of Periodicals of National Academy of Sciences of Ukraineid |
irk-123456789-124207 |
---|---|
record_format |
dspace |
spelling |
irk-123456789-1242072017-09-23T03:03:26Z Формальная семантика агрегатных операций в табличных алгебрах Глушко, И.Н. В работе проводится расширение табличной алгебры (введенной В.Н. Редько и Д.Б. Буем и являющейся обобщением классической реляционной алгебры Кодда), которое предполагает пополнение универсального домена специальным элементом NULL и расширение сигнатуры табличной алгебры конечных таблиц агрегатными операциями нахождения суммы, наибольшего (наименьшего) значений, среднего арифметического, количества строк и количества элементов, отличных от NULL. Задана формальная математическая семантика этих операций, которая проиллюстрирована содержательными примерами. При определении агрегатных операций используется понятие мультимножества. Общая схема задания агрегатных операций: сначала операции задаются на конечных мультимножествах, а затем переносятся на таблицы, в частности, на пустую таблицу The paper deals with the extension of table algebra (this algebra is introduced by V.N. Redko and D.B. Bui and is a generalization of well-known classic Codd’s relational algebra), involving the completion of a special element NULL of the universal domain and expansion of signature finite table algebra with such aggregate operations: finding the sum, the largest (smallest) value, the average value, the number of table rows and number of elements different from NULL. The formal mathematical semantics of these operations illustrated by meaningful examples is given. The concept of multiset is used under defining the aggregate operators. The general scheme of the aggregate operations is following: at first, operations are defined on finite multisets, then they are extended to the tables, in particular, on an empty table. 2014 Article Формальная семантика агрегатных операций в табличных алгебрах / И.Н. Глушко // Труды Института прикладной математики и механики НАН Украины. — Донецьк: ІПММ НАН України, 2014. — Т. 28. — С. 36-42. — Бібліогр.: 8 назв. — рос. 1683-4720 http://dspace.nbuv.gov.ua/handle/123456789/124207 004.655 ru Труды Института прикладной математики и механики Інститут прикладної математики і механіки НАН України |
institution |
Digital Library of Periodicals of National Academy of Sciences of Ukraine |
collection |
DSpace DC |
language |
Russian |
description |
В работе проводится расширение табличной алгебры (введенной В.Н. Редько и Д.Б. Буем и являющейся обобщением классической реляционной алгебры Кодда), которое предполагает пополнение универсального домена специальным элементом NULL и расширение сигнатуры табличной алгебры конечных таблиц агрегатными операциями нахождения суммы, наибольшего (наименьшего) значений, среднего арифметического, количества строк и количества элементов, отличных от NULL. Задана формальная математическая семантика этих операций, которая проиллюстрирована содержательными примерами. При определении агрегатных операций используется понятие мультимножества. Общая схема задания агрегатных операций: сначала операции задаются на конечных мультимножествах, а затем переносятся на таблицы, в частности, на пустую таблицу |
format |
Article |
author |
Глушко, И.Н. |
spellingShingle |
Глушко, И.Н. Формальная семантика агрегатных операций в табличных алгебрах Труды Института прикладной математики и механики |
author_facet |
Глушко, И.Н. |
author_sort |
Глушко, И.Н. |
title |
Формальная семантика агрегатных операций в табличных алгебрах |
title_short |
Формальная семантика агрегатных операций в табличных алгебрах |
title_full |
Формальная семантика агрегатных операций в табличных алгебрах |
title_fullStr |
Формальная семантика агрегатных операций в табличных алгебрах |
title_full_unstemmed |
Формальная семантика агрегатных операций в табличных алгебрах |
title_sort |
формальная семантика агрегатных операций в табличных алгебрах |
publisher |
Інститут прикладної математики і механіки НАН України |
publishDate |
2014 |
url |
http://dspace.nbuv.gov.ua/handle/123456789/124207 |
citation_txt |
Формальная семантика агрегатных операций в табличных алгебрах / И.Н. Глушко // Труды Института прикладной математики и механики НАН Украины. — Донецьк: ІПММ НАН України, 2014. — Т. 28. — С. 36-42. — Бібліогр.: 8 назв. — рос. |
series |
Труды Института прикладной математики и механики |
work_keys_str_mv |
AT gluškoin formalʹnaâsemantikaagregatnyhoperacijvtabličnyhalgebrah |
first_indexed |
2025-07-09T01:01:50Z |
last_indexed |
2025-07-09T01:01:50Z |
_version_ |
1837129178746454016 |
fulltext |
ISSN 1683-4720 Труды ИПММ НАН Украины. 2014. Том 28
УДК 004.655
c©2014. И.Н. Глушко
ФОРМАЛЬНАЯ СЕМАНТИКА АГРЕГАТНЫХ ОПЕРАЦИЙ
В ТАБЛИЧНЫХ АЛГЕБРАХ
В работе проводится расширение табличной алгебры (введенной В.Н. Редько и Д.Б. Буем и яв-
ляющейся обобщением классической реляционной алгебры Кодда), которое предполагает попол-
нение универсального домена специальным элементом NULL и расширение сигнатуры табличной
алгебры конечных таблиц агрегатными операциями нахождения суммы, наибольшего (наимень-
шего) значений, среднего арифметического, количества строк и количества элементов, отличных
от NULL. Задана формальная математическая семантика этих операций, которая проиллюстриро-
вана содержательными примерами. При определении агрегатных операций используется понятие
мультимножества. Общая схема задания агрегатных операций: сначала операции задаются на ко-
нечных мультимножествах, а затем переносятся на таблицы, в частности, на пустую таблицу.
Ключевые слова: реляционные базы данных, табличная (реляционная) алгебра, расширенная
табличная алгебра, агрегатные операции.
1. Введение. Традиционно считается, что классическая реляционная (таблич-
ная) алгебра лежит в основе большинства СУБД и языков запросов, которые под-
держивают реляционную модель. Реляционная алгебра была разработана в [1] в виде
совокупности операторов над таблицами. Было предложено 8 операций реляцион-
ной алгебры: традиционные операции над множествами (объединение, пересечение,
разность) и специальные операции над таблицами (проекция, декартово соединениe,
theta-, equi-соединения, деление, селекция). Этот набор операций со временем был
расширен в соответствии с потребностями языков запросов. Кроме указанных выше
операций к сигнатуре реляционной алгебры сейчас также относят операции пере-
именования и активного дополнения [2, 3]. В ходе развития коммерческих реляци-
онных СУБД возникла потребность в использовании агрегатных функций, которые
позволяют находить суммарные, средние, максимальные, минимальные и другие
значения элементов в столбце таблицы. В [4] реляционная алгебра и реляционное
исчисление расширены такими агрегатными функциями. Доказана эквивалентность
полученных при этом двух формальных языков. Даны точные определения агрегат-
ных функций, которые не используют понятие «дубликаты». Реляционная алгебра
пополнена новой операцией агрегатного образования (аggregate formation). В [5–
7] операции агрегирования рассматриваются как множественно-ориентированные:
сначала разбивают таблицу на подмножества в соответствии со значениями атри-
бута (или множества атрибутов), затем выполняют функциональные вычисления
для каждого подмножества и, наконец, строят исходную таблицу, формируя одну
строку для каждого подмножества. Такая схема вычислений используется для за-
просов третьего типа (с группировкой) языка SQL [3]. Отметим, что для семантики
таких конструкций надо вводить в рассмотрение совокупности с повторениями, т.е.
мультимножества, что и сделано в данной работе.
36
Агрегатные операции
2. Основные определения. Все неопределенные понятия понимаем также, как
и в [3]. Рассмотрим два множества: А – множество атрибутов и D – универсальный
домен, содержащий специальное значение NULL. Под табличной алгеброй конеч-
ных таблиц понимаем алгебру 〈T ′, ΩP,Ξ〉, где T ′ – множество всех конечных таблиц,
ΩP,Ξ = {⋃R,
⋂
R, \R, σp,R, πX,R, ⊗
R1,R2
, ÷R1
R2
, Rtξ,R, ∼R} – сигнатура, p ∈ P, ξ ∈ Ξ, а
X, R,R1, R2 ⊆ А (P и Ξ – множества параметров).
Под таблицей схемы R понимаем пару 〈t, R〉, где t ∈ T (R)1) – конечное множество
строк схемы R. Тогда T ′(R) = {〈t, R〉 |t ∈ T (R)} – множество всех конечных таблиц
схемы R, а T ′ =
⋃
R ⊆A
T ′(R) – множество всех конечных таблиц.
В соответствии с [3,8] под мультимножеством α c основой U понимаем функцию
вида α : U → N. Пусть Θ(α) – основа мультимножества α, а 2D
′
m = {α|Θ(α) ∈ 2D
′}
– семейство всех мультимножеств, основы которых являются конечными подмно-
жествами множества D ′ (D ′ ⊆ D – подмножество универсального домена). Муль-
тимножество α с основой {d1, ..., dk} будем записывать как {dn1
1 , ..., dnk
k }, где ni –
количество дубликатов (экземпляров) элемента di в мультимножестве α, i = 1, ..., k.
3. Основные результаты. Широко используемыми агрегатными операциями
являются Sum, Avg, Min, Max, Count. Их аргументы – это конечные таблицы, а
значения – одноатрибутные таблицы с одной строкой. Так, операция Sum рассчи-
тывает сумму значений в соответствующем столбце заданной таблицы, при этом
значения NULL игнорируются. Операция Avg определяет среднее арифметическое
значений в соответствующем столбце заданной таблицы, при этом значения NULL
игнорируются. Операции Min и Max находят наименьшее и наибольшее значения в
соответствующем столбце заданной таблицы, при этом значения NULL также игно-
рируются. Операция Count определяет количество значений, отличных от NULL,
в соответствующем столбце заданной таблицы. Операция Count(∗) определяет ко-
личество строк в заданной таблице.
Пусть Num – числовое подмножество универсального домена D , замкнутое от-
носительно сложения. Зададим агрегатные операции. Общая схема: на конечном
мультимножестве определяются функции суммирования, взятие наименьшего и наи-
большего значений, определение среднего арифметического и количества элементов,
а затем эти функции переносятся на таблицы. Заметим, что функции суммирова-
ния и нахождения среднего арифметического определены на конечном числовом
мультимножестве.
Рассмотрим таблицу 〈t, R〉 ∈ T ′(R) и пусть A ∈ R. Обозначим через αA мульти-
множество, которое содержит все элементы столбца с атрибутом A таблицы 〈t, R〉.
Тогда Θ(αA) = DA,t, где DA,t = {d|∃s(s ∈ t∧〈A, d〉 ∈ s)} – активный домен атрибута
A относительно таблицы 〈t, R〉 [2, 3].
Для определения количества дубликатов элемента d в мультимножестве αA за-
дадим отображение ϕ : t → DA,t, где ϕ(s) = s(A) (s ∈ t). Тогда количество дубли-
катов элемента основы d ∈ DA,t мультимножества αA равно αA(d) =
∣∣ϕ−1(d)
∣∣, где
1) Множество T (R) понимается в смысле [3].
37
И.Н. Глушко
ϕ−1(d) = {s|s ∈ t ∧ ϕ(s) = d} – прообраз элемента d ∈ DA,t относительно отображе-
ния ϕ, а |X| – мощность множества X.
Агрегированием SumA,R по атрибуту A (конечных) таблиц схемы R назовем
такую унарную параметрическую операцию SumA,R : T ′(R) → T ′({A}), что
SumA,R (〈t, R〉) = 〈{{〈A,Sum(αA)〉}} , {A}〉 ,
где 〈t, R〉 ∈ T ′(R), а Sum2) – функция, возвращающая сумму значений столбца с
атрибутом A таблицы 〈t, R〉 (значения могут повторяться), которые отличаются от
значения NULL. Кроме того, предполагается, что этот столбец содержит только
числовые данные. Таким образом, Sum : 2Num
m → Num, где
Sum(αA) =
NULL, если Θ(αA) = ∅;
NULL, если Θ(αA) = {NULL};∑
d∈Θ(αA)\{NULL}
dα(d), если Θ(αA)\{NULL} 6= ∅.
Из определения следует, что Sum(∅m) = NULL3), Sum({NULLn}) = NULL,
Sum
({
dn1
1 , . . . , dnk
k
})
=
k∑
i=1
dini, в предположении, что все элементы di (i = 1, k) от-
личаются от элемента NULL, SumA,R (〈t∅, R〉) = 〈{{〈A,NULL〉}} , {A}〉, где 〈t∅, R〉
– пустая таблица.
Проиллюстрируем применение операции агрегирования SumA,R на примере.
Пример 1. Для таблицы
〈t, R〉 =
A B C
1 2 3
2 1 1
2 3 NULL
получим SumA,R (〈t, R〉) = 〈{{〈A, 5〉}}, {A}〉 , SumB,R (〈t, R〉) = 〈{{〈B, 6〉}}, {B}〉 и
SumC,R (〈t, R〉) = 〈{{〈C, 4〉}}, {C}〉 .
Агрегированием CountA,R по атрибуту A (конечных) таблиц схемы R назовем
такую унарную параметрическую операцию CountA,R : T ′(R) → T ′({A}), что
CountA,R (〈t, R〉) = 〈{{〈A,Count(αA)〉}} , {A}〉 ,
где 〈t, R〉 ∈ T ′(R), а Count – функция, возвращающая количество значений, кото-
рые отличаются от значения NULL с учетом дубликатов в столбце с атрибутом A
таблицы 〈t, R〉. Таким образом, Count : 2Dm → Z+, где
Count(αA) =
∑
d∈Θ(αA)\{NULL}
αA(d).
2) Операция SumA,R определена на конечных таблицах, а функция Sum – на конечных муль-
тимножествах чисел.
3)∅m – пустое мультимножество.
38
Агрегатные операции
По определению считаем, что сумма пустого множества слагаемых равна нулю.
Итак, Count(∅m) = 0, Count({NULLn}) = 0 и Count
({
dn1
1 , . . . , dnk
k
})
=
k∑
i=1
ni, в
предположении, что все элементы di (i = 1, k) отличаются от элемента NULL. Для
случая пустой таблицы 〈t∅, R〉 имеем CountA,R (〈t∅, R〉) = 〈{{〈A, 0〉}} , {A}〉.
Пример 2. Для таблицы из примера 1 получим
CountA,R (〈t, R〉) = 〈{{〈A, 3〉}}, {A}〉 ,
CountB,R (〈t, R〉) = 〈{{〈B, 3〉}}, {B}〉 ,
CountC,R (〈t, R〉) = 〈{{〈C, 2〉}}, {C}〉 .
Агрегированием CountA,R(∗) (конечных) таблиц схемы R назовем такую унар-
ную параметрическую операцию CountA,R(∗) : T ′(R) → T ′({A}), что
CountA,R(∗) (〈t, R〉) = 〈{{〈A, |t|〉}} , {A}〉 ,
что 〈t, R〉 ∈ T ′(R). Содержательно говоря, операция CountA,R(∗) определяет коли-
чество строк заданной таблицы. Атрибут-параметр служит только для формирова-
ния схемы таблицы-результата. Для случая пустой таблицы 〈t∅, R〉 имеем
CountA,R(∗) (〈t∅, R〉) = 〈{{〈A, 0〉}} , {A}〉.
Пример 3. Для таблицы из примера 1 получим
CountA,R(∗) (〈t, R〉) = 〈{{〈A, 3〉}}, {A}〉 ,
CountB,R(∗) (〈t, R〉) = 〈{{〈B, 3〉}}, {B}〉 ,
CountC,R(∗) (〈t, R〉) = 〈{{〈C, 3〉}}, {C}〉 .
Допустим, что числовое подмножество Num универсального домена замкнуто
относительно (частичной операции) деления / : Num×Num→̃Num. Доопределим
операцию деления так, что когда первый аргумент равен NULL, то функция прини-
мает значение NULL. Это связано с тем, что мы будем осуществлять суперпозиции
и вместо первого аргумента подставлять значение функции Sum, а вместо второго
– значение функции Count, учитывая, что функция Count в качестве значения не
может выдать значение NULL.
Агрегированием AvgA,R по атрибуту A (конечных) таблиц схемы R назовем та-
кую унарную параметрическую операцию AvgA,R : T ′(R) → T ′({A}) , что
AvgA,R (〈t, R〉) = 〈{{〈A,Avg (αA)〉}} , {A}〉 ,
где 〈t, R〉 ∈ T ′(R), а Avg – функция, которая возвращает среднее арифметическое
значение элементов столбца с атрибутом A таблицы 〈t, R〉, которые отличаются от
значения NULL, причем с учетом дубликатов, т.е. Avg : 2Num
m → Num и
Avg(αA) =
Sum(αA)
Count(αA)
.
39
И.Н. Глушко
Из определения следуют равенства
Avg(∅m) =
Sum(∅m)
Count(∅m)
=
NULL
0
= NULL,
Avg({NULLn}) =
Sum({NULLn})
Count({NULLn}) =
NULL
0
= NULL,
Avg
({
dn1
1 , . . . , dnk
k
})
=
Sum
({
dn1
1 , . . . , dnk
k
})
Count
({
dn1
1 , . . . , dnk
k
}) =
1
(n1 + . . . + nk)
k∑
i=1
dini
в предположении, что все элементы di (i = 1, k) отличны от NULL.
Пример 4. Для таблицы из примера 1 получим
AvgA,R (〈t, R〉) = 〈{{〈A, 5/3〉}}, {A}〉 ,
AvgB,R (〈t, R〉) = 〈{{〈B, 2〉}}, {B}〉 ,
AvgC,R (〈t, R〉) = 〈{{〈C, 2〉}}, {C}〉 .
Пусть ≤ – линейный порядок на универсальном домене D . Агрегированием
MinA,R по атрибуту A (конечных) таблиц схемы R, A ∈ R назовем такую унар-
ную параметрическую операцию MinA,R : T ′(R) → T ′({A}), что
MinA,R (〈t, R〉) = 〈{{〈A,Min(αA)〉}} , {A}〉 ,
где 〈t, R〉 ∈ T ′(R), а Min – функция, которая возвращает наименьшее значение сре-
ди значений столбца с атрибутом A таблицы 〈t, R〉, которые отличаются от значения
NULL. Таким образом Min : 2Dm → D , где
Min(αA) =
NULL, если Θ(αA) = ∅;
NULL, если Θ(αA) = {NULL};
min{d|d ∈ Θ(αA)\{NULL}}, если Θ(αA)\{NULL} 6= ∅.
Из определения следует, что Min(∅m) = NULL, Min({NULLn}) = NULL,
а Min
({
dn1
1 , . . . , dnk
k
})
= min{d1, . . . , dk} в предположении, что все элементы di
(i = 1, k) отличны от элемента NULL. Для случая пустой таблицы 〈t∅, R〉 имеем
MinA,R (〈t∅, R〉) = 〈{{〈A,NULL〉}} , {A}〉.
Пример 5. Для таблицы из примера 1 получим
MinA,R (〈t, R〉) = 〈{{〈A, 1〉}}, {A}〉 ,
MinB,R (〈t, R〉) = 〈{{〈B, 1〉}}, {B}〉 ,
MinC,R (〈t, R〉) = 〈{{〈C, 1〉}}, {C}〉 .
40
Агрегатные операции
Агрегированием MaxA,R по атрибуту A (конечных) таблиц схемы R назовем
такую унарную параметрическую операцию MaxA,R : T ′(R) → T ′({A}), что
MaxA,R (〈t, R〉) = 〈{{〈A,Max(αA)〉}} , {A}〉 ,
где 〈t, R〉 ∈ T ′(R), а Max – функция, которая возвращает наибольшее значение сре-
ди значений столбца с атрибутом A таблицы 〈t, R〉, которые отличаются от NULL.
Таким образом Max : 2Dm → D , где
Max(αA) =
NULL, если Θ(αA) = ∅;
NULL, если Θ(αA) = {NULL};
max{d|d ∈ Θ(αA)\{NULL}}, если Θ(αA)\{NULL} 6= ∅.
Из определения следует, что Max(∅m) = NULL, Max({NULLn}) = NULL,
Max
({
dn1
1 , . . . , dnk
k
})
= max{d1, . . . , dk} в предположении, что все элементы di (i =
1, k) отличны от значения NULL. Для случая пустой таблицы 〈t∅, R〉 имеем
MaxA,R (〈t∅, R〉) = 〈{{〈A,NULL〉}} , {A}〉.
Пример 6. Для таблицы из примера 1 получим
MaxA,R (〈t, R〉) = 〈{{〈A, 2〉}}, {A}〉 ,
MaxB,R (〈t, R〉) = 〈{{〈B, 3〉}}, {B}〉 ,
MaxC,R (〈t, R〉) = 〈{{〈C, 3〉}}, {C}〉 .
Отметим, что функции Min и Max определяют наименьший или наибольший
элементы основы мультимножества, которые отличаются от значения NULL, по-
этому сопоставимость особого элемента с остальными элементами универсального
домена в данном случае несущественна. В конкретных реализациях SQL элемент
NULL может быть как наименьшим, так и наибольшим элементом 4).
4. Выводы. В статье определена формальная математическая семантика агре-
гатных операций, которая проиллюстрирована примерами их применения. Резуль-
таты работы могут быть использованы в теории обобщенных табличных алгебр.
Полученные результаты можно расширить на таблицы, рассматриваемые как муль-
тимножества строк. Кроме того, параметром агрегатной операции может выступать
не только отдельный атрибут, но и некоторая функция над строкой.
1. Codd E.F. A Relational model of data for large shared data banks // Comm. of ACM. – 1970. – № 6.
– P. 377–387.
2. Мейер Д. Теория реляционных баз данных. – М.: Мир, 1987. – 608 с.
3. Редько В.Н., Брона Ю.Й., Буй Д.Б., Поляков С.А. Реляцiйнi бази даних: табличнi алгебри та
SQL-подiбнi мови. – Київ: Видавничий дiм «Академперiодика», 2001. – 198 с.
4. Klug A. Equivalence of relational algebra and relational calculus query languages having aggregate
functions // J. ACM. – 1982. – № 3. – P. 699–717.
4)Сопоставимость особого элемента важна при интерпретации фразы ORDER BY, которая
предназначена для «упорядочения» результата запроса (подробности см. в [3]).
41
И.Н. Глушко
5. Silbeschatz A., Korth H., Sudarshan S. Database system concepts. – NY: McGraw-Hill, 2011. –
1376 p.
6. Garcia-Molina H., Ullman J.D., Widom J. Database systems: the complete book. – NY: Prentice
Hall, 2008. – 1119 p.
7. Дейт К.Дж. Введение в системы баз данных. – М.: Издательский дом «Вильямс», 2005. –
1328 с.
8. Петровский А.Б. Основные понятия теории мультимножеств. – М.: Едиториал УРСС, 2002. –
80 с.
I.M. Glushko
A formal semantics of aggregate operations.
The paper deals with the extension of table algebra (this algebra is introduced by V.N. Redko and
D.B. Bui and is a generalization of well-known classic Codd’s relational algebra), involving the completion
of a special element NULL of the universal domain and expansion of signature finite table algebra with
such aggregate operations: finding the sum, the largest (smallest) value, the average value, the number
of table rows and number of elements different from NULL. The formal mathematical semantics of these
operations illustrated by meaningful examples is given. The concept of multiset is used under defining
the aggregate operators. The general scheme of the aggregate operations is following: at first, operations
are defined on finite multisets, then they are extended to the tables, in particular, on an empty table.
Keywords: relation databases, table (relation) algebra, extending table algebra, aggregate operations.
Нежинский государственный ун-т им. Николая Гоголя
glushkoim@gmail.com
Получено 21.01.14
42
|