удаленные базы данных. Отличия и преимущества удаленных баз данных от локальных баз дан. Тема Отличия и преимущества удаленных баз данных от локальных баз данных. Обзор архитектуры sql server Архитектура базы данных
Скачать 37.13 Kb.
|
Тема: Отличия и преимущества удаленных баз данных от локальных баз данных. Обзор архитектуры SQL Server Архитектура базы данных В SQL Server информация хранится в базах данных. Она организована в доступные пользователю логические компоненты(таблицами, представлениями, процедурами и учетными именами), а физически – ввиде двух или более файлов на диске. Пользователи работают с логическими компонентами. Как правило, лишь администратор базы данных работает с ее физической реализацией. У каждого экземпляра SQL Server есть четыре системных базы данных (master, tempdb, msdb и model) и одна или несколько пользовательских. Каждый экземпляр SQL Server делает все свои базы данных доступными всем, кто подключается к нему (в зависимости от определенных для них прав доступа). При подключении к экземпляру SQL Server соединение ассоциируется с определенной базой данных на сервере. Эта БД называется текущей. Обычно соединение устанавливается с базой данных по умолчанию, которую определяет системный администратор. Можно переключаться с одной базы данных на другую с помощью оператора T-SQL: USE <имя_БД>. Логические компоненты Данные SQL Server организованы с помощью нескольких различных объектов, которые доступны пользователям при подключении к базе данных.
Физическая структура базы данных Страницы и экстенты Основной единицей хранения данных в SQL Server является страница. В SQL Server размер страницы составляет 8 кб. Другими словами, в базах данных SQL Server содержится 128 страниц на 1 Мб. В начале каждой страницы расположен 96-байтный заголовок, который используется для хранения системной информации, например типа страницы, размера свободного места на странице, а также идентификатора объекта, владеющего страницей. Страницы содержат строки данных (кроме данных типа text и image, которые хранятся в отдельных страницах). Данные размещаются на странице последовательно и начинаются сразу же после заголовка. В конце страницы расположена таблица смещений строк. Она содержит по одному элементу для каждой строки, размещенной на странице; в каждом элементе записано, как далеко первый байт строки расположен от начала страницы. Экстенты представляют собой единицу выделения памяти для таблиц и индексов. Размер экстента составляет восемь последовательных страниц, или 64 кб. Другими словами, в базах данных SQL Server приходится 16 экстентов на 1 Мб. Для повышения эффективности выделения памяти, SQL Server не выделяет для таблиц с небольшим объемом данных целые экстенты. В SQL Server имеется два типа экстентов: однородные экстенты, принадлежащие одному объекту; лишь объект-владелец может использовать все восемь страниц экстента; смешанные экстенты, у которых может быть до восьми объектов-владельцев. Для новых таблиц или индексов обычно выделяется место в смешанных экстентах. Когда размер таблицы или индекса увеличивается настолько, что для них требуется восемь страниц, они начинают использовать однородные экстенты. Если создается индекс для существующей таблицы, в которой достаточно строк для генерации индекса размером в восемь страниц, то вся память для индекса выделяется в виде однородных экстентов. Файлы баз данных Физически база данных в SQL Server представлена набором из 2-х или более файлов. Для любой БД создаются файлы самой БД и файлы журналов транзакций. Данные и журнал транзакций никогда не помещаются в один и тот же файл, а любой отдельный файл используется только одной базой данных.В базах данных SQL Server применяются файлы трех типов: Основной файл данных (.mdf). База данных начинается с основного файла данных, который указывает на другие файлы базы данных. У любой базы данных есть только один основной файл данных. Дополнительные файлы данных (.ndf). Это все файлы данных, кроме основного. У некоторых баз данных дополнительные файлы данных вообще отсутствуют, в то время как у других их несколько. Файлы журнала (.ldf). В них содержится вся информация о транзакциях и действиях пользователей, используемая для восстановления базы данных. В каждой базе данных должен быть как минимум один файл журнала, хотя допускается и больше. Типы данных SQL Server
Для преобразования данных из одного типа в другой используются функции CAST и CONVERT(). Правила именования объектов SQL Server Имя объекта должно начинаться с любого символа, определяемого как буква. Максимальная длина обычного объекта – 128 символов, а временного объекта – 116 символов. Любые имена, совпадающие с ключевыми словами SQLServer или содержащие пробелы, должны быть заключены в двойные кавычки («») или квадратные скобки ([]). Не рекомендуется использовать в именах пробелы и спецсимволы. Структура журнала транзакций У любой базы данных SQL Server есть журнал транзакций, в котором регистрируются все транзакции и модификации базы данных, выполненные в ходе каждой транзакции. Регистрация транзакций и сделанных в их ходе модификаций используется для выполнения трех операций: восстановления отдельных транзакций; восстановления незавершенных транзакций во время запуска SQL Server; повтора операций над восстановленной базой данных непосредственно до момента сбоя. Организация транзакций SQL Server управляет согласованностью и целостностью каждой базы данных при появлении ошибок. Любое приложение, обновляющее информацию в базе данных SQL Server, делает это с помощью транзакций. Транзакция — логическая единица работы, состоящая из последовательности операторов (выборки, добавления, обновления или удаления). Если во время транзакции не возникли ошибки, все изменения базы данных, сделанные в результате выполнения транзакции, становятся постоянными. Если ошибки есть, то в базу данных не вносится никаких изменений. Транзакция имеет несколько фаз. Перед началом транзакции база данных находится в согласованном состоянии. Приложение объявляет о начале транзакции. Этот процесс может быть инициирован явно с помощью оператора BEGIN TRANSACTION. В качестве альтернативы приложение может установить параметры для работы в неявном режиме транзакций. Первый же оператор Transact SQL, исполняемый после завершения предыдущей транзакции, автоматически запускает новую транзакцию. В начале транзакции в журнал не заносится никаких записей; первая запись в журнале появляется при модификации данных. Приложение начинает модификацию данных. Модификации в таблицах производятся по очереди. Если выполняется серия модификаций, то в результате база данных может какое-то время оставаться в несогласованном промежуточном состоянии. Когда приложение достигает этапа, на котором все модификации успешно завершены, и база данных снова находится в согласованном состоянии, приложение фиксирует транзакцию. На этом этапе все сделанные модификации базы данных становятся постоянными. Если приложение обнаруживает ошибки, которые предотвращают завершение транзакции, оно выполняет отмену (откат) всех модификаций данных. Этот процесс возвращает базу данных к той точке согласованности, в которой она находилась до начала транзакции. Приложения SQL Server также могут работать в режиме автоматической фиксации. В этом режиме исполнение каждого оператора Transact SQL фиксируется, если оно успешно, или автоматически откатывается, если возникает ошибка. Приложению, работающему в режиме автофиксации, нет необходимости использовать специальные операторы для начала и завершения транзакции. Все операторы Transact SQL выполняются в составе транзакций: явных, неявных или с автоматической фиксацией. Все транзакции SQL Server, включающие в себя операции по модификации данных, достигают новой точки согласованности и фиксируются или откатываются к исходной точке согласованности. Транзакции не остаются в промежуточном состоянии, в котором база данных не согласована. Transact SQL Transact SQL — это язык баз данных, поддерживаемый SQL Server. Transact SQL соответствует стандарту SQL 92 начального уровня, а также поддерживает некоторые функции промежуточного и полного уровней. |