Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Прохождение оператора SQL через архитектуру

Поддержка национальных языков

Средство поддержки национальных языков Oracle (National Language Support — NLS) позволяет пользователям использовать базу данных на их собственных языках. Это средство обеспечивает следующие функции:

1) Поддержка различных схем кодирования, т.е. данные, созданные в схеме кодирования на одной машине, могут быть обработаны и представлены на другой. Для этого определяется символьный набор, который будет использоваться для хранения данных в базе данных, как часть оператора CREATE DATABASE.

2) Управление языком вывода ошибок сервера и информационных сообщений, чисел; дат, форматов, валюты и начального дня недели.

3) Поддержка лингвистической сортировки гарантирует, что символы появляются в корректном порядке.

4) Определение языка NLS осуществляется как для базы данных в целом, так и на уровне сеанса. Изменяя параметры сеанса, но не внося изменений в учетный раздел пользователя Oracle, можно выполнять одни сеансы на английском языке, другие на немецком и т.д., если одно имя пользователя Oracle соединено с базой данных через несколько различных сеансов.

 

Здесь показано как соединяются основные части архитектуры Oracle и отслежены этапы выполнения типичного оператора SQL. Для простоты будем говорить об Oracle SQL*Plus и машине сервера базы данных на платформе UNIX без какой-либо сети. Пусть экземпляр Oracle только что запущен в однозадачной конфигурации.

Алгоритм выполнения оператора SQL:

1) Пользователь запускает инструмент SQL*Plus и вводит имя пользователя Oracle и пароль.

2) Oracle подтверждает имя пользователя и пароль, сверившись со словарем данных, и посылает ответ пользовательскому процессу для подтверждения соединения.

3) Пользователь вводит оператор SELECT.

4) Oracle должен произвести разбор SELECT прежде, чем выполнить его, поэтому вызывается синтаксический анализатор и оптимизатор Oracle. Если бы какой-либо пользователь ранее уже ввел точно такой же оператор, "разобранная" версия могла бы находиться в области разделяемого пула в памяти. Oracle в этом случае использует результаты разбора, так что для данного оператора никакой дополнительный анализ не выполняется.

5) Чтобы транслировать оператор SELECT, Oracle должен получить имена объектов, привилегий и другую информацию из словаря данных. Область кэша словаря данных в разделяемом пуле в SGA не содержит информации о таблицах, поэтому анализ оператора SELECT приостанавливается для считывания информации.

6) Oracle выполняет рекурсивный оператор SQL (оператор, генерируемый системой), чтобы загрузить информацию об объектах из таблиц словаря данных, находящихся в файлах базы данных, в кэше словаря данных в памяти.

7) Разбор исходного пользовательского оператора SELECT продолжается, и Oracle строит план оптимизации, чтобы определить способ выполнения оператора.

8) Оператор обращается к таблице. Предположим, что блоки таблицы не находятся в буферном кэше базы данных в SGA. Требуемые блоки Oracle читаются из файлов базы данных и передаются в область кэша SGA.

9) Oracle выполняет оператор и возвращает результаты пользователю.

10) Пользователь вводит оператор UPDATE, чтобы изменить определенные поля в строках, которые он только что выбрал. Так как кэш словаря данных уже имеет в памяти информацию о таблице; рекурсивный SQL более не генерируется (предположим, что информация не удалена другим процессом, требующим пространства в кэше). Также блоки таблицы находятся в буферном кэше базы данных, так что не нужно выполнять новый дисковый ввод/вывод, чтобы считать эти блоки.

11) Oracle блокирует строки, которые будут модифицироваться.

12) Прежде чем Oracle выполняет UPDATE, информация старого состояния блоков регистрируется в сегменте отката, а исходная версия значений также записывается в буферном кэше журнала.

13) Oracle модифицирует строки и записывает новую версию значений в буферном кэше журнала.

14) Пользователь вводит команду COMMIT, чтобы сделать изменение в базе данных окончательным.

15) Oracle помещает элемент журнала, указывая фиксацию транзакции, в буферный кэш журнала, и все элементы журнала (старый, новый, подтверждающий) переносятся в оперативный журнальный файл.

16) Сегмент отката освобождается (но не перезаписывается) для использования другими процессами.

17) Oracle освобождает блокировки в таблице.

18) Пользователь получает сообщение об успешной фиксации транзакции (точная формулировка этого сообщения изменяется в зависимости от инструмента и версии).

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

 

 

Глава 18. Безопасность

 

В любой многопользовательской компьютерной системе обеспечение безопасности является крайне важной задачей. Системы баз данных Oracle — не исключение. При отсутствии надлежащего управ­ления безопасностью системы нарушители могут проникнуть в базу данных Oracle, просмотреть конфиденциальную информацию и внести несанкционированные изменения в хранимые данные. Oracle предоставляет разнообразные средства, которые позволяют управлять доступом пользова­телей к ресурсам баз данных:

• Управление работой пользователей и аутентификация

• Управление привилегиями и ролями

• Ограничение использования ресурсов баз данных

• Работа с паролями пользователей

• Аудит баз данных

 

<== предыдущая лекция | следующая лекция ==>
Журнальные файлы | Аутентификация глобального имени пользователя
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 294; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.015 сек.