Классика баз данных - статьи

       

В случае модели данных ODMG


В случае модели данных ODMG 3.0 структуры хранимых данных задаются средствами определения атомарных объектных типов и объектных типов коллекций, а для доступа к данным определяется язык OQL. В языковых средствах некоторых моделей данных присутствуют явные операции обновления данных (например, в модели SQL), в некоторых моделях они полностью отсутствуют (т.е. отдаются на откуп реализациям; например, в модели ODMG), в третьих моделях в качестве единственной операции обновления базы данных вводится операция присваивания).

Для реляционной модели данных (и "истинно" реляционной модели), а также для модели данных SQL некорректно говорить об "эффективности" выполнения операций выборки и обновления данных, поскольку это полностью зависит от реализации. Можно (хотя и очень сложно) говорить об эффективности представления данных на уровне модели и о возможности выполнения над этими данными операций, требуемых конкретным приложениям, путем использования языка баз данных, определенного в модели.

Отмеченная сложность проистекает из того, что во всех современных моделях данных (в "истинно" реляционной модели, модели данных SQL и объектно-ориентированной модели) предусматриваются возможности определения произвольно сложных типов данных, позволяющих, например, определять вложенные иерархические структуры данных в реляционной модели и модели данных SQL и хранимые мультимножества строк в объектно-ориентированной модели. Так что очень трудно сказать, какую из моделей стоило бы выбрать, если вообще на касаться вопросов их реализации.

Наконец, необходимо заметить, что, несмотря на наличие большого числа реализаций СУБД, создатели которых утверждают о поддержке многомерной модели данных (например, многомерная аналитическая СУБД Essbase, "послепиковские" СУБД Universe и Unidata, основанная на M-технологии СУБД Cache, основанная на "многомерных массивах" SciDB и т.д.), мне никогда не встречалось ни одной попытки общего определения многомерной модели данных.

Поэтому, чтобы иметь возможность сравнивать многомерную модель данных с какой-либо другой моделью, неоходимо ее сначала определить, хотя бы на таком не слишком строгом уровне, как это сделал Эдгар Кодд в своей первой статье о реляционной модели данных (вернее, во второй статье, первой была [7]). Наверное, сообществу "многомерных СУБД" следовало бы поискать в своих рядах нового "Кодда", который решился бы на эту (скорее всего, неблагодарную) работу. По крайней мере, в ее результате можно было бы понять, насколько правомерно использование одного и того же термина multidimensional применительно к настолько разным системам. А пока такой модели нет, можно позволить себе только сравнивать "многомерные" реализации с другими "многомерными" или "немногомерными" реализациями.


Содержание  Назад  Вперед