Математическая логика и информатика
Информатика — находящаяся в становлении наука, изучающая законы и методы накопления, передачи и обработки информации с помощью ЭВМ (компьютера). В англоязычных странах эта наука получила название "computer science" ("вычислительная наука"). Понятие информатики охватывает области, связанные с разработкой, созданием, использованием и материально-техническим обслуживанием систем обработки информации, включая машины, оборудование, математическое обеспечение, организационные аспекты. Таким образом, информатику определяют три неразрывно связанные между собой части: алгоритмические, программные и технические средства.
Современная информатика уходит своими корнями в математику и кибернетику, электронику и системотехнику, логику и лингвистику. Основные научные направления информатики образуют следующие научные дисциплины: теоретические основы вычислительной техники, статистическая теория информации, теория вычислительного эксперимента, алгоритмизация, программирование, искусственный интеллект. Прикладная информатика обслуживает науку, технику, производство и другие виды человеческой деятельности путем создания и передачи в общество информационной технологии.
О логических аспектах некоторых из перечисленных дисциплин информатики мы уже говорили в предыдущих параграфах настоящей главы. В настоящем параграфе будет указано на логический аспект теории баз данных.
Общее понятие о базе данных
Обработка больших массивов информации — наиболее массовая область применения компьютеров. Одним из способов хранения и обработки информации являются так называемые базы данных. Под данными понимается информация, находящаяся в памяти компьютера или подготовленная для ввода в компьютер. База данных — это организованная совокупность (система) данных, предназначенная для длительного хранения (обычно во внешней памяти компьютера) и постоянного применения. База данных должна быть способна выдавать ответы на запросы. При этом можно запрашивать то, что непосредственно хранится в базе, но можно запрашивать и производную информацию, т.е. информацию, как-то выражаемую через базисную. База данных является не случайным собранием сведений, но является постоянной основой для некоторого вида конкретной деятельности человека — пользователя базы данных. Базы данных подразделяются на иерархические, сетевые, реляционные. В реляционных базах информация хранится в виде отношений между данными, а в сетевых и иерархических учитывается некоторая геометрия связей данных. База данных снабжается совокупностью языковых и профаммных средств, предназначенных для создания, обслуживания (ведения) и использования базы данных многими пользователями — так называемая система управления базами данных.
Понятие базы знаний представляет собой обобщение понятия базы данных. База знаний — организованная совокупность знаний, представленная в форме, допускающей автоматизированное использование этих знаний с помощью компьютера. При этом база знаний содержит не только конкретные факты из той или иной области, но и описание правил и общих закономерностей. Например, при решении задач из тригонометрии базой данных могут служить таблицы значений тригонометрических функций, а в базу знаний будут дополнительно включены различные тригонометрические тождества, выражающие свойства тригонометрических функций и взаимосвязи между ними.
С теорией и практикой баз данных и баз знаний связаны различные области математики — математическая логика, алгебра, геометрия.
В следующем пункте рассматривается пример реляционной базы данных, на котором поясняется применение математической логики для описания запросов в базах данных.
Реляционная база данных и логика запросов в ней
Реляционная база данных с математической точки зрения представляет собой конечный набор конечных отношений различной арности между заранее определенными множествами элементарных данных. Другими словами, реляционная база данных (точнее, каждое ее состояние) — это конечная модель в смысле математической логики. Над отношениями модели можно осуществлять различные алгебраические операции. Тем самым теория реляционных баз данных становится областью приложений математической логики и современной алгебры и опирается на точный математический формализм.
Пример 41.1. Рассмотрим простой пример реляционной базы данных, содержащей информацию о студенческой группе за один семестр. Будем исходить из трех множеств данных: — множество студентов в данной группе, — список изучаемых за семестр предметов, — спортивные секции, в которых занимаются студенты. Далее введем множество переменных ; при этом считаем, что . Таким образом, каждой переменной отвечает множество данных, которые эта переменная пробегает:
Наконец рассмотрим еще определенный список отношений между студентами и учебными предметами, между студентами и спортивными секциями, между студентами и студентами:
а) прежде всего в этот список включим отношения между множеством студентов и множеством учебных предметов. При этом, например, , если студент по предмету в данном семестре имеет "тройку". Аналогичен смысл остальных отношений. Каждое из этих отношений можно мыслить как двухместный предикат , заданный на множествах , a соответствующее бинарное отношение, являющееся подмножеством декартова произведения , будет множеством истинности этого предиката;
б) символом обозначим отношение (или предикат) между множеством студентов и множеством спортивных секций , означающее, что студент занимается в секции ;
в) введем еще три отношения, на этот раз на множестве всех студентов, связанных с "моральным климатом" в студенческой группе: означает, что студент относится к студенту доброжелательно; — безразличен к ; — относится к недоброжелательно. Соответствующие бинарные отношения являются подмножествами декартова произведения .
Указанный набор определяет базисную информацию — информацию о состоянии дел на каждый данный момент. Эта информация хранится в виде подмножеств соответствующих декартовых произведений. Например:
 {Иванов, Петров, Смирнов};  {алгебра, геометрия, математический анализ, английский язык};  {бокс, шахматы, туризм}.
