Основы баз данных
База данных в 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, целью которой является обслуживание больших объемов изменений и добавлений данных, хранилище данных предназначено для организации большого количества неизменных данных с целью упрощения их анализа и получения. Хранилище данных часто используется в качестве базы для приложений бизнес-аналитики.
Ниже приведен список действий, доступных хранилищам данных:
Объединение данных из разнородных источников данных в единую однородную структуру.
Организация данных в упрощенные структуры с целью повышения эффективности запросов (вместо обработки транзакций).
Хранение преобразованных данных, допустимых, согласованных, консолидированных и отформатированных для анализа.
Обеспечение неизменных данных, представляющих бизнес-журнал.
Периодическое обновление новыми данными (вместо частого выполнения) транзакций.
Упрощение требований безопасности.
Моментальный снимок базы данных
Моментальный снимок базы данных — это статическое представление базы данных-источника, доступное только для чтения. Все моментальные снимки баз данных транзакционно согласованы с базами данных-источниками в том виде, в котором последние находились на момент создания снимков. Дополнительные сведения см. в разделе Моментальные снимки базы данных.
См. также