You can also apply Martin Hadley's suggested CellContext option setting at the global frontend session level:
SetOptions[$FrontEnd, CellContext -> Notebook]
With this setting all newly created notebooks will have their own unique context for the symbols within them:
In[1]:= a = 2;
In[2]:= Context[a]
Out[2]= "Notebook$$24$265933`"
This way you can have multiple notebooks, each with their own symbol definitions.
Setting this option also causes the input/output numbering to start at In[1] for every new notebook.
With this option, keep in mind that you are still working in the same global kernel session, which means that all expressions used in all notebooks are still in memory (even if you closed a notebook). So if you did,
a=Range[2^30];
and then closed that notebook, the kernel will still have a reference to that symbol 'a' in some Notebook$$nn$mmmmm` context.