<aside>
💡 A piece of software that sits between the user and the data.
</aside>
✅ Advantages
- Resilient - a problem in one site will not stop other sites from working
- Security - different types of access to different users, staff access can be limited to only their portion of the database
- Network traffic - reduced so bandwidth costs are lower
- A single site database still works even if the connection between sites is temporarily broken
- Scaling - easy to expand if demand increases by adding an extra node
- High performance - queries and updates are largely local so that there is no network bottleneck
- Expense - either cheaper or more expensive, just be sure to justify
- Provides an interface for the user to work with data
- Acts as a backup that can be accessed in case of accidental loss of data
- A centralised location for storing data
❌ Disadvantages
- Needs careful planning to ensure the data transmission is sufficient to cope with bandwidth and data is not needlessly sent
- Difficult to prevent duplication
- Security can be difficult to enforce with multiple entry points to a distributed system
- Distributed databases are difficult to set up.
Roles