You are on page 1of 8

NoSQL

I . NoSQL l g?
1. Thut ng
NoSQL cn c ngha l Non-Relational (NoRel) - khng rng buc. Tu nhi!n" thu#t ng$ % &t
'h( )*ng h+n , ng na ng-.i ta th-.ng )/ch NoSQL thnh Not Only SQL - Khng ch
SQL. NoSQL 01 ch2 %3n nh$ng c+ 45 )$ li6u khng )7ng 1 h8nh )$ li6u 9uan h6 %: 9u;n l<
)$ li6u trong lnh ,=c 'h>n 1?1.
2. Lch s
Thu#t ng$ NoSQL %-@c giAi thi6u l>n %>u ,o nB1 CDDE 4F )*ng l1 t!n gGi chung cho c0c
lightHeight o'en 4ource relational )ataba4e (c+ 45 )$ li6u 9uan h6 nguIn 15 nhJ) nh-ng khng
4F )*ng SQL cho tru ,Kn.
Lo nB1 MNND" Oric O,an4" nhPn ,i!n cQa Rack4'ace giAi thi6u lRi thu#t ng$ NoSQL trong 1t
hi th;o ,? c+ 45 )$ li6u nguIn 15 'hPn t0n. Thu#t ng$ NoSQL %0nh )Ku b-Ac 'h0t tri:n cQa
th3 h6 )ataba4e 1AiS )i4tribute) ('hPn t0n) T non-relational (khng rng buc).
Uhi chVS Mt mnh kh th v v non-relational data store: "select fun, profit from real!orld
!here relational"false#"$
!. "nh ngh#$
Th3 h6 )ataba4e k3 ti3' l 1t th3 h6 c+ 45 )$ li6u non-relational (khng rng buc)" )i4tribute)
('hPn t0n)" o'en 4ource" horiWontal 4calable (kh; nBng 15 rng theo chi?u ngang) c th: l-u tr$"
XF l< tY 1t l-@ng rKt nhJ cho tAi hng 'etabte4 )$ li6u trong h6 thZng c % ch/u t;i" l[i cao
,Ai nh$ng %i hJi ,? ti ngu!n 'h>n c\ng thK'.
]t 4Z %^c %i:1 nh#n )Rng cho th3 h6 )ataba4e 1Ai n bao gI1S 4che1a-_ree" h[ tr@ 15 rng
)` )ng" abc %+n gi;n" e,entual con4i4tenc (nhKt 9u0n cuZi) ,dho^c tran4action4 hRn ch3 tr!n
c0c thnh 'h>n )$ li6u %+n le" khng giAi hRn khng gian )$ li6u"...
NoSQL 4torage %^c bi6t 'h( )*ng trong th.i kf geb M.N b7ng n(" n+i c0c 1Rng )/ch ,* )$ li6u
cng %Ing cho 'hh' ng-.i )7ng tRo hng ti ni )ung tr!n Heb. jo %" )$ li6u lAn rKt nhanh
,-@t 9ua giAi hRn 'h>n c\ng , c>n 'h;i gi;i 9u3t bkng bi to0n 'hPn t0n. NFa %>u nB1 MNND"
ng-.i ta %l 1anh nha thu#t ng$ NoSQL %0nh )Ku 4= tr-5ng thnh cQa th3 h6 )ataba4e 1Ai trong
khi nh$ng 4;n 'hm1 'h>n 1?1 c th: %l %-@c 'h0t tri:n tY tr-Ac % rKt lPu.
%. &'t s( thut ng l)*n +u$n.
- non-relationalS relational - rng buc - thu#t ng$ 4F )*ng %3n c0c 1Zi 9uan h6 gi$a c0c b;ng
trong c+ 45 )$ li6u 9uan h6 (Rjn]4) 4F )*ng 1 h8nh kha gI1 M loRi khaS kha ch&nh ,
kha 'h* ('ri1ar ke T _oreign ke) %: rng buc )$ li6u nhk1 th: hi6n t&nh nhKt 9u0n )$ li6u
tY c0c b;ng kh0c nhau.
Non-relational l kh0i ni61 khng 4F )*ng c0c rng buc )$ li6u cho nhKt 9u0n )$ li6u 5
NoSQL )ataba4e.
- )i4tribute) 4torageS 1 h8nh l-u tr$ 'hPn t0n c0c _ile ho^c )$ li6u ra nhi?u 10 t&nh kh0c nhau
trong 1Rng LaN ho^c cnternet )-Ai 4= ki:1 4o0t cQa 'h>n 1?1.
- e,entual con4i4tenc (nhKt 9u0n cuZi)S t&nh nhKt 9u0n cQa )$ li6u khng c>n 'h;i %;1 b;o
nga t\c khoc 4au 1[i 'hh' Hrite. ]t h6 thZng 'hPn t0n chK' nh#n nh$ng ;nh h-5ng theo
'h-+ng th\c lan tru?n , 4au 1t kho;ng th.i gian (khng 'h;i nga t\c khoc)" tha %(i 4p %i
%3n 1Gi %i:1 trong h6 thZng" t\c l cuZi c7ng (e,entuall) )$ li6u tr!n h6 thZng 4p tr5 lRi trRng
th0i nhKt 9u0n.
- ,ertical 4calable (kh; nBng 15 rng chi?u )Gc)S qhi )$ li6u lAn ,? l-@ng" 'h-+ng 'h0' tBng
c-.ng kh; nBng l-u tr$ , XF l< bkng ,i6c c;i ti3n 'h>n 1?1 , c;i thi6n 'h>n c\ng tr!n 1t
10 t&nh %+n le %-@c gGi l kh; nBng 15 rng chi?u )Gc. L& )* ,i6c tBng c-.ng rbs4" c;i thi6n
%a c\ng" b nhA trong 1t 10 t&nh"... cho jn]4 nk1 trong 'hR1 tr7 n. qh; nBng 15 rng
chi?u )Gc cn c 1t thu#t ng$ kh0c 4cale u'.
- horiWontal 4calable (kh; nBng 15 rng chi?u ngang)S qhi )$ li6u lAn ,? l-@ng" 'h-+ng 'h0'
tBng c-.ng kh; nBng l-u tr$ , XF l< l )7ng nhi?u 10 t&nh 'hPn t0n. bhPn t0n )$ li6u %-@c h[
tr@ b5i 'h>n 1?1 t\c c+ 45 )$ li6u.
Trong khi gi0 thnh 'h>n c\ng ng cng gi;1" tZc % XF l<" b nhA ng cng tBng th8
horiWontal 4calable l 1t l=a chGn %Vng %on. tng trB1 10 t&nh nhJ %-@c ch#' lRi tRo thnh
1t h6 thZng t&nh to0n 1Rnh h+n nhi?u 4o ,Ai ,i XF l< RcSr tru?n thZng %+n le. ] h8nh n
ti3' t*c %-@c h[ tr@ b5i c0c cng ngh6 k3t nZi ]rinet , cn_ininan). TY % chVng ta c th:
9u;n l<" b;o tr8 tY Xa" XP )=ng batch 'roce44ion (XF l< %Ing loRt t#' l6nh) tZt h+n. jo nh$ng
%i hJi ,? tZc % XF l< cdu cao" l-@ng c=c lAn )$ li6u"... 4cale horiWontall 4p thVc %m c0c cng
ngh6 l-u tr$ 1Ai 'h0t tri:n giZng nh- obvect 4torage )e,ice4 (uSj).
II. K),n t-.c
1. S/ l01c.
r0c Rjn]4 hi6n tRi %l bc l nh$ng 3u kh1 nh- ,i6c %0nh ch2 1*c 1t l-@ng lAn )$ li6u"
'hPn trang" ho^c 'hPn 'hZi luIng )$ li6u 1e)ia ('hi1" ;nh" nhRc" ...). r+ 45 )$ li6u 9uan h6
%-@c thi3t k3 cho nh$ng 1 h8nh )$ li6u nhJ th-.ng Xu!n %Gc ,i3t trong khi c0c Social
NetHork Ser,ice4 lRi c 1t l-@ng )$ li6u c=c lAn , c#' nh#t li!n t*c )o 4Z l-@ng ng-.i )7ng
9u0 nhi?u 5 1t th.i %i:1. Thi3t k3 tr!n ji4tribute) NoSQL gi;1 thi:u tZi %a c0c 'hh' t&nh
to0n" cdu li!n 9uan k3t h@' ,Ai batch 'roce44ing %Q %;1 b;o %-@c !u c>u XF l< )$ li6u cQa c0c
1Rng )/ch ,* )$ li6u cng %Ing n. wacebook" a1aWon l nh$ng ,& )* %i:1 h8nh.
L? c+ b;n" c0c thi3t k3 cQa NoSQL l=a chGn 1 h8nh l-u tr$ t#' )$ li6u theo c^' gi0 tr/ ke-
,alue. qh0i ni61 no)e %-@c 4F )*ng trong 9u;n l< )$ li6u 'hPn t0n. LAi c0c h6 thZng 'hPn t0n"
,i6c l-u tr$ c chK' nh#n tr7ng l^' )$ li6u. ]t re9ue4t tru ,Kn tAi )ata c th: gFi tAi nhi?u
10 c7ng lVc" khi 1t 10 no n b/ ch3t cxng khng ;nh h-5ng nhi?u tAi ton b h6 thZng. y:
%;1 b;o t&nh real ti1e trong c0c h6 thZng XF l< l-@ng lAn" thng th-.ng ng-.i ta 4p t0ch bi6t
)ataba4e ra l1 M ho^c nhi?u )ataba4e. ]t )ataba4e nhJ %;1 b;o ,o ra li!n t*c" khi %Rt tAi
ng-zng th.i gian ho^c )ung l-@ng" )ataba4e nhJ 4p %-@c g' (1erge) ,o )ataba4e lAn c thi3t
k3 tZi -u cho 'hh' %Gc (rea) o'eration). ] h8nh % cho 'hh' tBng c-.ng hi6u 4uKt cdu - 1t
trong nh$ng ngu!n nhPn ch&nh khi3n 'er_or1ance tr5 n!n kh1.
2. &'t s( 23c 2)45.
- tigh ScalabilitS U>n nh- khng c 1t giAi hRn cho )$ li6u , ng-.i )7ng tr!n h6 thZng.
- tigh a,ailabilitS jo chK' nh#n 4= tr7ng l^' trong l-u tr$ n!n n3u 1t no)e (co11o)it
1achine) no % b/ ch3t cxng khng ;nh h-5ng tAi ton b h6 thZng.
- ato1icitS yc l#' )ata 4tate trong c0c o'eration.
- ron4i4tencS chK' nh#n t&nh nhKt 9u0n 3u" c#' nh#t 1Ai khng %;1 b;o rkng c0c tru XuKt 4au
% thK nga %-@c 4= tha %(i. Sau 1t kho;ng th.i gian lan tru?n th8 t&nh nhKt 9u0n cuZi c7ng
cQa )$ li6u 1Ai %-@c %;1 b;o.
- jurabilitS )$ li6u c th: tIn tRi trong b nhA 10 t&nh nh-ng %Ing th.i cxng %-@c l-u tr$ lRi
%a c\ng.
- je'lo1ent wleXibilitS ,i6c b( 4ung th!1dloRi bJ c0c no)e" h6 thZng 4p t= %ng nh#n bi3t %:
l-u tr$ 1 khng c>n 'h;i can thi6' bkng ta. t6 thZng cxng khng %i hJi cKu h8nh 'h>n c\ng
1Rnh" %Ing nhKt.
- ]o)eling _leXibilitS qe-Lalue 'air4" tierarchical )ata ()$ li6u cKu trVc)" Ura'h4.
- Quer wleXibilitS ]ulti-Uet4" Range 9uerie4 (loa) 1t t#' gi0 tr/ )=a ,o 1t )l c0c kha).
!. 6h$t )s NoSQL 7t8chn)c$lly s98$:)ng;?
"<ng g=) ch.ng l >$t$?$s8. rTu cQa a1aWon" gerner Logel4 %? c#' %3n h6 thZng jna1o
cQa hG %l gGi n l 1t {highl a,ailable ke-,alue 4tore{. Uoogle gGi nigTable %: nhKn 1Rnh
%P l {)i4tribute) 4torage 44te1 _or 1anaging 4tructure) )ata{ (h6 thZng l-u tr$ , 9u;n l< )$
li6u cKu trVc c 'hPn t0n).
@A th4 thB) ?$y 5't l01ng > l)Cu cDc lEn. t'ertable" 1t o'en 4ource colu1n-ba4e)
)ataba4e tr!n 1 h8nh nigTable %-@c 4F )*ng cho local 4earch engine cQa |,ent4 cnc c th: ghi
tAi C ti cell )$ li6u 1[i ng (theo joug }u)) 1t k~ 4- cQa |,ent4). Trong khi % nigTable k3t
h@' ,Ai ]a'Re)uce c th: XF l< tAi MN 'etabte4 )$ li6u 1[i ng.
"Fnh ?G) 98-Ho-5$nc8 ?ottl8n8c:s. nkng ,i6c bJ 9ua thng )/ch trong SQL c7ng ,Ai nh$ng
tru ,Kn r-.1 r" NoSQL cho ta 1t ki3n trVc tZi -u ,? tZc % th=c thi (ghi , tru ,Kn )$ li6u).
Li6c 4F )*ng c0c rng buc 9uan h6 c7ng tru ,Kn SQL c ,e thPn thi6n , th&ch h@' ,Ai 'h>n
%ng )$ li6u. Tu nhi!n" n3u )$ li6u 9u0 %+n gi;n" c0c thQ t*c SQL 4p khng c>n thi3t (theo rurt
]ona4h - 1t nh 'hPn t&ch c+ 45 )$ li6u" 1t blogger).
Ra__aele Sena" 1t 4enior co1'uter 4cienti4t 5 a)obe S4te14 cnc. %l ni rkng ronnectNoH
geb collaboration 4er,ice cQa hG 4F )*ng }a,a clu4tering 4o_tHare tY Terracotta tha cho c+ 45
)$ li6u 9uan h6 %l khi3n {h6 thZng cQa hG tr5 n!n 1Rnh h+n" 'h\c tR' h+n 4o ,Ai ,i6c 4F )*ng
c+ 45 )$ li6u 9uan h6{.
r0c thi3t k3 )ataba4e c t&nh %^c th7 (nh- )ocu1ent-oriente) )ataba4e) 4p l-@c bJ %-@c t>ng
chu:n %(i 4ang 1 h8nh l-u tr$ 9uan h6 tY inter_ace cQa n %Ing th.i khi3n giao ti3' t-+ng t0c
tr5 n!n t= nhi!n h+n.
-
]ongojn ,4. SQL Ser,er MNNE ber_or1ance ShoH)oHn
Khng +uF cIn th),t. yIng < rkng Rjn]4 cung cK' 1t 1 h8nh tu6t ,.i %: %;1 b;o t&nh
ton ,n )$ li6u. Tu nhi!n" rKt nhi?u ng-.i l=a chGn NoSQL %l ni rkng chVng khng 9u0 c>n
thi3t cho nhu c>u cQa hG. Nh- trong )= 0n ronnectNoH cQa a)obe" )$ li6u ng-.i )7ng trong
1t 4e44ion khng c>n thi3t 'h;i l-u lRi" chVng 4p b/ Xa khi ng-.i )7ng logo__. L8 ,#" 1t ke-
,alue 1e1or 4torage l %Q )7ng.
III. JhKn loG)
L. @o-8 NoSQL Syst85s
1. 6)>8 @olu5n Sto-8 M @olu5n N$5)l)8s
t6 c+ 45 )$ li6u 'hPn t0n cho 'hh' tru XuKt ngu nhi!ndt\c th.i ,Ai kh; nBng l-u tr$ 1t l-@ng
c=c lAn )ata c cKu trVc. j$ li6u c th: tIn tRi )Rng b;ng ,Ai hng ti b;n ghi , 1[i b;n ghi c
th: ch\a hng tri6u ct. ]t tri:n khai tY ,i trB1 cho tAi hng ngh8n co11o)it har)Hare )n
%3n kh; nBng l-u tr$ hng 'etabte4 nh-ng ,n %;1 b;o high 'er_or1ance. j-Ai %P l 1t 4Z
4;n 'hm1 thng )*ngS ta)oo'dtna4e a'ache" nigTable Uoogle" ra44an)ra -
wacebookda'ache" t'ertable - |,ent4 cncdnai)u" rlou)era" Scijn" ]ne4ia" Tablet4"
2. K8y-O$lu8 Sto-8MTu9l8 sto-8
] h8nh l-u tr$ )$ li6u )-Ai c^' gi0 tr/ ke-,alue trong % ,i6c tru XuKt" Xa" c#' nh#t gi0 tr/
th=c thng 9ua ke t-+ng \ng. LAi 4= b( tr@ b5i c0c k~ thu#t nTree" nTTree" ta4h"... )$ li6u c
th: tIn tRi tr!n Ra] ho^c %a c\ng" 'hPn t0n ho^c khng 'hPn t0n. t>u h3t c0c NoSQL
)ataba4e %?u l ke-,alue 4tore. j-Ai %P l 1t 4Z %^c t&nh c th: %-@c h[ tr@ trong 4;n 'hm1
)Rng nS
a. qed,alue cache in Ra]S 585c$ch8>" ritru4lea_ )ataba4e" Lelocit" Re)i4" Tu'le 4'ace"...
b. qed,alue 4a,e on )i4kS ]e1cache)b" P8-:8l8y QP" Toko rabinet" Re)i4"...
c. O,entuall ron4i4tent qe Lalue StoreS L5$Ron Qyn$5o" Lol)e1ort" jno1ite" qac"
@$ss$n>-$" tibari" brovect Lol)e1ort"
). ur)ere) ke-,alue 4toreS N]jn" ]e1cache)b" P8-:8l8y QP"...
e. ji4tribute) 44te14S L9$ch8 S)T8-" ]O]naSO" LRu-8 T$?l8 Sto-$g8" L5$Ron
Qyn$5o"...
%hi ch: &uple 'tore: schema free, an ordered list of elements$
!. Qocu58nt Sto-8
Th=c chKt l c0c )ocu1ent-oriente) )ataba4e - 1t thi3t k3 ri!ng bi6t cho ,i6c l-u tr$ )ocu1ent.
r0c ci %^t c th: l gi; l#' t-+ng t0c tr!n relational )ataba4e" obvect )ataba4e ha ke-,alue
4tore. ]t 4Z 4;n 'hm1 ti!u bi:uS L9$ch8 U$c:-$??)t" @ouchQP" IP& Lotus Not8s Sto-$g8
No-5$t 7NSN;" &ongoQP" Terra4tore" Thrujn" urientjn" Ra,enjn"...
%. V-$9h Q$t$?$s8
Ura'h )ataba4e l 1t )Rng c+ 45 )$ li6u %-@c thi3t k3 ri!ng cho ,i6c l-u tr$ thng tin %I hGa
nh- cRnh" nVt" 'ro'ertie4. ]t 4Z 4;n 'hm1 ti!u bi:uS N8o%U" Sone4" allegroUra'h" rore jata"
jO" wlockjnW InHoV-)>" u'enLink Lirtuo4o"...
P. SoHt NoSQL Syst85s
1. O?X8ct Q$t$?$s8sS )bo" Ue1StonedS" cnterS4te14 rachh" }ajO" }uun" ubvecti,itdjn"
|ujn" Ler4ant" ubvecti,it" NOu"...
2. Y&L Q$t$?$s8sS ]ark Logic Ser,er" O]r jocu1entu1 Xjn" ei4t" Se)na" nerkele jn
]L" ...
!. &ult)T$lu8 Q$t$?$s8sS sM" u'encn4ight"u'enQ]
%. V-)> Q$t$?$s8 Solut)onsS UigaS'ace4" taWelca4t" Uri)Uain" cn_ini4'an" roherence" ...
Z. oth8- NoSQL -8l$t8> >$t$?$s8sS cn] Lotu4djo1ino" cScS wa1il" bre,aler"
etre1eScal"...
O. T) l)Cu th$5 :h[o T l01c >ch
C. NoSQL re4ource4S htt'Sddno49l-)ataba4e.orgd
M. NoSQL Hiki - htt'Sdden.Hiki'e)ia.orgdHikidNoSQL
. Scalabilit Hiki - htt'Sdden.Hiki'e)ia.orgdHikidScalabilitScalehoriWontall.ME4caleout.MD
.No to SQL anti-)ataba4e 1o,e1ent gain4 4tea1 -
htt'SddHHH.co1'uterHorl).co1d4darticledDCNEdNotoSQLanti)ataba4e1o,e1entgain4
4tea1taXono1c)C'ageNu1berC
. ]ongojn ,4. SQL Ser,er MNNE ber_or1ance ShoH)oHn -
htt'SddHHH.1ichaelckenne).netdblogdMNCNdNdMDd]ongojnL4SQLSer,erMNNEber_or1anceSho
H)oHn.a4'X
. a nrie_ ti4tor o_ NoSQL - htt'Sddblog.knuthaugen.nodMNCNdNda-brie_-hi4tor-o_-no49l.ht1l
. NoS9l jataba4e4 bart C - Lan)4ca'e - htt'SddHHH.,ineetgu'ta.co1dMNCNdNCdno49l-
)ataba4e4-'art-C-lan)4ca'e.ht1l
E. NhKt Qu0n ruZi r7ng - htt'SddHHH.49l,iet.co1dblogdnhat-9uan-cuoi-cung
D. NoSQL in the Onter'ri4e - htt'SddHHH.in_o9.co1darticle4dno49l-in-the-enter'ri4e
Nh$ y8nh Thu#n

You might also like