Site structure taxonomy configuration I am looking forward to use Drupal in order to create a knowledge-base website having a structure as shown below. Therefore, each time a knowledge area is selected, Drupal should automatically filter the related sublevels and display them as a list.


Q1 : Could anyone please help me in knowing what taxonomy/terms configuration i should use to solve my issue ? 
Q2 : Are (many-to-many) relationships represented by red lines supported by Drupal ? If Yes, how could that be done?
Below is a blueprint of how I'd implement what you're looking for. It can work for both D7 and D8 ...

Sub-level 1

You could, for sure, use the Group module for this. Group allows for creating arbitrary collections of your content and users on your site, and grant access control permissions on those collections. It is available as of D7, and has a D8 version also. It is designed to be an alternative to Organic Groups. The Group module creates groups as entities, making them fully fieldable, extensible and exportable.

For more details about the various roles and permissions, refer to my answer to "What are the various roles supported by the Group module?".

Resources:


Community documentation for the Group module.
Video tutorial "How to use the Group module in Drupal 8 to manage editorial access control to different areas of a web site".


Sub-level 2

Option 1

You could use one or more taxonomies to implement "Subject". E.g. 1 taxonomy for each area, each of them with 3 terms. As a variation, a single taxonomy (used by all areas) with up to 9 (different) terms could also work.

Option 2

As an alternative to using taxonomies/terms, you could also use the Entity Reference module (included in D8 core). Here is a possible solution to do so:


create a content type (say) "Subject", and add any "field" to it you might need (now or in the future).
create 9 nodes of type "Subject".
for the content type you use for your "nodes" (in your picture), add a field that implements an entity reference to your "Subject" nodes.


Nodes

That's pretty forward, just pick an appropriate content type for those nodes you want to create. One could argue if you yes or no want to use the same content type for the nodes of the various areas. But unless you have a need for different fields of those nodes for the various areas, I don't see any reason to have like a different content type for each area. Also because if you want to impose access rules for those nodes in the various areas, you'd do so using the Group module.

Bonus

Everything above is based on using entities. With that you also have all sorts of bonus options to further refine your implementation using out-of-the-box facilities with modules such as:


Views.
Rules.
Flag.
Message.