Hi!
First of all, batch size greater than 1 is min batch instead of  a normal GD.
The number of batch size determines the type of GD(SGD with batch size=1 or mini-batch with batch size greater than 1).
In addition,I personally recommend you use Adam and mini-batch.Since the two of them outperform much steady and robust training.
Finally, you can’t use batch normalization with SGD-batch size=1, because batch normalization compute the average over a batch, since your batch size=1, there is no need to compute average value over a single value.
I hope I would make this clear.
If you have any more questions, please let me know.
Have a nice day : )