|
| ||||||||||||
| ||||||||||||
|
2008 г.
Ландшафт области управления данными: аналитический обзорС.Д. Кузнецов, М.Н. Гринев
Содержание
1. ВведениеПрограммные средства управления данными составляют важнейшую часть системного программного обеспечения. Сегодня, как и в прошлые годы, наиболее распространенной категорией средств управления данными являются системы управления базами данных (СУБД). Однако все чаще возникает потребность в программных средствах, характеристики которых существенно отличаются от характеристик традиционных СУБД, и которые применяются в приложениях, где универсальные SQL-ориентированные СУБД слишком тяжеловесны и/или недостаточно функциональны и эффективны. Кроме того, и в самих «традиционных» SQL-ориентированных СУБД появляется все больше совсем нетрадиционных возможностей, предназначенных для расширения их областей применения. Тем самым, область управления данными непрерывно расширяется, и в ней все труднее ориентироваться. Тем более трудно написать материал осмысленного объема, в котором анализировались бы все интересные черты современного состояния этой области. В этом обзоре мы ограничиваемся некоторой субъективной выборкой тем, относящихся к области управления данными, которые кажутся нам наиболее существенными и перспективными, оставляя вне рассмотрения ряд направлений, возможно, заслуживающих внимания. Во втором, самом объемном разделе обзора, обсуждаются наиболее интересные возможности, появившиеся в последних версиях семи SQL-ориентированных СУБД: трех ведущих коммерческих реляционных СУБД (Oracle, IBM DB2 и Microsoft SQL Server), единственной российской коммерческой СУБД Линтер компании Релэкс и трех наиболее развитых SQL-ориентированных СУБД с открытыми исходными текстами (MySQL, PostgreSQL и Firebird). Конечно, имеется ряд других SQL-ориентированных СУБД, которые, безусловно, заслуживают внимания, но в данном обзоре авторы приняли решение ограничиться этой выборкой. Третий раздел обзора посвящен объектно-ориентированным СУБД (ООСУБД), которые были очень популярны до конца 1990-х гг. В начале этого века интерес к ним упал ниже критической отметки, но в последние годы ООСУБД начинают заново набирать популярность. Описываются основные черты наиболее известных ООСУБД прошлых лет и рассматриваются текущие события, свидетельствующие о возрождении этого направления. В четвертом разделе обсуждается направление, целью которого является создание средств промежуточного программного обеспечения, поддерживающего так называемое объектно-реляционное отображение, т.е. возможность работы с реляционными данными через объектную модель, на основе которой строится приложение. Приводятся соображения авторов по поводу причин неудовлетворенности объектно-ориентированных программистов базовыми средствами SQL-ориентированных и объектно-ориентированных СУБД, описываются категории средств объектно-реляционного отображения и присущие им проблемы. В пятом разделе рассматривается состояние дел в направлении систем управления сенсорными и потоковыми данными. Обсуждаются причины, по которым в соответствующих прикладных областях непригодны универсальные СУБД. Описываются некоторые исследовательские и коммерческие системы. Шестой раздел посвящается системам управления неструктурированными и полуструктурированными данными. В частности, обсуждается состояние дел в направлении систем управления XML-данными. Наконец, в седьмом разделе рассматривается несколько фундаментальных проблем области управления данными. Некоторые из этих проблем частично решаются в системах, рассматриваемых в предыдущих разделах, но в целом для их решения необходимо проведение масштабных исследований и разработок. 2. Реляционные производственные системыОсновным видом систем управления данными, с которыми работают приложения, являются «реляционные», а точнее SQL-ориентированные СУБД. В этом разделе описываются текущее состояние и проблемы этой области. 2.1. SQL как практическая замена реляционной модели данныхСегодня для большинства людей, не являющихся профессионалами в области баз данных, язык SQL является практическим воплощением реляционной модели данных. В действительности, в стандартах языка SQL определяется некоторая собственная модель данных, в чем-то похожая на реляционную модель, но значительно от нее отличающаяся [1]. SQL-ориентированная база данных представляет собой набор таблиц, каждая из которых в любой момент времени содержит некоторое мультимножество строк, соответствующих заголовку таблицы. В этом состоит первое и наиболее важное отличие модели данных SQL от реляционной модели данных, в которой фундаментальная абстрактная «родовая» структура данных отношение, представляет собой множество кортежей. Вторым существенным отличием является того, что для таблицы поддерживается порядок столбцов, соответствующий порядку их определения. В реляционной модели данных атрибуты отношения не упорядочены. Другими словами, таблица – это вовсе не отношение, хотя во многом они похожи. Из этого, в частности, следует, что в модели данных SQL отсутствует обязательное предписание об ограничении целостности сущности. В базе данных могут существовать таблицы, для которых не определен первичный ключ. С другой стороны, если для таблицы определен первичный ключ, то для нее ограничение целостности сущности поддерживается точно так же, как это требуется в реляционной модели данных. Ссылочная целостность в модели данных SQL поддерживается в обязательном порядке, но в трех разных вариантах, лишь один из которых полностью соответствует реляционной модели. Это связано с интенсивным использованием в SQL неопределенных значений. Наличие модели данных SQL, похожей на реляционную модель данных, но принципиально от нее отличающейся, затрудняет использование SQL-ориентированных СУБД. Часто проектировщики баз данных не учитывают эти различия и производят схемы SQL-ориентированных баз данных с иногда неожиданным поведением. После появления стандартов SQL:1999 и SQL:2003 [1], в которых определены возможности определения произвольно сложных «пользовательских» типов данных и «типизированных» таблиц, ситуация с проектированием SQL-ориентированных баз данных еще больше усложнилась. Требуется проведение исследовательских работ с целью выработки методологии использования всех возможностей SQL, понятной разработчикам приложений баз данных. |
|
CITForum © 1997–2025