Формальная семантика агрегатных операций в табличных алгебрах

В работе проводится расширение табличной алгебры (введенной В.Н. Редько и Д.Б. Буем и являющейся обобщением классической реляционной алгебры Кодда), которое предполагает пополнение универсального домена специальным элементом NULL и расширение сигнатуры табличной алгебры конечных таблиц агрегатными о...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
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 Ukraine
id 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