Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Знакомство с SQL Server2000_1.doc
Скачиваний:
5
Добавлен:
16.12.2018
Размер:
334.85 Кб
Скачать

Архитектура полнотекстовых запросов

Компонент полнотекстовых запросов SQL Server 2000 поддерживает развитые возможности поиска в столбцах с символьными строками. Эта возможности реализуются службой Microsoft Search, которая выполняет две функции: поддержку индексации и поддержку запросов.

• Поддержка индексации. Служба реализует полнотекстовые каталоги и индексы, определенные для базы данных. Microsoft Search принимает определения полнотекстовых каталогов, а также таблицы и столбцы, составляющие индексы каждого каталога. Этот инструмент также реализует запросы на заполнение полнотекстовых индексов.

• Поддержка запросов. Служба обрабатывает полнотекстовые поисковые запросы и определяет элементы индекса, соответствующие критерию поиска. Для каждого элемента, соответствующего критерию, возвращается уникальный идентификатор строки, а также ранжирующее значение для службы MSSQL Server, которая использует эту информацию для построения результирующего набора. Типы поддерживаемых запросов включают поиск слов и фраз, приблизительного соответствия слов, а также различных склонений и спряжений глаголов и существительных.

Полнотекстовые каталоги и индексы хранятся вне базы данных SQL Server в отдельных файлах, управляемых службой Microsoft Search. Файлы полнотекстового каталога не восстанавливаются во время операции восстановления SQL Server. Их также нельзя резервировать и восстанавливать с помощью операторов Transact-SQL BACKUP и RESTORE. По завершении операций восстановления необходимо отдельно синхронизировать полнотекстовые каталоги.

Файлы полнотекстового каталога доступны только службе Microsoft Search или системному администратору Windows NT или Windows 2000.

Организация транзакций

SQL Server 2000 управляет согласованностью и целостностью каждой базы данных при появлении ошибок. Любое приложение, обновляющее информацию в базе данных SQL Server, делает это с помощью транзакций. Транзакция — логическая единица работы, состоящая из последовательности операторов (выборки, добавления, обновления или удаления). Если во время транзакции не возникли ошибки, все изменения базы данных, сделанные в результате выполнения транзакции, становятся постоянными. Если ошибки есть, то в базу данных не вносится никаких изменений.

Транзакция имеет несколько фаз.

1. Перед началом транзакции база данных находится в согласованном состоянии.

2. Приложение объявляет о начале транзакции. Этот процесс может быть инициированявно с помощью оператора BEGIN TRANSACTION. В качестве альтернативы приложение может установить параметры для работы в неявном режиме транзакций. Первый же оператор Transact-SQL, исполняемый после завершения предыдущей транзакции, автоматически запускает новую транзакцию. В начале транзакции в журнал не заносится никаких записей; первая запись в журнале появляется при модификации данных.

3. Приложение начинает модификацию данных. Модификации в таблицах производятся по очереди. Если выполняется серия модификаций, то в результате база данных может какое-то время оставаться в несогласованном промежуточном состоянии.

4. Когда приложение достигает этапа, на котором все модификации успешно завершены, и база данных снова находится в согласованном состоянии, приложение фиксирует транзакцию. На этом этапе все сделанные модификации базы данных становятся постоянными.

5. Если приложение обнаруживает ошибки, которые предотвращают завершение транзакции, оно выполняет отмену (откат) всех модификаций данных. Этот процесс возвращает базу данных к той точке согласованности, в которой она находилась до начала транзакции.

Приложения SQL Server также могут работать в режиме автоматической фиксации. В этом режиме исполнение каждого оператора Transact-SQL фиксируется, если оно успешно, или автоматически откатывается, если возникает ошибка. Приложению, работающему в режиме автофиксации, нет необходимости использовать специальные операторы для начала и завершения транзакции.

Все операторы Transact-SQL выполняются в составе транзакций: явных, неявных или с автоматической фиксацией. Все транзакции SQL Server, включающие в себя операции по модификации данных, достигают новой точки согласованности и фиксируются или откатываются к исходной точке согласованности. Транзакции не остаются в промежуточном состоянии, в котором база данных не согласована.