3.58M
Category: databasedatabase

Архитектура SQL Server

1.

АРХИТЕКТУРА SQL
SERVER

2.

ПЛАН
• Разновидности SQL Server
• Экземпляры SQL Server
• Базы данных

3.

РАЗНОВИДНОСТИ SQL SERVER
На протяжении многих лет у SQL Server была всего одна версия —
коробочная (или локальная). Однако в последнее время компания
Microsoft решила отойти от этой практики и позволила клиентам
выбирать наиболее подходящую разновидность своего продукта. Сейчас
SQL Server поставляется в трех вариантах: программно-аппаратный
комплекс, коробочная версия и облачный сервис.
C помощью какого языка осуществляется взаимодействие с ядром БД?
Это зависит от конкретного продукта.

4.

РАЗНОВИДНОСТИ SQL SERVER
Например, в коробочных версиях SQL Server и Parallel Data Warehouse
(PDW) используются разные ядра. В специализированном ядре продукта
PDW применяется особый диалект языка SQL под названием DSQL
(distributed SQL — распределенный SQL).
Мы пока сосредоточим внимание на технологии T-SQL, которая
поддерживается в коробочных, облачных и некоторых программноаппаратных вариантах SQL Server.

5.

РАЗНОВИДНОСТИ SQL SERVER
• Коробочная версия SQL Server, которую официально называют
локальной, является традиционной и обычно устанавливается у
клиента. Пользователь отвечает за подготовку оборудования,
развертывание сервера, выполнение обновлений, а также за
обеспечение высокой доступности, аварийного восстановления
(система HADR), безопасности и всего остального. Клиент может
установить несколько экземпляров продукта на один компьютер (об
этом поговорим в следующем разделе), выполняя запросы, которые
взаимодействуют с несколькими БД. Есть возможность переключать
соединение между разными БД (если они не автономны).
• В качестве языка запросов в коробочной версии используется T-SQL.

6.

РАЗНОВИДНОСТИ SQL SERVER
• Облачные сервисы Компания Microsoft предлагает две облачные
разновидности SQL Server: частную и публичную. В первом случае сервис
размещен локально, однако используется технология виртуализации. Здесь
применяется то же ядро, что и в коробочной версии (то есть запросы
пишутся на языке T-SQL), но с некоторыми ограничениями, которые
накладывает виртуальная среда (это касается, например, количества
процессоров и оперативной памяти).
• Публичный облачный сервис называется Windows Azure SQL Database
(бывший SQL Azure) и работает внутри удаленных центров обработки
данных.
• За оборудование, обслуживание, аварийное восстановление и выполнение
обновлений отвечает компания Microsoft. Клиенту необходимо лишь
оптимизировать индексы и запросы.

7.

РАЗНОВИДНОСТИ SQL SERVER
• Продукт Windows Azure SQL Database позволяет создавать на облачном
сервере несколько БД, однако подключаться к ним можно исключительно
по очереди. В нем используется особенное ядро, хотя в его основе лежит
код из локальной версии, поэтому с точки зрения поддержки языка T-SQL
эти разновидности SQL Server практически ничем не отличаются.
Большинство возможностей T-SQL можно применять к облачному и
коробочному вариантам, хотя существуют исключения. Подробнее это
изложено в электронном справочнике на странице msdn.microsoft.com/ruru/library/windowsazure/ee336281.aspx. Стоит отметить, что в облачном
сервисе программное обеспечение обновляется и развертывается чаще,
чем в коробочном варианте SQL Server, поэтому источником
несовместимости может оказаться и Windows Azure SQL Database.

8.

ЭКЗЕМПЛЯРЫ SQL SERVER
Рис. 1. Несколько экземпляров
SQL Server на одном компьютере
• Как видно на рисунке 1, экземпляр SQL Server
представляет собой отдельную установленную
копию сервиса или ядра БД. На один компьютер
можно установить несколько экземпляров
локальной версии SQL Server, при этом каждый
из них полностью автономен (в том числе с
точки зрения безопасности и данных, за
которые он отвечает). Физическое размещение
экземпляров не принципиально — не важно,
находятся они на одном сервере или в разных
точках сети. Конечно, в первом случае
экземпляры будут делить между собой одни и
те же ресурсы (процессор, оперативную память,
жесткий диск).

9.

ЭКЗЕМПЛЯРЫ SQL SERVER
• Вы можете сделать так, чтобы один из экземпляров
использовался по умолчанию, а остальные были
доступны по имени. Это поведение определяется
на этапе установки, позже его нельзя изменить.
Чтобы подключиться к экземпляру по умолчанию,
клиентское приложение должно указать доменное
имя сервера или его IP-адрес.
Рис. 1. Несколько экземпляров
SQL Server на одном компьютере
• Для доступа к другому экземпляру в конце
необходимо добавить обратный слеш (\) и указать
имя (вводится при установке). Представьте, что на
компьютере Сервер1 установлены две копии SQL
Server. Одна используется по умолчанию, а другая
называется Экз1. В первом случае для
подключения достаточно указать название сервера
— Сервер1; во втором придется использовать
запись Сервер1 \Экз1.

