How to do a lookup of existing nodes in the input form?
R3: You don't need to write any code :-)

R1: The relations are managed with the field Reference by content (provided by core) take a look inside the Add a reference field to content type
section in How To Reference Nodes in Drupal 8 + Views Relationships Display

Then you can go to configure your content type display mode and form display mode to change the widget if you want another different from the default widget. See Exploring the New Drupal 8 Display Modes and How "form modes" work in Drupal 8 and how to add and edit them

R2: You can have 1000 books without problem, in this case I recomend to use the autocomplete widget.

If you want to add more functionalities to your relation you can use the following modules:

Entity Reference Views Select


  A module for those who need their Entity Reference Views fields to be
  displayed as a select list, checkboxes or radio buttons in forms.


Inline Entity Form


  Provides a widget for inline management (creation, modification,
  removal) of referenced entities. The primary use case is the parent ->
  children one (product display -> products, order -> line items, etc.),
  where the child entities are never managed outside the parent form.
  Existing entities can also be referenced.