Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Прикладная теория категорий. Монография
.pdf
Таким образом, гомоморфизм ϕ : (G, ≅G) → (H, ≅H) со-
стоит из пары отображений ϕV : VG → VH и ϕE : EG → EH таких, что sH(ϕE(e)) = ϕV(sG(e)) и tH(ϕE(e)) = ϕV(tG(e)) для любой
дуги e ∈ EG. Кроме того, если p = e1; e2; ...; ek и q = h1; h2; ...;
hn — пути в G и p ≅G q, то пути
ϕ
(p) = ϕE(e1); ϕE(e2); ...; ϕE(ek) и
E
(q) = ϕE(h1); ϕE(h2); ...; ϕE(hn)
ϕ
E
эквивалентны в H относительно ≅
.
H
В дальнейшем мы будем опускать индексы ϕE и ϕV, если
они ясны из контекста. То же касается отображений начала
дуги s и конца дуги t, а также отношений эквивалентности ≅.
Схемы и их гомоморфизмы образуют категорию Sch.
Схеме (G, ≅) однозначно соответствует категория путей
графа G, в которой эквивалентные пути считаются равными. Обратно, категорию G можно рассматривать как граф G,
в котором объекты категории G — вершины, а морфизмы —
дуги. Пути в G эквивалентны, если равны соответствующие
композиции морфизмов в G. Гомоморфизмы схем при этом
становятся функторами категорий. Тем самым устанавливается эквивалентность категории схем Sch и категории малых категорий Cat.
Следуя [Schultz, 2017], экземпляром базы данных со
схемой (G, ≅) или интерпретацией схемы (G, ≅) мы будем
называть функтор из соответствующей категории G в категорию множеств Set.
Интерпретации схемы (G, ≅) как объекты вместе с есте-
ственными преобразованиями в роли морфизмов образуют
категорию, которая обозначается G-Inst. Заметим, что категория G-Inst является топосом и наследует многие свойства категории множеств. В частности, в категории G-Inst
имеются конечные пределы и копределы, всякий морфизм
представляется в виде композиции строгого эпиморфизма и
строгого мономорфизма. Это позволяет построить над категорией G-Inst категорию бинарных отношений. Ниже будет
показано, что бинарные отношения над G-Inst можно рассматривать как обновления баз данных.
Пусть I: G→ Set — экземпляр базы данных со схемой
(G, ≅). Каждому объекту A категории G функтор I ставит в
соответствие множество I(A), которое можно рассматривать
61

как множество строк некоторой таблицы. Элементы множества I(A) являются, таким образом, значениями первичного ключа. Морфизм f: A → B определяет отображение строк
I(f) : I(A) → I(B). Этому морфизму соответствует «столбец»
таблицы I(A), играющий роль внешнего ключа.
2.2. Обновления баз данных с заданной схемой
Для данного экземпляра базы данных I: G → Set со схемой G возможны его обновления:
удаление строк;
вставка строк;
разделение строк (одна строка становится двумя);
слияние строк (две строки становятся одной).
Вставки и слияния строк будем называть прогрессивными обновлениями, а удаления и разделения — регрессив-
ными. Тогда каждое обновление можно рассматривать как
регрессивное обновление, за которым следует прогрессивное
обновление.
Пусть J:G → Set — обновление базы данных со схемой G. Прогрессивному обновлению соответствует естественное преобразование α : I → J, регрессивному — естественное
преобразование β : J → I.
В самом деле, если A — объект категории G, то слияние
строк в I(A) преобразует I(A) в фактормножество J(A) с естественным сюръективным отображением I(A) → J(A). Точно
так же, вставка строк приводит к расширению множества
I(A) с естественным вложением I(A) → J(A). Композиция последовательных слияний и вставок дает естественное отображение вида I(A) → J(A). В совокупности, при A ∈ ObG, такие
отображения задают функтор J : G → Set и прогрессивное
естественное преобразование α : I → J
Аналогичным образом, удалив строки из I(A), получаем подмножество строк J(A) с естественным вложением
J(A) → I(A). Если строки разделялись, их обратное «склеивание» задает естественное факторотображение J(A) → I(A).
Композиция последовательности таких отображений задает
отображение J(A) → I(A), а совокупность таких отображений для всех объектов категории G — функтор J : G → Set и
регрессивное естественное преобразование β : J ⇒ I.
62

