
- •Основные функции администратора баз данных
- •Основные сведения о sql 2000 Server. Ключевые характеристики и назначение Microsoft sql Server 2005. Основные компоненты.
- •Создание пользовательских баз данных. Создание базы данных из sql server management studio. Создание базы данных при помощи команды create daabase.
- •Системные базы данных.
- •Файлы база данных и журналы транзакций. Применение файловых групп. Режимы работы базы данных. Расширенные свойства баз данных
- •Выполнение служебных операций с базами данных: увеличение размера базы данных, уменьшение размера базы данных, перенос файлов баз данных, переименование, удаление базы.
- •7 Терминология и основы системы безопасности sql Server 2005
- •8 Логины sql Server 2005 Выбор типа логина
- •Создание логинов в sql Server 2005, create login, парольные политики, свойства логинов
- •Логины, создаваемые по умолчанию
- •9 Серверные роли. Разрешения на уровне сервера
- •10 Пользователь и схема
- •11 Создание, изменение и удаление пользователей базы данных
- •Встроенные пользователи базы данных
- •12 Предоставление прав на объекты в базе данных
- •13.Роли приложений. Изменение контекста выполнения. Выражение execute as.
- •14.Основы резервного копирования sql server 2005. Типы резервного копирования.
- •15.Основы восстановления баз данных. Проведение восстановления
- •16. Режимы восстановления баз данных. Оперативный режим восстановления. Восстановление отдельных страниц. Восстановление системных баз данных.
- •Восстановление базы данных в оперативном режиме
- •Восстановление отдельных страниц базы данных
- •Восстановление системных баз данных
- •17 Автоматическая доставка журналов
- •18. Зеркальное отображение баз данных.
- •19 Управление транзакциями (не совсем!!!!!)
- •21. Репликация баз данных. Планирование, реализация, мониторинг и управление репликацией. Типы репликации.(неполное)
- •22 Средства администрирования
- •23. Применение sqlcmd.
- •24 Мониторинг производительности sql Server 2005
- •Средства для мониторинга и анализа производительности
19 Управление транзакциями (не совсем!!!!!)
Одной из важных функций мультипользовательской СУБД является обеспечение параллельного доступа пользователей к базе данных. Qложности управления параллельным доступом возникают только в ситуациях, когда возникают коллизии, связанные с конкурентным обновлением данных в базе данных разными пользователями, с возможностью чтения одним пользователем данных, которые успел лишь частично обновить другой пользователь. Такие коллизии могут привести к нарушениям логической целостности базы данных. Для их предотвращения в СУБД предусматривается техника управления транзакциями.
Транзакцией называют последовательность операций над базой данных, выполняемых при обработке пользовательского запроса, которая переводит ее из одного логически целостного состояния в другое. Если, например, из базы данных нужно удалить сведения о некотором поставщике в связи с тем, что он прекращает дальнейшие поставки, то вслед за этим необходимо удалить и сведения о запланированных этим поставщиком поставках продукции. Иначе база данных будет содержать сведения о поставках неизвестного системе поставщика. Ясно, что в мультипользовательской среде такую последовательность операций нельзя прерывать для обработки запросов других пользователей системы до полного ее завершения.
Для исключения коллизий конкурентного доступа параллельно исполняемых транзакций к данным в базе данных используют различные методы. Чаще всего используется блокировка ресурсов базы данных, обновляемых при исполнении транзакций, их обновляющих. На время исполнения транзакции, модифицирующей значения некоторых данных, эти ресурсы блокируются с тем, чтобы не допустить к ним доступа других транзакций.
Разрешая таким образом проблему конкурентного доступа, блокировка ресурсов вместе с тем порождает новую проблему возможность возникновения тупиковых ситуаций. Так называется ситуация, когда группа из двух или более транзакций монопольно захватывает ресурсы таким образом, что каждая из них ожидает освобождения какого-либо ресурса, монопольно захваченного (блокированного) другой транзакцией из этой группы. Во многих СУБД реализованы механизмы предотвращения тупиковых ситуаций либо механизмы, обеспечивающие выход из тупиковой ситуации за счет отката некоторых из образующих ее транзакций.
Управление параллельным доступом
В этом разделе рассматриваются проблемы, связанные с организацией параллельного доступа к данным, а также описаны способы, позволяющие решить связанные с этим проблемы. Вначале приведено рабочее определение функции управления параллельным доступом. Управление параллельным доступом. Процесс организации одновременного выполнения а базе данных различных операций доступа, гарантирующий предотвращение их влияния друг на друга. Важнейшей целью создания данных является организация параллельного доступа многих пользователей к общим данным, используемым ими совместно. Обеспечить параллельный доступ относительно несложно, если все пользователи будут только читать данные, помещенные в базу. В этом случае работа каждого из них не оказывает влияния на работу остальных пользователей. Но если два или несколько пользователей одновременно обращаются к базе данных и хотя бы один из них желает обновить хранимую в базе информацию, возможно взаимное влияние процессов доступа, способное привести к несогласованности данных. Данная задача подобна задачам, стоящим перед любой многопользовательской компьютерной системой, когда несколько программ (или транзакций) получают возможность одновременно выполнять операции благодаря использованию мультипрограммной организации работы, позволяющей двум или нескольким программам (или транзакциям) выполняться в одно и то же время. Например, многие системы включают подсистему ввода-вывода, способную выполнять операции ввода-вывода, в то время как процессор осуществляет другие операции. Подобные системы позволяют двум или нескольким транзакциям выполняться одновременно. Система начинает выполнение первой транзакции и продолжает ее выполнение до первой операции ввода-вывода. На время выполнения этой операции система приостанавливает выполнение первой транзакции и переходит к выполнению команд второй транзакции. Когда второй транзакции понадобится выполнить операцию ввода-вывода, управление будет возвращено первой транзакции и ее выполнение будет продолжено с той точки, в которой она была приостановлена. Выполнение первой транзакции будет продолжено до достижения следующей операции ввода-вывода. Таким образом, выполнение операций двух транзакций чередуется и обеспечивается их параллельное выполнение. Кроме того, общая производительность системы (объем работы, выполняемой на протяжении заданного временного интервала) повышается, поскольку процессор выполняет команды другой транзакции, вместо того чтобы бесполезно простаивать, ожидая завершения запущенной операции ввода-вывода. Несмотря на то что каждая из транзакций может сама по себе выполняться вполне корректно, подобное чередование операций способно приводить к неверным результатам, из-за чего целостность и согласованность базы данных будут нарушены. Мы рассмотрим три примера потенциальных проблем, которые могут иметь место при параллельном выполнении транзакций: проблему потерянного обновления, проблему зависимости от незафиксированных результатов и проблему анализа несогласованности. Для иллюстрации указанных проблем мы воспользуемся отношением с данными о банковских счетах персонала компании DreamHome. В этом контексте будут рассматриваться транзакции, которые мы 1будем считать объектами управления параллельным выполнением.