The most common answer to question 1 is LAMP (Linux, Apache, MySQL, PHP); you'll find hundreds, if not thousands, of LAMP packages out there in the world for doing what you're describing. The beauty of LAMP is that an application is running on "your" server and is available via a web page to any client, anywhere; i.e., no software installed on the client side (and no updating, patching, blah, blah client systems). The LAMP model may be modified to use pretty much any DMBS -- MySQL is the most common but PostgreSQL, Oracle and others fit in too. PHP is the interface between the web page and the data base and it supports a large selection of DBMS if you don't like MySQL or would prefer to use something else.
Python is one of many; another commonly-used language is Perl. Both are scripting languages that can access a DBMS and are useful for developing web-based applications.
Look too at LibreOffice.org (http://www.libreoffice.org/
) and OpenOffice.org (http://www.openoffice.org/
) -- these are full-boat office suites (they pretty much emulate Microsoft Office but don't cost anything and are available for any platform you can think of). Both feature DBMS hooks.
One place you might want to take a look at is SourceForge.net (https://sourceforge.net/
) and search the categories for applications you might be interested in.
There are books, there are web sites by the thousands that provide an entry to Linux, how to use it, how to develop software for it and who knows what all. Look at the tutorials here a LQ, ask questions and, mostly, have a good time.
Hope this helps some.