Научная статья на тему 'Формальная верификация ограничений целостности и триггеров реляционных баз данных при наличии избыточных требований целостности'

Формальная верификация ограничений целостности и триггеров реляционных баз данных при наличии избыточных требований целостности Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
147
53
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ФУНКЦИОНАЛЬНАЯ КОРРЕКТНОСТЬ / ФОРМАЛЬНАЯ ВЕРИФИКАЦИЯ / СРАВНЕНИЕ ОПИСАТЕЛЕЙ / ИЗБЫТОЧНОСТЬ ТРЕБОВАНИЯ ЦЕЛОСТНОСТИ / КРИТИЧНАЯ ОПЕРАЦИЯ / ЭКВИВАЛЕНТНОСТЬ ОПИСАТЕЛЕЙ / ПОЛНАЯ НЕЭКВИВАЛЕНТНОСТЬ ОПИСАТЕЛЕЙ / ЧАСТИЧНОЕ СХОДСТВО ОПИСАТЕЛЕЙ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Корниенко А. А., Глухарёв М. Л.

Верификация, анализ и оценка защищенности реляционных баз данных – актуальное направление научных исследований и практических разработок. Рассматривается процедура сравнения описателей требований и функций целостности. Данная процедура входит в состав метода формальной верификации ограничений целостности и триггеров.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Formal Verifi cation of Relational Databases Integrity Constraints and Triggers in the Presence of Re dundant Integrity Demands

Verifi cation, analysis and assessment of relational database protection is an urgent area of scientifi c research and practical development. This article deals with the procedure of demands specifi cators and functions integrity comparison. The procedure is included in the method of formal verifi cation of relational database constraints and triggers considered in one of the previous publications.

Текст научной работы на тему «Формальная верификация ограничений целостности и триггеров реляционных баз данных при наличии избыточных требований целостности»

112

Информатика и технологии информатики

УДК 004.65: 004.052.42

А. А. Корниенко, М. Л. Глухарёв

Петербургский государственный университет путей сообщения

ФОРМАЛЬНАЯ ВЕРИФИКАЦИЯ ОГРАНИЧЕНИЙ ЦЕЛОСТНОСТИ И ТРИГГЕРОВ РЕЛЯЦИОННЫХ БАЗ ДАННЫХ ПРИ НАЛИЧИИ ИЗБЫТОЧНЫХ ТРЕБОВАНИЙ ЦЕЛОСТНОСТИ *

Верификация, анализ и оценка защищенности реляционных баз данных - актуальное направление научных исследований и практических разработок. Рассматривается процедура сравнения описателей требований и функций целостности. Данная процедура входит в состав метода формальной верификации ограничений целостности и триггеров.

функциональная корректность, формальная верификация, сравнение описателей, избыточность требования целостности, критичная операция, эквивалентность описателей, полная неэквивалентность описателей, частичное сходство описателей.

Введение

Анализ и оценка защищенности реляционных баз данных (БД) включают выявление уязвимостей, к которым, в частности, относятся недекларированные возможности (НДВ) программных объектов БД. Цели анализа защищенности пересекаются с целями верификации, в ходе которой проверяется соответствие различных компонентов информационной системы заданным требованиям, в том числе требованиям безопасности, пригодности и корректности. В ходе верификации могут быть выявлены НДВ, имеющиеся в программных объектах [1,

2]. В работах [3, 4] был рассмотрен метод формальной верификации ограничений целостности (ОЦ) и триггеров реляционных БД. Метод позволяет проверять полноту реализации требований целостности, выявлять ненужные ОЦ и триггеры и получать

формальные модели НДВ при условии, что НДВ оказывают непосредственное влияние на содержимое БД.

При формальной верификации ОЦ и триггеров требуется учитывать, что некоторые требования целостности могут оказаться избыточными. В такой ситуации программная система проведения формальной верификации не должна выдавать ложных сообщений о неполноте реализации избыточного требования целостности. В случаях, когда неполнота действительно имеет место, она должна выявляться в процессе верификации.

В настоящей статье раскрывается понятие избыточности и безызбыточности требований целостности и рассматриваются некоторые особенности формальной верификации ОЦ и триггеров реляционных БД относительно избыточных и безызбыточ-ных требований целостности.

* Работа выполнена при финансовой поддержке РФФИ (проект № 110713150-офи-м-2011-РЖД).

2012/2

Proceedings of Petersburg Transport University

Информатика и технологии информатики

113

1 Избыточность и безызбыточность

требований целостности

Формальная модель требования или реальной функции целостности представляет собой описатель - выражение, имеющее следующий вид [3]:

б I A,

где Q - условие, формулируемое относительно таблиц и конкретных столбцов, связанных данным требованием; A - множество DML-операций.

