Даже будучи мощным языком обработки запросов, SQL имеет свои недостатки. Основным из них является то, что эти язык традиционно обеспечивал поддержку лишь простых типов данных, например целых чисел, дат и строк. Приложения пространственных БД должны работать со сложными типами, такими, как точки, линии и многоугольники. Производители баз данных ответили на это двояко: либо для хранения пространственной информации они стали использовать большие двоичные объекты(blobs, binary large objects), либо создали гибридные системы, в которых пространственные атрибуты сохраняются в файлах операционной системы средствами ГИС. SQL не может обрабатывать данные, хранимые как blob-атрибуты, и ответственность за обработку данных в форме больших двоичных объектов ложится на приложение Stonebraker and Moore, 1997. Это решение не является ни эффективным, ни эстетичным, поскольку данные зависят от кода приложения на некотором языке программирования. В гибридных системах пространственные атрибуты хранятся в виде отдельных файлов операционной системы и потому не могут пользоваться преимуществами традиционных служб базы данных, таких, как язык запросов, управление параллелизмом и поддержка индексирования.
Основное влияние на расширение возможностей СУБД в части поддержки пространственных (сложных) объектов оказали объектно-ориентированные системы. Программа, призванная обогатить реляционную базу данных объектно-ориентированными функциями, укладывается в общие рамки концепции ОР-СУБД. Главное требование к пространственному языку SQL лежит в плоскости обеспечения более высокого уровня абстракции в представлении пространственных данных путем введения понятий, более близких к пониманию пространства.
Консорциум OGIS был создан ведущими производителями программного обеспечения с целью выработки промышленного стандарта, регламентирующего взаимодействие ГИС. Модель пространственных данных OGIS может быть встроена в большое количество различных языков программирования, например C, Java, SQL и т. д.
Стандарт OGIS основан на модели геометрических данных. Данная модель данных состоит из базового класса GEOMETRY, который является абстрактным, – иначе говоря, не возможно описать объекты как экземпляры этого класса, – однако задает пространственную систему координат, применимую ко всем производным от него классам. Четыре основных класса, порожденных от предка GEOMETRY, – это Point, Curve, Surface и GeometryCollection. С каждым из этих классов связан набор операций, выполняемых над экземплярами классов. Некоторые важные операции, а также их назначение приведены в таблице 1.
Операции, определенные в стандарте OGIS, делятся на три категории.
Таблица 1
Примеры операций, входящих в стандарт OGIS
Базовые функции | SpatialReference() | Возвращает базовую систему координат геометрии |
Envelope() | Возвращает минимальный ортогональный ограничивающий прямоугольник геометрии | |
Export() | Возвращает альтернативное представление геометрии | |
IsEmpty() | Возвращает истинное значение, если геометрия является пустым множеством | |
IsSimple() | Возвращает истинное значение, если геометрия является простой (без самопересечений) | |
Boundary() | Возвращает границы геометрии | |
Топологические операции и операции над множествами | Equal | Возвращает истинное значение, если внутренние области и границы обеих геометрий пространственно равны |
Disjoint | Возвращает истинное значение, если границы и внутренняя область не пересекаются | |
Intersect | Возвращает истинное значение, если геометрии имеют общие элементы | |
Touch | Возвращает истинное значение, если границы двух поверхностей пересекаются, а внутренние области – нет | |
Cross | Возвращает истинное значение, если внутренняя область поверхности пересекается кривой | |
Within | Возвращает истинное значение, если внутренняя область одной геометрии не пересекается с внешней областью другой геометрии | |
Contains | Проверяет, содержит ли одна геометрия другую | |
Overlap | Возвращает истину, если внутренние области двух геометрий имеют непустое пересечение | |
Пространственный анализ | Distance | Возвращает кратчайшее расстояние между двумя геометриями |
Buffer | Возвращает геометрию, содержащую все точки, лежащие на указанном или меньшем расстоянии от данной геометрии | |
ConvexHull | Возвращает наименьшее выпуклое геометрическое множество, заключающее в себе данную геометрию | |
Intersection | Возвращает геометрическое пересечение двух геометрий | |
Union | Возвращает геометрическое объединение двух геометрий | |
Difference | Возвращает фрагмент геометрии, который не пересекается с другой геометрией | |
SymmDiff | Возвращает фрагменты двух геометрий, которые не пересекаются друг с другом |
1. Базовые операции, применимые ко всем геометрическим типам данных. Например, SpatialReferenceвозвращает базовую систему координат, в которой описана геометрия объекта. К числу распространенных систем координат относятся широко известная система широт и долгот, а также часто используемая система Universal Traversal Mercator (UTM).
2. Операции, выявляющие топологические отношения между пространственными объектами. Например, операция overlap проверяет, имеют ли внутренние области двух объектов непустое множество пересечений.
3. Общие операции пространственного анализа. Например, операция distance возвращает кратчайшее расстояние между двумя пространственными объектами.
Вывод
Объектно-ориентированные модели используются для преодоления ограниченных возможностей реляционной модели по хранению и обработке сложных объектов, как документ, звук, видео, графическое изображение и др. В объектно-ориентированных базах данных, в отличие от реляционных, хранятся не записи, а объекты. ОО-подход представляет более совершенные средства для отображения реального мира, чем реляционная модель.
К числу основных достоинств ОО моделей данных можно отнести:
· близость ОО концепции к восприятию мира, свойственному человеку (как следствие – более естественные процессы анализа и проектирования);
· потенциально большее быстродействие (за счет использования ассоциативных связей);
· отсутствие необходимости несколько искусственного деления системы на базу данных и программное обеспечение;
· упрощение описания (предметной области, системы) за счет использования базовых механизмов ОО подхода.
Среди основных недостатков ОО моделей данных можно выделить:
· громоздкость описания ОО модели существующими языками (например, UML);
· сложность перехода (смены парадигмы) к ОО моделей от простой и распространенной реляционной модели данных;
· ряд специфических проблем (например, идентификация объектов, формализация языков запросов, отсутствие математической основы ОО концепции).
Список литературы
1. Шекхар Шаши, Чаула Санжей, Основы пространственных баз данных. Пространственные данные, 2005.
2. Модели представления данных [Электронный ресурс]. Адрес: http://studopedia.su/16_48488_modeli-predstavleniya-dannih.html.
3. Объектно-ориентированные СУБД [Электронный ресурс]. Адрес: http://www.mstu.edu.ru/study/materials/zelenkov/ch_6_3.html
4. Объектно- реляционные модели [Электронный ресурс]. Адрес: http://life-prog.ru/1_18472_i-ob-ektno-relyatsionnaya-modeli.html.