Автор работы: Пользователь скрыл имя, 19 Октября 2012 в 12:28, контрольная работа
Что такое SQL Server 2000
SQL Server 2000 — это реляционная СУБД, которая использует язык Transact-SQL для пересылки сообщений между компьютером клиента и компьютером, на котором работает SQL Server 2000. Реляционная СУБД состоит из механизма баз данных, собственно баз данных и приложений, необходимых для управления данными и компонентами реляционной СУБД. Реляционная СУБД организует данные в виде связанных строк и столбцов, составляющих базу данных. Реляционная СУБД отвечает за поддержку структуры базы данных и решает следующие задачи:
• поддерживает связи между данными в базе;
• гарантирует корректное хранение данных и выполнение правил, регламентирующих связи между ними;
• восстанавливает данные после аварии системы, переводя их в согласованное состояние, зафиксированное до сбоя.
SQL Server 2000 позволяет отключить базу данных от одного экземпляра SQL Server, а затем подключить ее к другому экземпляру или вернуть обратно. При наличии файла с базой данных можно дать SQL Server указание подключать этот файл при установлении соединения под определенным именем.
Логические компоненты базы данных
К логическим компонентам БД относятся объекты, режимы сопоставления, идентификаторы пользователей, учетные имена, роли и группы.
Объекты баз данных
Данные SQL Server 2000 организованы с помощью нескольких различных объектов, которые доступны пользователям при подключении к базе данных. Краткое описание главных объектов базы данных приводится в следующей таблице. Подробнее эти объекты обсуждаются в следующих главах.
Режимы сопоставления
Режимы сопоставления
Различные объекты одной и той же базы данных SQL Server 2000 могут использовать разные режимы сопоставления. В SQL Server 2000 разрешается задавать отдельные режимы сопоставления вплоть до уровня столбцов, а каждому столбцу таблицы — присваивать различные режимы сопоставления. Более ранние версии SQL Server поддерживают только один режим сопоставления для каждого экземпляра SQL Server. У всех баз данных и их объектов, которые создаются в экземпляре SQL Server 7.0 или более ранней версии, режим сопоставления одинаков.
SQL Server 2000 поддерживает несколько
режимов сопоставления,
Каждый режим сопоставления SQL Server определяет три свойства:
• порядок сортировки данных Unicode-типов (nchar, nvarchar и ntext);
• порядок сортировки данных не-Unicode (char, varchar и text);
• кодовую страницу для хранения символьных данных в формате, отличном от Unicode.
Примечание Для типов данных Unicode (nchar, nvarchar и ntext) невозможно задать эквивалент кодовой страницы. Двухбайтовые комбинации, используемые для кодировки символов Unicode, определены стандартом Unicode и не могут быть изменены.
Режимы сопоставления SQL Server 2000 задаются на любом уровне. При установке для экземпляра SQL Server 2000 можно задать режимы сопоставления по умолчанию. Во время создания базы данных стоит задать для нее режимы сопоставления по умолчанию; если этого не сделать, то режимами сопоставления по умолчанию для базы данных станут те, что определены для экземпляра. При определении каждого символьного столбца, переменной или параметра разрешается задать режимы сопоставления по умолчанию. Если это не сделано, при создании объекта будут взяты режимы сопоставления по умолчанию для базы данных.
Физическая структура базы данных
В этом разделе описаны способы организации файлов и баз данных SQL Server 2000. Заметим, что для SQL Server 2000 и SQL Server 7 они отличаются от организации данных в SQL Server 6.5 и более ранних версий.
Базе данных в SQL Server 2000 соответствует набор файлов ОС. Данные и журнал транзакций никогда не помещаются в один и тот же файл, а любой отдельный файл используется только одной базой данных.
В базах данных SQL Server 2000 применяются файлы трех типов.
• Основной файл данных. База данных начинается с основного файла данных, который указывает на другие файлы базы данных. У любой базы данных есть только один основной файл данных. Для основных файлов данных рекомендуется использовать расширение .mdf.
• Дополнительные файлы данных. Это все файлы данных, кроме основного. У некоторых баз данных дополнительные файлы данных вообще отсутствуют, в то время как у других их несколько. Для дополнительных файлов данных рекомендуется использовать расширение .ndf.
• Файлы журнала. В них содержится вся информация журнала, используемая для восстановления базы данных. В каждой базе данных должен быть как минимум один файл журнала, хотя допускается и больше. Для файлов журнала рекомендуется использовать расширение .ldf.
Распределение и повторное использование памяти
SQL Server 2000 эффективно осуществляет
быстрое выделение страниц для
объектов и повторное
В SQL Server для хранения сведений о
распределении экстентов
• Глобальная карта распределения (Global Allocation Map, GAM).
В страницах GAM регистрируются
выделенные экстенты. Каждая GAM содержит
сведения о более чем 64 000 экстентах
(или примерно о 4 Гб данных).
В GAM каждому экстенту
• Разделяемая глобальная карта распределения (Shared Global Allocation Map, SGAM). В страницах SGAM регистрируются экстенты, которые в данный момент используются как смешанные и в которых есть по крайней мере одна свободная страница. Каждая SGAM содержит информацию о 64 000 экстентах (или около 4 Гб данных). В SGAM каждому экстенту соответствует один бит. Если он равен 1, экстент используется как смешанный и у него есть свободные страницы. Если бит равен 0, экстент не используется как смешанный или, если он используется как смешанный экстент, все его страницы заняты.
Структура таблиц и индексов
SQL Server 2000 поддерживает индексы
представлений. Первый индекс
представления должен быть
Строки с данными каждой таблицы или индексированного представления хранятся в наборе 8-килобайтных страниц данных. У каждой страницы данных есть 96-байтный заголовок, который содержит системную информацию, например идентификатор таблицы, которой принадлежит страница. Если используются страницы, связанные в список, то в заголовке страницы также находятся указатели на предыдущую и последующую страницы. В конце страницы располагается таблица смещений строк. Остаток страницы заполнен строками данных.
Для организации страниц данных в таблицах SQL Server 2000 применяется один из двух методов: кластерные таблицы или кучи.
• Кластерные таблицы. Это таблицы с кластерным индексом. Строки данных хранятся в порядке, который определяется ключом кластерного индекса. Индекс реализован в виде сбалансированного дерева (В-дерева), которое поддерживает быстрое получение строк на основе значений их ключа кластерного индекса. Страницы на каждом уровне индекса, в том числе страницы на уровне листьев дерева, связаны в двусвязный список, но переход с одного уровня на другой осуществляется посредством ключа.
• Кучи. Это таблицы без кластерного индекса. Строки данных хранятся без какого-либо определенного порядка, и последовательность страниц данных также не упорядочена. Страницы данных не организованы в связный список.
Структура индексированных представлений аналогична структуре кластерных таблиц.
SQL Server также поддерживает до 249
некластерных индексов для
Структура журнала транзакций
У любой базы данных SQL Server 2000 есть журнал транзакций, в котором регистрируются все транзакции и модификации базы данных, выполненные в ходе каждой транзакции. Регистрация транзакций и сделанных в их ходе модификаций используется для выполнения трех операций:
• восстановления отдельных транзакций;
• восстановления незавершенных транзакций во время запуска SQL Server;
• повтора операций над восстановленной базой данных непосредственно до момента сбоя.
Протокол TDS
Клиенты посылают операторы SQL, используя протокол прикладного уровня SQL Server под названием поток табличных данных (TDS, Tabular Data Stream). SQL Server 2000 работает со следующими версиями TDS:
• TDS 8.0 — используется
клиентами под управлением
• TDS 7.0 — используется клиентами под управлением клиентских компонентов SQL Server 7.0. Клиенты TDS 7.0 не поддерживают новые функции SQL Server 2000, что иногда вынуждает сервер соответствующим образом корректировать данные, отсылаемые обратно таким клиентам;
• TDS 4.2 — используется клиентами под управлением клиентских компонентов SQL Server версий 6.5, 6.0 и 4.21a. Клиенты TDS 4.2 не поддерживают новые функции, добавленные в SQL Server 2000 и 7.0. Это также вынуждает сервер иногда корректировать данные, отсылаемые обратно этим клиентам.
Серверные библиотеки Net-Library
Пакеты TDS создаются компонентом доступа Microsoft OLE DB для SQL Server, драйвером ODBC (Open Database Connectivity) SQL Server или динамически подключаемой библиотекой (dynamic link library, DLL) DB-Library. После этого пакеты TDS передаются клиентской библиотеке Net-Library SQL Server, которая инкапсулирует их в пакеты сетевого протокола. На сервере серверная библиотека Net-Library получает сетевые пакеты, извлекает из них пакеты TDS и передает их механизму реляционных баз данных. При возврате результатов клиентов этот процесс протекает в обратном направлении.
Каждый сервер способен отслеживать несколько сетевых протоколов одновременно и поддерживать по одной библиотеке Net-Library для каждого отслеживаемого протокола.
Механизм реляционных баз данных
Сервер баз данных обрабатывает все запросы, которые передают ему серверные библиотеки Net-Library. Затем сервер компилирует все операторы SQL в планы исполнения, которые он использует для доступа к запрошенным данным и построения результирующего набора, возвращаемого клиенту.
Механизм реляционных баз
Архитектура обработчика запросов
Операторы SQL — единственный вид
команд, которые приложения посылают
SQL Server 2000. Вся работа, выполняемая
экземпляром SQL Server, является результатом
обработки им SQL-операторов (получение,
интерпретация и
• обработки одиночного оператора SQL;
• пакетной обработки;
• исполнения хранимой процедуры или триггера;
• кэширования и повторного
использования плана исполнения
• параллельной обработки запросов.
Архитектура памяти
SQL Server 2000 динамически выделяет
и освобождает память по мере
необходимости. Как правило,
SQL Server 2000 Enterprise Edition поддерживает использование Windows 2000 AWE (Address Windowing Extensions), что позволяет экземплярам, работающим под управлением Windows 2000 Advanced Server, адресовать приблизительно 8 Гб памяти, а работающим под управлением Windows 2000 Data Center — приблизительно 64 Гб. Однако каждый экземпляр, использующий эту дополнительную память, должен статически выделять необходимую память.
Архитектура ввода-вывода
Главным назначением базы данных является хранение и поиск данных, поэтому выполнение многочисленных дисковых операций чтения/записи является одним из неотъемлемых атрибутов механизма баз данных. Дисковые операции ввода-вывода потребляют большой объем ресурсов, а их выполнение занимает относительного много времени. Значительная часть логики ПО реляционных СУБД служит для повышения эффективности операций ввода-вывода.
SQL Server 2000 выделяет значительную
часть своей виртуальной
Ввод-вывод, осуществляемый экземпляром SQL Server, подразделяется на логический и физический. Логическое чтение происходит каждый раз, когда механизм баз данных запрашивает страницу из кэш-буфера. Если в настоящий момент страница отсутствует в кэш-буфере, выполняется физическое чтение, чтобы прочитать страницу в кэш-буфер. Если страница в данный момент находится в кэше, физическая операция чтения не выполняется — кэш-буфер использует ту страницу, которая уже хранится в памяти. При модификации данных страницы, которая находится в памяти, происходит логическая операция записи. При записи страницы на диск выполняется физическая операция записи. Страница может оставаться в памяти достаточно долго; так, перед физической записью ее на диск иногда выполняется несколько логических операций записи.
Информация о работе Реляционные базы данных на основе SQL Server 2000