Это выражение имеет следующий смысл: условие Q должно быть истинно после выполнения любой операции из множества A.

Само наличие множества A в описателе свидетельствует о том, что выполнение той или иной DML-операции может изменить состояние таблиц таким образом, что условие Q становится ложным. Однако нет достаточных оснований утверждать, что для любого требования все операции из множества A равным образом влияют на истинность условия

Q. Сказанное можно пояснить на примере требования определенности значений в столбце х таблицы t. Описатель этого требования имеет вид охis (t) = 0 | {ins(t), upd(t), del(t)}. Условие охisnull(t) = 0 должно быть истинно после выполнения любой из трех возможных операций с таблицей t. Но нарушить его истинность, т. е. привести к появлению неопределенных значений в столбце х, могут только две операции: ins(t) и upd(t). При выполнении операции del(t), если условие °хs nuii(t) = 0 априори истинно, оно остается истинным и после удаления строк. Значит, операция del(t) не влияет на истинность условия охjs (t) = 0 и программная реализация такого требования может быть построена таким образом, чтобы контролировались только операции ins(t) и upd(t). В этой связи имеет смысл говорить о критичности активизирующих операций по отношению к требованию, а также избыточности и безызбыточности требования и приведении требования к безыз-быточному виду.

Критичной для требования операцией (или просто критичной операцией) описа-

теля назовем такую операцию из множества A, по выполнении которой условие Q может оказаться ложным при отсутствии в БД контролирующего ОЦ или триггера. Операцию, не являющуюся критичной, назовем некритичной операцией.

Обозначим множество критичных операций требования A'; A' ^ A. Введем также множество T' - множество таблиц, обрабатываемых критичными операциями; T' ^ T, где T - исходное множество таблиц, связанных требованием целостности.

Требование целостности является избыточным, если множество A в его описателе содержит хотя бы одну некритичную операцию.

Требование целостности является безыз-быточным, если все операции, входящие в множество A его описателя, являются критичными.

Если требование с описателем Q | A избыточно и известно множество критичных операций A' ^ A, то Q | A' является описателем безызбыточного требования. Поскольку A' полностью входит в A, описатель безызбыточного требования является частью описателя избыточного требования.

2 Избыточность требований

целостности и частичное

сходство описателей

При использовании метода формальной верификации ОЦ и триггеров реляционных БД [4] в качестве исходных данных берется следующая информация:

- формальные описатели требований целостности;

- SQL-коды ОЦ и триггеров проверяемой

БД.

Верификация проводится в два этапа.

Первый этап - восстановление описателей - представляет собой построение модели реализации ОЦ и триггеров. На этом этапе эксперт (инженер по тестированию) с помощью специализированного программного обеспечения проводит семантический анализ SQL-кодов ОЦ и триггеров, стремясь

ISSN 1815-588Х. Известия ПГУПС

2012/2

114

Информатика и технологии информатики

понять, какие именно функции целостности они реализуют. Результатом этих действий является набор описателей реализованных функций целостности - восстановленных описателей. Процедуры семантического анализа ОЦ и триггеров, используемые на этапе восстановления описателей, достаточно подробно рассмотрены в работе [4].

Второй этап верификации - сравнение описателей - определяет формальное соответствие между восстановленными описателями реальных функций целостности и исходными описателями требований целостности. БД можно считать корректно реализованной в части ОЦ и триггеров, если каждому восстановленному описателю соответствует исходный описатель заранее декларированного требования целостности и наоборот.

Сравнение описателей основано на доказательстве эквивалентности двух описателей; в целом, на этапе сравнения описателей требуется доказать эквивалентность множества пар описателей. Описатели называются эквивалентными, если эквивалентны их условия Q и равны их множества A.

Проверка полноты функций целостности заключается в том, что для каждого исходного описателя отыскивается один и только один эквивалентный ему восстановленный описатель.

Выявление НДВ в ОЦ и триггерах (в том числе лишних ОЦ и триггеров) заключается в том, что для каждого восстановленного описателя отыскивается один и только один эквивалентный ему исходный описатель.

Помимо отношения полной эквивалентности, целесообразно определить отношения полной неэквивалентности и частичного сходства описателей.

Описатели Q1|A1 и Q2|A2 не эквивалентны друг другу, если Q1 не эквивалентно Q2

и Ai * A2.

Частично схожими назовем описатели Q | A1 и Q |A2 - при условии, что A1 П A2 * * 0. Частными случаями частичного сходства являются случаи, когда A1 е A2 или

A2 ^ A1.

Наличие пары частично схожих описателей Desc1 = Q |A1 и Desc2 = Q |A2, где Desc1 - описатель требования целостности, а Desc2 - восстановленный описатель функции целостности, может быть обусловлено следующими причинами.

