Oracle DBA Forum

Oracle DBA Forum (http://odba.ru/index.php)
-   База данных Oracle 10g Администрирование I (http://odba.ru/forumdisplay.php?f=2)
-   -   08 Сопровождение данных и одновременный доступ (http://odba.ru/showthread.php?t=14)

Marley 24.09.2009 13:45

08 Сопровождение данных и одновременный доступ
 
http://img.oradba.net/images/trainin...1/08/1-8-1.jpg

Marley 24.09.2009 13:46

Рассматриваемые вопросы
 
http://img.oradba.net/images/trainin...1/08/1-8-2.jpg

Marley 24.09.2009 13:50

Манипулирование данными с помощью SQL
 
http://img.oradba.net/images/trainin...1/08/1-8-3.jpg

Манипулирование данными с помощью SQL

Манипулирование данными в базе данных можно производить с помощью команд DML. Эти команды будут рассмотрены на этом занятии.

Marley 24.09.2009 13:57

Команда INSERT
 
http://img.oradba.net/images/trainin...1/08/1-8-4.jpg

Команда INSERT

Базовая команда INSERT создает одну строку в одной операции. Используя подзапрос, можно вставлять строки, копируемые в таблицу из другой таблицы. Этот вид вставки также называют командой "INSERT с подзапросом". На слайде приведена следующая команда INSERT:

Код:

insert into dept_80  (select * from employees
where department_id = 80);

В рассматриваемом примере таблица dept_80 имеет ту же самую структуру, что и таблица employees. Если это не так, можно указать имена столбцов. Ниже приведен пример, в котором указываются имена столбцов каждой таблицы.

Соответствующие друг другу столбцы следуют по порядку в предложениях INSERT и SELECT команды вставки с подзапросом. Все что при этом требуется -соответствие типов данных столбцов, например:

Код:

insert into just_names  (first,  last)
(select first_name,  last_name from employees);

В таблице just_names может, к примеру, быть только два столбца, тип данных которых соответствует типу данных столбцов first_name и last_name таблицы employees.

Используя способ вставки с подзапросом, можно выполнять массовую загрузку данных (bulk load data) из одной или нескольких таблиц в другую таблицу.

Marley 24.09.2009 14:05

Команда UPDATE
 
http://img.oradba.net/images/trainin...1/08/1-8-5.jpg

Команда UPDATE

Команда UPDATE используется для обновления существующих строк таблицы. Количество измененных строк зависит от условия WHERE. Когда фраза WHERE опущена, изменяются все строки. Если нет строк, удовлетворяющих условию WHERE, тогда ни одна строка не изменяется.

Marley 24.09.2009 14:05

Команда DELETE
 
http://img.oradba.net/images/trainin...1/08/1-8-6.jpg

Команда DELETE

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

Marley 24.09.2009 14:14

Команда MERGE
 
http://img.oradba.net/images/trainin...1/08/1-8-7.jpg

Команда MERGE

Команда MERGE выполняет операции INSERT и UPDATE в одной команде. Использование этой команды позволяет объединять один источник с другим. При этом новые строки вставляются, а в уже существующих строках обновляются значения определенных столбцов.
Рассмотрим следующий пример, в котором показаны некоторые строки таблицы
JOBS:

http://img.oradba.net/images/trainin...08/1-8-7-1.jpg

Ниже приведены данные таблицы JOBS_ACQUISITION:

http://img.oradba.net/images/trainin...08/1-8-7-2.jpg

Команда MERGE вставляет в таблицу JOBS строки с новыми должностями (JOB_ID) и обновляет столбец JOB_TITLE в существующей строке таблицы JOBS, если уже есть строка с такой должностью (JOB_ID). В результате название должности "President" будет изменено на "VP" и, кроме того, добавятся две строки для новых должностей "SA" и "DBA".

Marley 24.09.2009 14:15

Команды COMMIT и ROLLBACK
 
http://img.oradba.net/images/trainin...1/08/1-8-8.jpg

Команды COMMIT и ROLLBACK

По умолчанию любая введенная команда DML не фиксируется. Некоторые инструментальные средства (в том числе iSQL*Plus) имеют возможность установить опцию фиксации каждой команды или группы команд.

Перед выполнением COMMIT или ROLLBACK изменения находятся в отложенном состоянии. Только пользователю, делающему изменения, позволено их видеть. Остальные пользователи, запрашивающие данные, получают их в том виде, в котором они были перед внесением изменений. Остальные пользователи не могут выполнить команды DML, затрагивающие те же самые данные, которые изменил другой пользователь.

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

Marley 24.09.2009 14:17

PL/SQL
 
http://img.oradba.net/images/trainin...1/08/1-8-9.jpg

PL/SQL

PL/SQL - разработанный фирмой Oracle язык четвертого поколения {fourth generation programming language - 4GL), который своими процедурными возможностями расширяет язык SQL. PL/SQL предоставляет общую среду программирования для баз данных и приложений независимо от операционной системы и аппаратной платформы.

В среде PL/SQL можно манипулировать данными с помощью команд SQL, а также управлять потоком выполнения программы, применяя такие процедурных конструкции, как IF-THEN, CASE и LOOP. Кроме того, можно объявлять константы и переменные, определять процедуры и функции, использовать коллекции и объектные типы, а также перехватывать ошибки в ходе выполнения. Предоставляется возможность вызова из кода PL/SQL программ, написанных на других языках, например С, С++ и Java.

PL/SQL также обеспечивает защиту данных. Чтобы выполнить вызов, вызывающая компонента (caller) не должна знать структуру читаемых и обрабатываемых данных. Ей также не нужны права доступа к этим объектам; все, что необходимо, это наличие у вызывающей компоненты права выполнения программы PL/SQL. Однако можно воспользоваться и другим режимом, в котором вызывающая компонента должна иметь такие права, которые позволяют успешно выполнить каждую команду вызываемой программы PL/SQL.

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

Дополнительную информацию о процедурных конструкциях и использовании PL/SQL см. в документе PL/SQL User's Guide and Reference.

Marley 24.09.2009 14:17

Сопровождение объектов PL/SQL
 
http://img.oradba.net/images/trainin.../08/1-8-10.jpg

Сопровождение объектов PL/SQL

Администратор базы данных обычно не несет ответственность за загрузку кода PL/SQL в базу данных и не обязан помогать разработчикам при поиске причин ошибок в их программах. Он также обычно не пишет код приложения, используя PL/SQL. Несмотря на все это, администратору следует быть знакомым с различными объектами PL/SQL, чтобы быть в состоянии дать рекомендации разработчикам приложений и найти проблемы, связанные с использованием объектов PL/SQL.
С помощью консоли Database Control можно сопровождать объекты PL/SQL.

Ссылки на различные типы объектов находятся в секции Schema на странице, доступной по закладке Administration. После выбора типа объектов PL/SQL можно просматривать, модифицировать и создавать объекты выбранного типа.


Текущее время: 11:53. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot