Ты можешь использовать SQL Server для управления двумя типами баз данных:
Online transaction processing (OLTP) databases
Online analytical processing (OLAP) databases
SQL Server поддерживает вертикальное масштабирование: вверх для использования больших баз данных и вниз для использования в малом бизнесе и протативных компьютерах. А так же поддерживает горизонтальное масштабирование, с помощью построения кластеров на платформе Windows 2000.
Ты можешь использовать SQL Server для выполнения транзакций, хранения и анализа данных, а также, для построения приложений. Семейство продуктов и технологий SQL Server удовлетворяет требованиям хранения данных OLAP и OLTP.
SQL Server – реляционная база данных:
Удовлетворяет клиент-серверной технологии.
Использует Transact SQL или XML для посылки запросов между клиентом и сервером. Есть и ещё multidimensional expressions (MDX) и SQL distributed objects (SQL-DMO), но они не столь распространены.
Система управления реляционными базами данных (RDBMS)
К системе управления реляционными базами относится:
Поддерживать отношения между данными и базой
Гарантировать, что данные хранятся корректно и определённые роли и отношения между данными не нарушены
Восстановление данных для обеспечения целостности при системных ошибках.
Модель хранения данных
Как я уже говорил, SQL Server использует OLTP и OLAP базы данных.
Данные в OLTP базах данных как правило организованы в реляционные таблицы для уменьшения избыточной информации и увеличения скорости обновления. SQL Server позволяет большому числу пользователей выполнять транзакции и одновременно изменять в реальном времени данные в OLTP базе данных.
Технология OLAP баз данных организует большое количество данных для быстрого анализа и оценки данных в реальном времени. SQL Server 2000 Analysis Services организует данные для поддержки больших массивов решений предприятий от корпоративной отчётности и аналитики до моделирования данных и принятия решений.
Клиентские приложения
Пользователи не имеют прямого доступа к SQL Server и Analysis Services. Вместо этого используются отдельные клиентские приложения написанные для доступа к данным. Эти приложения получают доступ к SQL-server с помощью:
Transact-SQL - это версия языка запросов SQL. Это основной язык запросов к базам данных и язык программирования используемый в SQL Server.
XML – этот формат возвращает данные из запросов и встроенных процедур используя URL или шаблона поверх HTTP. Ты также можешь использовать XML для вставки, удаления и обновления данных в базе данных.
MDX (multidimensional expressions) синтаксис объявляет многомерные объекты и запросы для манипулирования многомерными данными в OLAP базах данных.
OLE DB и ODBC API – клиентские приложения используют OLE DB и ODBC (Open Database Connectivity) программные интерфейсы для посылки команд к базе данных.
ActiveX Data Objects (ADO)– клиентские приложения могут использовать ADO для лёгкого доступа из с помощью таких языков программирования как Delphi, Visual C++ и Visual Basic. ADO можно использовать и с в ASP, для обеспечения доступа клиентов к базе данных через Internet.
English Query – это API позволяющие приложениям давать возможность использовать запросы на натуральном английском языке, вместо комплексных Transact-SQL или MDX команд. Для примера, пользователь может использовать запрос типа: «What are the total sales for Region 5?».
Клиент серверные компоненты.
SQL Server содержит клиентские и серверные компоненты для получения и отправки данных. SQL Server использует коммуникационную архитектуру из слов. Эта архитектура позволяет тебе разворачивать некоторые приложения в разных сетевых окружениях.
SQL Server использует клиент - серверную архитектуру чтобы изолировать объем работы в задачи, которые будут выполнятся на сервере (раньше они выполнялись на компьютере – клиенте).
Клиент отвечает за бизнес логику и представление данных пользователю. Обычно клиентские приложения запускаются на одном или нескольких компьютерах. Помимо этого, клиент может быть запущен и на компьютере сервере вместе с SQL Server.
Сервер управляет базой и распределяет доступные серверу ресурсы, такие как память, дисковые ресурсы, пропускная способность сети между многочисленными запросами.
Архитектура клиент – сервер позволяет тебе моделировать и развёртывать приложения для увеличения многообразия окружений. Клиентские интерфейсы обеспечивают возможности приложениям запускаться изолировано на клиентских компьютерах и связи с сервером по сети.
Клиентские компоненты коммуникационной архитектуры включают:
Клиентское приложение посылает серверу Transact-SQL запросы и получает результаты. Приложения разрабатываются с помощью API баз данных. Приложение понятия не имеет об используемом протоколе для соединения с SQL Server.
API базы данных (OLE DB, ODBC) используют провайдеры, драйверы или dll-файлы для отправки Transact-SQL запросов и получения результатов.
Client Net-Library. Клиентские сетевые библиотеки управляют сетевыми соединениями и маршрутизацией на клиенте. Это коммуникационные программные сетевые компоненты, которые пакуют запросы и результаты для отправки
Серверные компоненты коммуникационной архитектуры включают:
Server Net-Library. Серверные сетевые библиотеки могут следить несколько сетевых библиотек одновременно. Для успешного соединения, клиентская сетевая библиотека должна соответствовать одной из серверных библиотек. SQL Server поддерживает такие сетевые протоколы как: TCP/IP, Named Pipes, NWLink, IPX/SPX, VIA GigaNet SAN, VIA ServerNet 2 SAN, AppleTalk, Banyan VINES.
Open Data Services извлекает запросы из пакетов для SQL-Server и наоборот, упаковывают результаты запросов в пакеты для отправки клиенту.
Relational Engine анализирует Transact-SQL запросы, оптимизирует и выполняет.
Storage Engine управляет файлами базы данных, читает и записывает данные в физические страницы, управляет буферами данных и физическим вводом/выводом, контролирует параллелизм, резервным копированием и восстановлением данных.
Процесс коммуникации SQL Server
Рис 2. Процесс коммуникации SQL Server.
Обычно, клиент коммутируется к серверу через сеть (за исключением случая, когда клиент и сервер находятся на одном компьютере). Следующая последовательность действий запроса иллюстрирует процесс типичной клиент – серверной коммуникации используя API базы данных.
Приложение клиента посылает запрос. Клиент вызывает API функцию базы данных и посылает запрос. API базы данных использует провайдера, драйвер или DLL-файл для встраивания запроса в один или несколько TDS (Tabular Data Stream) пакетов и посылает пакеты клиентской сетевой библиотеке (Client Net-Library).
Клиентская сетевая библиотека пакует TDS пакеты в пакеты сетевого протокола (например TCP/IP). Клиентская сетевая библиотека вызывает API межпроцессорного соединения (IPC) Windows для отправки пакетов серверной сетевой библиотеке (Server Net-Library) используя стек сетевого протокола операционной системы.
Open Data Services извлекает запросы из TDS пакетов и посылает запросы к Relational Engine. Relational Engine компилирует запросы в оптимизированный запускной код и запускает его. Relational Engine связывается с Storage Engine с использованием интерфейсов OLE DB.
Storage Engine передаёт данные из базы данных в буфер данных и посылает наборы строк содержащие данные к Relational Engine. Relational Engine соединяет наборы строк в окончательный результат и возвращает результат в Open Data Services
Open Data Services пакует результат и возвращает их клиентскому приложению используя серверные сетевые библиотеки, стек протоколов, клиентскую сетевую библиотеку и API базы данных (обратный процесс). Результат может быть возвращён также в XML формате.
Сервисы SQL Server
SQL Server включает следующие сервисы: MSSQLServer Service, SQLServerAgent service, Microsoft Distributed Transaction Coordinator (MS DTC) и Microsoft Search. Несмотря на то, что MSSQLServer Service запускается как сервис в Windows 2000, он также может запускаться как приложение.
MSSQLServer Service
MSSQLServer Service – сервис инструментов базы данных. Это компонент, который обрабатывает все Transact-SQL команды и управляет всеми файлами включёнными в базу данных на сервере. MSSQLServer Service отвечает за:
Распределение ресурсов компьютера между множеством конкурирующих пользователей.
Предотвращает логические проблемы, такие как синхронизация запросов от пользователей, которые пытаются изменять они и те же данные в один момент времени.
Гарантирует устойчивость и целостность данных.
SQLServerAgent service
SQLServerAgent service – работает совместно с SQL Server для создания и управления сообщениям, локальными или многопользовательскими работами и операторами. SQLServerAgent service выполняет следующее:
Сообщения обеспечивают информацией о статусе процессов, таких как выполнение работ и сообщения об ошибках.
SQLServerAgent service включает инструменты создания работ и расписания которые автоматизируют задачи.
SQLServerAgent service может посылать сообщения по e-mail почте или Net-BIOS оператору, или запускать другие приложения по сообщению об ошибке.
Microsoft Distributed Transaction Coordinator (MS DTC)
MS DTC позволяет клиентам включать несколько разных исходных данных в одну транзакцию. MS DTC правильно координирует завершение распределённых транзакций гарантируя, что все обновления на всех серверах постоянны или если произошла ошибка – гарантирует, что все изменения отменены.
Microsoft Search
Microsoft Search- инструмент полнотекстового поиска. Он запускается как сервис в Windows 2000.
Несколько экземпляров SQL Server
Начиная с SQL Server 2000 ты можешь запускать несколько экземпляров SQL Server на одном компьютере. Каждый экземпляр владеет своим набором системных и пользовательских баз данных, которые не разделяются между экземплярами. Каждый экземпляр работает так, как будто он единственный на компьютере. Приложения могут соединятся с каждым экземпляром SQL Server.
Если ты при присоединении к серверу указал только имя компьютера и не указывал экземпляр, то соединение произойдёт с экземпляром по умолчанию. Чтобы присоединится к именованному экземпляру, нужно указывать «Имя компьютера/Имя экземпляра».