We propose a new method of client-side data caching for relational databases with a central server and distant clients. Data is loaded into client cache based on queries executed on the central database at the server. These queries have a special form "universal relational query". The majority of search queries to database can be expressed in such form. Besides, this form allows us to analyze query correctness by checking lossless join property. A subsequent query may be executed in client's local cache if we can determine that the query result is entirely contained in the cache. For this we compare truth spaces of the logical restrictions in new user's query and results of the queries execution in cache. This method may be used to define lacking data in cache and execute the query on server for this data only. Problem of data actualizations in cache is not discussed in this paper. However, it can be solved by cataloging of queries on server and their serving by triggers in background mode.