Distributed SQL Concepts

Conventional databases (such as MySQL, Oracle, SQL Server, Informix, Postgress, and almost all others) operate strictly on a client-server basis ("dumb" client, single server). This means that the database server has complete and sole control over all data - every time the client requires information, it issues a request (typically in the form of a SQL select command) directly to the server. The server extracts the information from the database and sends a response to the client. The data is immediately obsolete as soon as it has been issued by the server. If the client wishes to add or update data in the database, it issues an update instruction (typically in the form of a SQL insert or update command) to the server, which places the new or revised data in the database.

A Distributed SQL database operates using a completely different concept. When a client application connects to the server, the server determines from user configuration parameters which schemas and tables are required, and distributes these to the client database. The client application is mounted on a special version of the database, which is capable of almost completely independent operation - it is a complete, fully-functional SQL database. When the distributed data tables arrive from the server, the client database mounts these as part of the client database.

After the initial distribution of data, the client database is largely independent of the server. Data requests from the client application are typically answered directly by the client database, short-circuiting the communication with the server and resulting in a much faster response time. In addition, this removes the processing load from the server, resulting in far lower overall processing requirement on the server and reducing processing and bandwidth contention.

If the client application wishes to updates data, it merely updates the client database directly. This can be done either via SQL, or using row-level update commands where these are more convenient. The client database will automatically distribute the update to the server. The server, in turn, will distribute the update to all other clients - in this way, all clients have completely current data. What is more, this means that all Distributed SQL clients are automatically Groupware enabled.