Композиция прогрессивных обновлений является про-
⇒=
−−
−−−01 23 22 21 2
nn
nnnn
⇓⇓
′
−−
II
II
21
23 22
21
nn
nn
α
ββ
IJ
−
−−
βα
123
nn
n
грессивным обновлением. Точно так же, замкнуто относительно композиции множество регрессивных обновлений.
С учетом этого любую последовательность обновлений экземпляра базы данных I до экземпляра J можно представить
в виде последовательности регрессивных и прогрессивных
обновлений. Дополняя, если это необходимо, слева или справа такую последовательность тривиальными обновлениями
I ⇐ I и J ⇒ J, можно считать, последовательность обновлений имеет следующий вид:
βα
11
II IIIII=⇐ ⇒⇐ ⇒⇐
βα
−−
nn
23 23
...
βα
21 21
JJ .
(1)
Предположим, что n > 1. В категории G-Inst построим
декартов квадрат на морфизмах (естественных преобразованиях) I
2n–3
⇒ I
2n–2
⇐ I
2n–1
:
Последовательность (1) можно заменить более корот-
кой последовательностью
βα
11
II
в которой β′
⇐⇒ ⇐
2n–3
Последовательно применяя такие сокращения, любое
обновление I до J можно представить в виде I ⇐ I
ким образом, обновление представляется бинарным отношением над G-Inst. Композиции обновлений соответствует
композиция бинарных отношений. Тем самым, категорию
бинарных отношений над G-Inst можно трактовать как категорию обновлений баз данных со схемой G.
2.3. Обмен данными
Обмен данными — это задача получения данных, структурированных в соответствии с исходной схемой, и создания
экземпляра целевой схемы, который максимально точно
отражает исходные данные. Данные, структурированные
по одной (исходной) схеме, должны быть реструктурированы и преобразованы в экземпляр другой (целевой) схемы.
= β
′
23
′
⇒
−
α
−
n
23
−
−
n
⇒
′
23 23
... ,
β′ и α′
2n–3
′
= α
2n–3
2n–1
(2)
′
⇒
(3)
α′.
⇒ J. Та-
1
63

