Is it a good practice to use wordpress database to store pages contents which loading to page dynamically?

WordPress does this by default. It uses your existing MySQL database to store content from pages, posts and other types of content.

Take a look at the wp_posts and the wp_postsmeta tables in your database to find all your content stored there.

Also WordPress internally treats all pages as posts with a different post_type value (set to page).

See this for the present DB structure
https://codex.wordpress.org/Database_Description

See this if you want to create the tables dynamically with your plugin
https://codex.wordpress.org/Creating_Tables_with_Plugins