That is a fairly open-ended question. There is a lot you will have to do. The first step is you will have to create the database. It will look something like this:
function db_install() {
global $wpdb;
global $db_version;
$table_name = $wpdb->prefix . 'thenameofyourdatabase';
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $table_name (
user_id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
first_name tinytext NOT NULL,
last_name tinytext NOT NULL,
type_of_work text NOT NULL,
PRIMARY KEY (user_id)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
add_option( 'db_version', $db_version );
}
You will need to add more tables to match your created database.
This should get you started...you can read here for more information: https://codex.wordpress.org/Creating_Tables_with_Plugins
After this, since this will not provide you any user interface, you will need to create that. One method is creating a custom plugin - using the code above - as well as (I would suggest) jQuery. You would use jQuery to talk with the database, via AJAX, and populate the contents of the page.
One reason this may be a good option is the user will not need to refresh the page - they can gather all the data from all those companies from a single page.
Both methods would take work - if you go with the custom post type/custom taxonomies - you will need to still create those over 100 pages. If you go with the plugin, there is a good amount of work ahead in setting that up. Both require some work, so it depends on your preferred method.
If you want more information on jQuery and AJAX here are some references to get you started:
https://developer.wordpress.org/plugins/javascript/jquery/
https://developer.wordpress.org/plugins/javascript/ajax/