
- •1 Системы управления базами данных: общая характеристика
- •2 Основные функции субд
- •2.1 Непосредственное управление данными во внешней памяти
- •2.2 Управление буферами оперативной памяти
- •2.3 Управление транзакциями
- •2.4 Журнализация
- •2.5 Поддержка языков бд
- •3 Типовая организация современной субд
- •4.1 Состав языка sql
- •4.2 Работа с базой данных в командах sql
- •Пример базы данных
- •Список сотрудников (таблица Staff)
- •Упражнения с использованием операторов обработки данных sql
- •5 Поддержание сущностной и ссылочной целостности данных
- •Поддержание целостности данных в субд на примере субд Ingres
- •Ограничения
- •Правила
- •Поддержание ссылочной целостности данных в субд на примере субд vfp
- •Возможности реиндексации в бд
- •Особенности объединения бд
- •4 Case-средства для разработки бд. Инструментарий проектирования баз данных
- •Обзор современных субд: Microsoft Access 2000-2003, Microsoft Visual FoxPro 9.0, Microsoft sql Server 2005, Oracle 9, MySql, FireBird sql Server как многоуровневая система клиент/сервер
- •Способы соединения базы данных с интерфейсом (клиентской частью)
- •Прямое соединение
- •Условно прямое соединение
- •Драйвер odbc
- •Импорт, экспорт данных в субд: особенности и потери при выполнении операций
- •Транзакции
- •Проблемы одновременного доступа к данным
- •Программирование транзакций
- •Включение транзакций в программный код
- •Управление транзакциями
- •Управление ролями и разрешениями в ms sql Server
- •Справочная информация Перечень ролей:
- •Программная настройка прав в командах Transact sql
- •Список разрешений для роли securityadmin
- •Библиографический список
Импорт, экспорт данных в субд: особенности и потери при выполнении операций
Пример импорта данных из MS Access в MS SQL Server
Рис. Импорт данных в MS SQL Server из Access. 1 шаг
Рис. Импорт данных в MS SQL Server из Access. 2 шаг
Рис. Импорт данных в MS SQL Server из Access. 3 шаг.
Рис. Импорт данных в MS SQL Server из Access. 4 шаг
Рис. Импорт данных в MS SQL Server из Access. 5 шаг
Рис. Импорт данных в MS SQL Server из Access. 6 шаг
Рис. Импорт данных в MS SQL Server из Access. Конец.
Транзакции
При создании систем на основе технологии "клиент-сервер" возникает ряд технических проблем, в частности, — получение на стороне клиента достоверной информации. Один из способов решения этой задачи основывается на применении механизма транзакций.
Смысл использования транзакций достаточно прост: несколько команд, связанных логикой выполнения, объединяется в одну операцию. Невыполнение какой-либо из них может привести к общему неверному результату, исправить который будет достаточно сложно.
Транзакция — это группа инструкций SQL, исполняемых как единое целое. Невыполнение одной инструкции приводит к откату состояния данных на начало транзакции.
Проблемы одновременного доступа к данным
При параллельной работе нескольких пользователей может возникнуть рассогласование данных. Выделю четыре нежелательных последствия доступа клиентов к одним и тем же данным:
Потеря обновления. Ситуация возникает при использовании неизолированных друг от друга транзакции. По этой причине несколько транзакций могут считывать и изменять одни и те же данные. В результате все изменения кроме последнего будут потеряны.
"Грязное" чтение. Если одни и те же данные будут одновременно читаться и изменяться разными транзакциями, то полученная информация может оказаться противоречивой. Причины тому, по крайней мере, две:
транзакция еще не закончила все изменения данных (например, корректировка в связанных таблицах — часть данных уже изменилась, а часть нет);
поскольку транзакция еще не закончена, то вообще неочевидно, что она будет зафиксирована. В случае ошибки произойдет ее откат. Получится так, что другая транзакция прочитала модифицированные данные, которые на самом деле не изменились.
Неповторяющиеся считывания. Если одна транзакция в процессе работы многократно считывает данные, а в это время вторая транзакция их изменяет, то первая транзакция, по крайней мере, дважды получит разные значения одних и тех же данных.
Фантомные считывания. Проблема возникает, когда одна транзакция считывает данные из таблицы, а вторая в этот момент вставляет (или удаляет) строки. Результат выполнения первой транзакции может оказаться для клиента весьма неожиданным.
Программирование транзакций
При работе на стороне сервера может оказаться недостаточным использование исключительно автоматических транзакций, т. к. они действуют только в рамках одной команды. И вам придется управлять транзакциями программным путем. Довольно часто в транзакцию включают весь код хранимой процедуры.