To build relationships, I know of two plugins, both very well coded and maintained:

 - [Posts 2 Posts][1]
 > Efficient many-to-many connections between posts, pages, custom post types, users.

 - [Advanced Custom Fields][2] - this one would need the add-on [Users Select][3], but as the plugin is being completely rewritten and will change the add-on management, it would be better to wait until version 4.0 is released. 
 > Fully customise WordPress edit screens with powerful fields. Boasting a professional interface and a powerfull API, it’s a must have for any web developer working with WordPress.

----
But I think a [simple plugin][4] can be built for that: 

 `1.` Add a Meta Box in the Posts screen to select an author to the book (not the post author).

<!--br-->

    /* Define the custom box */
    add_action( 'add_meta_boxes', 'authors_meta_box_wpse_89134' );
    
    /* Do something with the data entered */
    add_action( 'save_post', 'save_postdata_wpse_89134', 10, 2 );
    
    function authors_meta_box_wpse_89134() 
    {
        add_meta_box(
            'sectionid_wpse_89134',
            __( 'Book authors' ), 
            'authors_box_wpse_89134',
            'post'
        );
    }
    
    function authors_box_wpse_89134() 
    {
    	global $post;
    
    	$selected_user = get_post_meta( $post->ID, 'users_dropdown', true);
        $users_list = get_users();
    
        // Use nonce for verification
        wp_nonce_field( plugin_basename( __FILE__ ), 'noncename_wpse_89134' );
    
        echo '<div class="element">
            <select name="users_dropdown" id="users_dropdown">
            <option value="">- Select -</option>';
    
        foreach( $users_list as $user ) {
              echo '<option value="'.$user->ID.'" ' . selected( $selected_user, $user->ID, false ) . '>'.$user->data->display_name.'</option>';
        }
    
        echo '</select></div>';
    }
    
    function save_postdata_wpse_89134( $post_id, $post_object ) 
    {
    	// verify if this is an auto save routine. 
    	if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )  
    		return;
    		
    	// verify this came from the our screen and with proper authorization,
    	if ( !isset( $_POST['noncename_wpse_89134'] ) || !wp_verify_nonce( $_POST['noncename_wpse_89134'], plugin_basename( __FILE__ ) ) )
    		return;
    
    	// Correct post type
    	if ( isset( $_POST['post_type'] ) && 'post' != $_POST['post_type'] ) 
    		return;
    
    	// OK, we're authenticated: we need to find and save the data
    	
    	//sanitize user input
    	$u_id = ( isset( $_POST['users_dropdown'] ) ) ? intval( $_POST['users_dropdown'] ) : false;
    
    	if( $u_id )
    		update_post_meta( $post_id, 'users_dropdown', $_POST['users_dropdown'] );
    	else
    		delete_post_meta( $post_id, 'users_dropdown' );
    }

 `2.` Display the author's book in the profile and edit user pages

<!--br-->

    add_action( 'show_user_profile', 'user_books_wpse_89134' );
    add_action( 'edit_user_profile', 'user_books_wpse_89134' );
    
    function user_books_wpse_89134( $user ) 
    {
        $args = array(
    	    'post_type' => 'post',
    	    'meta_key'=>'users_dropdown',
    	    'meta_value'=>$user->ID,
    	    'meta_compare'=>'='
    	);
    
    	$the_query = new WP_Query( $args );
    	
    	echo '<h3>'. __('User books') .'</h3>';
    	while ( $the_query->have_posts() ) :
    		$the_query->the_post();
    		echo '<li>' . get_the_title() . '</li>';
    	endwhile;
    }

  [1]: http://wordpress.org/extend/plugins/posts-to-posts/
  [2]: http://wordpress.org/extend/plugins/advanced-custom-fields/
  [3]: http://www.advancedcustomfields.com/add-ons/users-select-field/
  [4]: http://wordpress.stackexchange.com/q/72160/12615