If z=S(x,y)

Recall that the gradient vector is normal to a surface at a given point. If we have z=S(x,y), define
g(x,y,z)=S(x,y)-z.

Then grad g is normal to the surface.

grad g=( D[S,x], D[S,y], -1)

Unit could also find a unit normal grad g/|| grad g ||.

Note that ( - D[S,x], - D[S,y], 1 ) is a normal vector in the opposite direction.

Note that as a special case of R(u,v), if we can write
x=u
y=v
z=S(u,v)

then we have
D[R,u]=D[R,x]=(1,0,D[S,x])
D[R,v]=D[R,y]=(0,1,D[S,y])

and

D[R,u] x D[R,v]=(- D[S,x], - D[S,y], 1)
which was one of the normals we found when z=S(x,y).

In[120]:=

  Clear[S,f,x,y]
  S[x_,y_]:=Sqrt[4-x^2-y^2]
  f[x_,y_,z_]:=S[x,y]-z

In[121]:=

  nv=grad3[f][x,y,z]

Out[121]=

             x                     y
  {-(-----------------), -(-----------------), -1}
               2    2                2    2
     Sqrt[4 - x  - y ]     Sqrt[4 - x  - y ]

In the example above we used the point where u=v=Pi/4. This corresponds to the point
x=1
y=1
z=Sqrt[2].
Check:

In[122]:=

  R[Pi/4,Pi/4]

Out[122]=

  {1, 1, Sqrt[2]}

In[123]:=

  normalv=vectorPlot[{{1,1,Sqrt[2]}},{{1,1,Sqrt[2]}+nv/.{x->1,y->1,z->Sqrt[2]}}];

Oops! This normal vector will point inside the sphere. Let's use the opposite one.

In[124]:=

  normalv=vectorPlot[{{1,1,Sqrt[2]}},{{1,1,Sqrt[2]}-nv/.{x->1,y->1,z->Sqrt[2]}}];

In[125]:=

  Show[sph,normalv];

In[126]:=

  tp=ContourPlot3D[({x,y,z}-{1,1,Sqrt[2]}).(-nv/.{x->1,y->1,z->Sqrt[2]}),
  {x,-2,2},{y,-2,2},{z,-2,2}];

In[127]:=

  Show[sph,normalv,tp];

Another option for the normal plane would be to use the formulation
n1(x-x0)+n2(y-y0)+n3(z-z0)=0.
Then you could use z=[-n1(x-x0)-n2(y-y0)+n3z0]/n3
and then use Plot 3D

In[128]:=

  n1=(nv/.{x->1,y->1,z->Sqrt[2]})[[1]]
  n2=(nv/.{x->1,y->1,z->Sqrt[2]})[[2]]
  n3=(nv/.{x->1,y->1,z->Sqrt[2]})[[3]]
  x0=1
  y0=1
  z0=Sqrt[2]

Out[128]=

       1
  -(-------)
    Sqrt[2]

Out[129]=

       1
  -(-------)
    Sqrt[2]

Out[130]=

  -1

Out[131]=

  1

Out[132]=

  1

Out[133]=

  Sqrt[2]

In[134]:=

  tp2=Plot3D[(-n1(x-x0)-n2(y-y0)+n3 z0)/n3,{x,-2,2},{y,-2,2}];

In[135]:=

  Show[sph,normalv,tp2];

Up to Tangent Planes