48
данных, в том числе примитивные типы, такие как Integer, Float, Decimal, Char
(включая символьные строки), Varchar (переменные длины символьных строк),
двоичные (для неструктурированных капель данных), Text (для текстовых
данных). Microsoft SQL Server также позволяет определять и использовать
пользовательские составные типы (UDT – Uniform Data Transfer). В дополнение
к таблицам база данных также может содержать другие объекты, включая
представления, хранимые процедуры, индексы и ограничения, а также журнал
транзакций. База данных SQL Server может содержать максимум 231 объекта и
может охватывать несколько файлов уровня операционной системы (ОС) с
максимальным размером файла 1 экзабайт. Данные в базе данных хранятся в
первичных файлах данных с расширением .mdf. Вторичные файлы данных,
идентифицированные с .ndf расширением, используются для обеспечения
возможности распространения данных одной базы данных в нескольких файлах
и, возможно, в нескольких файловых системах. Файлы журнала
идентифицируются с .ldf расширением.
Место хранения, выделенное для базы данных, разделяется на
последовательно пронумерованные страницы размером 8 КБ. Страница является
основной единицей ввода/вывода для операций SQL Server. Страница отмечена
96-байтовым заголовком, в котором хранятся метаданные о странице, включая
номер страницы, тип страницы, свободное место на странице и идентификатор
объекта, которому он принадлежит. Тип страницы определяет данные,
содержащиеся на странице: данные, хранящиеся в базе данных, индексе, карте
распределения, которая содержит информацию о том, как страницы
распределяются по таблицам и индексам, изменение карты, которая содержит
информацию об изменениях, сделанных на других страницах с момента
последней резервной копии или ведения журнала, или содержат большие типы
данных, такие как изображение или текст. Строка в таблице базы данных не
может содержать более одной страницы, поэтому ее размер ограничен 8 КБ.
Однако, если данные превышают 8 КБ, а строка содержит данные varchar или
varbinary, данные в этих столбцах перемещаются на новую страницу (или,
возможно, последовательность страниц, называемую единицей выделения) и
заменяются указателем на данные.