10.

ЭКЗЕМПЛЯРЫ SQL SERVER
• Рассмотрим ситуации, когда выгодно устанавливать несколько экземпляров
SQL Server на один компьютер. Одна из причин — экономия на поддержке.
Например, чтобы тестировать функциональность и поведение программного
продукта, а также воспроизводить ошибки, возникающие в реальных
условиях, в отделе технической поддержки должны находиться локальные
копии SQL Server, которые имитируют пользовательскую среду, учитывая
версии, разновидности и установленные обновления. Если организация
использует несколько пользовательских окружений, отдел поддержки
нуждается в соответствующих вариациях программного продукта. Вместо
того чтобы выделять для этих задач множество серверов, каждый из
которых обслуживает одну установленную копию, лучше использовать один
компьютер с разными экземплярами SQL Server. Такого же результата можно
достигнуть за счет запуска нескольких виртуальных машин

11.

ЭКЗЕМПЛЯРЫ SQL SERVER
• В качестве другого примера можно взять таких людей, которые
занимаются преподаванием и читают лекций о языке T-SQL. Для нас
возможность устанавливать несколько экземпляров SQL Server на
один ноутбук крайне удобна. Это позволяет рассматривать разные
версии продукта, демонстрируя отличие в их поведении и т. д.
• Есть еще одна причина: компании, которые предоставляют БД в виде
сервисов, должны гарантировать клиентам полную автономность и
безопасность их информации. Раньше они предпочитали
устанавливать несколько экземпляров SQL Server на один очень
мощный компьютер. В последнее время облачные решения и
усовершенствованные технологии виртуализации позволяют
добиться аналогичных результатов.

12.

БАЗЫ ДАННЫХ
• База данных — это контейнер для
хранения таблиц, представлений,
процедур и т. д. Как видно на рисунке
2, каждый экземпляр SQL Server
может содержать несколько БД. При
установке коробочной версии
создается несколько системных БД,
которые хранят информацию,
необходимую для внутренних задач. У
вас есть возможность создавать
собственные БД для нужд программ.
Рис. 2. Пример нескольких баз
данных в рамках одного экземпляра SQL Server

13.

БАЗЫ ДАННЫХ
• Установщик создает следующие системные БД: master, Resource, model,
tempdb и msdb. Опишем каждую из них.
• master. Содержит метаданные об экземпляре SQL Server, конфигурацию
сервера, сведения обо всех БД в текущем экземпляре, а также ресурсы,
необходимые для инициализации.
• Resource. Скрытая БД, доступная только для чтения. Хранит
определения всех системных объектов. Запрашивая системные
объекты, обычно обращаются к схеме sys локальной БД, но на деле все
определения находятся в БД Resource.

14.

БАЗЫ ДАННЫХ
• model. Используется в качестве шаблона для новых БД. Каждая БД, которую
вы создаете, изначально является копией model. Если хотите, чтобы новые
БД были сконфигурированы определенным образом или содержали какой-то
набор объектов (таких как типы данных), приведите к нужному виду БД
model. Следует понимать, что изменения коснутся только новых БД, не
затрагивая существующие.
• tempdb. Место, где SQL Server хранит временные данные (рабочие таблицы,
пространство для сортировки, сведения о версиях строк и т. д.). Эта БД
уничтожается и создается заново (на основе БД model) при каждом
перезапуске экземпляра SQL Server.
• msdb. Здесь служба агента SQL Server хранит свои данные. Она отвечает за
репликацию и автоматизацию задач, планирования и оповещения. msdb
содержит сведения о таких компонентах и возможностях SQL Server, как
Database Mail, Service Broker, механизм резервного копирования и т. д.

15.

БАЗЫ ДАННЫХ
• Локальный вариант SQL Server позволяет напрямую подключаться к БД
master, model, tempdb и msdb. SQL Database дает прямой доступ только к
master. При использовании временных таблиц или объявлении табличных
переменных (подробнее об этом в главе 10) создается БД tempdb, но
подключаться к ней и размещать внутри нее объекты вы не сможете.
• В рамках одного экземпляра есть возможность создавать до 32 767
пользовательских БД для хранения объектов и программных ресурсов.
• На уровне БД можно определить свойство под названием collation, которое
отвечает за поддержку языка, чувствительность к регистру и порядок
сортировки символьной информации. Если не указать это свойство при
создании БД, для сравнения символов будет использоваться стандартная
конфигурация.
• Чтобы запустить код на языке T-SQL, клиент должен подключиться к
экземпляру SQL Server и выбрать подходящую БД (то есть находиться в ее
контексте).

