Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по курсу ИСиТ.docx
Скачиваний:
6
Добавлен:
07.02.2024
Размер:
1.07 Mб
Скачать

Двоичные данные

binary [ ( n ) ]

Двоичные данные фиксированной длины размером в n байт, где n — значение от 1 до 8000. Размер хранения составляет n байт.

varbinary [ ( n | max) ]

Двоичные данные переменной длины. n могут иметь значение от 1 до 8000; max означает максимальную длину хранения, которая составляет 2^31-1 байт. Размер хранения — это фактическая длина введенных данных плюс 2 байта. Введенные данные могут иметь размер 0 символов. В ANSI SQL синонимом для varbinary является binary varying.

Пространственные типы данных

Пространственные типы данных появились только в Microsoft SQL Server 2008. Эти типы данных представляют сведения о физическом расположении и форме геометрических объектов. Такими объектами могут быть точки или более сложные объекты, например страны, дороги, озера.

SQL Server поддерживает два пространственных типа данных:

  • geometry (плоский) - представляет данные в эвклидовом пространстве (плоской системе координат).

  • geography (геодезический) - позволяет сохранять эллипсоидальные (сферические) данные, такие как координаты широты и долготы GPS.

Специальные типы данных

Типы специальных данных не подходят ни к одной из других категорий типов данных. В SQL Server присутствуют следующие особые типы данных: hierarchyid, sql_variant, sysname, table, rowversion, xml, uniqueidentifier, cursor.

Тип данных hierarchyid

В Microsoft SQL Server 2008 был введен новый тип данных hierarchyid, который используется для представления положения в древовидной иерархии. Столбец типа hierarchyid не принимает древовидную структуру автоматически. Приложение должно создать и назначить значения hierarchyid таким образом, чтобы они отражали требуемые связи между строками.

Значения hierarchyid обладают следующими свойствами:

  • Исключительная компактность Среднее число бит, необходимое для представления узла в древовидной структуре с n узлами, зависит от среднего количества потомков у узла. Для представления узла в иерархии организации, насчитывающей 100 000 человек со средним уровнем ветвления 6, необходимо около 38 бит. Эта величина округляется до 40 бит (5 байт), которые необходимы для хранения.

  • Поддержка произвольных вставок и удалений В любой момент можно создать одноуровневый элемент, расположенный справа от заданного узла, слева от заданного узла или между любыми двумя другими одноуровневыми элементами. Свойство сравнения сохраняется, если произвольное число узлов вставляется в иерархию или удаляется из нее.

  • Кодировка в типе данных hierarchyid ограничена 892 байтами. Следовательно, узлы, имеющие слишком много уровней, чтобы уместиться в 892 байта, не могут быть представлены типом данных hierarchyid.

Тип данных sql_variant

Тип данных sql_variant позволяет сохранять данные различных типов в одном столбце, параметре или переменной. В каждом экземпляре столбца типа sql_variant хранятся значения и метаданные, описывающие эти значения (Базовый тип данных, Максимальный размер, Масштаб, Точность, Параметры сортировки).

Тип данных sysname

Тип данных sysname используется в столбцах таблицы, переменных и параметрах хранимых процедур, содержащих названия объектов. Тип данных sysname является псевдонимом типа nvarchar(128), по умолчанию sysname имеет значение NOT NULL. В более ранних версиях SQL Server тип sysname фунционально эквивалентен varchar(30).

Тип данных table

Тип данных table используется для определения временных таблиц. В переменных этого типа сохраняются результирующие наборы для последующей обработки. Этот тип данных может использоваться только для определения локальных переменных типа table и значений, возвращаемых пользовательской функцией.

Определение табличной переменной или возвращаемого значения включает определения столбцов, типа данных, точности и размера каждого столбца. Определенная пользователем таблица не может быть использована в качестве пользовательского типа данных.

Тип данных rowversion

Значения rowversion являются двоичными числами, указывающими относительную последовательность, в которой происходило изменение данных в базе данных - значение rowversion изменяется всякий раз при изменении строки. Размер при хранении составляет 8 байт. Тип данных rowversion не связан со временем или с датой.

Тип данных xml

Тип данных xml позволяет хранить XML-документы и их фрагменты в базе данных SQL Server. Database Engine позволяет создавать столбцы и переменные типа xml, в которых можно хранить экземпляры XML. При этом размер хранимого экземпляра типа данных xml не должен превышать 2 Гб. SQL Server поддерживает валидацию значений столбцов и переменных типа xml при помощи XML-схем, а также преобразование реляционных данных в xml и обратно.

Тип данных uniqueidentifier

Данный тип представляет собой 16-байтный GUID - уникальный идентификатор, генерируемый на основе MAC-адреса сетевой карты и текущего времени. Его главная особенность - уникальность, и хотя уникальность каждого отдельного GUID не гарантируется, общее количество уникальных ключей настолько велико, что вероятность того, что в будут независимо сгенерированы два совпадающих ключа, достаточно мала.

Тип данных cursor

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

Соседние файлы в предмете Информатика