What is the difference between gradient descent and batch gradient descent? It seems that batch gradient descent is the traditional gradient descent, except that the objective function is in the form of summation?

Batch gradient descent, stochastic gradient descent, and mini-batch gradient descent are all gradient descents.
The difference between them is how many examples are used for a single parameters update.

*

*Batch GD: use all examples

*Mini-batch GD: use a batch of examples

*Stochastic GD: use only one example

