Phân gi i tên it ngl c

Một phần của tài liệu Tiểu luận môn cơ sở dữ liệu nâng cao Xử lý giao tác trong hệ thống phân tán (Trang 47)

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 (adsbygoogle = window.adsbygoogle || []).push({});

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'; (adsbygoogle = window.adsbygoogle || []).push({});

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

Một phần của tài liệu Tiểu luận môn cơ sở dữ liệu nâng cao Xử lý giao tác trong hệ thống phân tán (Trang 47)