среда, 25 августа 2010 г.

Часть 2: Реализация механизмов поддержки и порождения ссылок уровня хранения на базе системы хранения XML данных XSS

1. Сетевая модель данных

Сетевая модель данных — логическая модель данных, описывающая структурный аспект, аспект целостности и аспект обработки данных в сетевых базах данных.
Аспект структуры
Как и иерархическая, сетевая модель данных базируется на графовой форме построения данных, и на концептуальном уровне она является наследником иерархической модели данных. Разница между иерархической моделью данных и сетевой состоит в том, что в иерархических структурах запись-потомок должна иметь в точности одного предка, а в сетевой структуре данных у потомка может иметься любое число предков.
К основным понятиям сетевой модели базы данных относятся: уровень, элемент (узел), связь. Узел – это совокупность атрибутов данных, описывающих некоторый объект. На схеме иерархического дерева узлы представляются вершинами графа. В сетевой структуре каждый элемент может быть связан с любым другим элементом.
Сетевая БД состоит из набора экземпляров определенного типа записи и набора экземпляров определенного типа связей между этими записями. Тип связи определяется для двух типов записи: предка и потомка. Экземпляр типа связи состоит из одного экземпляра типа записи предка и упорядоченного набора экземпляров типа записи потомка.
Аспект манипуляции
Операции над данными:
· ДОБАВИТЬ - внести запись в БД и, в зависимости от режима включения, либо включить ее в групповое отношение, где она объявлена подчиненной, либо не включать ни в какое групповое отношение.
· ВКЛЮЧИТЬ В ГРУППОВОЕ ОТНОШЕНИЕ - связать существующую подчиненную запись с записью-владельцем.
· ПЕРЕКЛЮЧИТЬ - связать существующую подчиненную запись с другой записью-владельцем в том же групповом отношении.
· ОБНОВИТЬ - изменить значение элементов предварительно извлеченной записи.
· ИЗВЛЕЧЬ - извлечь записи последовательно по значению ключа, а также используя групповые отношения - от владельца можно перейти к записям - членам, а от подчиненной записи к владельцу набора.
· УДАЛИТЬ - убрать из БД запись. Если эта запись является владельцем группового отношения, то анализируется класс членства подчиненных записей. Обязательные члены должны быть предварительно исключены из группового отношения, фиксированные удалены вместе с владельцем, необязательные останутся в БД.
· ИСКЛЮЧИТЬ ИЗ ГРУППОВОГО ОТНОШЕНИЯ - разорвать связь между записью-владельцем и записью-членом.
Примерный набор операций манипулирования данными:
· найти конкретную запись в наборе однотипных записей;
· перейти от предка к первому потомку по некоторой связи;
· перейти к следующему потомку в некоторой связи;
· перейти от потомка к предку по некоторой связи;
· создать новую запись;
· уничтожить запись;
· модифицировать запись;
· включить в связь;
· исключить из связи;
· переставить в другую связь и так далее.
Аспект целостности
В сетевой модели данных имеется необязательная возможность потребовать для конкретного типа связи отсутствие потомков, не участвующих ни в одном экземпляре этого типа связи (как в иерархической модели). Таким образом, при удалении записи-родителя все дочерние записи либо будут удалены, либо должны быть присоединены к другому родителю, либо могут остаться в базе без указания родителя.
Достоинства сетевой модели данных:
  • достоинством сетевой модели данных является возможность эффективной реализации по показателям затрат памяти и оперативности (например, задача коммивояжера), а также возможность переиспользования данных.
Недостатки сетевой модели данных:
  • недостатком сетевой модели данных являются высокая сложность и жесткость схемы БД, построенной на ее основе. Поскольку логика процедуры выборки данных зависит от физической организации этих данных, то эта модель не является полностью независимой от приложения. Другими словами, если необходимо изменить структуру данных, то нужно изменить и приложение;
  • также, несмотря на то, что эта модель решает некоторые проблемы, присущие иерархической модели, выполнение простых запросов остается достаточно сложным процессом.

2. Объектно-ориентированная модель данных

