- •1.Базы данных. Основные понятия и определения.
- •2.Субд.Функции субд.
- •3.Реляционная модель данных.
- •4.Понятие индекса и первичного ключа
- •5.Методы доступа к данным (индексный, последовательный, индексно-последовательный)
- •7.Связывание таблиц. Типы связей.
- •8.Нормализация бд(1nf,2nf,3nf)
- •9.Обеспечение непротиворечивости и целостности данных.
- •11.Файл-серверная архитектура(достоинства и недостатки)
- •12.Двухуровневая архитектура клиент-сервер(достоинства, недостатки)
- •13.Трехуровневая архитектура клиент-сервер
- •14.Основные технологии доступа к данным. Стандартные системы доступа базам данных.
- •15.Понятие технологии доступа к данным. Bde и odbc.
- •16.Основные технологии com, ole db и ado.
- •17.Понятие транзакции и блокировки ресурсов.
- •18.Физическая организация серверов InterBase/FireBird.
- •19.Sql.Категории команд языка sql. Преимущества использования sql.
- •20.Создание б.Д.
- •21.Создание таблиц
- •22.Домены
- •23.Обеспечение достоверности, целостности и непротиворечивости данных.Триггеры генераторы.
- •24.Оператор select. Использование предложения where. Внутреннее соединение таблиц.
- •Простейший вид оператора select(select…from).
- •27.Добавление и удаление данных. Обновление данных.
- •28.Предложение having. Задание сложных условий поиска.
- •29.Оператор select. Задание сложных условий поиска.
- •30.Использование подзапросов.
- •31.Вложение подзапросов.
- •32.Дополнительные возможности использования подзапросов, возвращающих единичные значения.
- •33.Дополнительные возможности использования подзапросов, возвращающих множество значений.
- •Синтаксис и свойства подзапросов
- •Типы подзапросов
- •Подзапросы возражающие один результат
- •34.Внешнее соединение.
- •35.Управление транзакциями на sql-сервере.
- •36.Хранимые процедуры. Алгоритмический язык хп.
- •37.Администрирование бд.
34.Внешнее соединение.
Внешние соединения бывают левыми или правыми. Запрос, в котором участвуют таблицы с левым внешним соединением (LEFT JOIN или *= в SQL), выводит все записи таблицы "один", в независимости от того, имеются ли соответствующие им записи в таблице "многие". И наоборот, запрос, в котором участвуют таблицы с правым внешним соединением (RIGHT JOIN или =* в SQL), выводит все записи таблицы "многие", в независимости от того, имеются ли соответствующие им записи в таблице "один".
35.Управление транзакциями на sql-сервере.
Управление транзакциями Все операции, выполняемые с данными на SQL сервере , происходят в контексте транзакций . Транзакция - это групповая операция, т.е. набор действий с базой данных; самым существенным для этих действий является правило либо все, либо ни чего. Если во время выполнения данного набора действий, на каком-то этапе невозможно произвести очередное действие, то нужно выполнить возврат базы данных к начальному состоянию (произвести откат транзакции ). Таким образом (при правильном планировании транзакций ), обеспечивается целостность базы данных. В данном уроке объясняется, как начинать, управлять и завершать транзакции с помощью SQL выражений. А так же рассматривается вопрос об использовании транзакций в приложениях, созданных в Delphi. Вся приведенная информация касается InterBase. SQL-выражения для управления транзакциями Для управления транзакциями имеется три выражения: SET TRANSACTION - Начинает транзакцию и определяет ее поведение. COMMIT - Сохраняет изменения, внесенные транзакцией , в базе данных и завершает транзакцию . ROLLBACK - Отменяет изменения, внесенные транзакцией , и завершает транзакцию . Запуск транзакции Выполнять транзакции можно, например, из Windows Interactive SQL, из программы, из сохраненной процедуры или триггера. В общем виде, синтаксис команды SQL для запуска транзакции : SET TRANSACTION [Access mode] [Lock Resolution] [Isolation Level] [Table Reservation] Значения, принимаемые по-умолчанию: выражение SET TRANSACTION равносильно выражению SET TRANSACTION READ WRITE WAIT ISOLATION LEVEL SNAPSHOT Access Mode - определяет тип доступа к данным. Может принимать два значения: ? READ ONLY - указывает, что транзакция может только читать данные и не может модифицировать их. ? READ WRITE - указывает, что транзакция может читать и модифицировать данные. Это значение принимается по умолчанию. Пример: SET TRANSACTION READ WRITE Isolation Level - определяет порядок взаимодействия данной транзакции с другими в данной базе. Может принимать значения: ? SNAPSHOT - значение по умолчанию. Внутри транзакции будут доступны данные в том состоянии, в котором они находились на момент начала транзакции . Если по ходу дела в базе данных появились изменения, внесенные другими завершенными транзакциями , то данная транзакция их не увидит. При попытке модифицировать такие записи возникнет сообщение о конфликте. ? SNAPSHOT TABLE STABILITY - предоставляет транзакции исключительный доступ к таблицам, которые она использует. Другие транзакции смогут только читать данные из них. ? READ COMMITTED - позволяет транзакции видеть текущее состояние базы. Конфликты, связанные с блокировкой записей происходят в двух случаях: ? Транзакция пытается модифицировать запись, которая была изменена или удалена уже после ее старта. Транзакция типа READ COMMITTED может вносить изменения в записи, модифицированные другими транзакциями после их завершения. ? Транзакция пытается модифицировать таблицу, которая заблокирована другой транзакцией типа SNAPSHOT TABLE STABILITY. Lock Resolution - определяет ход событий при обнаружении конфликта блокировки. Может принимать два значения: ? WAIT - значение по умолчанию. Ожидает разблокировки требуемой записи. После этого пытается продолжить работу. ? NO WAIT - немедленно возвращает ошибку блокировки записи. Table Reservation - позволяет транзакции получить гарантированный доступ необходимого уровня к указанным таблицам. Существует четыре уровня доступа: ? PROTECTED READ - запрещает обновление таблицы другими транзакциями , но позволяет им выбирать данные из таблицы. ? PROTECTED WRITE - запрещает обновление таблицы другими транзакциями , читать данные из таблицы могут только транзакции типа SNAPSHOT или READ COMMITTED. ? SHARED READ - самый либеральный уровень. Читать могут все, |
|