Основы баз данных

База данных в SQL Server состоит из коллекции таблиц, в которой хранится особый набор структурированных данных. Таблица содержит коллекцию строк, также называемых записями или кортежами, и столбцов, также называемых атрибутами. Каждый столбец в таблице предназначен для хранения конкретного типа данных, например дат, имен, денежных сумм или чисел.

У таблиц есть несколько типов элементов управления: ограничения, триггеры, значения по умолчанию, а также пользовательские типы данных, которые гарантируют достоверность данных. Чтобы обеспечить согласованность взаимосвязанных данных в различных таблицах, в таблицу можно добавить декларативные ограничения ссылочной целостности. У таблиц могут быть индексы, похожие на алфавитные указатели в книгах, позволяющие быстро найти нужные записи. Также база данных может содержать процедуры, использующие программный код Transact-SQL или .NET Framework, для выполнения операций с данными в базе данных. Эти операции включают в себя создание представлений, обеспечивающих настраиваемый доступ к данным таблицы или пользовательских функций, которые выполняют сложные вычисления над подмножеством строк.

Например, для управления данными о компании создается база данных с именем MyCompanyDB. В базе данных MyCompanyDB создается таблица под названием Employees, в которой хранятся сведения обо всех сотрудниках. Кроме того, в этой таблице есть столбцы EmpId, LastName, FirstName, Dept и Title. Чтобы ни у одной пары пользователей не совпадали значения столбцов EmpId, а в столбце Dept были только допустимые номера отделов компании, в таблицу следует добавить ограничения.

Для быстрого поиска данных о сотруднике по его идентификатору или фамилии определяются индексы. На каждого сотрудника нужно будет добавить строку в таблицу Employees, для этого создается хранимая процедура с именем AddEmployee. Она получает различные данные о новом сотруднике и добавляет соответствующую строку в таблицу Employees. Для этого может понадобиться сводка о сотрудниках по отделам. В этом случае определяется представление с именем DeptEmps, объединяющее данные из таблиц Departments и Employees и выводящее объединенные данные. На иллюстрации показаны созданные части MyCompanyDB .

Объекты в базе данных

Экземпляр SQL Server может поддерживать много баз данных. В каждой базе данных могут храниться данные как связанные, так и не связанные с данными других баз. Например, в экземпляре SQL Server может быть одна база данных, в которой хранятся сведения о персонале, и другая, в которой хранятся данные о продукции. Или же одна база данных может содержать сведения о заказах покупателей, а другая, связанная с первой, — архив заказов для годовых отчетов.

Важное примечаниеВажно!

Пользовательские объекты (таблицы, представления, хранимые процедуры или триггеры) не следует создавать в базе данных master. База данных master содержит данные системного уровня, которые использует экземпляр SQL Server, например данные о входе в систему и другие настройки параметров конфигурации.

База данных OLTP

Реляционные базы данных оперативной обработки транзакций (OLTP) лучше всего подходят для управления изменением данных. В них обычно есть несколько пользователей, которые выполняют транзакции одновременно. Это влияет на данные, поступающие в реальном времени. Хотя отдельные запросы пользователей обычно затрагивают немного строк, многие из них производятся одновременно.

Базы данных OLTP разрабатываются таким образом, чтобы транзакционные приложения с максимальной скоростью записывали в них только те данные, которые нужны для обработки отдельной транзакции. В целом базы данных OLTP выполняют следующие функции:

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

  • Представление постоянно изменяющегося состояния организации (но не хранение его журнала).

  • Хранение большого количества данных, включая исчерпывающие данные для проверки транзакций.

  • Сложная структура.

  • Реагирование на активность транзакций.

  • Обеспечение технологической инфраструктуры для поддержки повседневного управления организацией.

  • Отдельные транзакции выполняются быстро и обращаются к относительно небольшим объемам данных. Системы OLTP специально разработаны и настроены для одновременной обработки сотен и тысяч транзакций.

Данные в OLTP-системах организованы в первую очередь для поддержки следующих транзакций:

  • Запись заказа, поступившего с терминала в офисе продаж или с веб-узла.

  • Размещение заказа на пополнение запасов, если количество товара на складе падает ниже определенного уровня.

  • Отслеживание компонентов в процессе их сборки в конечный продукт на заводе.

  • Запись данных о сотрудниках.

Хранилище данных

В отличие от базы данных OLTP, целью которой является обслуживание больших объемов изменений и добавлений данных, хранилище данных предназначено для организации большого количества неизменных данных с целью упрощения их анализа и получения. Хранилище данных часто используется в качестве базы для приложений бизнес-аналитики.

Ниже приведен список действий, доступных хранилищам данных:

  • Объединение данных из разнородных источников данных в единую однородную структуру.

  • Организация данных в упрощенные структуры с целью повышения эффективности запросов (вместо обработки транзакций).

  • Хранение преобразованных данных, допустимых, согласованных, консолидированных и отформатированных для анализа.

  • Обеспечение неизменных данных, представляющих бизнес-журнал.

  • Периодическое обновление новыми данными (вместо частого выполнения) транзакций.

  • Упрощение требований безопасности.

Моментальный снимок базы данных

Моментальный снимок базы данных — это статическое представление базы данных-источника, доступное только для чтения. Все моментальные снимки баз данных транзакционно согласованы с базами данных-источниками в том виде, в котором последние находились на момент создания снимков. Дополнительные сведения см. в разделе Моментальные снимки базы данных.