Профтемы студенту и преподавателю
Taketop.ru
СТУДЕНТУ И ПРЕПОДАВАТЕЛЮ
лекции по дисциплинам
Информатика и вычислительная техника :: Разработка и эксплуатация удаленных баз данных
Физическая организация базы данных формата Microsoft SQL Server
Основная единица хранения данных в SQL Server -- страница.
Место на диске, предоставляемое для размещения файла данных (MDF- или NDF-файл) в базе данных, логически разделяется на страницы с непрерывным перечислением от 0 до n. Дисковые операции ввода-вывода выполняются на уровне страницы. А именно, SQL Server считывает или записывает целые страницы данных.
В начале каждой страницы расположен заголовок (header) длиной 96 байт, используемый для хранения системной информации, такой как тип страницы, количество свободного пространства на странице и идентифика-тора объекта-владельца страницы.
В файлах данных СУБД SQL Server определено 7 типов страниц.
Строки данных заносятся на страницу последовательно, сразу же после заголовка.
Страницы данных содержат данные всех типов, за исключением text, ntext и image, которые хранятся на отдельных страницах.
Таблица смещения строк начинается в конце страницы; каждая таблица смещения строк содержит одну запись для каждой строки на странице.
Каждая запись регистрирует, насколько далеко от начала страницы находится первый байт строки.
Записи в таблице смещения строк находятся в обратном порядке относительно последовательности строк на странице.
В SQL Server 7.0 строки не могут переходить со страницы на страницу, и максимальный объем данных в одной строке составляет 8060 байт.
Экстент - основная единица распределения пространства для таблиц и индексов. Один экстент состоит из 8 смежных страниц и имеет размер 64 КБ.
Для обеспечения эффективного использования пространства SQL Server 7.0 может не распределять всего экстента целиком для таблицы, которая содержит небольшой объем данных.
Выявление "рваных" страниц
Выявление "рваных" страниц гарантирует поддержание целостности базы данных. Хотя размер страницы в SQL Server равен 8 КБ, Windows NT Server осуществляет операции ввода-вывода сегментами по 512 байт. Такое несоответствие порождает возможность того, что страница будет записана лишь частично -- это может произойти при сбое электропитания или возникновении каких-либо других проблем в промежутке времени от того момента, когда записан первый 512-байтовый сегмент, до того, когда будет завершена запись всех 8 КБ.
После того, как записан первый сегмент из 512 байт, может показаться, что страница уже обновлена, хотя на самом деле этого не произошло. (Временная отметка для страницы расположена в заголовке, который занимает первые 96 байт.) Существует несколько способов решения этой проблемы. Вы можете использовать устройства ввода-вывода с резервным питанием от батарей. Если у вас одна из таких систем -- выявление "рваных" страниц необязательно.
SQL Server выявляет незавершенные операции ввода-вывода путем формирования битовой маски, по одному биту для каждого сегмента страницы. Каждый раз при записи страницы этот бит изменяет свое состояние из первоначального (как он был записан на диске) на противоположное и записывается в заголовок страницы. Если при чтении страницы обнаруживается неверное состояние бита -- это свидетельствует о том, что операция ввода-вывода не была завершена и страница "рваная". Такой механизм требует меньших затрат, чем подсчет контрольной суммы.
Вы можете включить или отключить выявление "рваных" страниц, т.к. заголовок страницы помечается при изменении состояния битов. При включении и отключении выявления "рваных" страниц, состояние битов, которые были "переключены", проверяется и корректируется во время по-следующего чтения страниц.
Файлы и группы файлов
SQL Server использует для хранения баз данных набор файлов операционной системы, при этом для каждой из них создается собственный файл.
Несколько баз данных больше не могут находиться в одном файле. Су-ществует несколько важных преимуществ такого упрощения: файлы могут разрастаться и сокращаться, управление пространством также стало проще.
Все данные и объекты базы данных, такие как таблицы, хранимые процедуры, триггеры и представления, хранятся в следующих файлах
Первичный файл данных (Primary data file)
Вторичные файлы данных (Secondary data files)
Файлы журнала (Log files)

При создании базы данных все входящие в ее состав файлы "обнуляются" (заполняются нулями), чтобы стереть все данные, которые остались на диске от ранее удаленных файлов. Хотя это приводит к увеличению продолжительности создания БД, это избавляет Windows NT от необходимости очистки файлов при записи данных в них (поскольку они уже "обнулены") во время нормальной работы с базой данных, что повышает производительность системы.
База данных состоит из одного или более файлов данных и одного или более файлов журнала. Файлы данных могут быть сгруппированы в определенные пользователем группы. Таблицы и индексы могут быть поставлены в соответствие различным группам файлов для управления размещением данных на физических дисках.


Работы, представленные на сайте http://taketop.ru, предназначено исключительно для ознакомления. Все права в отношении работ и/или содержимого работ, представленных на сайте http://taketop.ru, принадлежат их законным правообладателям. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие или полученные в связи с использованием работ и/или содержимого работ, представленных на сайте http://taketop.ru
Рейтинг@Mail.ru
Сайт управляется SiNG cms © 2010-2015