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

       

Для подобных типов данных выделены


Для подобных типов данных выделены соответствующие классы (VarBinaryMax, VarCharMax, NVarCharMax).

СУБД SQL Server 2005 имеет в своём составе типы данных Cursor и Table, которые не рассматриваются в данной статье потому, что они не являются атомарными литеральными.

Стоит отметить, что при проектировании приложения для конкретной предметной области при описании типов данных для атрибутов классов следует применять реализованные (не абстрактные) классы. Это связано с тем, что выделенная иерархия предполагает её использование при реализации объектной системы на основе РСУБД и в конечном счёте подразумевает сохранение значений атрибутов в полях таблиц БД. В случае использования абстрактных классов возникает неоднозначность при сохранении значений, что может привести к их урезанию и/или искажению.

В статье рассмотрена проблема организации иерархии атомарных литеральных типов объектной системы, построенной на основе РСУБД. Изучены имеющиеся реализации (метамодель стандарта ODMG 3.0, онтология SQL:2003), отмечены присущие недостатки и сформулированы критерии оптимальности, которым должна соответствовать спроектированная иерархия. На рис. 3 изображена оптимальная реализация, которая является унифицированной и не привязана ни к конкретному методу ОРО, ни к конкретной СУБД, а на рис. 4 представлена иерархия атомарных классов, организованных в соответствии с типами данных, имеющимися в СУБД Microsoft SQL Server 2005.

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


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