16.

БАЗЫ ДАННЫХ
Администратору необходимо привязать вашу учетную запись к определенному
пользователю в каждой БД, к которой вы хотите получить доступ.
Пользователю БД выдаются права на работу с ее объектами.
SQL Server 2012 поддерживает изолированные БД, в которых действуют
локальные, полностью автономные учетные записи, не относящиеся к серверу
в целом. При создании таких записей администратор предоставляет пароль.
Подключаясь к SQL Server, клиент указывает БД, с которой он хочет работать,
логин и пароль; при этом он не может переключаться на другие
пользовательские БД.
До этого момента мы рассматривали в основном логические аспекты баз
данных. По большому счету, это единственное, что должно интересовать
пользователей SQL Database, которые не сталкиваются с журнальными
файлами, временными БД, физической структурой содержимого БД и т. д.
Однако пользователи локальной версии SQL Server сами ответственны за
физическую структуру.

17.

БАЗЫ ДАННЫХ
Рис. 3. Устройство базы данных
• БД состоит из файлов, в которых хранятся
как сами данные, так и журнал транзакций.
При создании БД для каждого файла можно
указывать различные свойства:
местоположение, начальный и
максимальный размеры, автоувеличение
прироста размера. Оба вида файлов должны
быть представлены как минимум в
единственном экземпляре (в SQL Server это
происходит по умолчанию). Файлы данных
содержат объекты, а в журнальные файлы
записывается информация, необходимая
для выполнения транзакций..

18.

БАЗЫ ДАННЫХ
Рис. 3. Устройство базы данных
• Хотя SQL Server способен вести запись
сразу в несколько файлов данных,
доступ к журнальным файлам всегда
выполняется последовательно. Таким
образом, разбиение журнала на
несколько частей не улучшает
производительности.
Дополнительные журнальные файлы
могут понадобиться в том случае,
если на текущем разделе
заканчивается свободное место.

19.

БАЗЫ ДАННЫХ
Рис. 3. Устройство базы данных
• Файлы данных организованы в виде групп, в
рамках которых создаются различные
объекты (таблицы или индексы). Объектные
данные распространяются на все файлы,
входящие в группу. С помощью этого
механизма можно контролировать
физическое размещение объектов. Любая БД
содержит как минимум одну группу файлов
под названием PRIMARY, в которой находятся
первичный файл данных (с расширением
.mdf) и системный каталог. В эту группу, как и
в пользовательские, можно добавлять
вторичные файлы данных (с расширениями
.ndf). У вас есть возможность выбирать группу
файлов по умолчанию; в ней будут
создаваться объекты, для которых явно не
указана какая-либо другая группа.

20.

БАЗЫ ДАННЫХ
• Все расширения файлов в БД имеют
понятные значения. Расширение .mdf
расшифровывается как Master Data File —
главный файл данных (не путать с БД master),
а .ldf означает Log Data File — файл журнала.
Говорят, когда выбирали расширение для
вторичных файлов данных, один из
разработчиков в шутку предложил вариант
.ndf (Not Master Data File — неглавный файл
данных), и идею поддержали.
Рис. 3. Устройство базы данных

21.

БАЗЫ ДАННЫХ
• Как видно на рисунке 4, объекты содержатся
внутри схем, которые в свою очередь
находятся в базах данных. Схема — это и есть
нечто вроде контейнера для таких объектов,
как таблицы, представления, хранимые
процедуры и т. д.
Рис. 4. База данных, ее схемы и объекты
• Такой механизм позволяет управлять
полномочиями. Например, вы можете выдать
пользователю доступ к оператору SELECT
внутри определенной схемы, чтобы он
запрашивал данные из всех ее объектов.
Безопасность — один из факторов, которые
следует учитывать, разделяя объекты на
схемы.

22.

БАЗЫ ДАННЫХ
Рис. 4. База данных, ее схемы и объекты
• Схему также используют в качестве префиксов
в названиях объектов. Представьте, что у вас
есть таблица Заказы внутри схемы Продажи.
Тогда полное название объекта выглядит как
Продажи.Заказы. Если при работе с объектом
имя схемы было опущено, SQL Server
попытается определить его автоматически. Он
сначала проверит, есть ли объект в схеме,
которая используется по умолчанию, затем в
схеме dbo. Компания Microsoft рекомендует
всегда прописывать в коде полные названия
объектов. Поиск не занимает много ресурсов,
но зачем тратить их впустую? Кроме того, в
разных схемах могут находиться объекты с
одинаковыми именами, поэтому возможно, что
в итоге вы получите совсем не то, на что
рассчитывали.
English     Русский Rules