
- •Основные сведения о sql Server 2000
- •Занятие 1. Основы sql Server 2000
- •Службы sql Server 2000 Analysis Services
- •Поддержка приложений
- •Средства репликации sql Server 2000
- •Служба sql Server 2000 English Query
- •Службы Meta Data Services
- •Поддерживаемые версии ос Windows
- •Управление памятью
- •Служба каталогов Active Directory
- •Занятие 2. Компоненты sql Server 2000
- •Серверные компоненты
- •Утилиты командной строки
- •Клиентские компоненты обмена данными
- •Сетевые библиотеки
- •Оптимизация логической структуры базы данных
- •Проверка подлинности средствами Windows
- •Проверка подлинности средствами sql Server
- •Режимы проверки подлинности
Сетевые библиотеки
OLE DB-поставщик и ODBC-драйвер используют клиентскую сетевую библиотеку (Net-Library) для обмена данными с серверной сетевой библиотекой из состава SQL Server 2000. Обмен данными может выполняться как на одном компьютере, так и по сети. Сетевые библиотеки инкапсулируют запросы, которыми обмениваются клиентские компьютеры и серверы, для последующей передачи этих запросов в нижележащий сетевой протокол. Обмен данными может осуществляться с шифрованием по протоколу Secure Sockets Layer (SSL). Клиенты и сервер SQL Server 2000 можно сконфигурировать так, чтобы использовалась любая из сетевых библиотек, перечисленных в табл. 1-5, или все эти библиотеки одновременно.
Табл. 1-5. Сетевые библиотеки (Net-Libraries), используемые SQL Server 2000
Сетевая библиотека (Net-Library) |
Описание |
|
|
Shared memory |
Применяется для подключения к SQL Server 2000, установленному на том же компьютере, что и клиентское приложение, используя общий сегмент памяти. Это один из протоколов, используемых SQL Server 2000 по умолчанию |
Named pipes |
Используется для соединения с SQL Server 2000 по именованным каналам. Канал представляет собой механизм файловой системы, обеспечивающий взаимодействие процессов. Это один из стандартных протоколов, используемых по умолчанию для SQL Server 2000 |
TCP/IP Sockets |
Используется для соединения с SQL Server 2000 по протоколу TCP/IP. Это один из стандартных протоколов, используемых по умолчанию для SQL Server 2000 |
NWLink IPX/SPX |
.Используется в сетях, работающих под управлением Novell, главным образом в тех конфигурациях, которые не поддерживают протокол TCP/IP |
VIA GigaNet SAN |
Используется для поддержки новой высокопродуктивной технологии SAN, обеспечивающей высокую скорость обмена данными, а также в локальных беспроводных сетях под управлением групп серверов, использующих технологию GigaNet |
Multiprotocol |
Поддерживает все возможные методы обмена данными между серверами с использованием удаленного вызова процедур Windows NT (Windows NT RPC) через любой из поддерживаемых сетевых протоколов. В предыдущих версиях SQL Server использование этой сетевой библиотеки обеспечивало поддержку шифрования данных и применение средств проверки подлинности Windows. В SQL Server 2000 эта сетевая библиотека в основном обеспечивает обратную совместимость версий |
AppleTalk ADSP |
Используется в вычислительных сетях, где установлены компьютеры Macintosh и Apple. ADSP позволяет клиентам Apple Macintosh подключаться к SQL Server 2000, используя стандартный протокол AppleTalk |
Banyan VINES |
Используется для систем Banyan VINES. Этот протокол работает на уровне функциональности SQL Server 7.0 для клиентских рабочих станций и серверов, работающих под управлением Windows NT 4.0, и в следующих версиях развиваться и усовершенствоваться не будет |
Open Data Services
Серверные библиотеки Net-Libraries взаимодействуют с уровнем реляционной БД, называемым Open Data Services. Open Data Services — это интерфейс между ядром БД и серверными сетевыми библиотеками Net-Libraries. На уровне Open Data Services выполняется преобразование пакетов, полученных от серверных библиотек Net-Libraries, в события, которые затем отправляются ядру БД. Ядро БД использует Open Data Services для отправки клиентам ответов SQL Server 2000 через серверные библиотеки Net-Libraries.
Обмен данными между клиентом и сервером
На рис 1-3 показана структура клиентских компонентов обмена данными для случая, когда клиентское приложение и SQL Server установлены на одном компьютере.
Рис. 1-3. SQL Server и клиентское приложение установлены на одном компьютере
Рис. 1-4. SQL Server и клиентское приложение установлены на разных компьютерах
Интернет-приложения
Интернет-приложения осуществляют доступ к SQL Server 2000 посредством виртуального корневого каталога (virtual root), определенного на сервере IIS. Он указывает на экземпляр SQL Server 2000, с которым устанавливается соединение. Для этого в SQL Server 2000 предусмотрена специальная динамически подключаемая библиотека ISAPI DLL (sqlisapi.dll). Интернет-приложения могут выполнять запросы XPath и операторы Transact-SQL, используя универсальный указатель ресурса (Uniform Resource Locator, URL), а также API-интерфейс ADO или OLE DB.
Получив запрос XPath или оператор Transact-SQL, IIS-сервер загружает DLL-библиотеку ISAPI. Эта библиотека использует поставщик OLE DB Provider for SQL Server (SQLOLEDB) для подключения к SQL Server 2000, указанному в виртуальном корневом каталоге, и передачи запроса Xpath или оператора Transact-SQL на SQL Server.
SQL Server Books Online
SQL Server Books Online — это интерактивная справочная система в формате HTML, поставляемая с SQL Server 2000. В SQL Server Books Online предусмотрено множество разнообразных механизмов поиска информации. Для перехода к нужному разделу SQL Server Books Online можно:
обратиться к вкладке Contents диалогового окна интерактивной справочной системы;
ввести в окне предметного указателя ключевое слово для поиска нужной информации;
ввести слово или сочетание слов, обозначающих термин, в средстве поиска интерактивной справочной системы;
щелкнуть кнопку Help одной из графических утилит, чтобы получить нужную информацию об этой утилите;
нажать клавишу F1 при работе с диалоговыми окнами и элементами графического пользовательского интерфейса, чтобы получить относящуюся к ним информацию;
выделить оператор Transact-SQL, функцию, хранимую процедуру или любой другой элемент языка Transact-SQL в окне SQL Query Analyzer и нажать сочетание клавиш Shift+Fl для получения справки, относящейся к выделенному фрагменту текста.
Примечание Пользователям разрешается самостоятельно структурировать SQL Server Books Online, чтобы облегчить поиск необходимой информации. Кроме стандартных разделов справочной системы SQL Server Books Online, поставляемой с SQL Server 2000, вы можете объединить те разделы электронной документации, в которых будет выполняться поиск, в отдельные пользовательские разделы. Для создания пользовательского раздела в электронной документации в меню View выберите Define Subset.
Резюме
В SQL Server 2000 имеются компоненты, реализованные как службы Windows NT 4.0/2000. Множество специальных клиентских графических утилит и программ, запускаемых из командной строки, облегчают администрирование SQL Server 2000. Эти административные средства и утилиты, также как и ряд других клиентских приложений, используют специальные компоненты, позволяющие клиентскому приложению установить соединение с SQL Server 2000 — как через сеть, так и локально.
Занятие 3. Основные сведения об архитектуре реляционной СУБД
SQL Server 2000 хранит информацию в базах данных. На физическом уровне БД состоит из двух или более файлов, размещенных на одном или нескольких дисках. Такая структура БД видна только администраторам БД, пользователи видят БД как единое целое. Как правило, выбор оптимального способа физической организации БД, в частности размещения на дисках файлов, из которых состоит БД, входит в обязанности администратора БД. Подробнее об этом — в главе 6.
На логическом уровне БД состоит из видимых для пользователя компонентов — таблиц, представлений (views) и хранимых процедур (stored procedures). Логической оптимизацией БД, например определением структуры таблиц и индексов, занимаются разработчики БД. Вопросы логической оптимизации БД выходят за рамки этой книги; они подробно рассмотрены в книге Ребекки М. Райордан (Rebecca M. Raiordan) «Основы реляционных СУБД» («Русская Редакция», М., 2001 г.).
Изучив материал этого занятия, вы сможете:
перечислить системные БД SQL Server 2000;
рассказать о физической и логической архитектуре БД SQL Server 2000.
Системные и пользовательские базы данных
При установке одного экземпляра SQL Server 2000 на компьютер создаются четыре системные БД. Они и их функции перечислены в табл. 1-6.
Табл. 1-6.Системные базы данных SQL Server 2000
Системная БД |
Описание |
master |
Содержит системную информацию SQL Server 2000, в том числе сведения обо всех других БД, об учетных записях и конфигурационных параметрах |
tempdb |
Содержит все временные таблицы и хранимые процедуры, создаваемые пользователями, а также рабочие таблицы, использующиеся ядром СУБД |
model |
Служит шаблоном для создания новых БД |
msdb |
Здесь служба SQL Server Agent хранит сведения об оповещениях и операторах, а также расписания выполнения заданий |
Кроме того, у каждого установленного экземпляра SQL Server 2000 имеется одна или несколько пользовательских БД. Вместе с SQL Server 2000 поставляются пользовательские БД pubs и Northwind, предназначенные для обучения работе с SQL Server 2000. При достаточных системных ресурсах каждый установленный экземпляр SQL Server 2000 поддерживает одновременную работу нескольких тысяч пользователей со многими БД (рис. 1-5).
Рис. 1-5.SQL Server работает со множеством пользовательских БД
Физическая структура базы данных
Каждая БД включает в себя по крайней мере один файл данных (data file) и один файл журнала транзакций (transaction log file). Несколько БД не могут одновременно использовать эти файлы. Для оптимизации производительности и повышения отказоустойчивости файлы данных и файлы журнала, как правило, размещают на разных дисках (используется несколько дисков). Для размещения файлов данных и файлов журнала часто применяется RAID-массив.
Экстенты и страницы
Для физического размещения данных и индексов SQL Server 2000 резервирует дисковое пространство, занятое файлом данных, отдельными блоками размером 64 кб. Такие блоки называются экстентами (extents). Каждый экстент состоит из восьми последовательно расположенных страниц объемом по 8 кб каждая. Экстенты бывают двух типов: однородные (uniform extents), принадлежащие одному объекту, и смешанные (mixed extents), которые могут принадлежать не более чем восьми различным объектам.
Страница — это минимальный объем дискового пространства, выделяемого SQL Server 2000 для хранения данных. Одна страница занимает 8 кб. Как правило, данные хранятся в виде строк, размещаемых по несколько штук на одной странице. Каждая строка может содержать данные объемом не более 8 060 байт. Порядок размещения данных зависит от того, определен ли на таблице кластерный индекс. Данные могут размещаться упорядоченно, на основании значений ключа кластерного индекса (таким ключом, например, может служить почтовый индекс), или неупорядоченно, если кластерный индекс отсутствует. В начале каждой страницы размещается заголовок, занимающий 96 байт. В нем хранится системная информация, например объем свободного пространства на данной странице.
Файлы журнала транзакций
Журнал транзакций размещается в одном или нескольких физических файлах — файлах данных. Журнал транзакций содержит серии записей о транзакциях. Для повышения производительности и обеспечения избыточности данных журнал транзакций и файлы данных, как правило, размещаются на разных дисках. Для дисков, на которых размещаются файлы журнала, используется зеркалирование (mirroring) RAID.
Логическая структура базы данных
Данные, хранимые на SQL Server 2000, структурируются таким образом, что они принадлежат одному или нескольким объектам БД. Объекты БД отображаются пользователям, подключившимся к БД. В табл. 1-7 перечислены объекты БД и кратко описаны их функции.
Табл. 1-7.Объекты БД SQL Server 2000
Объект БД |
Описание |
Таблица |
Как правило, таблица состоит из строк и столбцов данных в формате, схожем с электронной таблицей. Каждая строка таблицы представляет уникальную запись, каждый столбец — отдельное поле этой записи. Тип данных указывает, данные какого типа могут храниться в столбце |
Представление |
Представление содержит только некоторые из записей или столбцов, имеющихся в таблице, либо объединяет данные из разных таблиц, представляя их пользователю как одну таблицу. В представлении могут также объединяться несколько столбцов таблицы |
Индекс
|
Индекс — это структура, связанная с таблицей или представлением и повышающая скорость выборки записей из таблицы. Индексы в таблице могут быть кластерными или некластерными. При наличии кластерного индекса данные таблицы физически упорядочиваются на основании значений ключа индекса |
Ключ |
Ключ — это столбец или несколько столбцов, позволяющих уникально идентифицировать запись (первичный ключ), определяющих связь между двумя таблицами (внешний ключ) или используемых для построения индекса |
Пользовательские данные |
Задаются пользователями. Этот тип данных определен на одном из встроенных типов данных SQL Server 2000. Пользовательский тип данных позволяет сделать структуру таблиц более ясной для программистов; кроме того, он гарантирует, что столбцы, которые содержат схожие классы данных, имеют один и тот же базовый тип |
Хранимые процедуры |
Хранимая процедура представляет собой набор операторов Transact-SQL, скомпилированных в один план выполнения. Процедуры используются для оптимизации производительности и регулирования прав доступа |
Ограничения |
Ограничения определяют правила, задающие допустимые значения для величин, хранящихся в полях таблиц. Ограничения являются стандартным механизмом поддержки целостности данных |
Значения по умолчанию |
Значения по умолчанию определяют, какие значения будут подставлены в поле текущей записи в данном столбце, если при вводе данных значение в этом поле будет пропущено |
Триггеры |
Триггеры — это особый вид хранимых процедур, автоматически выполняемых при исполнении оператора UPDATE, INSERT или DELETE над данными таблицы или представления |
Пользовательские Функции |
Пользовательские функции — это программы, состоящие из одной или нескольких функций, включающих в себя операторы Transact-SQL. Функции применяются для инкапсуляции кода с целью повторного его использования. Функция не может иметь более 1 024 входных параметров. Пользовательские функции можно использовать вместо представлений и хранимых процедур |