При наличии исходного экземпляра может существовать множество различных целевых экземпляров, удовлетворяющих ограничениям, связанным с проблемой обмена
данными. Среди всех решений задачи обмена данными имеется в определенном смысле универсальное, которое содержит не больше и не меньше данных, чем требуется для обмена данными.
Обмен данными используется во многих задачах,
требующих передачи данных между существующими
независимо созданными приложениями. Например,
веб-данные которые хранятся в различных форматах, таких как традиционные схемы реляционных баз данных,
полуструктурированные схемы (например, DTDS или
XML-схемы), и др.
В ситуации обмена данными у нас имеются исходная
схема S и целевая схема T. В схеме T могут быть свои соб
ственные ограничения, представленные тождествами на
множестве путей. Зависимости в исходной схеме должны
сохраняться при переходе в целевую схему. На языке тео
рии категорий это означает, что при переходе от S к T сохраняется композиция, т.е. переход задается функтором
F : S → T.
Заметим, что функтор F : S → T порождает функтор
Δ
: T-Inst → S-Inst,
F
такой, что
Δ
(J) = J F
F
для любого экземпляра базы со схемой T. Если ϕ : J
⇒ J2 —
1
естественное преобразование экземпляров баз данных со схемой T, то ϕ * F : ΔF(J1) ⇒ ΔF(J2) —естественное преобразование баз данных со схемой S, при котором ϕ
→ J
(F(A)).
2
Функтор Δ
(J) будем называть функтором обратного
F
: J1(F(A) →
F(A)
переноса.
Функтор обратного переноса может производить переименование таблиц, переименование столбцов, удаление
таблиц, проецирование столбцов, дублирование таблиц и дублирование столбцов.
64

Пример 2. Схемы S и T представлены матрицами
00
0000
001000
11
000
1111
S =
01
0
0
0
0
0
1
0
0
0
0
1
1
0
0
1
0
1
1
,
T =
111
01
00100
000000100
1
Содержательно база данных со схемой S имеет две не-
тривиальные таблицы следующего вида:
S
1
Id ФИО Должность Телефон
S
6
Id ФИО Должность Оклад
и четыре столбца-домена с заголовками «ФИО» (S2), «Должность» (S3), «Телефон» (S4), «Оклад» (S5).
База данных со схемой T имеет одну нетривиальную та-
блицу
T
1
Id ФИО Должность Телефон Оклад
и четыре столбца-домена с заголовками, «ФИО» (T2), «Должность» (T3), «Телефон» (T4), «Оклад» (T5).
Функтор F : S → T переводит объект Si категории S в
объект Ti категории T при i =1, 2, ..., 5 и F(S6) = T1. Рассмотрим, как действует функтор обратного переноса. Пусть
Id ФИО Должность Телефон Оклад
123 Иванов лаборант 1234567890 50000
… … … … …
J(T1)
65

таблица из экземпляра J базы данных со схемой T. Тогда, полагая для краткости I = ΔF(J), имеем:
I(S1)
Id ФИО Должность Телефон
123 Иванов лаборант 1234567890
… … … …
I(S6)
Id ФИО Должность Оклад
123 Иванов лаборант 50000
… … … …
Так как категория множеств Set полна, а вместе с ней
полны категории S-Inst и T-Inst. Это позволяет построить
для каждого экземпляра базы данных I : S → Set его левое
и правое расширение вдоль функтора обратного переноса
ΔF : T-Inst → S-Inst, которые мы будем обозначать соответственно ΠF : S-Inst → T-Inst и ΣF : S-Inst → T-Inst.
Опишем соответствующую конструкцию в терминах
баз данных.
Начнем с описания, так называемой, комма категории T ↓ F, где T — объект категории T. Объектами категории T ↓ F служат пары (S, g), где S — объект категории S,
а g : T → F(S) — морфизм в категории T. Морфизмы (S, g) в
(S′, g′) — это такие морфизмы f : S → S′, что F(f) → g = g′.
Определим функтор πF(T) : (T ↓ F) → S как стирающий
функтор, который «забывает» о морфизмах g и отображает
(S, g) в S. Совокупность функторов πF(T) задает контравариантный функтор πF из категории T в категорию малых категорий над S : морфизму k : T′ → T функтор πF ставит в соответствие функтор πF(k) : πF(T) → πF(T′) такой, что πF(k)(g) = g →
→ k : T′ → F(S) для g : T → F(S); при этом πF(T′) → πF(k) = πF(T).
Теперь можно, используя полноту категории T-Inst, построить функтор ΠF : S-Inst → T-Inst. Для экземпляра базы
данных I : S → Set со схемой S определим экземпляр базы
данных ΠF(I) : T → Set, полагая
Π
(I)(T) = lim(I πF(T)).
F
66

Покажем, что функтор ΠF является правым сопряжен-
(
)
TF
(
()
TS
).
FI
TS
()
(
)
()
(
)
FS
ным к функтору обратного переноса ΔF. Для этого нужно
установить что для любых экземпляров баз данных I ∈ S-Inst
и J ∈ T-Inst имеется естественный изоморфизм
Hom(Δ
(множества в левой и правой частях (4) состоят из соответ-
ствующих естественных преобразований).
Пусть сначала α : Δ
дого объекта S категории S имеется естественное по S отображение αS : J(F(S)) → I(S). Укажем соответствующее ему
отображение β
Пусть
g
→
мы
⇒ πF(T), где через T обозначен постоянный функтор (T ↓ F) →
→ T, переводящий все морфизмы категории T ↓ F в единич-
ный морфизм объекта T. Применяя функтор J, получаем естественное преобразование J * ϕ : J(T) ⇒ J πF(T) такое, что
Беря композицию (5) с αS, получаем для всех объектов
(S, g) из T ↓ F морфизмы
: J(T) → ΠF(I)(T).
T
ST FS
, →
S
)
задают естественное преобразование ϕ : T ⇒
JJ JF
∗
()
JJ
(
(J), I) ≅ Hom(J, ΠF(I)) (4)
F
(J) ⇒ I. Это означает, что для каж-
F
g
ϕ
(
→
)
Sg
,
J
)
(
объект категории T ↓ F. Морфиз-
g
()
J
→
:(
)
g
α
→
)
(
)
(
(5)
S
S
,
)
(
которые задают естественное преобразование σ: J(T) ⇒
⇒ (I πF(T)).
Так как ΠF(I)(T) — предел диаграммы
существует и единствен морфизм
β
T
для которого τ
канонические проекции.
Пример 3. Пусть категории S, T и функтор F: S → T —
те же, что в примере 2. Категория T
объекту (Si, idTi) с единичным морфизмом для i = 2, 3, 4, 5.
Категория T1 ↓ F содержит следующие объекты:
S
π
T
T
↓
: J(T) → lim (I πF(T)) = ΠF(I)(T),
βT = αS J(g) при всех (S, g) ∈ Ob (T ↓ F), где
τ
: lim (I πF(T)) → I(S) —
S
F
→ →
I
Set
,
↓ F сводится к одному
i
67

(S1, idT1); (S6, idT1); (S2, t12), (S3, t13), (S4, t14), (S5, t15),
265
(
)
(
)
()
()
PS
()
1
где t
— морфизм из Ti в Tj в категории T.
ij
В категории T1 ↓ F имеется шесть неединичных морфизмов:
s
: (S1, idT1) → (Sj, t1j), j = 2, 3, 4;
1j
s
: (S6, idT1) → (Sj, t6j), j = 3, 4, 5,
6j
где s
— морфизм из Si в Sj в категории S.
ij
Таким образом, функтор (I πF(T1)) : (T1 ↓ F) → Set задает в категории множеств диаграмму
II I
SS S
←
41 3
↓↑
III
SSS
(
→
(6)
←
)
→
()
на которой стрелки соответствуют морфизмам I(s1j) и I(s6j).
Предел этой диаграммы в категории множеств может
6
=
быть построен следующим образом. Пусть
∏
=
j
I
—
j
произведение множеств I(Sj) с проекциями pj : P → I(Sj). Обозначим через W подмножество в P, состоящее из всех таких
элементов x ∈ P, что
I(s
)(p1(x)) = pj(x) = I(s6j)(p6(x)), j = 2, 3,
1j
)(p1(x)) = p4(x), I(s65)(p6(x)) = p5(x).
I(s
14
Множество W с ограничениями проекций p
j |W
: W →
→ I(Sj) является проективным пределом диаграммы (6).
Пример 4. Предположим, что экземпляр базы данных
I : S → Set представлен следующими таблицами:
I(S1)
) ФИО (S2) Должность (S3) Телефон (S4)
Id (S
1
1.1 Иванов И.И. лаборант 1234567890
1.2 Петров П.П. мнс 1234567890
1.3 Сидоров С.С. снс 1234567890
1.4 Иванов А.А. зав. лаб. 1234567890
1.5 Иванов А.А. зав. лаб. 999999999
68

I(S6)
) ФИО (S2) Должность (S3) Оклад (S5)
Id (S
6
6.1 Иванов А.А. зав. лаб. 150000
6.2 Сидоров С.С. снс 100000
6.3 Петров П.П. мнс 70000
6.4 Иванов И.И. лаборант 50000
Тогда экземпляр базы данных J = ΠF(I): T → Set может
быть представлен следующей таблицей:
J(T1)
Id (T1) ФИО (T2) Должность (T3) Телефон (T4) Оклад (T5)
(1.1,6.4) Иванов И.И. лаборант 1234567890 50000
(1.2,6.3) Петров П.П. мнс 1234567890 100000
(1.3,6.2) Сидоров С.С. снс 1234567890 70000
(1.4,6.1) Иванов А.А. зав. лаб. 1234567890 150000
(1.5,6.4) Иванов А.А. зав. лаб. 9999999999 150000
Двойственным образом можно определить функтор
ΣF : S-Inst → T-Inst, сопряженный к ΔF : T-Inst → S-Inst слева.
Для экземпляра базы данных I : S → Set функтор
J = ΣF(I): T → Set действует на объектах следующим образом:
J(T) = lim (I σF(T)).
Пример 5. Дадим описание функтора Σ
применитель-
F
но к рассмотренному выше примеру 3.
В таблице 1 приведены объекты и морфизмы соответ-
ствующих комма-категорий.
Таблица 1. Комма-категории и копределы, пример 5
Категория
Объекты
Морфизмы
Копредел
F ↓ T
1
, idT1)
(S
1
(S6, idT1)
idS1, id
S6
I(S1) I(S6)
F ↓ T
(S1, t12)
(S6, t12)
(S2, idT2)
idS1,
idS6,
idS2,
s12, s
I(S2) I(S3)
2
62
F ↓ T
(S3, idT3)
(S1, t13)
(S6, t13)
idS1,
idS6,
idS3,
s13, s
F ↓ T
3
63
4
(S4, idT4)
(S1, t14)
(S6, t14)
idS1, idS4,
idS6, s
14
I(S4) I(S6) I(S1) I(S5)
F ↓ T
5
(S5, idT5)
(S1, t15)
(S6, t15)
idS1, idS5,
idS6, s
65
69

Пусть экземпляр базы данных I : S → Set — тот же, что
в предыдущем примере. В этом случае экземпляр базы данных J = ΣF(I) : T → Set может быть представлен следующей
таблицей:
J(T1)
Id (T1) ФИО (T2) Должность (T3) Телефон (T4) Оклад (T5)
1.1 Иванов И.И. лаборант 1234567890 Х
1.2 Петров П.П. мнс 1234567890 Х
1.3 Сидоров С.С. снс 1234567890 Х
1.4 Иванов А.А. зав. лаб. 1234567890 Х
1.5 Иванов А.А. зав. лаб. 999999999 Х
1.1 Иванов И.И. лаборант 1234567890 Х
6.1 Иванов А.А. зав. лаб. Х 150000
6.2 Сидоров С.С. снс Х 100000
6.3 Петров П.П. мнс Х 70000
6.4 Иванов И.И. лаборант Х 50000
Заключение
Теоретико-категорные модели баз данных существуют
уже достаточно продолжительное время. Схемы баз данных
могут быть формализованы в виде эскизов различного рода.
Сами данные (называемые экземпляром) представляются
моделью эскиза. На этом языке запросы можно понимать как
ограничивающие конусы в таком эскизе. Хотя этот подход
и отличается от подходов, принятых в теории реляционных
баз он позволяет сконцентрировать внимание на определенных аспектах работы с базами данных. На уровне общности
категорий и функторов достаточно естественно может быть
описан перенос данных из одного формата в другой, или из
базы с одной схемой в базу с другой схемой. Морфизм схем
индуцирует три сопряженных функтора: функтор прообраза
и его расширения Кана. Эти функторы переносят данные из
одной схемы в другую.
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
