SQL Server 2000

Обзор Microsoft SQL Server

Разбить на страницы
Показывать лекцию целиком

Microsoft SQL Server 2000 – это реляционная система управления базой данных (СУБД). В реляционных базах данных данные хранятся в таблицах. Взаимосвязанные данные могут группироваться в таблицы, кроме того, могут быть установлены также и взаимоотношения между таблицами. Отсюда и произошло название реляционные – от английского слова relational (родственный, связанный отношениями, взаимозависимый). Пользователи получают доступ к данным на сервере через приложения, а администраторы, выполняя задачи конфигурирования, администрирования и поддержки базы данных, производят непосредственный доступ к серверу. SQL Server является масштабируемой базой данных, это значит, что она может хранить значительные объемы данных и поддерживать работу многих пользователей, осуществляющих одновременный доступ к базе данных.

СУБД SQL Server появилась в 1989 году и с тех пор значительно изменилась. Огромные изменения претерпели масштабируемость продукта, его целостность, удобство администрирования, производительность и функциональные возможности. В данной лекции мы рассмотрим два типа окружений, в которых можно использовать SQL Server. Затем мы рассмотрим новые функциональные возможности и улучшения, имеющиеся в SQL Server 2000.

Системы SQL Server

Система SQL Server может быть реализована либо как клиент-серверная система, либо как автономная "настольная" система. Тип проектируемой вами системы зависит от количества пользователей, которые должны одновременно осуществлять доступ к базе данных, и от характера работ, которые должны выполняться. В этом разделе мы рассмотрим оба типа систем SQL Server.

Клиент-серверная система SQL Server

Клиент-серверная система SQL Server может иметь двухзвенную установку (two-tier setup) либо трехзвенную установку (three-tier setup). Независимо от варианта установки, программное обеспечение и базы данных SQL Server размещаются на центральном компьютере, который называется сервер базы данных (database server). Пользователи работают на отдельных компьютерах, которые называются клиенты (clients). Доступ пользователей к серверу базы данных производится при помощи приложений с их компьютеров-клиентов (в двухзвенных системах) либо при помощи приложений, выполняющихся на специально предназначенном для этой цели компьютере, который называется сервер приложений (application server) (в трехзвенных системах).

В частности, в двухзвенных системах клиенты исполняют приложения, осуществляющие доступ к серверу базы данных непосредственно через сеть. Таким образом, компьютеры-клиенты исполняют программный код, соответствующий нуждам предприятия, и код, отображающий для пользователя результаты доступа к базе данных. Такие клиенты называются толстыми (thick client), потому что они выполняют два вида работы (cм. рис. 1.1).Двухзвенная установка полезна при относительно небольшом количестве пользователей, потому что для соединения с каждым из пользователей расходуются системные ресурсы, такие как память и блокировки (locks). Чем больше будет количество соединений с пользователями, тем хуже будет производительность системы, из-за соперничества за ресурсы. В этих условиях вас может заинтересовать применение трехзвенной системы.

(рис 1.1) Двухзвенная клиент-серверная система

Как уже говорилось ранее, в трехзвенной установке имеется третий компьютер, который называется сервер приложений. В системах этого типа в задачи компьютеров-клиентов входит лишь исполнение программного кода по вызову функций с сервера приложений и отображение результатов доступа. Такие клиенты называются тонкими (thin client). Cервер приложений исполняет приложения, которые выполняют задачи, требующиеся для нужд предприятия, эти приложения являются многопотоковыми (multithreaded), благодаря чему с ними могут работать много пользователей одновременно. Cервер приложений соединяется с сервером базы данных, осуществляет доступ к данным и возвращает результаты клиенту (см. рис. 1.2).

Достоинством трехзвенной системы является то, что можно позволить серверу приложений организовывать все клиентские соединения с сервером базы данных, вместо того, чтобы разрешить каждому клиенту самостоятельно устанавливать соединения (такая самостоятельность может привести к нерациональному использованию ресурсов сервера базы данных). Этот подход называется организация пула соединений (connection pooling), при этом предполагается, что запросы клиентов помещаются в пул (или, говоря точно, в очередь, queue), в котором они будут дожидаться ближайшего доступного соединения. Сразу же по освобождении соединения, оно может использоваться для нужд следующего запроса из очереди. Организация пулов соединений позволяет в некоторой степени регулировать объем работы, выполняемой сервером базы данных, конфигурируя количество соединений, имеющихся в пуле и, следовательно, количество соединений, доступных для выполнения задач пользователей. (Количество соединений можно конфигурировать программно.) Так можно избавиться от потребности в большом количестве пользовательских соединений, способных быстро израсходовать ресурсы и замедлить скорость работы. Организация пулов соединений может быть реализована при помощи Internet Information Server (продукта фирмы Microsoft) и программного обеспечения для организации пулов соединений, вроде COM+, являющегося службой компонент, поставляемой вместе с операционной системой Microsoft Windows 2000. Мы не станем углубляться в подробности использования этих продуктов, поскольку программирование приложений выходит за рамки нашего курса.

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

(рис 1.2) Трехзвенная клиент-серверная система

Настольная система

SQL Server может использоваться также и как автономный (stand-alone) сервер базы данных, работающий на настольном или на портативном компьютере. Мы будем называть такие конфигурации настольными системами (desktop system). В них клиентские приложения исполняются на том же компьютере, на котором хранится программное обеспечение, реализующее механизм работы SQL Server и базы данных. В данной системе применяется только один компьютер, поэтому не устанавливаются никакие сетевые соединения от клиента к серверу – клиент устанавливает локальное соединение со своей локальной установкой SQL Server.

