Tải bản đầy đủ (.pdf) (60 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (417.69 KB, 60 trang )


Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 1

MC LC








MC LC 1

LI M U 3

PHN 1: KIN TRÚC C S D LIU PHÂN TÁN 4

1

H c s d liu phân tán ng nht 4

2

H c s d liu phân tán không ng nht 7

3

Kin trúc c s d liu Khách/Ch 9



PHN 2: LIÊN KT C S D LIU 12

1

Liên kt d liu là gì? 12

2

Liên kt c s d liu chia s là gì? 14

3

Ti sao s dng liên kt c s d liu? 15

4

Tên c s d liu toàn cc trong liên kt c s d liu 16

5

Tên liên kt c s d liu 18

6

Các loi liên kt c s d liu 19

7

Ngi dùng liên kt c s d liu 20


8

To liên kt c s d liu 25

9

i tng lc  và liên kt c s d liu 26

10

Hn ch ca liên kt c s d liu 29

PHN 3: QUN TR C S D LIU PHÂN TÁN 30

1

Vùng t tr 30

2

Bo m t c s d liu phân tán 31


Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 2

3


Ki!m toán liên kt c s d liu 38

4

Công c qun tr 39

PHN 4: X∀ LÝ GIAO TÁC TRONG H TH#NG PHÂN TÁN 41

1

Câu lnh SQL t∃ xa 41

2

Câu lnh SQL phân tán 41

3

Chia s SQL t∃ xa và phân tán 42

4

Giao tác t∃ xa 43

5

Giao tác phân tán 43

6


C ch Commit hai l%n 44

7

Phân gii tên liên kt c s d liu 44

8

Phân gii tên i tng lc  47

9

Phân gii tên toàn cc cho View, Synonym và Th tc 51

PHN 5: PHÁT TRI&N ∋NG DNG C S D LIU PHÂN TÁN 55

1

S trong sut trên h c s d liu phân tán 55

2

G(i th tc t∃ xa (RPCs) 57

3

Ti u truy vn phân tán 58

KT LU)N 59


TÀI LIU THAM KHO 60


Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 3

LI M U








B∗c sang th k+ 21, nhân loi ã chuy!n t∃ xã h,i công nghip sang xã h,i
thông tin. V∗i mng Internet tc , cao ngày càng c m r,ng trên toàn th
gi∗i, v∗i vic −ng dng Công ngh thông tin ngày càng sâu hn trong nhi.u l/nh
vc, nhu c%u và kh n0ng kt ni, chia s thông tin ca con ngi ang tr nên
l∗n hn bao gi ht. Cu,c cách mng Internet ã gây ra m,t thách th−c l∗n trong
vic lu tr và x lý thông tin sao cho hiu qu da trên tài nguyên s1n có. H c
s d liu phân tán ra i nh2m gii quyt vn . trên.
H c s d liu phân tán c phát tri!n da trên c s d liu truy.n
thng và mng máy tính tc , cao. C s d liu phân tán gm nhi.u c s d
liu tích hp li v∗i nhau thông qua mng máy tính ! trao 3i d liu, thông
tin… C s d liu c t3 ch−c và lu tr  nhng v trí khác nhau trong mng
máy tính và chng trình −ng dng làm vic trên c s truy c p d liu  nhng
i!m khác nhau ó.
Thông qua bài thu hoch này, em mun tìm hi!u chi tit c ch hot ,ng

ca c s d liu phân tán c th! trên h qun tr c s d liu Oracle 9i.
Tuy ã có nhi.u c g4ng nhng do hn ch v. kinh nghim, kin th−c, thi
gian và ngun tài liu tham kho nên các vn . tìm hi!u trong bài ti!u lu n ch4c
ch4n còn nhi.u thiu sót. Kính mong Th%y xem xét và góp ý thêm.

Em xin chân thành cám n Thy!
Trng Lê Minh Ngc

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 4




H c s d liu phân tán cho phép các −ng dng truy c p d liu trên
c s d liu cc b, và t∃ xa. Trong h c s d liu phân tán ng
nht, m5i c s d liu là m,t c s d liu Oracle. Trong h c s d liu
phân tán không ng nht, ít nht m,t trong các c s d liu là c s d
liu Oracle. C s d liu phân tán s dng kin trúc Khách/Ch ! x lý các
thông tin yêu c%u.
  !∀#∃%&∋(&)∗&+&∃,∋
H c s d liu phân tán ng nht là m,t mng l∗i ca hai ho6c nhi.u
c s d liu Oracle c trú trên m,t ho6c nhi.u máy. Hình sau minh h(a m,t
h thng phân tán kt ni 3 c s d liu: hq , mfg , và sales. M,t −ng dng
ng thi có th! truy c p ho6c sa 3i d liu trong m,t s c s d liu trong
m,t môi trng phân tán duy nht. Ví d, m,t truy vn t∃ m,t khách hàng
Manufacturing trên c s d liu cc b, mfg có th! ly d liu t∃ bng
products trên c s d liu cc b, và bng dept trên c s d liu t∃ xa hq.
i v∗i −ng dng khách hàng, v trí và n.n tng ca c s d liu là trong

sut. Bn c7ng có th! to ra các synonym cho các i tng t∃ xa trong h
thng phân tán ! ngi dùng có th! truy c p chúng v∗i cú pháp tng t nh
các i tng cc b,. Ví d, nu bn kt ni v∗i c s d liu mfg nhng
mun truy c p d liu trên c s d liu hq, to ra m,t synonym trên mfg cho
bng dept  xa cho phép bn s dng truy vn sau:
SELECT * FROM dept;

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 5

B2ng cách này, h thng phân tán cho phép truy c p d liu t∃ xa ging
nh truy c p d liu cc b,. Ngi s dng trên mfg không c%n phi bit d
liu h( truy c p ang n2m trên c s d liu t∃ xa.


H c s d liu phân tán Oracle có th! hot ,ng v∗i các phiên bn c s
d liu Oracle khác nhau. Tt c các phiên bn h5 tr ca Oracle có th! tham
gia trong m,t h c s d liu phân tán. Tuy nhiên, các −ng dng làm vic v∗i
các c s d liu phân tán phi hi!u các ch−c n0ng ó là có s1n ti m5i nút
trong h thng.

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 6

−  !∀#∃%&∋(&./01 2#∃%&∋(&
C s d liu phân tán và x lý phân tán liên quan ch6t ch8, nhng có ý
ngh/a riêng bit. C th! nh sau:


C s d liu phân tán
M,t t p hp các c s d liu trong m,t h thng phân tán khin cho
−ng dng hi!u nh là m,t ngun d liu duy nht.

X lý phân tán
Các hot ,ng xy ra khi m,t −ng dng phân phi các nhim v ca
mình gia các máy tính khác nhau trong m,t mng. Ví d, m,t −ng
dng c s d liu thng phân phi nhim v trình di9n front-end cho
các máy khách và cho phép m,t máy ch c s d liu back-end qun
lý truy c p chia s c s d liu. Do ó, h thng x lý −ng dng c s
d liu phân tán thng c g(i là h −ng dng c s d liu
khách/ch.
H c s d liu phân tán Oracle s dng kin trúc x lý phân tán. Ví d,
máy ch c s d liu Oracle óng vai trò nh m,t máy khách khi nó yêu c%u
d liu do máy ch c s d liu Oracle khác qun lý.
−3  !∀#∃%&∋(&./ !∀&∃%&45&
H c s d liu và c s d liu nhân bn có liên quan, nhng khác
bit. Trong c s d liu phân tán nguyên thy (không nhân bn), h thng
qun lý m,t bn sao duy nht ca tt c các d liu và các i tng c s d
liu. Các −ng dng c s d liu phân tán s dng các giao tác phân tán !

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 7

truy c p vào c d liu cc b, và t∃ xa và sa 3i các c s d liu toàn cc
trong thi gian thc.
Nhân bn . c p n các hot ,ng sao chép và duy trì các i tng c
s d liu trong nhi.u c s d liu thu,c v. m,t h phân tán. Trong khi nhân
bn da trên công ngh c s d liu phân tán, c s d liu nhân bn cung

cp các li ích mà không th! có trong môi trng c s d liu phân tán
nguyên thy.
Thông thng, nhân bn c s dng ! ci thin hiu sut c s d liu
cc b, và bo m tính s1n sàng ca các −ng. Ví d, −ng dng thng truy
c p vào c s d liu cc b, hn là m,t máy ch t∃ xa ! gim thi!u lu
lng truy c p mng và t c hiu sut ti a. Hn na, −ng dng có th!
tip tc hot ,ng nu máy ch cc b, g6p s c, nhng các máy ch khác v∗i
d liu nhân bn v:n có th! truy c p.
3  !∀#∃%&∋(&6∃7&+)∗&+&∃,∋
Trong h c s d liu phân tán không ng nht, ít nht m,t trong các c
s d liu là h thng non-Oracle. i v∗i −ng dng, h c s d liu phân
tán không ng nht xut hin nh là m,t c s d liu Oracle cc b, và duy
nht. Máy ch c s d liu Oracle cc b, che giu s phân b không ng
nht ca d liu.
Các máy ch c s d liu Oracle truy c p h thng non-Oracle s dng
dch v không ng nht ca Oracle kt hp v∗i m,t agent. Nu truy c p d
liu non-Oracle b2ng Oracle Transparent Gateway, thì agent là m,t −ng dng
h thng c th!. Ví d, nu a c s d liu Sybase vào h phân tán Oracle,
thì c%n phi có m,t c3ng Sybase trong sut ! c s d liu Oracle trong h
thng có th! giao tip v∗i nó.

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 8

Ngoài ra, có th! s dng kt ni thông thng ! truy c p d liu non-
Oracle mi9n là h thng non-Oracle h5 tr các giao th−c ODBC hay OLE DB.
3− 8∃.96∃7&+)∗&+&∃,∋
Dch v không ng nht (Heterogeneous Services - HS) là m,t thành
ph%n tích hp trong các máy ch c s d liu Oracle và −ng dng công ngh

ca sn ph;m Oracle Transparent Gateway. HS cung cp các kin trúc thông
thng và c ch qun lý cho các sn ph;m Oracle gateway và các thit b
truy c p không ng nht. Ngoài ra, nó cung cp ch−c n0ng tng thích
ngc cho ngi s dng ca h%u ht các phiên bn Oracle Transparent
Gateway tr∗c ó.
3−3 :;&#;:<&∋=;∋<>;?≅+<&∋
i v∗i m5i h thng non-Oracle mà bn truy c p, dch v không ng
nht có th! s dng transparent gateway agent ! giao tip v∗i h thng non-
Oracle. Agent 6c trng cho h thng non-Oracle, vì v y m5i ki!u h thng
òi h<i m,t agent khác nhau.
Transparent gateway agent to i.u kin giao tip gia c s d liu
Oracle và non-Oracle và s dng các thành ph%n ca dch v ng nht trong
các máy ch c s d liu Oracle. Agent thc thi câu lnh SQL và yêu c%u
giao tác ti h thng non-Oracle thay cho các máy ch c s d liu Oracle.
3−Α =<&<:!Β&&<∋!.!∋?
Generic connectivity cho phép kt ni n d liu lu tr non-Oracle b2ng
cách s dng Heterogeneous Services ODBC agent ho6c Heterogeneous
Services OLE DB agent - c hai có trong sn ph;m Oracle nh m,t tính n0ng

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 9

tiêu chu;n. Bt k= data source tng thích v∗i các tiêu chu;n ODBC ho6c
OLE DB có th! c truy c p b2ng cách s dng generic connectivity agent.
Li th ca generic connectivity là không yêu c%u mua và cu hình agent
riêng bit. S dng ODBC hay OLE DB driver có th! giao tip v∗i agent. Tuy
nhiên, m,t s tính n0ng truy c p d liu ch> có s1n v∗i các transparent
gateway agent.
Α !Χ&∋:∆ !∀∃(∃Ε∃Φ

Máy ch c s d liu là ph%n m.m Oracle qun lý c s d liu, và
khách hàng là −ng dng yêu c%u thông tin t∃ máy ch. M5i máy tính trong
m,t mng là m,t nút có th! lu tr m,t ho6c nhi.u c s d liu. M5i nút
trong m,t h c s d liu phân tán có th! hot ,ng nh m,t khách hàng,
máy ch, ho6c c hai tùy trng hp.

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 10



Khách hàng có th! kt ni trc tip ho6c gián tip n máy ch c s d
liu. Kt ni trc tip xy ra khi khách hàng kt ni n máy ch và truy c p
thông tin t∃ c s d liu ch−a trên máy ch ó. Ví d, nu bn kt ni v∗i c
s d liu hq và truy c p vào bng dept trên c s d liu này nh trong hình
trên, bn có th! truy vn nh sau:
SELECT * FROM dept;
Truy vn này là trc tip bi vì bn không truy c p vào i tng trên c
s d liu t∃ xa.
Ngc li, kt ni gián tip xy ra khi khách hàng kt ni n máy ch và
sau ó truy c p thông tin ch−a trong c s d liu trên máy ch khác. Ví d,
nu bn kt ni v∗i các c s d liu hq nhng truy c p bng emp trên c s
d liu sales t∃ xa nh trong hình trên, bn có th! truy vn nh sau:

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 11

SELECT * FROM emp@sales;

Truy vn này là gián tip vì các i tng bn ang truy c p không phi là
trên c s d liu mà bn ang kt ni trc tip.

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 12

3Γ


Khái nim trung tâm trong h c s d liu phân tán là liên kt c s d
liu. Liên kt c s d liu là kt ni gia hai máy ch c s d liu v t lý
cho phép khách hàng truy c p chúng nh c s d liu lu n lý.
 !Η&6Χ∋ !∀ /+Ιϑ
Liên kt c s d liu là con tr< xác nh ng liên lc m,t chi.u t∃ máy
ch c s d liu Oracle n máy ch c s d liu khác. Con tr< liên kt
c nh ngh/a nh là m,t mc trong bng t∃ i!n d liu. ! truy c p vào
liên kt, bn phi kt ni v∗i c s d liu cc b, có ch−a các mc t∃ i!n d
liu.
Kt ni liên kt c s d liu là m,t chi.u ngh/a là khách hàng kt ni v∗i
c s d cc b, A có th! s dng liên kt c lu tr trong c s d liu A
! truy c p thông tin trong c s d liu t∃ xa B, nhng ngi dùng kt ni
v∗i c s d liu B không th! s dng liên kt ó ! truy c p d liu trong c
s d liu A. Nu ngi dùng cc b, trên c s d liu B mun truy c p d
liu trên c s d liu A, h( phi nh ngh/a m,t liên kt c lu tr trong t∃
i!n d liu ca c s d liu B.
Kt ni liên kt c s d liu cho phép ngi dùng cc b, truy c p d liu
trên c s d liu t∃ xa. ! kt ni này xy ra, m5i c s d liu trong h
thng phân tán phi có m,t tên c s d liu toàn cc duy nht trong
mng. Tên c s d liu toàn cc xác nh duy nht máy ch c s d liu

trong h thng phân tán.

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 13

Hình sau cho thy ngi dùng scott truy c p vào bng emp trên c s d
liu t∃ xa v∗i tên toàn cc hq.acme.com:

Liên kt c s d liu có th! là riêng t ho6c công khai. Nu liên kt c s
d liu là riêng t thì ch> có ngi dùng to ra liên kt m∗i có quy.n truy c p,
nu liên kt c s d liu là công khai thì tt c ngi dùng c s d liu .u
có th! truy c p.
S khác bit ch yu gia các liên kt c s d liu là cách các kt ni
n c s d liu t∃ xa thc hin. Ngi dùng truy c p vào c s d liu t∃ xa
thông qua các ki!u liên kt sau:
Kiu liên kt Mô t
Liên kt ngi
dùng kt ni
Ngi dùng kt ni bi chính h( ngh/a là h( phi có m,t tài khon trên c s d liu t∃
xa v∗i tên ngi dùng ging nh tài khon ca h( trên c s d liu cc b,.
Liên kt ngi
Ngi dùng kt ni b2ng cách s dng tên ngi dùng và m t kh;u c tham chiu

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 14

Kiu liên kt Mô t
dùng c nh

trong liên kt. Ví d, nu Jane s dng liên kt ngi dùng c nh kt ni n c s
 d
liu hq v∗i tên ngi dùng và m t kh;u scott / tiger, thì Jane có tt c các 6c quy.n
trong hq cp cho scott, và tt c các vai trò m6c nh scott ã c cp trong c s d
liu hq.
Liên kt ngi
dùng hin hành

Ngi dùng kt ni nh là ngi dùng toàn cc. Ngi dùng cc b, có th! kt ni nh
là m,t ngi dùng toàn cc trong bi cnh ca m,t th tc c lu mà không c%n lu
tr m t kh;u ngi dùng toàn cc trong nh ngh/a liên kt. Ví d, Jane có th! truy c p
vào th tc do Scott vit, truy c p vào tài khon ca Scott và lc  ca Scott trên c
s d liu hq. Liên kt ngi dùng hin hành là m,t khía cnh ca Oracle Advanced
Security.
To liên kt c s d liu b2ng cách s dng câu lnh CREATE
DATABASE LINK. Sau khi liên kt c to ra, bn có th! s dng nó !
xác nh các i tng lc  trong câu lnh SQL.
3 !Η&6Χ∋ !∀∃!;Κ /+Ιϑ
Liên kt c s d liu chia s là m,t liên kt gia tin trình máy ch cc
b, và c s d liu t∃ xa. Liên kt c chia s vì nhi.u tin trình khách hàng
có th! s dng liên kt này ng thi.
Khi c s d liu cc b, kt ni v∗i c s d liu t∃ xa thông qua liên kt
c s d liu, m,t trong hai c s d liu có th! chy  ch , máy ch
chuyên dng ho6c chia s. Bng sau minh h(a các kh n0ng này:
Ch  c s d liu cc b Ch  c s d liu t xa
Chuyên dng Chuyên dng
Chuyên dng Chia s máy ch
Chia s máy ch Chuyên dng

Tiu lun môn hc: C s d liu nâng cao


HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 15

Ch  c s d liu cc b Ch  c s d liu t xa
Chia s máy ch Chia s máy ch
Liên kt c s d liu chia s có th! tn ti trong bt k= hình th−c
trên. Liên kt chia s khác v∗i liên kt c s d liu tiêu chu;n trong các
trng hp sau ây:

Ngi dùng khác nhau truy c p vào cùng i tng lc  thông qua
liên kt c s d liu có th! chia s kt ni mng.

Khi ngi dùng c%n thit l p kt ni n máy ch t∃ xa t∃ tin trình
máy ch c th!, tin trình có th! tái s dng các kt ni ã c thit
l p n máy ch t∃ xa. Vic tái s dng kt ni có th! xy ra nu kt
ni c thit l p trên cùng tin trình máy ch v∗i cùng liên kt c s
d liu. Trên liên kt c s d liu không chia s, kt ni không c
chia s qua nhi.u phiên.

Khi bn s dng liên kt c s d liu chia s trong cu hình máy ch
chia s, kt ni mng c thành l p trc tip ngoài tin trình máy ch
chia s trong máy ch cc b,. i v∗i liên kt c s d liu không chia
s trên máy ch chia s cc b,, kt ni này c thành l p thông qua
i.u phi cc b,.
Α Λ!;Β19&+ !Η&6Χ∋ !∀ϑ
?u i!m l∗n nht ca liên kt c s d liu là cho phép ngi dùng truy
c p các i tng ca ngi dùng khác trong c s d liu t∃ xa ! h( có các
6c quy.n ca ngi s hu i tng. Nói cách khác, ngi dùng cc b, có
th! truy c p vào liên kt n c s d liu t∃ xa mà không c%n phi là m,t
ngi s dng trên c s d liu t∃ xa.


Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 16

Ví d, gi s các nhân viên gi báo cáo chi phí n Accounts Payable
(A/P), và tip tc gi s ngi dùng s dng −ng dng A/P ! ly thông tin v.
nhân viên t∃ c s d liu hq . Ngi dùng A/P có th! kt ni v∗i c s d
liu hq và thc hin m,t th tc c lu trong c s d liu t∃ xa hq ! ly
thông tin mong mun. Ngi s dng A/P không c%n phi là ngi dùng ca
c s d liu hq ! làm công vic ca mình, h( ch> có th! truy c p vào thông
tin hq m,t cách có ki!m soát bi th tc.
Liên kt c s d liu cho phép bn cp quy.n truy c p hn ch vào c s
d liu t∃ xa cho ngi dùng cc b,. B2ng cách s dng liên kt ngi dùng
hin hành, bn có th! to ngi dùng toàn cc có thông tin m t kh;u c che
du kh<i administrator và non-administrator. Ví d, ngi dùng A/P có th!
truy c p c s d liu hq nh scott , nhng không ging nh liên kt ngi
dùng c nh, thông tin ca scott không c lu vào ni mà ngi dùng c
s d liu có th! nhìn thy chúng.
B2ng cách s dng liên kt ngi dùng c nh, bn có th! to ngi dùng
không toàn cc có thông tin m t kh;u c lu tr d∗i hình th−c không c
mã hóa trong bng t∃ i!n d liu LINK$. Liên kt ngi dùng c nh to ra
d9 dàng và yêu c%u chi phí thp vì không c%n SSL, nhng có nguy c bo m t
t∃ vic lu tr thông tin m t kh;u trong t∃ i!n d liu.
Μ Η& !∀∋Β/&9∋:Β&+ !Η&6Χ∋ !∀
! hi!u cách hot ,ng ca liên kt c s d liu, tr∗c tiên bn phi hi!u
tên c s d liu toàn cc là gì. M5i c s d liu trong c s d liu phân tán
c xác nh duy nht bi tên c s d liu toàn cc ca mình. Oracle to
tên c s d liu toàn cc ca c s d liu b2ng cách thêm vào tên mi.n
mng ca c s d liu ch> nh bi tham s khi to DB_DOMAIN to ra c

s d liu, v∗i tên c s d liu ch> nh bi tham s khi to DB_NAME.

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 17

Ví d, hình sau minh h(a s4p xp phân cp ca c s d liu trên mng.

Tên ca c s d liu c hình thành b2ng cách b4t %u t∃ lá ca cây và
theo m,t ng d:n n gc. Ví d, c s d liu mfg trong division3 ca chi
nhánh acme_tools ca mi.n com. Tên c s d liu toàn cc cho mfg c
to ra b2ng cách ni các nút trong cây nh sau:

mfg.division3.acme_tools.com
Trong khi các c s d liu có th! chia s cùng m,t tên riêng, nhng m5i
c s d liu phi có m,t tên c s d liu toàn cc duy nht. Ví d, mi.n
mng us.americas.acme_auto.com và uk.europe.acme_auto.com .u ch−a c
s d liu sales riêng bit. H thng 6t tên c s d liu toàn cc phân bit

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 18

c s d liu sales trong khu vc americas v∗i c s d liu sales trong khu
vc europe nh sau:

sales.us.americas.acme_auto.com

sales.uk.europe.acme_auto.com
Ν Η& !Η&6Χ∋ !∀

Thông thng, liên kt c s d liu có cùng tên v∗i tên c s d liu
toàn cc ca c s d liu t∃ xa mà nó tham chiu. Ví d, nu tên c s d
liu toàn cc ca c s d liu là sales.us.oracle.com thì liên kt c s d liu
c7ng c g(i là sales.us.oracle.com.
Khi bn thit l p tham s khi to GLOBAL_NAMES là TRUE, Oracle
m bo r2ng tên ca liên kt c s d liu ging nh tên c s d liu toàn
cc ca c s d liu t∃ xa. Ví d, nu tên c s d liu toàn cc ca
hq là hq.acme.com, và GLOBAL_NAMES là TRUE, thì tên liên kt phi
c g(i là hq.acme.com. Lu ý r2ng Oracle ki!m tra tên mi.n ca tên c s
d liu toàn c%u khi c lu tr trong t∃ i!n d liu, ch− không phi
DB_DOMAIN thit l p trong t p tin tham s khi to.
Nu bn thit l p tham s khi to GLOBAL_NAMES là FALSE, thì bn
không c%n s dng tên toàn cc. Bn có th! 6t tên tùy ý cho liên kt c s d
liu. Ví d, bn có th! 6t tên liên kt c s d liu n hq.acme.com là foo.
Sau khi bn cho phép 6t tên toàn cc, liên kt c s d liu là trong sut i
v∗i ngi dùng c s d liu phân tán vì tên ca liên kt c s d liu ging
nh tên toàn cc ca c s d liu mà liên kt tr< n. Ví d câu lnh sau to
ra liên kt c s d liu trong c s d liu a phng n c s d liu t∃
xa sales:

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 19

CREATE PUBLIC DATABASE LINK sales.division3.acme.com
USING 'sales1';
Ο ( ΒΛ! !Η&6Χ∋ !∀
Oracle cho phép bn to liên kt c s d liu riêng t, công
khai, và toàn cc. Các liên kt này khác nhau theo cách ngi dùng c
phép truy c p vào c s d liu t∃ xa:

Loi Ch s hu Mô t
Cá nhân Ngi dùng to ra liên kt. Xem
d liu s hu thông qua:

DBA_DB_LINKS

ALL_DB_LINKS

USER_DB_LINKS
To liên kt trong lc  c th! ca c s d
liu cc b,. Ch> có ch s hu ca liên kt c s
d liu riêng t ho6c các chng trình con
PL/SQL trong lc  có th! s dng liên kt
này ! truy c p vào các i tng c s d liu
trong c s d liu t∃ xa tng −ng.
Công khai

Ngi s dng g(i là
PUBLIC. Xem d liu s hu
thông qua:

DBA_DB_LINKS

ALL_DB_LINKS

USER_DB_LINKS
To liên kt c s d liu m r,ng. Tt c ngi
dùng và các chng trình con PL/SQL trong c
s d liu có th! s dng liên kt ! truy c p v
ào

các i tng c s d liu trong c s d liu
t∃ xa tng −ng.
Toàn cc Ngi s dng g(i là
PUBLIC. Xem d liu s hu
thông qua:

DBA_DB_LINKS
To liên kt mng m r,ng. Khi mng Oracle s
dng Oracle Names, các name server trong h
thng t ,ng to ra và qun lý các liên kt c
s d liu toàn cc cho m5i c s d liu Oracle
trong mng. Ngi dùng và các chng trình

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 20

Loi Ch s hu Mô t

ALL_DB_LINKS

USER_DB_LINKS
con PL/SQL trong c s d liu bt k= có th! s
dng liên kt toàn cc ! truy c p các i tng
trong c s d liu t∃ xa tng −ng.
Xác nh loi liên kt c s d liu ! s dng trong c s d liu phân
tán ph thu,c vào các yêu c%u c th! ca các −ng dng s dng h thng. Hãy
xem xét các tính n0ng này khi thc hin la ch(n:
Loi liên kt Tính nng
Liên kt c s d

liu riêng t
Liên kt này an toàn hn so v∗i liên kt công khai ho6c liên kt toàn cc, vì ch> có
ch s hu ca liên kt riêng t ho6c chng trình con trong cùng lc  m∗i có th!
s dng liên kt ! truy c p vào c s d liu t∃ xa.
Liên kt c s d
liu công khai
Khi nhi.u ngi dùng yêu c%u ng d:n truy c p vào c s
 d liu Oracle t∃ xa, bn
có th! to ra m,t liên kt c s d liu công khai duy nht cho tt c ngi dùng
trong c s d liu.
Liên kt c s d
liu toàn cc
Khi mng Oracle s dng Oracle Names, ngi qun tr có th! d9 dàng qun lý liên
kt c s d liu toàn cc cho tt c c s d liu trong h thng. Qun lý liên kt c
s d liu c t p trung và n gin hóa.
Π +ΘΡ!Σ&+ !Η&6Χ∋ !∀
Khi to liên kt, bn xác nh ngi dùng nào c%n kt ni v∗i c s d
liu t∃ xa ! truy c p d liu. Bng sau gii thích s khác bit gia các loi
ngi dùng tham gia trong liên kt c s d liu:
Loi ngi
s dng
Ý ngha Cú pháp to mu liên kt
Ngi dùng Ngi dùng cc b, truy c p vào liên kt c s d CREATE PUBLIC

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 21

Loi ngi
s dng

Ý ngha Cú pháp to mu liên kt
kt ni liu trong mà không c;n ch> nh username và
password. Nu SYSTEM truy c p liên kt công
khai trong truy vn thì ngi dùng kt ni
là SYSTEM , và Oracle kt ni v∗i lc 
SYSTEM trong c s d liu t∃ xa.
Lu ý: Ngi dùng kt ni không phi là ngi
dùng to liên kt, nhng là ngi dùng bt k= truy
c p vào liên kt.
DATABASE LINK hq
USING 'hq';
Ngi dùng
hin hành
Ngi dùng toàn cc trong liên kt c s d liu
CURRENT_USER. Ngi dùng toàn cc phi
c ch−ng thc bi ch−ng ch> X.509 (doanh
nghip s dng ch−ng thc SSL) ho6c m t kh;u
(m t kh;u xác thc ngi dùng doanh nghip), và
là m,t ngi dùng trên c hai c s d liu trong
liên kt. Liên kt ngi dùng hin hành là m,t
ph%n ca tùy ch(n bo m t nâng cao Oracle.
CREATE PUBLIC
DATABASE LINK hq
CONNECT TO
CURRENT_USER using
'hq';
Ngi dùng
c nh
Tên và m t kh;u ca ngi dùng là m,t ph%n ca
nh ngh/a liên kt. Nu liên kt gm ngi dùng

c nh thì tên và m t kh;u ca ngi dùng c nh
c s dng ! kt ni v∗i c s d liu t∃ xa.
CREATE PUBLIC
DATABASE LINK hq
CONNECT TO jane
IDENTIFIED BY doe
USING 'hq';
Π− !Η&6Χ∋ !∀&+ΘΡ!Σ&+6Χ∋&Τ!
Liên kt ngi dùng kt ni không có chu5i kt ni liên kt v∗i
chúng. Li th ca liên kt ngi dùng kt ni là ngi dùng tham chiu liên
kt kt ni c s d liu t∃ xa nh là cùng m,t ngi dùng. Hn na, vì
không có chu5i kt ni kt hp v∗i liên kt nên không có m t kh;u c lu
tr d∗i dng v0n bn trong t∃ i!n d liu.

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 22

Liên kt ngi dùng kt ni có m,t s nhc i!m. Vì các liên kt này
yêu c%u ngi dùng phi có tài khon và quy.n hn trên c s d liu t∃ xa
mà h( ang c g4ng ! kt ni, h( yêu c%u quy.n qun tr cho các qun tr
viên. Ngoài ra, vic cp quy.n cho ngi dùng nhi.u hn h( c%n vi phm
nguyên t4c bo m t c bn ca quy.n hn ti thi!u: ngi dùng ch> nên c
cp quy.n mà h( c%n ! thc hin công vic ca mình.
Kh n0ng s dng liên kt c s d liu ngi dùng kt ni ph thu,c vào
m,t s yu t, ch yu là ngi dùng c ch−ng thc bi Oracle b2ng cách
s dng m t kh;u, ho6c ch−ng thc bên ngoài bi h i.u hành ho6c dch v
ch−ng thc mng. Nu ngi dùng c ch−ng thc bên ngoài, thì kh n0ng
s dng liên kt ngi dùng kt ni c7ng ph thu,c vào vic c s d liu t∃
xa chp nh n ch−ng thc ngi dùng t∃ xa c thit l p bi tham s khi to

REMOTE_OS_AUTHENT.
Tham s REMOTE_OS_AUTHENT hot ,ng nh sau:
Nu REMOTE_OS_AUTHENT là Thì
TRUE i v∗i c s d liu t∃ xa Ngi dùng ch−ng thc bên ngoài có th! kt ni n c s
 d
liu t∃ xa b2ng cách s dng liên kt c s d liu ngi
dùng kt ni.
FALSE i v∗i c s d liu t∃ xa Ngi dùng ch−ng thc bên ngoài không th! kt ni v∗i c
s d liu t∃ xa b2ng cách s dng liên kt c s d liu
ngi dùng kt ni, tr∃ khi m,t giao th−c an toàn thc ho6c
dch v ch−ng thc mng h5 tr tùy ch(n bo m t nâng cao
ca Oracle c s dng.
Π−3 !Η&6Χ∋ !∀&+ΘΡ!Σ&+Τ)8&∃
Li ích ca liên kt ngi dùng c nh là nó kt ni ngi dùng trong c
s d liu chính n c s d liu t∃ xa v∗i phm vi bo m t ca ngi dùng
c ch> nh trong chu5i kt ni. Ví d, ngi dùng joe có th! to liên kt c

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 23

s d liu công khai trong lc  ca joe xác nh ngi dùng c
nh scott v∗i m t kh;u tiger. Nu jane dùng liên kt ngi dùng c nh trong
truy vn thì jane là ngi dùng trên c s d liu cc b,, nhng cô y kt ni
v∗i c s d liu t∃ xa nh scott/tiger.
Liên kt ngi dùng c nh có username và m t kh;u kt hp v∗i chu5i
kt ni. Username và m t kh;u c lu tr d∗i hình th−c không c mã
hóa trong t∃ i!n d liu trong bng LINK$.
i v∗i ví d v. vn . bo m t, gi s jane không có quy.n s dng liên
kt riêng t kt ni v∗i c s d liu hq nh scott/tiger , nhng có quy.n

SELECT ANY TABLE trên c s d liu v∗i tham s khi to
O7_DICTIONARY_ACCESSIBILITY c thit l p là TRUE . Cô có th!
ch(n t∃ LINK$ và (c chu5i kt ni n hq là scott/tiger . Nu jane có tài
khon trên máy ch ca hq, thì cô có th! kt ni t∗i máy ch và sau ó kt ni
v∗i hq nh scott b2ng cách s dng m t kh;u tiger. Cô s8 có tt c 6c quy.n
ca scott nu cô kt ni cc b, và bt k= audit record s8 c ghi li nh th!
cô là scott.
Π−Α !Η&6Χ∋ !∀&+ΘΡ!Σ&+∃!&∃/&∃
Liên kt c s d liu ngi dùng hin hành li dng ngi dùng toàn
cc. Ngi dng toàn cc phi c ch−ng thc bi ch−ng nh n X.509 ho6c
m t kh;u, và là m,t ngi dùng trên c hai c s d liu trong liên kt.
Ngi dùng g(i liên kt CURRENT_USER không c%n phi là ngi dùng
toàn cc. Ví d, nu jane c ch−ng thc (không phi là ngi dùng toàn
cc) b2ng m t kh;u v∗i c s d liu Accounts Payable, cô có th! truy c p
vào th tc c lu ! ly d liu t∃ c s d liu hq . Th tc dùng liên kt
c s d liu ngi dùng hin hành kt ni cô n hq nh là ngi dùng toàn

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 24

cc scott. Ngi dùng scott là ngi dùng toàn cc và c ch−ng thc thông
qua ch−ng nh n SSL, nhng jane thì không.
Lu ý r2ng liên kt c s d liu ngi dùng hin hành có nhng h qu
sau:

Nu liên kt c s d liu ngi dùng hin hành không c truy c p
t∃ bên trong i tng lu tr, thì ngi dùng hin hành ging nh
ngi dùng kt ni truy c p vào liên kt. Ví d, nu scott thc hin câu
lnh SELECT thông qua liên kt ngi dùng hin hành thì ngi dùng

hin hành là scott.

Khi thc thi i tng lu tr nh th tc, view, ho6c trigger truy c p
liên kt d liu, ngi dùng hin hành là ngi dùng s hu i tng
lu tr và không phi là ngi dùng g(i i tng. Ví d, nu jane g(i
th tc scott.p (to bi scott ), và liên kt ngi dùng hin hành xut
hin trong th tc c g(i, thì scott là ngi s dng hin hành ca
liên kt.

Nu i tng c lu tr là m,t hàm, th tc, ho6c package, thì ID
y quy.n c dùng ! kt ni nh là ngi dùng t∃ xa. Ví d, nu
ngi dùng jane g(i th tcscott.p (to bi scott ), và liên kt xut hin
trong th tc scott.p , thì jane là ngi dùng hin hành.

Bn không th! kt ni n c s d liu nh là ngi dùng doanh
nghip và dùng liên kt ngi dùng hin hành trong th tc c lu
tn ti trong lc  toàn cc. Ví d, nu ngi dùng jane truy c p th
tc c lu trong lc  chia s guest trong c s d liu hq , cô
không th! s dng liên kt ngi dùng hin hành trong lc  này !
0ng nh p vào c s d liu t∃ xa.

Tiu lun môn hc: C s d liu nâng cao

HVTH: Trng Lê Minh Ngc - CH1101024 Trang: 25

Υ ΛΒ !Η&6Χ∋ !∀
To liên kt c s d liu b2ng cách s dng câu lnh CREATE
DATABASE LINK . Bng sau a ra ví d câu lnh SQL to liên kt c s
d liu trong c s d liu cc b, n c s d liu t∃ xa
sales.us.americas.acme_auto.com:

Câu lnh SQL
Kt ni n c s d
liu
Kt ni nh là Loi liên kt

CREATE DATABASE LINK
sales.us.americas.acme_auto.com USING
'sales_us';
sales dùng net service
name là sales_us net
Ngi dùng kt
ni
Ngi dùng
kt ni cá
nhân
CREATE DATABASE LINK foo
CONNECT TO CURRENT_USER USING
'am_sls';
sales dùng net service
name là am_sls
Ngi dùng toàn
cc hin hành
Ngi dùng
hin hành
riêng t
CREATE DATABASE LINK
sales.us.americas.acme_auto.com
CONNECT TO scott IDENTIFIED BY tiger
USING 'sales_us';
sales dùng net service

name là sales_us
scott dùng m t
kh;u tiger
Ngi dùng
c nh riêng
t
CREATE PUBLIC DATABASE LINK sales
CONNECT TO scott IDENTIFIED BY tiger
USING 'rev';
sales dùng net service
name là rev
scott dùng m t
kh;u tiger
Ngi dùng
c nh công
khai
CREATE SHARED PUBLIC DATABASE
LINK sales.us.americas.acme_auto.com
CONNECT TO scott IDENTIFIED BY tiger
AUTHENTICATED BY anupam
IDENTIFIED BY bhide USING 'sales';
sales dùng net service
name là sales
scott dùng m t
kh;u tiger, ch−ng
thc
nh anupam dùng
m t kh;u bhide
Ngi dùng
c nh công

khai chia s

×