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

       

Ключевые изменения, представленные на рис.


Ключевые изменения, представленные на рис. 4, коснулись корневых классов, соответствующих точным дробным числам (Numeric), приближенным дробным числам (Float), бинарным строкам как фиксированной длины (Binary), так и переменной длины (VarBinary), а также классов символьных строк, сохраняющих не только однобайтовые символы (Char, VarChar), но и позволяющих сохранять двубайтовые символы (NChar, NVarChar).

Все описанные выше классы сделаны абстрактными (см. рис.3 и рис.4) и, с нашей точки зрения, стали представлять собой категорию типов данных. Причина в том, что в выбранной СУБД для сохранения значений обозначенных типов данных необходимо указать максимальную длину в символах, а для дробных чисел требуется также указать и точность (количество символов после запятой) значения. Заданные параметры играют ключевую роль при расчёте занимаемого физического пространства, необходимого для значения . Поэтому для класа Numeric выделены четыре абстрактных подкласса. Класс Numeric9_X предназначен для хранения чисел, имеющих длину 9 символов и занимающих в памяти 5 байтов; Numeric19_X позволяет сохранить числа, имеющие длину 19 символов и занимающих в памяти 9 байтов; Numeric28_X требует для сохранения значений 13 байтов, а Numeric38_X для этого потребуется уже 17 байтов. Для сохранения значений, имеющих определённую точность, выделены реализованные классы, производные от описанных четырёх абстрактных.

Тот же подход использован для классов, унаследованных от Float. Значения типа данных Float24 могут иметь длину до 7 знаков и занимают 4 байта, а значения типа Float53 – длину до 15 знаков и занимают 8 байтов.

В языке Transact-SQL имеется тип данных SQL_Variant, который в нашем случае является аналогом типа данных Variant, представленного на рис. 3.

Строки (как бинарные, так и символьные) требуют указания максимальной длины сохраняемого значение. На рис. 4 присутствуют реализованные классы, представляющие строки с заданной максимальной длиной. Следует учесть, что строки переменной длины (VarBinary, VarChar, NVarChar) в SQL Server могут иметь неограниченную длину; при спецификации соответствующего типа необходимо указать ключевое слово Max.

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