Настольные системы полезны при доступе к базе данных лишь одного пользователя или при небольшом числе пользователей, работающих с базой данных совместно (не одновременно). Настольные системы можно применять, например, в небольшом магазине, в котором имеется только один компьютер, а база(ы) данных – небольшая(ие).

Новые функциональные возможности и усовершенствования, появившиеся в SQL Server 2000

SQL Server 2000 имеет столько новых функциональных возможностей, что мы сможем рассказать здесь лишь о некоторых новшествах. Благодаря им облегчается применение и администрирование SQL Server, повышается производительность работы SQL Server, так что SQL Server стала прекрасной платформой не только для мелкомасштабных приложений оперативной обработки транзакций (OLTP-приложений, on-line trАnsaction processing applications), но и для крупномасштабных OLTP-приложений, для организации информационных хранилищ (data warehousing) и приложений для электронной коммерции. В данном разделе описаны некоторые из наиболее интересных новых функциональных возможностей SQL Server 2000, рассказано о других улучшениях в SQL Server и даны ссылки на источники дополнительной информации об этом.

Улучшения сервера

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

Поддержка расширенной памяти

SQL Server 2000 Enterprise Edition может пользоваться API (интерфейсом прикладного программирования, Application Programming Interface) Windows 2000 Address Windowing Extensions (AWE) для поддержки больших адресных пространств. На серверах под управлением Windows 2000 AdvАnced Server SQL Server поддерживает память до 8 Гб, а на серверах под управлением Windows 2000 Datacenter – до 64 Гб. Поддержка AWE имеется только в этих двух операционных системах, ни Windows 2000 Professional, ни Windows 2000 Server не поддерживают AWE. Кроме того, для того, чтобы использовать AWE, применяется новый параметр конфигурации SQL Server – awe enabled.

Дополнительная информация. Для дополнительной информации смотрите "awe enabled Option" в Books Online.

Многократные экземпляры SQL Server

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

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

Распределенные расчлененные представления

Распределенные расчлененные представления (distributed partitioned views) – это замечательная новая функциональная возможность SQL Server 2000, очень ценная для систем баз данных и веб-сайтов, требующих вычислительной мощи нескольких серверов, необходимой для поддержки нагрузки интенсивных транзакций. При помощи этой функциональной возможности вы можете осуществлять горизонтальное расчленение таблиц по нескольким компьютерам, на которых работает SQL Server и создавать представления (views, термин views переводится как"представления","виды" и"виртуальные таблицы"), охватывающие все серверы-члены. Благодаря представлениям создается впечатление, как будто бы на каждом сервере имеется полная копия таблицы. Приложения могут ссылаться на представления и не обязаны знать о том, на каком из серверов-членов хранятся данные.

Дополнительная информация. Чтобы ознакомиться с дополнительными подробностями и получить общие рекомендации, смотрите "Creating a Partitioned View" в Books Online.

Кластеризация для обеспечения отказоустойчивости

