ОбзорДистрибутивАрхитектураАдминистрированиеВопросы
для повторения
Обзор
Microsoft SQL Server(TM) 7.0 (далее SQLS7) это реляционная
СУБД, работающая в клиент-серверной архитектуре. Такая
архитектура позволяет разделять задачу между вычислительными
ресурсами сервера и клиента. Как правило, клиенту достаются
бизнес-правила, а серверу управление базами данных. СУБД
выстраивает взаимосвязи данных, обеспечивает корректность
добавления данных или их восстановление после сбоев и т.п.
Взаимодействие клиента и сервера может осуществляться по сети,
в широком понимании этого слова. Для обмена между клиентом и
сервером используется фирменный SQL - TransactSQL
(соответствует ANSI SQL-92).
SQLS7 работает на всех
существующих платформах Windows, кроме DOS и Windows 3.x.
Клиентские компоненты поддерживают и их, а кроме того работают
на UNIX и Apple. Для обеспечения безопасности данных SQLS7
может использовать, как систему безопасности Windows NT (TM)
(с которой он плотно интегрирован), так и с помощью
собственных, встроенных средств. Система безопасности
охватывает сетевой трафик, доступ к серверу и его объектам,
безопасность сетевых клиентов, как на платформе
Microsoft(R), так и других производителей. SQLS7 использует
SMP архитектуру операционной системы Windows NT (TM) и может
использовать любое количество из имеющихся у сервера
процессоров.
SQLS7 работает как сервис (служба), поэтому
его события фиксируются в журнале Windows NT (TM) (Application
log, System log, Security log), возможно удалe:нное управление
(запуск, остановка и т.д.), контроль работы с помощью
Performance Monitor. Возможно построение кластера двух SQLS7
при использование Cluster Server из состава Windows NT
Enterprise Edition(TM).
SQLS7 входит в состав Microsoft
BackOffice(r). Windows NT (TM) и IIS позволяют ему обслуживать
клиентов из Internet. Exchange через MAPI позволяют посылать
сообщения об ошибках и выполнении задач по расписанию или
исполнять запросы, полученные по E-mail. SNA сервер
обеспечивает интеграцию с серверами IBM, а SMS сервер
позволяет наладить управление и инвентаризацию железа и
софта. Кроме того, SMS хранит свои базы данных на
SQLS7.
Основным сервисом SQLS7 является MSSQLServer. Именно
ему адресуются все запросы и именно он управляет объектами
SQLS7. Разделение ресурсов SQLS7 в многопользовательской среде
и механизм блокировок, обработка транзакций, обеспечение
целостности и согласованности данных, вот его основные
функции. Обслуживание локальных и адресованных группе SQL
серверов заданий, а также управление и информирование
операторов SQLS7 обеспечивает сервис SQLServerAgent.
Задачи
организации обслуживания запросов к данным, размещe:нным на
разных SQL серверах, корректного исполнения распределe:нных
транзакций и их отката, выполняет сервис MS DTC (Distributed
Transaction Coordinator).
Возможность полнотекстового и
лингвистического поиска, обслуживание индексов по текстовым
данным обеспечивает сервис Microsoft Search.
Дистрибутив
Дистрибутив SQLS7 включает следующее ПО: SQL Server
Enterprise Manager - консоль администратора (интегрирована с
Microsoft Management Console из состава BackOffice);
SQL
Server Client Configuration - настройка клиентских компонент
работы с SQL сервером;
SQL Server Performance Monitor -
контроль работы сервера в реальном времени;
SQL Server
Profiler - аудитор работы сервера (трассировщик);
SQL
Server Query Analyzer - создание запросов с графическим
представлением планов их исполнения, SQL Server Service
Manager - старт, стоп, пауза SQL сервера;
SQL Server wizard
- конструктор, облегчающий пользователю работу с SQL
сервером;
SQL Server Books Online - электронная
документация на SQLS7;
Microsoft English Query - позволяет
пользователю писать запросы к SQLS7 на обычном английском
языке.
SQLS7 имеет развитый, контекстно-зависимый Help, а в
SQL Server Query Analyzer по клавише Shift+F1 можно получить
описание выделенного оператора.
Также, поставляются
программы, запускаемые из командной строки, позволяющие
создавать запросы и сценарии для SQLS7:
OSQL - посредством
ODBC пересылает SQL запрос (текст запроса содержится в файле)
серверу;
BCP - импорт, экспорт данных из/в текстовый
файл.
Элементы аналитической обработки данных решает служба
OLAP Microsoft SQL Server. Эта служба позволяет сохранять
данные SQLS7 или ORACLE в удобном для аналитики формате.
Архитектура
Для обеспечения мульти-протокольной работы приложений с
SQLS7 используется трёхуровневая модель обмена данными, как
для клиента, так и для
SQLS7.
Клиент->Programm->API->NetLib----->TDS----->NetLib->ODS->SQLS7->Сервер
Клиентскую
программу не интересует какой сетевой протокол доставит её
запросы к SQLS7. Она использует API для доступа к данным
заложенной в неё бизнес-логики. API доступа к базам данных
также заботит только отправка SQL запросов и выдача их
результатов приложению. Клиент, для доступа к базам данных
SQLS7, может использовать такие API, как OLE DB и ODBC (Object
Linking and Embending Data Base, Open Database Connectivity)
на системном уровне прикладных программ. OLE DB прекрасно
работает как с SQLS7, так и с другими данными. Например, с его
помощью организуется доступ к почтовому клиенту. ODBC больше
ориентирован на реляционные СУБД. На уровне приложений, клиент
может использовать более ограниченные функционально интерфейсы
объектов данных, такие, как ADO и RDO (ActiveX Data Objects,
Remote Data Objects). ADO - достаточно гибкий интерфейс,
который инкапсулирует многое из OLE DB. RDO инкапсулирует
некоторые многое из ODBC. Компонента Net Lib, как
правило, присутствует и на клиенте и на сервере и упаковывает
поток табличных данных (TDS) в сетевой протокол. В зависимости
от сетевой среды, могут использоваться следующие
протоколы: NetBEUTI, Named Pipes, TCP/IP, IPX/SPX,
VINES/IP, ADSP. Естественно, что на сервере и клиенте должны
быть задействованы одинаковые протоколы. Компонент ODS (Open
Data Services) управляет запросами клиентов и следит, чтобы
они не остались без ответа. Запросы принимаются и передаются
посредством всех задействованных на сервере сетевых
протоколов.
Администрирование
В поставку SQLS7 включены следующие средства
администрирования: Enterprise Manager, OSQL и BCP. Кроме того,
имеется возможность самим разрабатывать средства
администрирования SQLS7 на основе COM технологии. Enterprise
Manager и пользовательские программы, использующие
COM-объекты, обращаются к SQLS7 через стандартный набор COM
объектов SQL DMO (SQL Distributed Management Objects). Все
средства администрирования, для управления сервером используют
Trabsact-SQL. Многие задачи администрирования SQLS7
автоматизирует (или, по крайней мере, существенно упрощает)
SQL Server Agent. Его основные задачи это исполнение заданий
(по расписанию, по почте и т.п.), разного рода уведомления
(почта, пейджер), ведение журналов и оповещение,
репликация и синхронизация данных.
SQLS7 допускает к своим
объектам только зарегистрированных (имеющих у него учe:тную
запись) пользователей. Используются два типа учe:тных записей:
один для механизма идентификации SQLS7, а другой для механизма
идентификации Windows NT. Если использовать механизм SQLS7,
пользователь вводит Login, прописанный только в SQLS7. Если
используется механизм Windows NT, то используется учe:тная
запись или группа, определe:нная этой ОС (локальные или
глобальные). Определить соответствие учe:тных записей NT и
SQLS7, а также приписать их к конкретным БД должен системный
администратор (SA). Проверка подлинности пользователя SQLS7
осуществляется или только с использованием механизма NT или
возможен смешанный режим, допускающий применение обоих
механизмов.
SQLS7 использует понятие РОЛЬ, для объединения
пользователей в условные группы с одинаковыми правами. Роли
могут быть предопределe:нными, а также могут создаваться
пользователями, имеющими на это право. Например, права SA (в
представлении SQLS6.5) состоят из нескольких предопределe:нных
ролей и могут быть делегированы или распределены между
несколькими пользователями. РОЛИ бывают двух типов: серверные
(dbcreatir, diskadmin, processadmin, securityadmin,
serveradmin, setupadmin - настройка репликаций, sysadmin); баз
данных (public, db_owner, db_accessadmin, db_ddladmin -
управление объектами БД, db_securityadmin, db_backupoperator,
db_datareader, db_datawriter, db_denydatareader - не читать,
db_denydatawriter - не писать). Каждый запрос к SQLS7
проверяется на соответствие прав пославшего запрос
пользователя набору операций запроса, и, соответственно,
исполняется или отвергается.
SQLS7 имеет системные БД
(содержащие информацию, необходимую для управления системой) и
пользовательские. При инсталляции создаются 4 (а если
планируется репликация - 5) системные (master - содержит
объекты SQLS7 и описания БД/пользовательских объектов -
МЕТАДАННЫЕ, model - шаблон БД, tempdb - временные таблицы и
данные, msdb - содержит информацию для SQL Server Agent,
расписания, задачи и их журналы, distribution - для поддержки
репликаций) и две пробные, пользовательские БД (pubs,
northwind). БД содержит еe: объекты (наборы данных, таблиц,
индексов и т.д.) которые могут быть следующих типов: TABLE,
DATA TYPE (системные и пользовательские), CONSTRAINT
(ограничения значений, целостность, первичный ключ PK, внешний
ключ FK, проверка Check), DEFAULT - значение по умолчанию,
RULE - правила на допустимые значения и типы, INDEX -
кластерные и обычные индексы, VIEW - представление данных из
таблиц, TRIGGER - хранимая процедура, выполняемая при
изменении данных в таблице.
Набор системных таблиц
метаданных любой базы данных составляет еe: КАТАЛОГ. СИСТЕМНЫЙ
КАТАЛОГ хранится в БД MASTER и содержит метаданные обо всей
системе и обо всех БД. Полностью квалифицированное имя объекта
строится по правилу: ИМЯСЕРВЕРА.ИМЯБД.ВЛАДЕЛЕЦ.ОБЪЕКТ Указание
заглавной части имени объекта может опускаться, в зависимости
от текущего контекста. При позиционировании пользователя на
контекст объекта, возможно указание только ОБЪЕКТ. При
создании объекта с не полностью квалифицированным именем,
используются текущие значения контекста. В качестве ВЛАДЕЛЕЦ
пользователь может использовать доступную ему РОЛЬ. Для ролей
db_owner и db_ddladmin там можно указывать DBO.
Имена
системных таблиц начинаются на SYS. Для извлечения метаданных
из системных таблиц используются системные хранимые процедуры
(не рекомендуется использовать для приложений), системные
функции и т.н. информационные схемы.
Название системных
хранимых процедур начинается с SP_.
Представления
информационной схемы введены стандартом ANSI SQL для
обеспечения независимости от структуры системных
таблиц.
Клиент - серверные приложения для работы с SQLS7
строятся в трe:х уровнях: презентационный (алгоритм
представления данных), логический (бизнес-логика) и уровень
данных. Презентационный уровень отдаe:тся на откуп клиентскому
приложению, бизнес - логика может затрагивать как прикладную
программу, так и SQLS7, уровень данных - прерогатива
SQLS7.
Использование архитектурной схемы, когда
представление данных и бизнес-логика сосредоточены в
клиентской программе, а SQLS7 обслуживает только БД является
наиболее типичной для небольших организаций и именуется, как
"интеллектуальный клиент" (двухзвенка). При использовании
"слабых" компьютеров, вычислительную нагрузку можно перенести
на SQLS7. Такая схема называется "интеллектуальный сервер"
(двухзвенка).
Для приложений уровня предприятия наиболее
типично использование многоярусной архитектуры, когда в
двухзвенку встраиваются серверы приложений (трe:хзвенка). На
сегодняшний день актуальна и другая трe:хзвенная архитектура
для обслуживания клиентов из интернет. Здесь бизнес-правила и
представления обслуживаются веб-сервером, а клиенты пользуются
обычным браузером.
Разработка базы данных для клиентского
применения включает этапы проектирования БД (расчe:т
производительности железа, масштабирование, идентификация
объектов, моделирование и тестирование объектов и алгоритмов,
определение типов объектов), создание БД, тестирование и
настройка системы в целом, планирование развe:ртывания,
последующее администрирование.
В целом, администрирование
БД SQLS7 сводится к выполнению следующих задач: Инсталляция
SQLS7, настройка прав доступа и аудита, конфигурирование
SQLS7, создание БД, загрузка данных, резервное копирование и
ведение журналов транзакций, мониторинг и регулировка
параметров для обеспечения необходимой производительности
системы.
Ответы на вопросы для повторения
ВОПРОС
Вы создали в сервере SQL Server новую
учетную запись подключения для группы системы Windows NT. Вы
хотите, чтобы члены этой группы могли работать с сервером SQL
Server. Какие еще действия, связанные с управлением правами
доступа, Вам необходимо
предпринять?
ОТВЕТ
Необходимо добавить группу
системы Windows NT к базе данных, с которой должны работать
пользователи, и затем предоставить соответствующие права
доступа к объектам этой базы.
ВОПРОС
Вы
собираетесь разработать приложение для сервера SQL Server с
использованием объектов ActiveX(c) Data Objects (ADO) или
интерфейса OLE DB. Какие факторы следует учесть при
выборе?
ОТВЕТ
Объекты ADO легче для
программирования и обычно лучше подходит для разработки
деловых приложений. Интерфейс OLE DB обеспечивает лучший
контроль за поведением и производительностью приложения, но
его сложнее использовать.
ВОПРОС
Вам необходимо
просмотреть метаданные об объектах в базе данных сервера SQL
Server. Какими средствами следует
воспользоваться?
ОТВЕТ
Можно выполнить запросы к
представлениям информационной схемы, вызвать системные
хранимые процедуры или использовать системные функции. Вы
также могли бы обратиться к системным таблицам напрямую, но
это не рекомендуется, так как в будущих версиях сервера SQL
Server они могут измениться.