ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ
Вестн. Ом. ун-та. 2012. № 2. С. 175-181.
УДК 519.72 С.В. Зыкин
РЕДАКТИРОВАНИЕ БАЗЫ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ ТАБЛИЧНЫХ ПРИЛОЖЕНИЙ*
Решается проблема возврата отредактированных значений из табличного представления пользовательских данных в исходную реляционную базу данных. Разработан алгоритм, позволяющий автоматизировать это преобразование. Построение осуществляется на основе формального определения моделей данных и свойств ссылочной целостности данных.
Ключевые слова: реляционная база данных, ссылочная целостность, ациклическая схема.
1. Введение
Многомерное представление данных является основой для реализации технологий оперативной аналитической обработки данных OLAP (online analytical processing) [1-3] и интеллектуального анализа данных (Data Mining - добыча данных) [4; 5]. Кроме того, многомерное представление может быть использовано для редактирования данных [6; 7], полученных пользователем вручную, либо восстановленных неизвестных значений алгоритмами Data Mining. В этом случае актуальной становится проблема сохранения вновь полученной информации в базе данных (БД). Понятно, что произвол при редактировании данных является неприемлемым, поскольку данные должны удовлетворять ограничениям целостности. Дополнительные ограничения на редактирование являются следствием выбранного способа представления данных. В [6] определяется набор допустимых единичных операций при редактировании представления данных «Семантическая трансформация» [8], а в [7] рассмотрена реализация такого подхода в среде Microsoft Office. В данной работе предлагается подход с отложенной передачей данных в БД: сначала выполняется необходимое редактирование данных, а затем инициируется их передача в БД. При этом появляются следующие преимущества: а) отсутствует необходимость отслеживать все прерывания от клавиатуры для определения завершения единичной операции, в том числе вызванные ошибочными действиями пользователя, б) нет необходимости загружать канал связи на весь период редактирования данных (использование канала только на момент передачи данных). Однако замедляется многопользовательский доступ к данным из-за необходимости ожидания снятия блокировки редактируемых данных, если другому пользователю требуется доступ для редактирования этих же данных.
В системе «ИнфоВизор» [9] решается похожая проблема редактирования (загрузки) данных из табличных форм. Однако схема БД при этом должна иметь форму «звезды» (иерархия), редактирование и загрузка данных выполняются раздельно и процедуру загрузки должен выполнять специалист в области информационных технологий. В данной работе предлагается ослабить требование к схеме БД: иерархичность заменить условием ацикличности [10] подмножества редактируемых отношений. Причем требование ацикличности формулируется только для ссылочных ограничений целостности и является более слабым, чем классическое условие ацикличности [11]. Кроме того, за счет использования свойств схемы БД в алгоритме загрузки данных предполагается ослабить требования к квалификации пользователя.
* Работа выполнена по проекту РФФИ № 09-07-00059-a.
© С.В. Зыкин, 2Q12
2. Предварительные сведения
В работе [6] подробно исследована таблица «Семантическая трансформация» Я*. Кратко рассмотрим основные положения данной работы и введем необходимые обозначения. Пусть задана совокупность всех отношений реляционной БД: 9={Я1 , Я2 , ..., Я} - результат декомпозиции при нормализации отношений, для которой отсутствуют і и ] такие, что [Я] с [Я,] при ІФ], где [Яі] - совокупность атрибутов (схема отношения). Яі[У| -отношение Яі, определенное на множестве атрибутов V. и={Аі, А2, ..., Ап} - множество всех атрибутов, на которых заданы отношения из совокупности 9. Пусть X - множество атрибутов из и - является первой размерностью таблицы Я*. У - множество атрибутов из и - является второй размерностью таблицы Я*. X - множество атрибутов из и - являются мерами, которые располагаются в рабочей области таблицы Я*. Выполнены ограничения: ХпУ=0, ХгХ=0, УпХ=0. Для демонстрации предлагаемых технологических решений рассмотрим примеры.
Пример 1. Пусть множество и задано следующим набором атрибутов: Аі - ФИО студента, А2 - наименование предмета, Аз -код группы, А4 - наименование специальности, А5 - количество часов по предмету, Аб -оценка по предмету, А7 - день недели, Ав -время начала занятия, Ая - аудитория, А10 -ФИО преподавателя, А11 - номер студента в группе, А12 - порядковый номер группы, Аіз
- порядковый номер предмета, А14 - номер специальности, А15 - номер дня недели, А16
- номер занятия, А17 - номер преподавателя. Множество 9 имеет следующий вид:
студенты = Я1(А11, А12, А1), оценки = Я2А11, А12, А13, Аб), предметы = Яз(А1з, А2), список групп = Ш(А12, Аз, А14), специальности = Я5(А14, А4), учебная нагрузка = Яб(А1з, А14, А5),
неделя = Яу(А^15, А7), начало занятий = Я8(А1б, Ад), расписание = Я1(А12, А15, А16, А13, А17, Ая), преподаватели = Яю(А17, А10), где подчеркнуты ключевые атрибуты отношений.
Используя базу данных с указанной схемой, можно определить: 1) успеваемость студентов по группам или по предметам; 2) загрузку аудиторий в течение недели; 3) зависимость успеваемости студентов от преподавателя или от аудитории и т.д. Каждый из перечисленных видов анализа требует собственного представления данных. Кроме того, эти представления являются удобным средством для ввода новых данных.
Рассмотрим два примера формирования табличного представления данных по схеме, сформированной в примере 1.
Пример 2. Расписание занятий (табл. 1): Х={Ку.Л7, ^.Лз}, У^.Лз}, г={Ыз.Л2, Кю.Аю, Ыд.Лд}.
В табл. 1 полужирным шрифтом представлены атрибуты размерностей и их значения, курсивом - атрибуты мер, обычным -значения мер.
Пример 3. Сводная ведомость (табл. 2): Х=(Я1.Ап, Я1.А1}, У={Яз.А2}, г=(Я2.Аб}.
Если табличное представление данных интерпретировать как отношение, то ее схема будет иметь следующий вид:
БеЩЯ*) = [X, Бот(У) х (г}], где БеН - схема отношения, Бот -
множество допустимых значений атрибутов, х - декартово произведение,
Бот(У) = Бот(У1) х Бот(У2) х ... х Бот(Ук), У] е У. Таким образом, атрибуты, кроме X, имеют следующие имена: у11...ук2р, где ук -у-тое значение атрибута Ук, %> - атрибут из множества X. Таблица Я* будет иметь следующие размерности: Бот(Х) - значения
вдоль первой координаты, Бот(У1) х (г} -значения вдоль второй координаты.
Таблица 1
Расписание занятий
Код гр\ ^ппы М-210 М-220
День недели Время начала занятия Наименование предмета Ф.И.О. преподавателя Аудитория Наименование предмета Ф.И.О. преподавателя Аудитория
Понедельник 8:00 Физика Уваров В.А. 1-130
9:45 Алгебра Чернов О.Г. 1-130 Физика Уваров В.А. 1-340
Вторник 9:45 Алгебра Чернов О.Г. 1-130
Среда 11:30 История Орлов А.С. 2-104
Таблица 2
Сводная ведомость для группы студентов
Наименование предмета Алгебра Физика Химия История
Номер студента в группе Ф.И.О.студента Оценка по предмету Оценка по предмету Оценка по предмету Оценка по предмету
1 Иванов И.И. 4 4
2 Петров П.П. 5 4
3 Сидоров С.С. 4 3
4 Ковалев К.К. 5
Для формирования таблицы R* удачным промежуточным представлением является «Таблица соединений» [12]. В отличие от SQL-таблицы, использование таблицы соединений позволяет иметь значения координат Dom(Y) х {Z}, для которых пока отсутствуют кортежи в БД, связующие их со значениями X. Образовавшиеся пустые ячейки в рабочем поле таблицы могут быть отредактированы без дополнения соответствующих слоев. Это позволяет избавиться от дополнительного ввода значений координат, поскольку они уже есть в БД.
Порядок просмотра отношений при редактировании БД зависит от выполняемой операции и связей (relationship), установленных на схеме. На связях задаются ссылочные ограничения целостности (referential integrity). Значения атрибутов, по которым связаны отношения, заимствуются из главных отношений (справочников) в подчиненные отношения. Между ними устанавливается связь 1:М либо 1:1 по направлению от главного отношения к подчиненному. Формальным основанием для установления связей являются зависимости включения (inclusion dependencies) [13]:
Определение 1. Пусть Ri[Ai, Am] и
- схемы отношений (не обязательно различные), V с {Ai, Am} и W с
{Bi, ..., Bp}, | v| = | w| , тогда объект
Ri[V] с Rj[W] называется зависимостью
включения, если nv(Ri) с nw(Rj).
В определении | V| - мощность множества V, nv(Ri) - проекция отношения Ri по атрибутам V. В данной работе рассмотрим практические аспекты использования зависимостей включения. Будем предполагать, что условие V= W является необходимым для установления связи. Такой вид зависимостей включения называется типизированным (typed) [14; 15]. Введем обозначения: PK(Ri), или просто PK(i), - множество атрибутов, являющихся первичным ключом в отношении Ri, заметим, что в отношении Ri может существовать несколько альтернативных первичных ключей; - связь
1:1 от Ri к Rj, где Ri - главное отношение; LM(id) - связь 1:M от Ri к Rj, где Ri - главное отношение; L(ij) - связь 1:1 либо 1:M от Ri к Rj, где Ri - главное отношение.
Определение 2. Между отношениями Ri и Rj существует связь Li(ij), если PK(R) = PK(Rj) и для любых реализаций Ri и Rj, выполнено nx(Rj) с xx(Rt), где X = RnRj.
Определение 3. Между отношениями Ri и Rj существует связь Lm(IJ), если PK(Rt) Ф PK(Rj) и PK(Rt) с Rj.
Заметим, что определения 1 и 2 соответствуют частному случаю типизированных зависимостей включения, которые поддерживается системами управления базами данных (СУБД) за счет создания внешних ключей (foreign key). Ограничение целостно-
сти, задаваемое связью Ьш(1/), подразумевает ПЯ]) £ п?(Я{), где V = ЯоЯ/-. Далее за каждой связью неявно закрепим набор ат-
рибутов, на которых она определена: V = Я{ о я/, и будем эти атрибуты явно использовать в алгоритмах.
В работе [10] рассмотрено условие ацикличности для совокупности отношений по аналогии с условием ацикличности зависимостей включения [16].
Определение 4. Совокупность отношений Ш будем называть ациклической, если не существует упорядоченное подмножество отношений
(Яш(1), Я т(2), ..., Я т(э)} £ Ш (1)
такое, что выполнено:
Цт(1), т(2)), Цт(2), т(3)),
Цт(з-1), т(в)), Цт(э),т(1)), (2)
в > 1, в противном случае совокупность отношений Ш будем называть циклической. Последовательность (2) может содержать расширенные связи.
В работе [16] рассмотрено несколько различных условий ацикличности Ш и доказана их эквивалентность, а в работе [10] доказано, что класс ациклических схем БД, по определению 4, шире, чем по условиям в
[16]. Кроме того, в работе [10] получено условие для избыточных связей, основанное на ссылочных ограничениях целостности данных. На основе полученных результатов разработаны алгоритмы формирования множества типизированных связей на схеме БД и удаления избыточных связей.
3. Алгоритм обратного преобразования данных
В работе [17] предложена следующая последовательность преобразований:
ЯЯБ ^ ТЫ ^ БТ ^ ТЫ ^ ЯЯБ, (3)
где ЯЯБ - реляционное представление данных, ТЫ - таблица соединений, БТ - таблица «Семантическая трансформация». В данном случае ЯЯБ - представление исходной модели данных, БТ - пользовательской (целевой). Представление ТЫ является промежуточным. Там же приведены алгоритмы преобразования: ЯЯБ ^ ТЫ и ТЫ^ БТ. Обратное преобразование БТ ^ ТЫ рассматривается в работе [6]. Там же рассмотрен набор допустимых операций для БТ. В работе [12] рассмотрено свойство ТЫ, позволяющее получить яяб, как совокупность проекций на ты, что замыкает цепочку преобразований
(3). Последнее преобразование является вполне приемлемым при массовой загрузке значений в ЯЯБ. Однако при незначительных модификациях представления БТ экономичнее сделать соответствующие локальные модификации в ЯЯБ. Кроме того, в последовательности (3) не учитываются ссылочные ограничения целостности.
Для возврата в БД отредактированных значений в [17] используется таблица соеди-
нений, что гарантирует идентификацию измененных кортежей в БД. Таблица соединения является единственным местом, где в явном виде всегда реализуется функциональная зависимость ХУ ^ X (объединение множеств атрибутов X и У функционально определяют X), являющаяся достаточным условием для существования представления Я*
[6]. Это свойство позволяет по таблице соединений однозначно определить: изменилось или нет значение в рабочей области Я*. Для этой цели нельзя воспользоваться исходными отношениями БД, поскольку зависимость ху ^ г может не принадлежать минимальному покрытию зависимостей и, следовательно, в явном виде отсутствовать в нормальных формах, начиная с третьей. Достаточно подробно способ формирования и основные свойства таблицы соединений (в оригинале - список) рассмотрены в работе [12].
Основная идея предлагаемого подхода заключается в восстановлении значений а, атрибутов А/ е и по совокупности сопоставленных значений в пользовательском представлении данных и с существующими значениями в БД. После завершения редактирования данных выбираются текущие значения атрибутов X, У и X. По таблице соединений определяются сделанные изменения. Далее для отношений из Ш требуется интерпретировать преобразования в терминах операций над кортежами. Для этого необходимо определить порядок просмотра отношений Я.1 е Ш. Это необходимо для доопределения значений атрибутов Aj, не принадлежащих множествам X, У и X, но используемых в операциях над отношениями Я,-.
Последовательность просмотра отношений при редактировании данных в БД регламентируется ссылочными ограничениями целостности: при дополнении кортежа Ь, в отношение Я, во всех главных отношениях Я,- (существуют связи Цу,)) должен существовать (уже быть дополнен) кортеж Ь,- такой, что ЧЩ = «VI, где V = [Я,]о[Я/]. С другой стороны, при удалении кортежа Ь, из отношения Я, во всех подчиненных отношениях Я,- (существуют связи Ц1/')) должен отсутствовать (уже быть удален) кортеж Ь/ такой, что ЭДР] = /V], где V = [Я,]п[Я/]. Модификация значения атрибута А/ в кортеже Ь, е Я, может быть выполнена непосредственно, если А/ не принадлежит подчиненным и главным отношениям для отношения Я,. В противном случае операция модификации сводится к удалению старого кортежа и дополнению нового. Не соблюдение перечисленных условий приведет к тому, что СУБД отвергнет текущую операцию.
Заключительным этапом настройки приложения является упорядочение совокупности отношений, выбранных пользователем для формирования представления БТ. Это упорядочение может быть выполнено
любым алгоритмом сортировки одномерного массива в оперативной памяти. В результате любое отношение должно быть расположено в последовательности после своих главных отношений: Я,- находится после Я,, если существует связь Ц/ Такое упорядочение всегда существует. Допустим противное: пусть Ят(,) < Ят(,) для одной последовательности связей, соответствующих атрибутам X, и Ят/) ■< Я,,ф) для другой последовательности связей, соответствующих атрибутам У. Для выполнения этих условий должны существовать две последовательности: Цт(1),т(11)), Цт(11),т(12)), ..., Цт(1р),т/)) и Цт/),т/1)), Цт/1),т/2)), ..., Цт/в),т(1)).
Составленные вместе они будут противоречить определению 4. Следовательно, существует последовательность: ТаЬ1е_ИзЬ = (Ят(1), Ят(2), ..., Ят(к)}. Очевидно, что в ТаЫе_НзЬ задан частичный нелинейный порядок с несколькими минимальными элементами и, в общем случае, несколькими максимальными элементами.
Допустимые операции над представлением БТ рассмотрены в работе [6]: дополнение нового слоя в таблицу вдоль координаты X с дополнением новых значений для X, редактирование (дополнение, удаление, модификация) атрибутов г в рабочем поле таблицы. Причем дополнение значения -замена неопределенного значения определенным, удаление - замена определенного значения неопределенным, модификация -замена одного определенного значения другим. Какие-либо операции для значений атрибутов У не предусматриваются. В качестве координат используются все имеющиеся значения атрибутов У в БД, что достигается использованием декартова произведения на их доменах.
Проинтерпретируем перечисленные требования в терминах операций над кортежами исходной БД. Для корректного выполнения операции дополнения кортежа последовательность ТаЬ1е_НзЬ должна быть дополнена главными отношениями для отношений из ТаЬ1е_11эЬ и имеющими непустое пересечение с множеством X и г. Эту операцию целесообразно выполнить до упорядочения ТаЬ1е_НзЬ. Удаление кортежа будет оправданным в отношениях, не имеющих подчиненных отношений, и только тех кортежей, в которых в результате модификации все неключевые атрибуты заменены на неопределенные значения. В случае отсутствия неключевых атрибутов (отношение-суперключ или его декомпозиция) для удаления кортежа достаточно замены на неопределенное значение хотя бы одного из ключевых атрибутов. Для решения проблемы модификации кортежей достаточно запретить использование в X атрибутов, являющихся ключевыми в отношениях, у которых есть подчиненные отноше-
ния. Это ограничение не будет существенным для рассматриваемой технологии, так как указанные отношения являются справочниками для подчиненных отношений, а редактирование ключевых полей справочников в рабочем поле таблицы не является актуальной проблемой. Однако и это ограничение можно ослабить, доопределив связи на схеме свойством «каскадное обновление связанных полей». Тогда будет доста-
точно для таких атрибутов запретить использовать неопределенное значение.
В расширенной и упорядоченной последовательности ТаЬ1е_НзЬ = (Т1, Т2, ..., Те} определим границу Ц, для которой отношения Т,, I ^ Ц не имеют подчиненных отношений в Ш Если в ТаЬ1е_НзЬ нет таких отношений, то Ц = в + 1. Рассмотрим алгоритм обратного преобразования данных.
do t[XYZ]=Import(XYZ) t[U\XYZ]=Null change=True
R=select * from TJ where XY=t[XY] if 3t1eR then Z1={ Zi: ZieZ and t1[Zi]^t1[Zi]} if Z1=0 then change=False else Z1=0 endif
if change then N=XuYuZ do j=1 to s Ve[Tj]nN-Zb W=[Tj]nZ1 if VuW^0 then R=select * from Tj where V=t[V] and W=t1[W] if 3t2eR then if W=0 then t[Tj] = t2[Tj] else
t[[Tj]-W]=t2[[Tj]-W] if 3AiePK(Tj): t[Ai]=Null then if j>L and (PK(Tj) = [Tj] or t[[Tj]-PK(Tj)]=Null) then delete from Tj where [Tj]-W=t[[Tj]-W] and W=t1[W] else
"Атрибут Ai не может иметь пустое значение в t[Nu[Tj]]" stop endif else
update Tj set W=t[W] where [Tj]-W=t2[[Tj]-W] and W=t1[W] endif endif else
t2[V] = t[V], t2[W]=t1[W]
"Запрос значений атрибутов t2[[Tj]-N]" insert into Tj (W) values (t2[W]) t[Tj] = t2[Tj] endif N=Nu[Tj] endif enddo endif enddo,
где Import(XYZ) - функция импорта очередных векторов значений атрибутов X, Y и Z из представления ST. Выражение "V = t[V] and W = ti[W]" в операторах SQL обозначает конъюнкцию по всем атрибутам из множеств V и W, если какое-либо из этих множеств пусто, то соответствующие компоненты будут отсутствовать в выражении. Диагностика «Атрибут Ai не может иметь
пустое значение в Ь[ЛТ и [Т]]» указывает на ключевые атрибуты отношений, которые не могут принимать неопределенное значение. Пользователь может подправить указанные значения и заново инициировать выполнение алгоритма, поскольку необратимые преобразования алгоритмом еще не выполнены. Операция «Запрос значений атрибутов Ь2[[Т] - N1» предполагает ввод пользователем
значений атрибутов, присутствующих в Т/, но не участвующих в формировании БТ, а также запрос у СУБД значений автоинкрементных атрибутов в отношении Т/.
Сложность рассмотренного алгоритма определяется количеством операций ввода-вывода данных: 0(|г| | ТЫ| + |г|| Т/|), где
| ТЫ| - количество кортежей в таблице соединений, | Z| - общее количество векторов значений атрибутов X в БТ, |z| - количество модифицированных векторов значений атрибутов г в БТ (в том числе дополненных за счет новых слоев по координате X), | Т/ | -суммарное количество кортежей в списке отношений ТаЬ1е_НвЬ.
4. Пример работы алгоритма
Идея алгоритма преобразования представления яяб заключается в последовательном просмотре отношений, начиная с минимальных до финального отношения. При этом каждому измененному кортежу Ь[М] из рабочей области таблицы БТ ставится в соответствие два кортежа: и[ТЫ е ТЫ, из которого были сформированы начальные значения кортежа ЧМ] , и Ь2[ТЫ] - новый кортеж, сформированный по значениям атрибутов X, У и г. Значения некоторых атрибутов в Ь2 будут не определены. Кортеж Ь1 будет отсутствовать, если был добавлен новый слой в БТ. При последовательном передвижении от главных отношений к подчиненным будут восстановлены неопределенные значения в Ь2. Пусть Я, - текущее не финальное отношение. Выполняется поиск кортежа Ь2[Х] в Я,, где V £ [Яг] и V - множество атрибутов, для которых определены значения в кортеже Ь2. Если кортеж не найден, то пользователь определяет значения атрибутов [Я,]-Х в кортеже Ь2, кроме автоинкрементных атрибутов, и кортеж Ь2[Я,] дополняется в Я,. Если кортеж найден и он один, то значения атрибутов [Я,]-Х из этого кортежа подставляются в Ь2, и далее следует переход к следующему отношению. Если найдено несколько кортежей, то пользователю надо предварительно выбрать один из них. При достижении финального отношения Я, в нем удаляется кортеж £т[Я,] и дополняется кортеж Ь2[Я,]. Дополнение кортежа Ь2[Я,] не выполняется, если все не ключевые атрибуты в кортеже не определены или не определен один из ключевых атрибутов.
Пример 4. Допустим, что в примере 2 заменили занятие у группы М-210 в понедельник в 8:00 на предмет «История», который ведет преподаватель «Орлов А.С.». Выбором из соответствующих списков заменяем предмет «Физика» на предмет «История» и заменяем преподавателя «Уваров В.А.» на преподавателя «Орлов А.С.». Последовательность отношений, в соответствии с частичным порядком, будет следующей: Яз, Я4, Я7, Яд, Яю, Яя, в которой финальным отноше-
нием будет Яя. Схема промежуточного представления: [ТЫ]=(А2, Аз, А7, Ад, Ая, Аю, А12, А13, А15, А16, А17). Соответствующий кортеж ЬеТЫ будет иметь вид:
£т=(Физика, М-210, Понедельник, 8:00, 1-130, Уваров В.А., 1, 2, 1, 1, 1).
Начальные значения в кортеже Ь2 будут следующими:
Ь2=(История, М-210, Понедельник, 8:00, 1-130, Орлов А.С., -, -, -, -, -).
После поиска в отношении Яз кортеж Ь2 будет иметь вид:
Ь2=(История, М-210, Понедельник, 8:00, 1-130, Орлов А.С., -, 3, -, -, -).
Последовательно просматривая отношения Я4, Я7, Яд, Яю, будем иметь:
Ь2=(История, М-210, Понедельник, 8:00, 1-130, Орлов А.С., 1, 3, 1, 1, 2).
Для завершения операции в отношении Яя заменяем кортеж £т[Яя] на кортеж Ь2[Яя].
Рассмотренная технология преобразования данных реализует функционально полный интерфейс между реляционной базой данных и пользовательской таблицей БТ. Базовым компонентом этой технологии является представление ТЫ. Управление механизмом формирования ТЫ позволяет получить большое разнообразие вариантов представления БТ.
5. Заключение
Проведенный анализ различных вариантов реализации алгоритма редактирования данных показал, что все они обладают теми или иными недостатками. В конечном варианте алгоритма минимизированы возможные негативные последствия преобразования данных в БД за счет ограничений на выполняемые операции. В алгоритме пришлось практически полностью отказаться от операции удаления, поскольку ее последовательное выполнение (от подчиненных отношений к главным) будет эквивалентно каскадному удалению связанных кортежей вплоть до справочников. Навряд ли такую реакцию от системы ожидают пользователи, особенно других приложений.
Реализация условия ЗЬеЯ может привести к неоднозначному определению кортежа Ь. Это обусловлено тем, что в рабочей области приложения пользователь оперирует значениями атрибутов, которые, как правило, не являются ключевыми, тогда как связи на схеме БД между отношениями устанавливаются за счет ключевых атрибутов. Следовательно, для ввода согласованных значений атрибутов в различных отношениях потребуется определять значения ключевых атрибутов по совокупности значений неключевых атрибутов. Однозначность при этом не гарантируется, поэтому может потребоваться вмешательство пользователя.
В алгоритме преобразование БД осуществляется только для измененных или до-
полненных данных, что определяется по таблице соединений. Поэтому таблицу TJ приходится просматривать для всех векторов XYZ. А вот повторное выполнение SQL команд update, insert и delete, обрабатывающих всю таблицу целиком, после выполнения команды select можно избежать. Многие инструментальные среды для работы с БД содержат методы, позволяющие решить эти проблемы в рамках текущего набора данных - результата выполнения команды select. Например, использование в VBA методов AddNew, Delete и Update позволяет сделать локальные изменения над текущим набором данных и затем сохранить их в отношении. Кроме того, метод AddNew делает доступным значение автоинкрементного атрибута без дополнительных обращений к БД. Какой из вариантов будет лучше, зависит от функциональных возможностей и качества инструментария.
Предложенная технология редактирования данных в БД применима не только для табличного представления, но и для произвольных форм ввода-вывода данных, основанных на многотабличных SQL-запросах. Ограничением является необходимость наличия первичного ключа в SQL-таблице (аналог условия XY-^Z в [6]).
Дальнейшее развитие технологии предполагается за счет расширения аппарата вводимых ограничений на данные, загружаемые в ST. В настоящее время используется эвристическое правило «продления» ограничений на ключевые атрибуты соответствующих отношений. Кроме того, предполагается снять ограничение XY-+Z: в одной ячейке может быть несколько однородных значений (список). Для перечисленных направлений развития технологии требуются дополнительные теоретические и экспериментальные исследования.
ЛИТЕРАТУРА
[1] Harinarayan V, Rajaraman A, Ullman J. D. Implementing Data Cubes Efficiently // SIGMOD Conference. Montreal, CA, 1996. P. 205-216.
[2] Gray J., Chaudhuri S., Bosworth A. Data Cube: A Relational Aggregation Operator Generalizing Group-By, Cross-Tab, and Sub-Totals /// Data
Mining and Knowledge Discovery. 1997. № 1. P. 29-53.
[3] Педерсен Т. Б., Йенсен К. С. Технология многомерных баз данных // Открытые системы. 2002. № 1. С. 45-50.
[4] Parsaye K. Surveying Decision Support: New Realms of Analysis // Database Programming and Design. 1996. № 4. P. 26-33.
[5] Parsaye K. OLAP and Data Mining: Bridging the Gap // Database Programming and Design. 1997. № 2. P. 30-37.
[6] Зыкин С. В. Формирование пользовательского представления реляционной базы данных с помощью отображений // Программирование. 1999. № 3. С. 70-80.
[7] Зыкин С. В. Инструментальные средства разработки приложений для работы с базами данных // Динамика систем, механизмов и машин : материалы V международной науч.-тех. конф. Омск : ОмГТУ, 2004. С. 376-380.
[8] Цаленко М. Ш. Моделирование семантики в базах данных. М. : Наука, 1989. 287 с.
[9] Щавелев Л. В. Оперативная аналитическая обработка данных для поддержки принятия управленческих решений // Создание и развитие информационной среды вуза: состояние и перспективы : сб. ст. к конф. Иван. гос. архи-тектурно-строит. акад. Иваново, 1997. С. 279283.
[10] Зыкин С. В. Автоматизация формирования связей на схеме базы данных // Вестник Омского университета. 2010. № 4. С. 150-155.
[11]Мейер Д. Теория реляционных баз данных. М. : Мир. 1987. 608 с.
[12] Зыкин С. В. Построение отображения реляционной базы данных в списковую модель данных // Управляющие системы и машины. 2001. № 3. С. 42-63.
[13] Casanova M., Fagin R., Papadimitriou C. Inclusion Dependencies and Their Interaction with Functional Dependencies /// Journal of Computer and System Sciences. 1984. № 28(1). P. 29-59.
[14] Missaoui R., Godin R. The Implication Problem for Inclusion Dependencies: A Graph Approach // SIGMOD Record. 1990. V. 19. № 1. P. 36-40.
[15] Levene M., Vincent M. W. Justification for Inclusion Dependency Normal Form // IEEE Transactions on Knowledge and Data Engineering. 2000. V. 12. № 2. P. 281-291.
[16] Beeri C., Fagin R., Maier D., Yannakakis M. On the Desirability of Acyclic Database Schemes // ACM. 1983. V. 30. № 3. P. 479-513.
[17] Зыкин С. В. Формирование гиперкубического представления реляционной базы данных // Программирование. 2006. № 6. С. 348-354.