Обработка информации, хранящейся в базе данных, предполагает определенные действия с базисными подмножествами. Для осуществления этих действий необходимо всю базисную информацию сделать однородной, т. е. "уравнять" в одном и том же большом декартовом произведении. Для этого рассмотрим множество . Проектирование этого множества на рассматривавшиеся ранее множества и позволяет рассматривать в качестве базисных отношений некоторые подмножества в . Например, если предикат имеет своим множеством истинности бинарное отношение , то это же отношение можно рассматривать одновременно как подмножество в по правилу: упорядоченная четверка из принадлежит , если . Теперь все исходные базисные бинарные отношения, заданные на разнообразных множествах, рассматриваются как четырехместные отношения, заданные на одних и тех же множествах , т.е. как подмножества одного и того же множества .
Перейдем теперь к запросам в нашей базе данных. Допустим, что нас интересует список студентов, которые отлично учатся по всем предметам, занимаются спортом, ко всем доброжелательны и не имеют врагов. Все эти качества могут быть описаны следующей формулой "идеального" студента:
Это есть формула логики предикатов, в которой предметные переменные, кроме одной переменной — , связаны. Таким образом, формула задает одноместный предикат, зависящий от переменной , пробегающей множество всех студентов данной группы. Множество истинности этого предиката есть подмножество множества и представляет собой множество "идеальных" студентов группы. В данном случае оно состоит из единственного студента Петрова.
Таким образом, формула логики предикатов определяет некоторый запрос в базе данных, ответ на который выдается в зависимости от состояния базы данных в данный момент времени.
Приведем другие примеры запросов. Формула
запрашивает список студентов, имеющих хотя бы две "двойки". Формула дает список студентов, не занимающихся спортом, а формула
дает список студентов, занимающихся по меньшей мере двумя видами спорта. Наконец формула дает список предметов, по которым нет неудовлетворительных оценок.
Обсудим более подробно понятие запроса в базе данных. Отметим, во-первых, что один и тот же запрос может быть представлен разными формулами. Например, в формуле "идеального" студента вместо можно писать , что равносильно . Ясно, что от формы записи запроса зависит скорость вычисления ответа, и поэтому далеко не безразлично, какую запись запроса выбрать.
Две формулы называют равносильными, если в любых состояниях и в любых системах данных этим формулам отвечает один и тот же результат вычислений (ответ). Другими словами, равносильные формулы — это формулы, имеющие одинаковое семантическое содержание. Тогда под запросом можно понимать не одну формулу, а весь класс равносильных ей формул. Правда, здесь возникают трудности, связанные с необходимостью уточнить понятие состояния и с необходимостью предвидеть все возможные состояния базы данных. Эти трудности преодолеваются с помощью математической логики. В математической логике имеется еще один (синтаксический) подход к определению той же равносильности формул, не требующий обращения к состояниям (к семантике). Он основан на подходящем формализованном исчислении. В каждом таком исчислении, как мы знаем, имеется понятие формулы, некоторые формулы объявляются аксиомами исчисления и указываются правила вывода. Две формулы и объявляются эквивалентными, если формула (или , или ) выводима из аксиом (т.е. является теоремой исчисления). Доказывается метатеорема адекватности исчисления: две формулы равносильны в семантическом смысле тогда и только тогда, когда они эквивалентны в указанном сейчас синтаксическом смысле.
Имеется и еще одно применение аксиоматического подхода в теории баз данных. В схему базы данных, как правило, включается определенный набор аксиом, которым должны удовлетворять состояния. В общем случае система аксиом базы данных — это некоторый набор формул в языке первой ступени, связанном с данной базой. Аксиомы выделяют определенный набор состояний и вносят определенное содержание в набор , в общем, бессодержательных символов отношений. В базах данных эти ограничения называют еще ограничениями целостности. В различных конкретных ситуациях они возникают естественным образом.
Например, в рассмотренном выше примере базы данных студенческой группы добавим еще один одноместный предикат , означающий, что студент х получает стипендию. Тогда можем ввести аксиому:
Эта аксиома означает, что во всех рассматриваемых состояниях наличие "двойки" или "тройки" хотя бы по одному предмету лишает студента права на стипендию.
Если заметили ошибку, опечатку или есть предложения, напишите в комментариях.
|