Not a fan of option 1, better to let the database engine do the heavy lifting..
Option 2 is a better option especially if you might need to reuse the structure. Views do not get updated at all, because they don't contain any data, they are effectively a named and stored query that can be referenced by other objects. Unless you have created an index on the view then the data in the query is not stored. However the crux of your question is when the underlying data changes does the output of the view change, and the answer is YES.
Option 3 may work but you have other hurdles such as what middle ware you are going to use to make the connection and such. This options has the most unknowns for me, so I am not a fan.