Multi-Database System

Draw and describe the architecture.

Integration
An act or instance of combining into an integral whole. In other words we try to bring together different components and make them work as one single system together. Example on this is a Windows server holding the database and a Linux server handling requests from users. The data the customers are interested in is on the Windows server. These two system then needs to be integrated to work together and understand each other.

Interoperability
There are four different types of interoperability, System interoperability, Syntactic interoperability, Structural interoperability and Semantic interoperability. Syntactic and Semantic is the ones that is most focused on.

Syntactic interoperability: If two or more systems are capable of communicating and exchanging data. SQL standards is an example of syntactic interoperability.

Semantic interoperability: If it is possible to  automatically interpret the information exchanged meaningfully and accurately in order to produce useful results. Both sides must defer to a common information exchange reference model, meaning that the information that is sent is the same that is understood by the receiver.

System interoperability: If systems are heterogen, this type of interoperability deals with that part. For example if the platforms aren't compatible with each other.

Structural interoperability: Deals with the data stuctures and data models.

Problems that can occour is that the systems have different meanings on the data. They do not break any rules since they actually can exchange data and communicate. Assume that source A has the object age as an integer and source B has the same object, but as a string, data exchange between these two sources can give problems because of the different data types. As a solution it is possible to use wrappers that "casts" the data types to the correct type.

'''Heterogeneity, Autonomity (and Distribution). Explain meaning, and how they affect integration of systems.'''

Transactions in Multi-Database Systems
Transactions in a distributed system is more complex since there is more computers or systems that need to do the same operation, a solution to this is 2PC (two-phase-commit), which is illustrated on the image below. 

However, if parts of the system is autonomous problems will occour since the database retains its autonomy and might support local (non-distributed) transactions. This is known as multi-database (A set of autonomous databases accessed by a distributed transaction is referred to as a multidatabase (or federated database)). Image illustrates this below.



Problems that arises now is that the GTM (Global transaction manager) may require a commit from the local system, which may already have a transaction running, even though the GTM sees that there is no transactions that is running (the GTM only sees the global state). This is known as Global Atomicity Problem. Other problems related to multidatabases is Global deadlock (If a deadlock happends the GTM may not know about which may make the whole system stall) and Global Serializability (Since the GTM only can see the global state it can seem for the GTM that the transaction is serializable, but the LTM may have other transaction pending, which can make the transaction non-serializable).

Solution to this can be Semantic atomicity (Allows sub-transactions to commit independently and uses compensation for recovery (inverting the transaction that made failure)), and Local Serializability.

How does changes in the underlying systems alter data management?