Joomla Application Class: SiteApplication and Administrator application classes extend CMSApplication class.
Joomla BaseController: It is the base class for a Joomla Controller. Controllers are where you put all the actual code. It provides basic functionality, such as rendering views (displaying templates).
Joomla BaseDatabaseModel: It is Base class for a database Joomla Model. It acts as a Factory class for application specific objects and provides many supporting API functions.