1. Если Desc1 - описатель безызбыточно-го требования:

а) A1\ A2 * 0 - объекты-ограничения не обрабатывают одну или более специфицированных активизирующих операций, т. е. имеет место неполнота реализации требования целостности Desc1;

б) A2\A1 * 0 - объекты-ограничения реагируют на одну или более DML-операций, не указанных в Desc что является частным случаем НДВ.

2. Если Desc1 - описатель избыточного требования и в результате приведения к безызбыточному виду получается описатель

Desc\ = Q |A/:

а) A1\A2 * 0, но Desc[ = Desc2 фактически означает, что объекты-ограничения, по которым восстановлен описатель Desc2, корректны относительно Desc1; при этом A2 е е A1, так как A' = A2 и A' е A1, т. е. A1\A2 -множество некритичных по отношению к требованию Desc1 операций;

б) A1\A2 * 0 и A/ \A2 * 0 означают ситуацию, аналогичную описанной в п. 1, а;

в) A2\ A1 * 0 (при этом также истинно условие A2\A1' * 0, так как A’ е A1) означает наличие НДВ за счет срабатывания объектов-ограничений в ответ на DML-операции, не включенные в исходный описатель Desc

Таким образом, подтверждение корректности ОЦ и триггеров путем сравнения описателей может быть полным только в том случае, если выявлены критичные и некритичные операции в описателях требований целостности.

3 Приведение описателей требований целостности к безызбыточному виду

Выявление критичных и некритичных операций является допустимым непосред-

2012/2

Proceedings of Petersburg Transport University

Информатика и технологии информатики

115

ственно при верификации объектов-ограничений, на этапе сравнения описателей. Однако более удобным является приведение требований к безызбыточному виду на стадии их формулирования. С точки зрения разработчика БД, удобство заключается в том, что безызбыточность требований позволяет избежать разработки ненужных ОЦ и триггеров: изначально ясно, какие операции являются критичными, т. е. требуют контроля со стороны ОЦ и триггеров. С точки зрения эксперта, проводящего верификацию, заблаговременное устранение избыточности требований предпочтительно, так как позволяет принять единственный критерий корректности ОЦ и триггеров: полную эквивалентность исходных и восстановленных описателей.

Процедура приведения избыточного требования к безызбыточному виду, очевидно, должна выполняться следующим образом:

- избыточное требование представляется в виде описателя вида Q | A;

- определяется подмножество критичных операций A';

- описатель безызбыточного требования записывается в виде Q | A'.

При приведении требования к безызбы-точному виду условие Q не меняется. Множество T таблиц, обрабатываемых критичными операциями, может рассматриваться как дополнительная характеристика безыз-быточного требования.

Заключение

Учет избыточности требований целостности при проведении формальной верификации ОЦ и триггеров реляционных БД способствует получению более достоверной информации о пригодности и корректности реляционных БД относительно требований

целостности, предъявленных заказчиком. Данная информация, в свою очередь, может быть использована для принятия решения о подтверждении соответствия с последующим допуском БД к эксплуатации или доработкой требований целостности и БД.

Библиографический список

1. Анализ методов проверки корректности программ / М. А. Еремеев, М. Л. Глухарев, А. А. Корниенко // Информационные технологии на железнодорожном транспорте : сб. докладов Десятой Международной научно-практической конференции «Инфотранс-2005». - СПб. : Петербургский гос. ун-т путей сообщения, 2005. -

С. 276-280.

2. Верификация защищенных информаци-онно-управляющих систем железнодорожного транспорта на наличие недекларированных возможностей / А. А. Корниенко, М. А. Еремеев, А. Г. Котенко // Информационные технологии на железнодорожном транспорте : сб. докладов Международной научно-практической конференции «Инфотранс-2006» (СПб.; 4-7 окт. 2006 г.). - СПб. : Санкт-Петербургский гос. политехнический университет, 2006. - С. 299303.

3. Применение формальных описателей для логико-алгебраического моделирования требований целостности информации в реляционных базах данных / М. Л. Глухарев // Известия Петербургского университета путей сообщения. -СПб. : Петербургский гос. ун-т путей сообщения, 2010. - Вып. 4 (25). - С. 78-88.

4. Метод формальной верификации ограничений целостности и триггеров реляционных баз данных / М. Л. Глухарёв // Известия Петербургского университета путей сообщения. - СПб. : Петербургский гос. ун-т путей сообщения, 2011. -Вып. 2 (27). - С. 79-87.

ISSN 1815-588Х. Известия ПГУПС

2012/2

i Надоели баннеры? Вы всегда можете отключить рекламу.