Well first off i'd suggest (if you havent already) reading the manual: session handling functions
Then to answer your questions;
a) it depends very much what you want to do. there are many sites that use databases that dont use sessions. My advice would be to use sessions only if you need to - if you dont actually need them, then dont use them.
b) your question doesnt really make much sense i'm afraid. how you would call a session is the same whether you're using a form or not. That said, you then confuse matters further by adding "if you were using mysql".
c) and i guess this might answer a and b too. "The idea of a session is to be able to track a user during a single session on a web site." That's the key: you use sessions to track users. Therefore, if you dont mind who's looking at what on your site, then you dont need sessions. If, however, you're doing a shopping cart application, then you should use sessions because you're going to need to know that it's the same user that added 10 cds to his basket who's just clicked on the "checkout" button. But you wouldnt need sessions if you were displaying what CD's you stocked - anyone's allowed to look at them.
Another example is a log in system (as you mentioned): when someone logs in, you want to take them to a private area. But you somehow need to know that that person has logged in - and some people use sessions for that. So when someone logs in successfully, a session variable is then registered (ets call it "authorised") Then on the private page, before you display it, the php goes away to check that "authorised" is registered as a session variable - if it's not, then it means that the person trying to get to the private page hasnt logged in, and therefore isnt allowed to see the hidden page.
Does that help at all?