Помощь в написании студенческих работ
Антистрессовый сервис

Каналы связи базы данных

РефератПомощь в написанииУзнать стоимостьмоей работы

Каналы связи базы данных — это псевдонимы для ссылки на другие базы данных 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 возникнут какие-либо проблемы, будет автоматически выполнен откат для обеих таблиц.

Показать весь текст
Заполнить форму текущей работой