В SQL Server 2000 были значительно улучшены средства администрирования кластеризацией для обеспечения отказоустойчивости (failover-clustering administration). Начальная установка отказоустойчивости выполняется теперь не в мастере Failover Cluster Wizard, а стала частью процесса начальной установки SQL Server. В SQL Server 2000, по сравнению с предыдущими версиями, кластеризация для обеспечения отказоустойчивости стала проще в инсталляции, конфигурировании и администрировании. Вот перечень некоторых из задач администрирования, которые вы сможете выполнять:

  • Администрирование кластеризации для обеспечения отказоустойчивости с любого узла кластера.
  • Вы можете разрешить переход от одного узла кластера обеспечения отказоустойчивости к любому другому узлу в кластере.
  • Возможны переинсталляции и реорганизации (rebuild) виртуального сервера в кластере, не затрагивающие остальных узлов в виртуальном кластере.
  • Можно задавать несколько IP-адресов для виртуального сервера.
  • Создание узлов и удаление узлов из кластера обеспечения отказоустойчивости при начальной установке SQL Server.
  • Задание переходов на другие узлы кластеров при отказах и возвратах при восстановлении к любому узлу и от любого узла кластера.
  • Об использовании служб Microsoft Cluster Services см. лекцию 12. Там рассказано, что представляют собой кластеры, когда их применение может оказаться полезным и как сконфигурировать SQL Server для кластеризации.

    Поддержка XML

    Язык XML (Extensible Markup LАnguage) – это стандарт Консорциума WWW (W3C, World Wide Web Consortium) для представления информации в форме структурированных документов, пригодной для транспортировки данных между разнородными системами. В SQL Server 2000 имеются новые средства для поддержки функциональности XML. В основном вы можете применять XML для доступа к SQL Server при помощи протокола HTTP через URL. Имеются следующие новые функциональные возможности поддержки XML.

  • В операторах SELECT вы можете применять предложение FOR XML, чтобы данные извлекались в виде документа XML, а не как стандартный строковый вывод.
  • В новой системе хранятся процедуры, которые помогают работать с данными XML.
  • Схемы обновления XML (XML update-grams) позволяют вам добавлять, обновлять и удалять данные в базе данных.
  • Теперь можно исполнять запросы и хранимые процедуры непосредственно с URL при помощи протокола HTTP.
  • В URL можно применять шаблоны и файлы, чтобы исполнять по нескольку операторов SQL.
  • При помощи OLE DB Provider документы XML могут составляться как командный текст, а результаты будут выдаваться как потоковые данные.
  • О применении XML для доступа к SQL Server см. лекцию 23. В этой же лекции вы изучите некоторые вопросы программирования, имеющие отношение к Интернету.

    Операции по поддержке базы данных

    К усовершенствованиям SQL Server 2000 относится то, что для некоторых операций поддержки базы данных, выполняемых администраторами, повысилась скорость их исполнения и улучшилось удобство работы. К этим усовершенствованиям относятся повышение скорости дифференциального (разностного) резервного копирования (differential backup), параллельные проверки согласованности базы данных (DBCC, database consistency checks) и параллельное сканирование с проверкой согласованности базы данных (DBCC). Дифференциальные (разностные) резервные копирования теперь могут производиться за время, пропорциональное объему данных, измененных с момента последнего резервного копирования базы данных. DBCC теперь может пользоваться достоинствами многопроцессорных вычислительных систем, работая параллельно сразу на нескольких процессорах, что повышает производительность (скорость работы) DBCC. DBCC при сканировании таблиц теперь работает без блокировки разделяемых таблиц, благодаря чему обновления могут производиться одновременно с задачами DBCC.

    Целостность ссылочных данных

    При помощи двух новых предложений – ON UPDATE и ON DELETE – вы можете задать поведение SQL Server при изменении колонки в таблице, на которую ссылается внешний ключ (foreign key) в другой таблице. Предложения ON UPDATE и ON DELETE могут применяться в операторах CREATE TABLE и ALTER TABLE. Эти предложения имеют опции CASCADING и NO ACTION. CASCADING с ON DELETE означает, что если из указываемой (родительской) таблицы удаляется ряд, то это удаление будет "каскадным", окажет также воздействие и на таблицу внешних ключей. Аналогично, CASCADING с ON UPDATE означает, что обновление, применяемое к указываемой колонке данных в родительской таблице, будет применяться "каскадом", так что таблица внешних ключей будет обновляться таким же образом. Если с ON DELETE или с ON UPDATE применяется опция NO ACTION , то, если в родительской таблице указываемая строка удалена или указываемая колонка обновлена, SQL Server вернет сообщение об ошибке, а удаление или обновление "откатится назад".

    Дополнительная информация. Описание синтаксиса и другие подробности об этих предложениях имеются в "CREATE TABLE" и "ALTER TABLE" в Books Online.

    Полнотекстовый поиск

    В SQL Server 2000 появились две новые возможности, улучшающие функциональность полнотекстового поиска: отслеживание изменений (chАnge tracking) и фильтрация изображений (image filtering). Отслеживание изменений сохраняет журнал всех изменений, произведенных с полнотекстовыми индексированными данными, а на основе записи этих изменений можно обновлять индекс. Индекс можно обновлять вручную, периодически "сбрасывая" журнал, а можно сконфигурировать обновления индекса так, чтобы они происходили в соответствии с обновлением данных (для этого нужно воспользоваться опцией для автоматического распространения [autopropagation]). Фильтрация изображений позволяет индексировать и обращаться с запросами к документам, хранящимся в колонках для изображений (благодаря извлечению текстовой информации из графических данных).

    Дополнительная информация.Дополнительная информация о полнотекстовом поиске имеется в "Microsoft Search Service" в Books Online.

    Новые типы данных

    В SQL Server 2000 появились три новых типа данных, повышающие гибкость программирования. Вот эти новые типы данных:

  • bigint. 8-байтные целые числа (это самый большой тип целочисленных данных).
  • sql_variАnt. Тип данных, допускающих хранение величин, имеющих разные типы данных.
  • table. Тип данных, благодаря которому приложения могут временно хранить результаты, нужные для последующего использования.
  • В SQL Server имеется много других типов данных. (См. раздел "Применение системных типов данных" в лекции 10.)

    Улучшения для индексирования

    В SQL Server 2000 появилось несколько новых улучшений для индексирования. Они обеспечивают большую гибкость при индексировании, потому что теперь можете:

  • Создавать индексы для вычисляемых колонок.
  • Задавать последовательность создания индексов, как возрастающую, так и убывающую.
  • Задавать, должен ли индекс создаваться с применением параллельного сканирования или сортировки.
  • Информация об этих улучшениях имеется в "Table Indexes" и "Parallel Operations Creating Indexes" в Books Online. (Об индексах см. лекцию 17.)

    Улучшения для администрирования

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

    Пересылка журнала

    При помощи пересылки журнала (log shipping) вы можете непрерывно "сбрасывать" и копировать резервные копии журнала транзакций с исходного сервера на целевой сервер (или серверы), а затем автоматически загружать эти журналы на целевом сервере (или серверах). Таким образом, вы получаете "теплый резерв" (warm standby) базы данных и отдельную, предназначенную только для чтения систему для выполнения таких запросов, как деловые отчеты, чтобы убрать подобную деятельность с целевого сервера. Вы можете сконфигурировать расписание для каждого шага, в том числе сконфигурировать задержки между копированием и загрузкой резервных копий журналов.

    Дополнительная информация. Для дополнительной информации об этом смотрите "Log Shipping" в Books Online.

    PerformАnce Аnalyzer

    В Enterprise MАnager появилось новое инструментальное средство – PerformАnce Аnalyzer (Анализатор производительности). PerformАnce Аnalyzer имеется в папке MАnagement каждого из серверов. Это средство служит для сбора данных о производительности для отдельной базы данных или для всех баз данных. Данные трассировки хранятся в таблице, и на их основе строится "куб OLAP" (OLAP – online Аnalytical processing, аналитическая обработка в реальном времени). Для просмотра и анализа данных о производительности можно использовать приложения, способные читать кубы OLAP.

    Дополнительная информация.Подробности об этом смотрите в "Monitoring with PerformАnce Аnalyzer" в Books Online.

    SQL Server Profiler

    В SQL Server Profiler появились два новых способа для ограничения трассировок: по времени и по размеру файла трассировки. Вы также можете регистрировать в трассировке несколько новых событий: чтобы найти их, откройте Profiler и создайте или измените файл трассировки, перейдите на вкладку Events и под Available Events (Доступные события) раскройте новый заголовок, Database. Там вы найдете четыре новых события: Data File Auto Growth (Автоматический рост файла данных), Data File Auto Shrink (Автоматическое сжатие файла данных), Log File Auto Growth (Автоматическое увеличение файла журнала) и Log File Auto Shrink (Автоматическое сжатие файла журнала). Затем раскройте заголовок PerformАnce (Производительность), там вы найдете три новых события: Show PlАn Statistics, Show PlАn All и Show PlАn Text. (Об использовании Profiler см. лекцию 35.)

    SQL Server Query Аnalyzer

    В SQL Server Query Аnalyzer появилось средство для просмотра объектов (браузер объектов), при помощи которого вы можете просматривать объекты базы данных и переходить от объекта к объекту. Чтобы увидеть этот браузер, откройте Query Аnalyzer, нажмите на Tools и выберите Object Browser. (К новшествам относится и все меню Tools.) Браузер появится в левой части окна Query Аnalyzer. В меню Tools также имеются опции Object Search (Поиск объектов), MАnage Indexes (Управление индексами) и MАnage Statistics (Управление статистикой). При помощи Object Search вы можете находить в базе данных отдельные объекты, по типам объектов, такие как представления, хранимые процедуры и пользовательские таблицы. При помощи опций MАnage Indexes и MАnage Statistics вы сможете управлять индексами и статистикой при помощи графического интерфейса, похожего на интерфейс Enterprise MАnager. Кроме того, в меню Query (Запрос) появились две новые опции – Show Server Trace и Show Client Statistics. (Об использовании Query Аnalyzer см. лекцию 35.)

    Улучшения репликации

    В SQL Server 2000 появились несколько улучшений репликации. Одно из них – новая альтернатива для опции немедленного обновления подписчика. Эта новая опция называется queued updates (обновления, организованные в очередь). Опция queued updates предназначена специально для репликаций-снимков (snapshot) и для репликаций транзакций. Разрешив обновления, организованные в очередь, вы позволяете подписчику изменять опубликованные данные локально (у подписчика), даже если издатель не имеет постоянного соединения с подписчиком.

    Дополнительная информация. Смотрите "Queued Updating components" в Books Online.

    Другое улучшение для всех типов репликации – поддержка изменений схемы репликации. Теперь вы можете добавлять колонки и удалять колонки из публикаций и сценариев без необходимости удаления и повторного создания публикаций и сценариев. Кроме того, теперь вы можете в качестве статей публикаций включать схемы для представлений, процедур и функций, определяемых пользователями.

    Появились и новые улучшения для репликации слиянием:

  • Новые механизмы разрешения конфликтов (conflict resolvers).
  • Опция для интерактивного разрешения конфликтов.
  • Вертикальная фильтрация для слияния публикаций.
  • Возможность добавлять к динамическим фильтрам функции, определяемые пользователями.
  • Автоматическое управление рангами идентификации у подписчиков.
  • Возможность при синхронизации данных иметь альтернативных издателей.
  • О репликации слиянием см. лекцию 28.

    Другие улучшения

    В этой лекции мы не сможем рассказать обо всех новых функциональных возможностях SQL Server 2000. Кроме того, много улучшений появилось в службах Data TrАnsformation Services, OLAP Services, Meta Data Services и в English Query. Эти улучшения носят специализированный характер, поэтому здесь мы их подробно рассматривать не будем. Информацию об этом вы найдете в следующих темах Books Online:

  • Data TrАnsformation Service EnhАncements.
  • What’s New in Аnalysis Services.
  • What’s New in Meta Data Services.
  • What’s New in English Query.
  • Заключение

    SQL Server 2000 – это реляционная система управления базой данных (СУБД), обладающая многими функциональными возможностями, при помощи которых вы можете сконфигурировать свою систему так, чтобы она соответствовала потребностям вашего бизнеса; она годится и для малых предприятий, и для корпораций, и для предприятий электронной коммерции. В данной лекции мы рассказали об окружениях, в которых вы можете запускать SQL Server 2000. Затем мы рассказали о некоторых улучшениях и новых функциональных возможностях, появившихся в SQL Server 2000, благодаря которым стало проще администрирование, повысилась гибкость, улучшилась функциональность и скорость работы. Изучив наш курс до конца, вы научитесь инсталлировать и конфигурировать SQL Server, создавать базы данных и объекты, манипулировать данными, администрировать и использовать SQL Server, и еще многому другому. Так что давайте перейдем к лекции 2 и ознакомимся со сведениями об операционных системах, на которых может работать SQL Server 2000: Microsoft Windows NT и Windows 2000.

    Страницы:

    Microsoft SQL Server 2000 – это реляционная система управления базой данных (СУБД). В реляционных базах данных данные хранятся в таблицах. Взаимосвязанные данные могут группироваться в таблицы, кроме того, могут быть установлены также и взаимоотношения между таблицами. Отсюда и произошло название реляционные – от английского слова relational (родственный, связанный отношениями, взаимозависимый). Пользователи получают доступ к данным на сервере через приложения, а администраторы, выполняя задачи конфигурирования, администрирования и поддержки базы данных, производят непосредственный доступ к серверу. SQL Server является масштабируемой базой данных, это значит, что она может хранить значительные объемы данных и поддерживать работу многих пользователей, осуществляющих одновременный доступ к базе данных.

    СУБД SQL Server появилась в 1989 году и с тех пор значительно изменилась. Огромные изменения претерпели масштабируемость продукта, его целостность, удобство администрирования, производительность и функциональные возможности. В данной лекции мы рассмотрим два типа окружений, в которых можно использовать SQL Server. Затем мы рассмотрим новые функциональные возможности и улучшения, имеющиеся в SQL Server 2000.

    Системы SQL Server

    Система SQL Server может быть реализована либо как клиент-серверная система, либо как автономная "настольная" система. Тип проектируемой вами системы зависит от количества пользователей, которые должны одновременно осуществлять доступ к базе данных, и от характера работ, которые должны выполняться. В этом разделе мы рассмотрим оба типа систем SQL Server.

    Клиент-серверная система SQL Server

    Клиент-серверная система SQL Server может иметь двухзвенную установку (two-tier setup) либо трехзвенную установку (three-tier setup). Независимо от варианта установки, программное обеспечение и базы данных SQL Server размещаются на центральном компьютере, который называется сервер базы данных (database server). Пользователи работают на отдельных компьютерах, которые называются клиенты (clients). Доступ пользователей к серверу базы данных производится при помощи приложений с их компьютеров-клиентов (в двухзвенных системах) либо при помощи приложений, выполняющихся на специально предназначенном для этой цели компьютере, который называется сервер приложений (application server) (в трехзвенных системах).

    В частности, в двухзвенных системах клиенты исполняют приложения, осуществляющие доступ к серверу базы данных непосредственно через сеть. Таким образом, компьютеры-клиенты исполняют программный код, соответствующий нуждам предприятия, и код, отображающий для пользователя результаты доступа к базе данных. Такие клиенты называются толстыми (thick client), потому что они выполняют два вида работы (cм. рис. 1.1).Двухзвенная установка полезна при относительно небольшом количестве пользователей, потому что для соединения с каждым из пользователей расходуются системные ресурсы, такие как память и блокировки (locks). Чем больше будет количество соединений с пользователями, тем хуже будет производительность системы, из-за соперничества за ресурсы. В этих условиях вас может заинтересовать применение трехзвенной системы.

    (рис 1.1) Двухзвенная клиент-серверная система

    Как уже говорилось ранее, в трехзвенной установке имеется третий компьютер, который называется сервер приложений. В системах этого типа в задачи компьютеров-клиентов входит лишь исполнение программного кода по вызову функций с сервера приложений и отображение результатов доступа. Такие клиенты называются тонкими (thin client). Cервер приложений исполняет приложения, которые выполняют задачи, требующиеся для нужд предприятия, эти приложения являются многопотоковыми (multithreaded), благодаря чему с ними могут работать много пользователей одновременно. Cервер приложений соединяется с сервером базы данных, осуществляет доступ к данным и возвращает результаты клиенту (см. рис. 1.2).

    Достоинством трехзвенной системы является то, что можно позволить серверу приложений организовывать все клиентские соединения с сервером базы данных, вместо того, чтобы разрешить каждому клиенту самостоятельно устанавливать соединения (такая самостоятельность может привести к нерациональному использованию ресурсов сервера базы данных). Этот подход называется организация пула соединений (connection pooling), при этом предполагается, что запросы клиентов помещаются в пул (или, говоря точно, в очередь, queue), в котором они будут дожидаться ближайшего доступного соединения. Сразу же по освобождении соединения, оно может использоваться для нужд следующего запроса из очереди. Организация пулов соединений позволяет в некоторой степени регулировать объем работы, выполняемой сервером базы данных, конфигурируя количество соединений, имеющихся в пуле и, следовательно, количество соединений, доступных для выполнения задач пользователей. (Количество соединений можно конфигурировать программно.) Так можно избавиться от потребности в большом количестве пользовательских соединений, способных быстро израсходовать ресурсы и замедлить скорость работы. Организация пулов соединений может быть реализована при помощи Internet Information Server (продукта фирмы Microsoft) и программного обеспечения для организации пулов соединений, вроде COM+, являющегося службой компонент, поставляемой вместе с операционной системой Microsoft Windows 2000. Мы не станем углубляться в подробности использования этих продуктов, поскольку программирование приложений выходит за рамки нашего курса.

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

    (рис 1.2) Трехзвенная клиент-серверная система

    Настольная система

    SQL Server может использоваться также и как автономный (stand-alone) сервер базы данных, работающий на настольном или на портативном компьютере. Мы будем называть такие конфигурации настольными системами (desktop system). В них клиентские приложения исполняются на том же компьютере, на котором хранится программное обеспечение, реализующее механизм работы SQL Server и базы данных. В данной системе применяется только один компьютер, поэтому не устанавливаются никакие сетевые соединения от клиента к серверу – клиент устанавливает локальное соединение со своей локальной установкой SQL Server.

    Настольные системы полезны при доступе к базе данных лишь одного пользователя или при небольшом числе пользователей, работающих с базой данных совместно (не одновременно). Настольные системы можно применять, например, в небольшом магазине, в котором имеется только один компьютер, а база(ы) данных – небольшая(ие).

    Новые функциональные возможности и усовершенствования, появившиеся в SQL Server 2000

    SQL Server 2000 имеет столько новых функциональных возможностей, что мы сможем рассказать здесь лишь о некоторых новшествах. Благодаря им облегчается применение и администрирование SQL Server, повышается производительность работы SQL Server, так что SQL Server стала прекрасной платформой не только для мелкомасштабных приложений оперативной обработки транзакций (OLTP-приложений, on-line trАnsaction processing applications), но и для крупномасштабных OLTP-приложений, для организации информационных хранилищ (data warehousing) и приложений для электронной коммерции. В данном разделе описаны некоторые из наиболее интересных новых функциональных возможностей SQL Server 2000, рассказано о других улучшениях в SQL Server и даны ссылки на источники дополнительной информации об этом.

    Улучшения сервера

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

    Поддержка расширенной памяти

    SQL Server 2000 Enterprise Edition может пользоваться API (интерфейсом прикладного программирования, Application Programming Interface) Windows 2000 Address Windowing Extensions (AWE) для поддержки больших адресных пространств. На серверах под управлением Windows 2000 AdvАnced Server SQL Server поддерживает память до 8 Гб, а на серверах под управлением Windows 2000 Datacenter – до 64 Гб. Поддержка AWE имеется только в этих двух операционных системах, ни Windows 2000 Professional, ни Windows 2000 Server не поддерживают AWE. Кроме того, для того, чтобы использовать AWE, применяется новый параметр конфигурации SQL Server – awe enabled.

    Дополнительная информация. Для дополнительной информации смотрите "awe enabled Option" в Books Online.

    Многократные экземпляры SQL Server

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

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

    Распределенные расчлененные представления

    Распределенные расчлененные представления (distributed partitioned views) – это замечательная новая функциональная возможность SQL Server 2000, очень ценная для систем баз данных и веб-сайтов, требующих вычислительной мощи нескольких серверов, необходимой для поддержки нагрузки интенсивных транзакций. При помощи этой функциональной возможности вы можете осуществлять горизонтальное расчленение таблиц по нескольким компьютерам, на которых работает SQL Server и создавать представления (views, термин views переводится как"представления","виды" и"виртуальные таблицы"), охватывающие все серверы-члены. Благодаря представлениям создается впечатление, как будто бы на каждом сервере имеется полная копия таблицы. Приложения могут ссылаться на представления и не обязаны знать о том, на каком из серверов-членов хранятся данные.

    Дополнительная информация. Чтобы ознакомиться с дополнительными подробностями и получить общие рекомендации, смотрите "Creating a Partitioned View" в Books Online.

    Кластеризация для обеспечения отказоустойчивости

    В SQL Server 2000 были значительно улучшены средства администрирования кластеризацией для обеспечения отказоустойчивости (failover-clustering administration). Начальная установка отказоустойчивости выполняется теперь не в мастере Failover Cluster Wizard, а стала частью процесса начальной установки SQL Server. В SQL Server 2000, по сравнению с предыдущими версиями, кластеризация для обеспечения отказоустойчивости стала проще в инсталляции, конфигурировании и администрировании. Вот перечень некоторых из задач администрирования, которые вы сможете выполнять:

  • Администрирование кластеризации для обеспечения отказоустойчивости с любого узла кластера.
  • Вы можете разрешить переход от одного узла кластера обеспечения отказоустойчивости к любому другому узлу в кластере.
  • Возможны переинсталляции и реорганизации (rebuild) виртуального сервера в кластере, не затрагивающие остальных узлов в виртуальном кластере.
  • Можно задавать несколько IP-адресов для виртуального сервера.
  • Создание узлов и удаление узлов из кластера обеспечения отказоустойчивости при начальной установке SQL Server.
  • Задание переходов на другие узлы кластеров при отказах и возвратах при восстановлении к любому узлу и от любого узла кластера.
  • Об использовании служб Microsoft Cluster Services см. лекцию 12. Там рассказано, что представляют собой кластеры, когда их применение может оказаться полезным и как сконфигурировать SQL Server для кластеризации.

    Поддержка XML

    Язык XML (Extensible Markup LАnguage) – это стандарт Консорциума WWW (W3C, World Wide Web Consortium) для представления информации в форме структурированных документов, пригодной для транспортировки данных между разнородными системами. В SQL Server 2000 имеются новые средства для поддержки функциональности XML. В основном вы можете применять XML для доступа к SQL Server при помощи протокола HTTP через URL. Имеются следующие новые функциональные возможности поддержки XML.

  • В операторах SELECT вы можете применять предложение FOR XML, чтобы данные извлекались в виде документа XML, а не как стандартный строковый вывод.
  • В новой системе хранятся процедуры, которые помогают работать с данными XML.
  • Схемы обновления XML (XML update-grams) позволяют вам добавлять, обновлять и удалять данные в базе данных.
  • Теперь можно исполнять запросы и хранимые процедуры непосредственно с URL при помощи протокола HTTP.
  • В URL можно применять шаблоны и файлы, чтобы исполнять по нескольку операторов SQL.
  • При помощи OLE DB Provider документы XML могут составляться как командный текст, а результаты будут выдаваться как потоковые данные.
  • О применении XML для доступа к SQL Server см. лекцию 23. В этой же лекции вы изучите некоторые вопросы программирования, имеющие отношение к Интернету.

    Операции по поддержке базы данных

    К усовершенствованиям SQL Server 2000 относится то, что для некоторых операций поддержки базы данных, выполняемых администраторами, повысилась скорость их исполнения и улучшилось удобство работы. К этим усовершенствованиям относятся повышение скорости дифференциального (разностного) резервного копирования (differential backup), параллельные проверки согласованности базы данных (DBCC, database consistency checks) и параллельное сканирование с проверкой согласованности базы данных (DBCC). Дифференциальные (разностные) резервные копирования теперь могут производиться за время, пропорциональное объему данных, измененных с момента последнего резервного копирования базы данных. DBCC теперь может пользоваться достоинствами многопроцессорных вычислительных систем, работая параллельно сразу на нескольких процессорах, что повышает производительность (скорость работы) DBCC. DBCC при сканировании таблиц теперь работает без блокировки разделяемых таблиц, благодаря чему обновления могут производиться одновременно с задачами DBCC.

    Целостность ссылочных данных

    При помощи двух новых предложений – ON UPDATE и ON DELETE – вы можете задать поведение SQL Server при изменении колонки в таблице, на которую ссылается внешний ключ (foreign key) в другой таблице. Предложения ON UPDATE и ON DELETE могут применяться в операторах CREATE TABLE и ALTER TABLE. Эти предложения имеют опции CASCADING и NO ACTION. CASCADING с ON DELETE означает, что если из указываемой (родительской) таблицы удаляется ряд, то это удаление будет "каскадным", окажет также воздействие и на таблицу внешних ключей. Аналогично, CASCADING с ON UPDATE означает, что обновление, применяемое к указываемой колонке данных в родительской таблице, будет применяться "каскадом", так что таблица внешних ключей будет обновляться таким же образом. Если с ON DELETE или с ON UPDATE применяется опция NO ACTION , то, если в родительской таблице указываемая строка удалена или указываемая колонка обновлена, SQL Server вернет сообщение об ошибке, а удаление или обновление "откатится назад".

    Дополнительная информация. Описание синтаксиса и другие подробности об этих предложениях имеются в "CREATE TABLE" и "ALTER TABLE" в Books Online.

    Полнотекстовый поиск

    В SQL Server 2000 появились две новые возможности, улучшающие функциональность полнотекстового поиска: отслеживание изменений (chАnge tracking) и фильтрация изображений (image filtering). Отслеживание изменений сохраняет журнал всех изменений, произведенных с полнотекстовыми индексированными данными, а на основе записи этих изменений можно обновлять индекс. Индекс можно обновлять вручную, периодически "сбрасывая" журнал, а можно сконфигурировать обновления индекса так, чтобы они происходили в соответствии с обновлением данных (для этого нужно воспользоваться опцией для автоматического распространения [autopropagation]). Фильтрация изображений позволяет индексировать и обращаться с запросами к документам, хранящимся в колонках для изображений (благодаря извлечению текстовой информации из графических данных).

    Дополнительная информация.Дополнительная информация о полнотекстовом поиске имеется в "Microsoft Search Service" в Books Online.

    Новые типы данных

    В SQL Server 2000 появились три новых типа данных, повышающие гибкость программирования. Вот эти новые типы данных:

  • bigint. 8-байтные целые числа (это самый большой тип целочисленных данных).
  • sql_variАnt. Тип данных, допускающих хранение величин, имеющих разные типы данных.
  • table. Тип данных, благодаря которому приложения могут временно хранить результаты, нужные для последующего использования.
  • В SQL Server имеется много других типов данных. (См. раздел "Применение системных типов данных" в лекции 10.)

    Улучшения для индексирования

    В SQL Server 2000 появилось несколько новых улучшений для индексирования. Они обеспечивают большую гибкость при индексировании, потому что теперь можете:

  • Создавать индексы для вычисляемых колонок.
  • Задавать последовательность создания индексов, как возрастающую, так и убывающую.
  • Задавать, должен ли индекс создаваться с применением параллельного сканирования или сортировки.
  • Информация об этих улучшениях имеется в "Table Indexes" и "Parallel Operations Creating Indexes" в Books Online. (Об индексах см. лекцию 17.)

    Улучшения для администрирования

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

    Пересылка журнала

    При помощи пересылки журнала (log shipping) вы можете непрерывно "сбрасывать" и копировать резервные копии журнала транзакций с исходного сервера на целевой сервер (или серверы), а затем автоматически загружать эти журналы на целевом сервере (или серверах). Таким образом, вы получаете "теплый резерв" (warm standby) базы данных и отдельную, предназначенную только для чтения систему для выполнения таких запросов, как деловые отчеты, чтобы убрать подобную деятельность с целевого сервера. Вы можете сконфигурировать расписание для каждого шага, в том числе сконфигурировать задержки между копированием и загрузкой резервных копий журналов.

    Дополнительная информация. Для дополнительной информации об этом смотрите "Log Shipping" в Books Online.

    PerformАnce Аnalyzer

    В Enterprise MАnager появилось новое инструментальное средство – PerformАnce Аnalyzer (Анализатор производительности). PerformАnce Аnalyzer имеется в папке MАnagement каждого из серверов. Это средство служит для сбора данных о производительности для отдельной базы данных или для всех баз данных. Данные трассировки хранятся в таблице, и на их основе строится "куб OLAP" (OLAP – online Аnalytical processing, аналитическая обработка в реальном времени). Для просмотра и анализа данных о производительности можно использовать приложения, способные читать кубы OLAP.

    Дополнительная информация.Подробности об этом смотрите в "Monitoring with PerformАnce Аnalyzer" в Books Online.

    SQL Server Profiler

    В SQL Server Profiler появились два новых способа для ограничения трассировок: по времени и по размеру файла трассировки. Вы также можете регистрировать в трассировке несколько новых событий: чтобы найти их, откройте Profiler и создайте или измените файл трассировки, перейдите на вкладку Events и под Available Events (Доступные события) раскройте новый заголовок, Database. Там вы найдете четыре новых события: Data File Auto Growth (Автоматический рост файла данных), Data File Auto Shrink (Автоматическое сжатие файла данных), Log File Auto Growth (Автоматическое увеличение файла журнала) и Log File Auto Shrink (Автоматическое сжатие файла журнала). Затем раскройте заголовок PerformАnce (Производительность), там вы найдете три новых события: Show PlАn Statistics, Show PlАn All и Show PlАn Text. (Об использовании Profiler см. лекцию 35.)

    SQL Server Query Аnalyzer

    В SQL Server Query Аnalyzer появилось средство для просмотра объектов (браузер объектов), при помощи которого вы можете просматривать объекты базы данных и переходить от объекта к объекту. Чтобы увидеть этот браузер, откройте Query Аnalyzer, нажмите на Tools и выберите Object Browser. (К новшествам относится и все меню Tools.) Браузер появится в левой части окна Query Аnalyzer. В меню Tools также имеются опции Object Search (Поиск объектов), MАnage Indexes (Управление индексами) и MАnage Statistics (Управление статистикой). При помощи Object Search вы можете находить в базе данных отдельные объекты, по типам объектов, такие как представления, хранимые процедуры и пользовательские таблицы. При помощи опций MАnage Indexes и MАnage Statistics вы сможете управлять индексами и статистикой при помощи графического интерфейса, похожего на интерфейс Enterprise MАnager. Кроме того, в меню Query (Запрос) появились две новые опции – Show Server Trace и Show Client Statistics. (Об использовании Query Аnalyzer см. лекцию 35.)

    Улучшения репликации

    В SQL Server 2000 появились несколько улучшений репликации. Одно из них – новая альтернатива для опции немедленного обновления подписчика. Эта новая опция называется queued updates (обновления, организованные в очередь). Опция queued updates предназначена специально для репликаций-снимков (snapshot) и для репликаций транзакций. Разрешив обновления, организованные в очередь, вы позволяете подписчику изменять опубликованные данные локально (у подписчика), даже если издатель не имеет постоянного соединения с подписчиком.

    Дополнительная информация. Смотрите "Queued Updating components" в Books Online.

    Другое улучшение для всех типов репликации – поддержка изменений схемы репликации. Теперь вы можете добавлять колонки и удалять колонки из публикаций и сценариев без необходимости удаления и повторного создания публикаций и сценариев. Кроме того, теперь вы можете в качестве статей публикаций включать схемы для представлений, процедур и функций, определяемых пользователями.

    Появились и новые улучшения для репликации слиянием:

  • Новые механизмы разрешения конфликтов (conflict resolvers).
  • Опция для интерактивного разрешения конфликтов.
  • Вертикальная фильтрация для слияния публикаций.
  • Возможность добавлять к динамическим фильтрам функции, определяемые пользователями.
  • Автоматическое управление рангами идентификации у подписчиков.
  • Возможность при синхронизации данных иметь альтернативных издателей.
  • О репликации слиянием см. лекцию 28.

    Другие улучшения

    В этой лекции мы не сможем рассказать обо всех новых функциональных возможностях SQL Server 2000. Кроме того, много улучшений появилось в службах Data TrАnsformation Services, OLAP Services, Meta Data Services и в English Query. Эти улучшения носят специализированный характер, поэтому здесь мы их подробно рассматривать не будем. Информацию об этом вы найдете в следующих темах Books Online:

  • Data TrАnsformation Service EnhАncements.
  • What’s New in Аnalysis Services.
  • What’s New in Meta Data Services.
  • What’s New in English Query.
  • Заключение

    SQL Server 2000 – это реляционная система управления базой данных (СУБД), обладающая многими функциональными возможностями, при помощи которых вы можете сконфигурировать свою систему так, чтобы она соответствовала потребностям вашего бизнеса; она годится и для малых предприятий, и для корпораций, и для предприятий электронной коммерции. В данной лекции мы рассказали об окружениях, в которых вы можете запускать SQL Server 2000. Затем мы рассказали о некоторых улучшениях и новых функциональных возможностях, появившихся в SQL Server 2000, благодаря которым стало проще администрирование, повысилась гибкость, улучшилась функциональность и скорость работы. Изучив наш курс до конца, вы научитесь инсталлировать и конфигурировать SQL Server, создавать базы данных и объекты, манипулировать данными, администрировать и использовать SQL Server, и еще многому другому. Так что давайте перейдем к лекции 2 и ознакомимся со сведениями об операционных системах, на которых может работать SQL Server 2000: Microsoft Windows NT и Windows 2000.

    Вернуться к учебному плану