Реляционные базы данных на основе SQL Server 2000

Автор работы: Пользователь скрыл имя, 19 Октября 2012 в 12:28, контрольная работа

Описание

Что такое SQL Server 2000
SQL Server 2000 — это реляционная СУБД, которая использует язык Transact-SQL для пересылки сообщений между компьютером клиента и компьютером, на котором работает SQL Server 2000. Реляционная СУБД состоит из механизма баз данных, собственно баз данных и приложений, необходимых для управления данными и компонентами реляционной СУБД. Реляционная СУБД организует данные в виде связанных строк и столбцов, составляющих базу данных. Реляционная СУБД отвечает за поддержку структуры базы данных и решает следующие задачи:
• поддерживает связи между данными в базе;
• гарантирует корректное хранение данных и выполнение правил, регламентирующих связи между ними;
• восстанавливает данные после аварии системы, переводя их в согласованное состояние, зафиксированное до сбоя.

Работа состоит из  1 файл

РБД(контр).doc

— 241.00 Кб (Скачать документ)

 

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

 

Логические компоненты базы данных

 

К логическим компонентам БД относятся  объекты, режимы сопоставления, идентификаторы пользователей, учетные имена, роли и группы.

 

Объекты баз данных

 

Данные SQL Server 2000 организованы с помощью  нескольких различных объектов, которые  доступны пользователям при подключении  к базе данных. Краткое описание главных объектов базы данных приводится в следующей таблице. Подробнее эти объекты обсуждаются в следующих главах.

 

Режимы сопоставления

 

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

 

Различные объекты одной и той  же базы данных SQL Server 2000 могут использовать разные режимы сопоставления. В SQL Server 2000 разрешается задавать отдельные  режимы сопоставления вплоть до уровня столбцов, а каждому столбцу таблицы — присваивать различные режимы сопоставления. Более ранние версии SQL Server поддерживают только один режим сопоставления для каждого экземпляра SQL Server. У всех баз данных и их объектов, которые создаются в экземпляре SQL Server 7.0 или более ранней версии, режим сопоставления одинаков.

 

SQL Server 2000 поддерживает несколько  режимов сопоставления, которые  определяют правила использования  символов для языка (например, македонского или польского) или для алфавита (например, Latin1_General — для латинского алфавита, который составляет основу письменности народов Западной Европы).

 

Каждый режим сопоставления 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.

 

В SQL Server для хранения сведений о  распределении экстентов используются карты распределения двух типов.

 

•     Глобальная карта распределения (Global Allocation Map, GAM). 

 В страницах GAM регистрируются  выделенные экстенты. Каждая GAM содержит  сведения о более чем 64 000 экстентах  (или примерно о 4 Гб данных). В GAM каждому экстенту соответствует  один бит. Если он равен 1, экстент свободен, а если 0 — занят.

 

•     Разделяемая глобальная карта распределения (Shared Global Allocation Map, SGAM).  В страницах SGAM регистрируются экстенты, которые в данный момент используются как смешанные и  в которых есть по крайней мере одна свободная страница. Каждая SGAM содержит информацию о 64 000 экстентах (или около 4 Гб данных). В SGAM каждому экстенту соответствует один бит. Если он равен 1, экстент используется как смешанный и у него есть свободные страницы. Если бит равен 0,  экстент не используется как смешанный или, если он используется как смешанный экстент, все его страницы заняты.

 

Структура таблиц и индексов

 

SQL Server 2000 поддерживает индексы  представлений. Первый индекс  представления должен быть кластерным. Во время исполнения оператора  CREATE INDEX для представления результирующий набор для этого представления сохраняется в базе данных, при этом используется структура, аналогичная структуре таблицы с кластерным индексом.

 

Строки с данными каждой таблицы  или индексированного представления  хранятся в наборе 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 — используется клиентами под управлением клиентских компонентов SQL Server 2000. Клиенты TDS 8.0 поддерживают все функции SQL Server 2000;

 

•     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 Server 2000  состоит из двух основных частей: реляционного механизма и  механизма хранения. Одно из самых  важных архитектурных изменений, внесенных в SQL Server 7.0 (и перешедших к SQL Server 2000), заключается в строгом разделении таких компонентов сервера, как реляционный механизм и механизм хранения, и использовании ими API OLE DB для взаимодействия друг с другом.

 

Архитектура обработчика запросов

 

Операторы SQL — единственный вид  команд, которые приложения посылают SQL Server 2000. Вся работа, выполняемая  экземпляром SQL Server, является результатом  обработки им SQL-операторов (получение, интерпретация и непосредственно  исполнение). SQL Server 2000 исполняет операторы SQL с помощью одного из следующих процессов:

 

•     обработки одиночного оператора SQL;

 

•     пакетной обработки;

 

•     исполнения хранимой процедуры или триггера;

 

•     кэширования и повторного использования плана исполнения;

 

•     параллельной обработки  запросов.

 

 

 

 

 

 

Архитектура памяти

 

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

 

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 2000 есть собственный кэш-буфер. Данные считываются из дисковых файлов базы данных в кэш-буфер. Несколько логических операций чтения можно выполнить и без многократного физического считывания данных. Данные остаются в кэше, пока в течение определенного времени на них нет ссылок или не понадобится свободная память буфера для считывания следующей порции данных. Они записываются на диск только после модификации. Данные могут быть многократно модифицированы в результате логических операций записи, прежде чем в результате физической операции записи они, обновленные, будут записаны на диск.

 

Ввод-вывод, осуществляемый экземпляром SQL Server, подразделяется на логический и  физический. Логическое чтение происходит каждый раз, когда механизм баз данных запрашивает страницу из кэш-буфера. Если в настоящий момент страница отсутствует в кэш-буфере, выполняется физическое чтение, чтобы прочитать страницу в кэш-буфер. Если страница в данный момент находится в кэше, физическая операция чтения не выполняется — кэш-буфер использует ту страницу, которая уже хранится в памяти. При модификации данных страницы, которая находится в памяти, происходит логическая операция записи. При записи страницы на диск выполняется физическая операция записи. Страница может оставаться в памяти достаточно долго; так, перед физической записью ее на диск иногда выполняется несколько логических операций записи.

Информация о работе Реляционные базы данных на основе SQL Server 2000