The service layer is not a core part of the MVC design pattern, but rather an addition. As such, if talking in purely MVC language, to interact with the database a Model class is necessary.
Actually, if Service classes are implemented correctly, then they are, as I already mentioned, an addition to the MVC, so they are not a replacement for the Model classes. The Service classes should work in a way that they take away logic from the Controller class and then they call the Model class in order to execute database operations.
Imagine if we are writing a CRUD for managing users. The UserModel class will contain methods for storing, fetching, deleting, updating data, etc. The UserController class will most likely accept requests from the views, perform validation, sanitize input, notify third parties if necessary, etc. This can become quite cumbersome and hard to follow. So, instead, we take away some logic from the Controller class and put it in a Service class. In our example with the user management, we will probably take away the input sanitization and the validation and perform it in the Service class. If everything is good the Service class will call the Model to perform database operation. And the only job of the Controller class would be to call the Service class and notify third parties about the operation (if that was what we were building).
In conclusion, Service classes do not make Model classes obsolete, but rather they expand the MVC pattern to an MVCS pattern, where the request path looks like this:
View -> Controller -> Service -> Model and vice versa.