Database Design
Database Federation
按业务拆分数据库
Federation(也叫 functional partitioning)按业务功能拆分 databases。Federation 架构会让多个物理 databases 在用户视角上像一个逻辑 database。
Federation 通过一个或多个 federated schemas 连接各组件,这些 schemas 定义了共享数据的共性,并提供组件之间通信的基础。

Federation 还能把多个数据源的数据整合成一个统一视图。数据源不仅包括 databases,也可能是其他结构化或非结构化数据。
Characteristics
Federated database 的关键特性:
- Transparency:对用户屏蔽底层差异,用户无需关心数据存在哪。
- Heterogeneity:数据源可以不同(硬件、网络协议、数据模型等)。
- Extensibility:方便新增数据源,适应业务变化。
- Autonomy:不改变已有数据源,接口保持一致。
- Data integration:可整合不同协议与 DBMS 的数据。
Advantages
- 灵活的数据共享
- 各数据库组件保持自治
- 统一方式访问异构数据
- 应用不需要与 legacy databases 紧耦合
Disadvantages
- 硬件与复杂度增加
- 跨库 join 复杂
- 依赖自治的数据源
- Query performance 与 scalability 受限