At the moment I have a module which can upload a file, extract it, reads some files and stores it in a database. Since I’m just a PHP developer and not a Drupal developer I’m not common with Content Types , Views and other Drupal stuff. I just want to display some things from the database to multiple pages and edit some things (not everything).
Doing it in PHP would be as easy as putting a brief in an envelope, but in Drupal it’s like you are putting a wheelchair in that envelope.
Do I have to define a content type for it?
Is it easy if I don’t use content types and having permissions controlled manually?
Supposing that I have to define a content type. My database has 5 tables. Should I define 5 different content types?
You don’t have to do it the Drupal way, if you need some Drupal things to work on you data too. I also have developed a module. It accesses a database, displays data from it, then an authorized user can update data and my module will save it. But these will not be nodes. Unless you need (for example) some hooks that run on nodes to run on your content, just use your PHP knowledge to create the content for the page.
You use hook_menu to define the paths that will display your pages. For example in my code (detail_pages module) the queries get two parameters in the path like example.com/strain/3/4, I define it like as follows, and I used php calls to database in my detail_page($arg1, $arg2) function definition.
To answer your specific questions
No. You can use page render array, or even add direct html to pages in PHP.
Yes. In the above example I wrote, this line is for permissions:
‘access callback’ => TRUE
this allows everybody to view. You can assign a function in place of TRUE, to return a boolean to represent if user it authorized to view that page.
Especially if you need a nice database structure, you may want to avoid using nodes and defining content types. Drupal creates a table for what would be a column logically keyed by node ID. So you have many unnecessary tables…