IDENTIFIED BY 'prod' Ch>nh mnh . CONNECT TO CURRENT_USER S dng liên kt c s d liu ngi dùng hin hành
CREATE DATABASE LINK k3 CONNECT TO
CURRENT_USER USING 'prod'
Không ch>nh mnh .
USING
Tìm kim cho n khi tìm thy liên kt ch>nh chu5i c s d liu. Nu liên kt c s d liu phù hp c tìm thy và chu5i không c xác nh, Oracle s8 tr
v. l5i.
CREATE DATABASE LINK k4 CONNECT TO
CURRENT_USER
Sau khi Oracle xác nh con ng hoàn ch>nh, nó to phiên t∃ xa. Nu phiên ã tn ti, Oracle s8 tái s dng nó.
Υ ∃%&+!5!∋Η&)Τ!∋ΘΞ&+ ΘΞ)∗
Sau khi c s d liu cc b, Oracle kt ni n c s d liu t∃ xa thay cho ngi dùng cc b, ã thc hin câu lnh SQL, vic phân gii i tng c tip tc nh th! ngi dùng t∃ xa ã thc hin câu lnh SQL. Kt qu %u tiên xác nh lc t∃ xa theo các quy t4c sau ây:
Nu bn s dng ... thì phân gii i tng tip tc trong...
Liên kt c s d liu ngi dùng cnh Lc ch>nh trong lnh to ra liên kt
Liên kt c s d liu ngi dùng kt ni Lc t∃ xa ca ngi dùng kt ni
Liên kt c s d liu ngi dùng hin hành Lc ca ngi s dng hin hành
Nu Oracle không th! tìm thy i tng, nó s8 ki!m tra các i tng công khai ca c s d liu t∃ xa. Nu nó không th! phan gii các i tng,
Tiu lun môn hc: C s d liu nâng cao
HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 48
thì phiên t∃ xa c thit l p v:n còn nhng các câu lnh SQL không th! thc hin và tr v. l5i.
Sau ây là ví d phân gii tên i tng toàn cc trong h c s d liu phân tán.
Υ− δψ9#∃%&+!5!∋Η&)Τ!∋ΘΞ&+∋Β/&9Η&)Τ!∋ΘΞ&+)η?)Φ
Ví d này minh h(a làm th nào Oracle gii quyt tên i tng toàn cc %y và xác nh con ng phù hp v∗i c s d liu t∃ xa b2ng cách s dng liên kt c s d liu riêng t và công khai. i v∗i ví d này, gi s nh sau:
• C s d liu t∃ xa c 6t tên là sales.division3.acme.com.
• C s d liu cc b,c 6t tên là hq.division3.acme.com.
• Oracle Name Server không có s1n.
• Bng emp t∃ xa c ch−a trong lc tsmith.
Hãy xem xét các lnh sau ây c thc hin bi scott ti c s d liu cc b,:
CONNECT scott/tiger@hq
CREATE PUBLIC DATABASE LINK sales.division3.acme.com CONNECT TO guest IDENTIFIED BY network
USING 'dbstring';
Sau ó, JWARD kt ni và thc hin các lnh sau ây: CONNECT jward/bronco@hq
CREATE DATABASE LINK sales.division3.acme.com CONNECT TO tsmith IDENTIFIED BY radio;
UPDATE tsmith.emp@sales.division3.acme.com SET deptno = 40
WHERE deptno = 10;
Tiu lun môn hc: C s d liu nâng cao
HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 49
1. Oracle xác nh tên i tng toàn cc %y c tham chiu trong lnh c p nh t ca jward. Vì v y, h thng b4t %u tìm kim liên kt c s d liu v∗i tên phù hp trong c s d liu cc b,.
2. Oracle tìm thy m,t liên kt c s d liu riêng t phù hp trong lc jward. Tuy nhiên, liên kt c s d liu riêng t jward.sales.division3.acme.com không ch> ra m,t con ng hoàn ch>nh n c s d liu t∃ xa sales, ch> có tài khon t∃ xa. Do ó, Oracle tìm kim liên kt c s d liu công khai phù hp.
3. Oracle tìm thy liên kt c s d liu công khai trong lc ca scott. T∃ liên kt c s d liu công khai này, Oracle ly tên dch v dbstring.
4. Kt hp v∗i tài khon t∃ xa ly t∃ liên kt c s d liu ngi dùng c nh riêng t phù hp, Oracle xác nh m,t ng d:n %y và tin hành thit l p kt ni n c s d liu t∃ xa sales nh ngi s dng tsmith/radio.
5. C s d liu t∃ xa có th! phân gii tham chiu i tng n bng emp. Oracle tìm kim trong lc tsmith và tìm thy bng tham chiu emp.
6. C s d liu t∃ xa hoàn tt thc thi lnh và tr kt qu v. c s d liu cc b,.
Υ−3 δψ9#∃%&+!5!∋Η&)Τ!∋ΘΞ&+∋Β/&9Η&)Τ!∋ΘΞ&+_κ∋#∃η&
Ví d này minh h(a làm th nào Oracle phân gii tên i tng toàn cc m,t ph%n và xác nh ng i phù hp n c s d liu t∃ xa b2ng cách s dng liên kt c s d liu riêng t và công khai.
i v∗i ví d này, gi s r2ng:
• C s d liu t∃ xa c 6t tên là sales.division3.acme.com.
Tiu lun môn hc: C s d liu nâng cao
HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 50
• Oracle Name Server không có s1n.
• Bng emp trên c s d liu t∃ xa sales c ch−a trong lc tsmith, ch− không phi trong lc scott.
• Synonym công khai là emp n2m ti c s d liu t∃ xa sales và tr<n tsmith.emp trong c s d liu t∃ xa sales.
• Liên kt c s d liu công khai ã c to ra trên c s d liu cc b, hq:
CREATE PUBLIC DATABASE LINK sales.division3.acme.com CONNECT TO guest IDENTIFIED BY network
USING 'dbstring';
Hãy xem xét các lnh sau ây c thc thi ti c s d liu cc b, hq:
CONNECT scott/tiger@hq
CREATE DATABASE LINK sales.division3.acme.com; DELETE FROM emp@sales
WHERE empno = 4299;
Oracle x lý câu lnh DELETE cui cùng nh sau:
1. Oracle thông báo r2ng tên i tng toàn cc không %y c tham chiu trong lnh DELETE ca scott. Nó t m r,ng thành tên i tng toàn cc %y b2ng cách s dng tên mi.n ca c s d liu cc b, nh sau:
DELETE FROM emp@sales.division3.acme.com WHERE empno = 4299;
2. Oracle tìm kim tên phù hp cho liên kt c s d liu trong c s d liu cc b,.
3. Oracle tìm thy liên kt ngi dùng kt ni riêng t phù hp trong lc scott, nhng liên kt c s d liu riêng t cho bit không có
Tiu lun môn hc: C s d liu nâng cao