A distributed database environment enables a user to access data residing anywhere in a corporation’s computer network, without regard to differences among computers, operating systems, Data Manipulation Language, or file structures. Data that is actually distributed across multiple remote computers will appear to the user as if it resided on the user’s own computer. Transaction management capabilities are essential to maintaining reliable and accurate databases. In some cases, distributed database software places and responsibility of managing transactions on the application program. In distributed database technology, different gateway software must be used and installed to connect nodes using different distributed database management system (DBMS) software. In some instances, distributed DBMS software is tied to a single Network Operating System. This limits the design alternatives for the distributed DBMS environment to the products of a single vendor. A distributed database management system offers many benefits. However, there are also many architectural choices that make the application design for distributed databases very complex.