什麼是分布資料庫?
資料物理上被存放在網路的多個節點上,邏輯上是一個整體。
分散式資料庫的獨立性:
分布資料的獨立性指使用者不必關心資料如何分割和儲存,只需關心他需要什麼資料
定義資料庫鏈路
- CREATE DATABASE LINK [db_link_name] CONNECT TO [user_name] IDENTIFIED BY [password] USING '[tns_name]';
- 1、[DB_LINK_NAME]:是所要串連的資料庫的服務名,也就是該資料庫的真實名稱(通常就是SID)。
- 2、 [USRE_NAME]:是所要串連的使用者名稱稱。
- 3、 [PASSWORD]:是所要串連的使用者的密碼。
- 4、[TNS_NAME]:是所要串連的資料庫的服務命名。
- 例如:
- SQL> create database link l2 connect to scott identified by soctt using 'shuang';
- 之前要配置好啊
- 分散式資料庫查詢:
- select ename, dname from dept, emp@L2 where emp.deptno=dept.deptno;
- 透明存取-別名
- SQL> create synonym shuang for emp@l2;
- 建立遠端資料表的視圖:
- create view emp
- as
- select * from emp1@L1
- union
- select * from emp2@L2 ;
- 分散式資料庫的其他動作:
- 插入操作:
- insert into emp select * from emp@L2;
- 資料複製:
- create table emp as select * from emp@L2;
- 快照:
- 定義快照維護關係表的非同步副本
- 指在主表修改後的指定時間內重新整理副本,用於主表修改少,但頻繁查詢的表。
- create snapshot emp(
- refresh start with sysdate
- next next_day(sysdate,’Monday’)
- as select * from emp@L1 ;
- 利用觸發器實現資料的同步:
- create or replace trigger update_emp after update on emp for each row
- begin
- update emp@L2 set emp.sal =:new.sal
- where emp.empno= :new.empno;
- end;