Database programming languages deductive, functional, persistent and object-oriented approaches (Prentice Hall, 1996)