С. Д. Бороненко, О. Ю. Ильяшенко Моделирование операции декартова произведения средствами СУБД

advertisement
С. Д. Бороненко, О. Ю. Ильяшенко
Моделирование операции декартова произведения
средствами СУБД
В теории множеств операция декартова произведения является
важнейшим средством манипуляции множествами, позволяющим
создавать структурно сложные множества, например, множества
кортежей. В свою очередь на множестве кортежей, используя предикаты, определяются отношения, являющиеся основой реляционной модели данных (РМД).
В процессе решения задач, в основе которых лежит декартово
произведение, целесообразно выделять два этапа:
1. Создание или описание множеств, состоящих из элементов,
которые наделены определёнными свойствами.
2. Реализация предикатов.
Для решения задач в данной области как в учебной, так и в
научно-исследовательской деятельности, важен выбор инструментальных средств. Мы предлагаем в качестве инструментального
средства, поддерживающего как изучение, так и исследование вопросов теории множеств, использовать инструментарий СУБД, в
частности MS Access. Это обусловлено следующими соображениями.
1. MS Access реализует реляционную модель данных, а значит,
в определенной степени приемлем для решения теоретикомножественных задач, например, в процессе изучения теории множеств.
2. MS Access легок в освоении, обладает традиционным интерфейсом и стандартным набором команд.
3. Использование MS Access в изучении основ теории множеств обеспечивает в дальнейшем естественную преемственность
в других дисциплинах, таких как «Базы данных», поскольку в дисциплине «Базы данных» MS Access традиционно используется как
средство обучения.
4. Используя навыки, полученные при решении задач теории
множеств, учащиеся значительно эффективнее решают задачи,
традиционные в теории реляционной модели данных (РМД).
В предлагаемой статье освещаются следующие вопросы:
1. Рассмотрение возможностей инструментария MS Access как
средства реализации практических курсов на основе теории множеств;
2. Описание формальных правил-инструкций, позволяющих использовать MS Access в качестве инструментального средства при
решении теоретико-множественных задач.
351
При использовании MS Access для моделирования множеств
будем придерживаться следующего положения: так называемая основа множеств определяется посредством таблиц MS Access, а
собственно множества, подмножества и всё многообразие результатов манипуляций с множествами – посредством запросов
MS Access. При использовании таблиц MS Access необходимо руководствоваться использованием предельно минимального числа
свойств таблиц. В качестве языка запросов для моделирования
множеств будем использовать язык запросов QBE MS Access. Перечисленные требования позволяют упростить этап освоения
MS Access и сосредоточить усилия на решении теоретикомножественных задач. При этом предлагаются следующие формальные правила использования инструментария MS Access.
1.
Основа множеств определяется таблицей, имеющей
единственное поле-множество, содержащее исследуемые множества элементов. Кроме этого, в таблице имеются так называемые
служебные поля, используемые для хранения некоторых дополнительных свойств элементов исследуемого множества. Исключительно для удобства имена таблиц задаются в соответствии с
англоязычной лексикой и соответствуют типу решаемых задач,
например, задачи на множествах студентов – STUDENTS. Полемножество элементов также именуется на основе английской лексики и задаётся прописными символами, например NAME (множество
имён студентов). В MS Access у поля-множества свойство «Индексированное поле» должно иметь значение «Да (Совпадения не допускаются)». Данное значение свойства поля таблицы MS Access
обеспечивает реализацию свойства множеств – отсутствие повторяющихся или одинаковых элементов. Кроме этого, свойства поля
«Тип данных», «Размер поля», «Условие на значение» позволяют
реализовать дополнительные ограничения на значения элементов
множеств. Служебные поля именуется на основе английской лексики, и задаются строчными символами, например course (курс, на
котором обучается студент), sex (пол), city (местожительства), sport
(спортивная секция) и пр. Таблица заполняется набором данных, на
которых осуществляется исследование.
2.
Собственно множества, подмножества и результаты
манипуляций с множествами реализуются с помощью объектовзапросов QBE MS Access. Имена запросов-множеств будем задавать, используя русскоязычную лексику. Язык запросов QBE
MS Access относится к визуальным языковым средствам, имеет вид
специфической таблицы (при конструировании запроса), а также
вид таблицы при отображении результата (в нашем случае множеств или подмножеств элементов, множеств-результатов манипуляций множеств). Основа запроса – проекции полей таблицы (в
352
нашем случае единственного поля NAME), моделирующие основу
множеств. Всегда отображается единственное поле-множество,
например, поле NAME. Отображение служебных полей не обязательно, однако может быть востребованным для визуального контроля дополнительной (“служебной”) информации.
С точки зрения использования таблицы в качестве основы для
исследуемых множеств, мы определяем три уровня сложности в
использовании рассматриваемой технологии:
1. Данные для таблицы специальным образом подготовлены и
являются «закрытыми» для исследователя. Решая задачи формирования множеств, подмножеств и осуществляя теоретико–
множественные операции, можно выполнять соответствующие исследования.
2. Данные для таблицы подготавливаются исследователем.
3. Структура таблицы и данные основы множества задаются
исследователем.
Декартово произведение n множеств D=X1X2…XN в MS Access реализуется средствами языка QBE следующим образом:
1. В запрос включаются n таблиц (или других запросов), которые не связаны между собой.
2. Осуществляется проекция n полей, которые являются
полем-множеством.
Результатом моделирования декартова произведения в данном
случае будет множество всех возможных сочетаний значений исходных полей-множеств.
Например, пусть мы имеем два исходных поля-множества:
множество фамилий (содержит три значения – Глушко, Петров, Сидорова), множество имён (содержит три значения – Саша, Иван,
Ольга). Результатом моделирования операции декартова произведения будет множество, мощность которого равна произведению
мощностей исходных множеств. В нашем случае мощность множества, полученного в результате операции декартова произведения,
равна 9:
Глушко
Иван
Глушко
Ольга
Глушко
Саша
Петров
Иван
Петров
Ольга
Петров
Саша
Сидорова
Иван
Сидорова
Ольга
Сидорова
Саша
Полученные результаты содержат как допустимые сочетания
фамилий и имён (например, Петров Иван), так и недопустимые
353
(например, Петров Ольга). Для формирования отношения, основанного на предикате допустимых сочетаний фамилий и имён, предварительно сделаем некоторые замечания.
Во-первых, следует учесть, что некоторые фамилии и имена
могут относиться как к мужскому, так и к женскому роду (например,
фамилия «Глушко», имя «Саша»). В этом случае, допустимыми сочетаниями являются следующие:
Глушко
Иван
Глушко
Ольга
Глушко
Саша
Петров
Иван
Петров
Саша
Сидорова
Ольга
Сидорова
Саша
Пусть X1 — множество универсальных фамилий (соответствуют
как мужским, так и женским именам), X2 — множество мужских фамилий, X3 — множество женских фамилий. Тогда множество
X=X1X2X3 задаёт множество всех фамилий.
Аналогично, пусть Y1 — множество универсальных имён, Y2 —
множество мужских имён, Y3 — множество женских имён. Тогда
множество Y=Y1Y2Y3 задаёт множество всех имён.
Предикат Р(х; у) определен на множестве всевозможных сочетаний имён и фамилий Z=XY.
В этом случае множество M=X1YY1XX2Y2X3Y3 задаёт
множество всех допустимых сочетаний имён и фамилий. Тогда предикат, Р(х; у): (x; y)M, xX, yY, определенный на множестве
Z=XY, задаёт множество допустимых сочетаний фамилий и имён.
Для решения поставленной задачи в рамках предлагаемой технологии необходимо:
1. Создать таблицы — FNAME {FNAME; sex1}, NAME {NAME;
sex2},
где
FNAME и NAME – поля-множества, задающие соответственно фамилии и имена, sex1 и sex2 – служебные поля, регистрирующие
свойство принадлежности элемента множества к роду. Для регистрации свойства принадлежности элемента множества к роду, достаточно одного служебного поля таблицы, которое будет хранить
информацию, например, в виде «м» (мужской род), «ж» (женский
род), «мж» (как мужской, так и женский род).
2. Реализовать средствами языка QBE запрос, моделирующий
операцию декартова произведения множеств фамилий и имен. Данный запрос основан на проекции полей-множеств двух несвязанных
таблиц FNAME и NAME.
3. Модифицировать полученный запрос с целью моделирования предиката Р(х; у): (x; y)M, xX, yY, определенного на множестве Z=XY.
354
Download