Каналы связи базы данных
Каналы связи базы данных — это псевдонимы для ссылки на другие базы данных Oracle или не-Oracle, имеющие соединение с базой данных, с которой в настоящее время соединена ваша учетная запись Oracle. С помощью канала связи можно очень просто получить доступ к таблицам и другим объектам другой базы данных, указывая в операторе SQL имя удаленной таблицы с символом @, за которым следует имя канала… Читать ещё >
Каналы связи базы данных (реферат, курсовая, диплом, контрольная)
Каналы связи базы данных — это псевдонимы для ссылки на другие базы данных Oracle или не-Oracle, имеющие соединение с базой данных, с которой в настоящее время соединена ваша учетная запись Oracle. С помощью канала связи можно очень просто получить доступ к таблицам и другим объектам другой базы данных, указывая в операторе SQL имя удаленной таблицы с символом @, за которым следует имя канала связи базы данных.
Для указания другого имени таблицы удаленной базы данных можно использовать синоним, чтобы не нужно было использовать обозначение @.
Для установки канала связи необходимо обеспечить способ взаимодействия двух баз данных. Это предусматривает использование программного продукта SQL*Net базы данных Oracle, который стыкуется с соответствующим сетевым программным обеспечением и устанавливается администратором базы данных. Для канала связи базы данных необходимо предоставить имя сетевого протокола, адрес или имя хост-компьютера (на котором работает удаленный экземпляр Oracle) и идентификатор экземпляра на удаленном компьютере, например, 't:big_unix_machine:main_db'.
С помощью программного продукта SQL*Net версии 2 это выполнить проще в том отношении, что можно использовать имя псевдонима TNS для экземпляра на удаленном компьютере и тем самым обойтись без указания дополнительных данных, требуемых для установления канала связи. С помощью набора программных продуктов SQL*Net можно установить псевдоним для удаленного экземпляра и сослаться на этот псевдоним в команде SQL create database link. В следующем примере показано, как с помощью канала связи базы данных обратиться к таблицам и другим объектам пользователя SCOTT другой базы данных Oracle.
SQL> CREATE DATABASE LINK mylink.
- 2 CONNECT TO scott IDENTIFIED BY tiger
- 3 USING 4: big_unix_machine:inain_db';
Database link created.
SQL>
SQL> select * From emp@mylink;
EMPNO NAME .IQB MGR HIREDATE SAL COMM DEPTNO 7369 SMITH CLERK 7902 17-DEC-99 800 20.
- 7499 ALLEN SALESMAN 7698 20-FEB-99 1600 300 30
- 7521 WARD SALESMAN 7698 22-FEB-99 1250 500 30
- 7566 JONES MANAGER 7839 02-APR-99 2975 20
- 7654 MARTIN SALESMAN 7698 28-SEP-99 1250 1400 30
- 7698 BLAKE MANAGER 7839 01-MAY- 2850 30
- 7782 CLARK MANAGER 7839 09-JUN-99 2450 10
- 7788 SCOTT ANALYST 7566 19-APR-99 3000 20
- 7839 KING PRESDENT 17-NOV-99 5000 10
- 7844 TURNER SALESMAN 7698 08-SEP-99 1500 30
- 7876 ADAMS CLERK 7788 23-MAY-99 1100 20
- 7900 JAMES CLERK 7698 03-DEC-99 950 30
- 7902 FORD ANALYST 7566 03-DEC-99 3000 20
- 7934 MILLER CLERK 7782 23-JAN-99 1300 10
- 14 rows selected.
SQL>
После создания канала связи базы данных можно использовать его имя в операторах select, как показано в предыдущем примере.
Если установлена опция Distributed (распределенная) базы данных RDBMS Oracle7, можно выполнять изменения в таблицах локальной базы данных и удаленных баз данных в одной и гой же транзакции. Механизм двухфазной фиксации Oracle гарантирует, что при фиксации транзакции либо будет выполнена фиксация изменений во всех базах данных, участвующих в распределенной транзакции, либо будет выполнен откат всех изменений. Если не используется опция Distributed базы данных Oracle, можно вносить изменения одновременно только в одну базу данных.
В следующем примере кода, выполняемом в базе данных с опцией Distributed, вносятся изменения в таблицы в локальной и удаленной базах данных, и оператор COMMIT гарантирует, что эти изменения будут зафиксированы в обеих базах данных.
SQL> DELETE FROM delegates WHERE d_delegate_id =3;
1 row deleted.
SQL> DELETE FROM emp@mylink WHERE deptno = 10;
4rows deleted.
SQL> COMMIT;
Commit complete.
SQL>
Если во время выполнения оператора COMMIT возникнут какие-либо проблемы, будет автоматически выполнен откат для обеих таблиц.