Using views to display complex content
Yes this can be achieved by using views module. And the structure should go something like:
a. Content Type Book.
b. Content Type Chapter.

Now chapter CT will have node references field of CT Book.

Create a view of books content type which will show all books then create a page within same view with some changed filters to show /books/book-name.

Now create another view  with link /books/book-name/chapter-number where book-name will match the node reference field or /books/book-name/ from previous view to get book name.