Строго говоря, общепринятого определения "объектно-ориентированной модели данных" не существует. Можно говорить лишь о неком "объектном" подходе к логическому представлению данных и о различных объектно-ориентированных способах его реализации.
Любая модель данных должна включать три аспекта: структурный, манипуляционный и целостный. Посмотрим, как они реализуются на основе объектно-ориентированной парадигмы программирования.
Структура объектной модели описываются с помощью трех ключевых понятий:
· инкапсуляция - каждый объект обладает некоторым внутренним состоянием (хранит внутри себя запись данных), а также набором методов – процедур, с помощью которых (и только таким образом) можно получить доступ к данным, определяющим внутреннее состояние объекта, или изменить их. Таким образом, объекты можно рассматривать как самостоятельные сущности, отделенные от внешнего мира.
· наследование – подразумевает возможность создавать из классов объектов новые классы объекты, которые наследуют структуру и методы своих предков, добавляя к ним черты, отражающие их собственную индивидуальность. Наследование может быть простым (один предок) и множественным (несколько предков).
· полиморфизм – различные объекты могут по-разному реагировать на одинаковые внешние события в зависимости от того, как реализованы их методы.
Аспект манипуляции
К сожалению, в объектно-ориентированном программировании отсутствуют общие средства манипулирования данными, такие как реляционная алгебра или реляционное исчисление. Работа с данными ведется с помощью одного из объектно-ориентированных языков программирования общего назначения, например, C++, Java или C#, с помощью которых можно реализовать четверку операций создания, чтения, обновления и удаления.
Аспект целостности
Для поддержания целостности объектно-ориентированный подход предлагает использовать следующие средства:
· автоматическое поддержание отношений наследования;
· возможность объявить некоторые поля данных и методы объекта как "скрытые", не видимые для других объектов; такие поля и методы используются только методами самого объекта;
· создание процедур контроля целостности внутри объекта.
В объектно-ориентированных базах данных, в отличие от реляционных, хранятся не записи, а объекты. Объектно-ориентированный подход представляет более совершенные средства для отображения реального мира, чем реляционная модель:
· естественное представление данных. В реляционной модели все отношения принадлежат одному уровню, именно это осложняет преобразование иерархических связей модели "сущность-связь" в реляционную модель. Объектно-ориентированную модель можно рассматривать послойно, на разных уровнях абстракции.
· имеется возможность определения новых типов данных и операций с ними.
Характеристики:
· поддержка сложных объектов. В системе должна быть предусмотрена возможность создания составных объектов за счет применения конструкторов составных объектов;
· поддержка индивидуальности объектов. Все объекты должны иметь уникальный идентификатор, который не зависит от значений их атрибутов;
· поддержка инкапсуляции. Корректная инкапсуляция достигается за счет того, что программисты обладают правом доступа только к спецификации интерфейса методов, а данные и реализация методов скрыты внутри объектов;
· поддержка наследования типов. Подтип должен наследовать атрибуты и методы от его супертипа;
· вычислительная полнота. Язык манипулирования данными должен быть языком программирования общего назначения;
· набор типов данных должен быть расширяемым. Пользователь должен иметь средства создания новых типов данных на основе набора предопределенных системных типов. Более того, между способами использования системных и пользовательских типов данных не должно быть никаких различий.
К достоинствам объектно-ориентированной модели обычно относят:
· возможность для пользователя системы определять свои сколь угодно сложные типы данных (используя имеющийся синтаксис и свойства наследуемости и инкапсуляции);
· наличие наследуемости свойств объектов;
· повторное использование программного описания типов объектов при обращении к другим типам, на них ссылающимся.
К недостаткам объектно-ориентированной модели можно отнести:
· отсутствие строгих определений; разное понимание терминов и различия в терминологии;
· как следствие – эта модель не исследована столь тщательно математически, как реляционная, иерархическая и сетевая;
· отсутствие общеупотребительных стандартов, позволяющих связывать конкретные объектно-ориентированные системы с другими системами работы с данными.

3. Выбор модели данных

Выше были рассмотрены различные модели данных применительно к задаче хранения слабоструктурированных данных и представлены оценки эффективности их использования. Кроме статических особенностей слабоструктурированных данных необходимо также учитывать динамическую составляющую изменения самих структур данных во времени, определенную в п. 1.1. В этой точки зрения важна легкость изменения структуры в хранилище данных. Поддержка этой функциональности в хранилище является большим плюсом, расширяя области применимости аппарата в целом.
· Реляционная модель данных
Чтобы разложить в реляционной модели ссылочные данные, потребуются усилия для создания многих таблиц и связей между ними. А для получения данных из этих таблиц потребуется написание сложных запросов с объединением таблиц (JOIN), что может сильно сказываться на быстродействии. Также при изменении структуры объектов требуется изменение структуры базы данных, что является сложной задачей ввиду отсутствия удобных средств определения структур и перестроения данных в случае их изменения.
· Иерархическая модель данных
Оптимальна для естественного отображения сложных иерархических данных. Есть возможность рассматривать записи «послойно», с учетом абстракции.
· Сетевая модель данных
По сравнению с иерархической моделью обладает расширенными возможностями за счет введения дополнительных связей между записями, в том числе у узла появляется возможность иметь нескольких родителей.
· Объектная модель данных
Является «абстракцией» одной из вышеуказанных моделей, но для работы предоставляет сразу объекты.
Реляционная модель имеет существенные ограничения по отображению данных из объектов. Иерархическая модель органично подходит для отображения объектных данных. Хранилище, построенное на основе сетевой модели, обладает сложной и жесткой структурой, плюс функциональность сетевой модели является избыточной для данной задачи. Таким образом, останавливаемся на выборе иерархической модели данных. Как будет показано дальше, фактически будет использоваться модифицированная иерархическая модель с возможностями сетевой модели данных. Для хранения слабоструктурированных данных оптимальным является применение иерархической модели, расширенной механизмом ссылок – элементом сетевой модели (см. п. 1.3). Поддержка изменяемости структур во времени на уровне хранения также является большим плюсом.

Комментариев нет:

Отправить комментарий