Module 01 · Relational Database Concepts
Database Architecture数据库架构
看完本视频后,您将能够:
- 描述一些常见的部署拓扑。
- 认识在云端部署数据库的优势。
一、 部署拓扑概述
部署拓扑 (Deployment Topology) 是指系统或应用程序部署中硬件、软件和网络组件的排列或配置。
部署拓扑的选择取决于可扩展性、性能、可靠性以及应用程序的性质等因素。
常见的部署拓扑
- 单层架构 (Single-tier Architecture)
- 客户端-服务器架构 或 两层数据库架构 (Client-Server / Two-tier Architecture)
- 三层架构 (Three-tier Architecture)
- 基于云的部署 (Cloud-based Deployment)
二、 传统部署拓扑详解
1. 单层架构 (Single-tier Architecture)
- 配置: 应用程序的所有组件,包括用户界面、应用程序逻辑和数据存储,都部署在单个服务器或机器上。
- 特点: 应用程序的整个堆栈在同一环境内运行。
2. 客户端-服务器架构 (Client-Server) / 两层架构 (Two-tier)
- 配置: 将应用程序划分为两个截然不同的层:
- 客户端层 (Client Layer): 负责用户界面。
- 服务器层 (Server Layer): 管理应用程序逻辑和数据存储。
- 数据访问: 远程服务器托管数据库,用户通常从客户端系统(通常通过网页或本地应用程序)访问它。
- 内部通信:
- 客户端层应用通过 数据库接口(如 API 或框架)连接到数据库服务器。
- 接口通过安装在客户端系统上的数据库客户端或 API 与数据库服务器通信。
- 服务器的 数据库管理系统软件 (DBMS) 通常包括:数据访问层、数据库引擎层和数据库存储层。
服务器 DBMS 组件
- 数据访问层: 为各种客户端类型提供接口,包括 JDBC 和 ODBC 等标准 API、命令行处理器 (CLP) 接口以及供应商特定或专有接口。
- 数据库引擎: 负责编译查询、检索和处理数据,并交付结果集。
3. 三层架构 (Three-tier Architecture)
- 引入背景: 在涉及多用户的场景中,为了安全性和性能,通常在应用程序客户端和远程数据库服务器之间引入中间层或应用服务器层,形成三层架构。
- 环境: 通常部署在生产环境中。
- 数据库访问限制: 大多数生产环境通常限制除管理员之外的访问,原因如下:
- 安全 (Security): 数据库服务器包含敏感数据,限制访问对于防范未经授权的数据访问或修改至关重要。
- 性能优化 (Performance Optimization): 数据库服务器是应用程序的关键组件,应避免不必要的流量超载。
- 可维护性 (Maintainability): 授权管理员进行更改以避免应用程序中断。
- 三层结构:
- 展示层 (Presentation Layer): 作为用户界面(通过桌面应用、Web 浏览器或移动应用访问)。
- 业务逻辑层 (Business Logic Layer): 客户端应用通过网络与应用服务器交互,应用服务器封装了应用程序和业务逻辑。
- 数据层 (Data Layer): 应用服务器通过数据库 API 或驱动程序与数据库服务器建立通信。
- 示例: 在互联网银行应用中,客户端应用(如手机)连接到银行应用服务器,该服务器进一步与存储用户账户数据的银行数据库服务器通信。
三、 云部署拓扑 (Cloud Topology)
云部署数据库正变得越来越流行。
- 配置: 数据库位于云环境中,提供了云服务固有的诸多优势。
- 优势:
- 无需本地安装和维护:消除了在本地下载或安装数据库软件以及持续维护支持基础设施的需要。
- 易于访问:用户随时随地都可以轻松访问基于云的数据库,只需互联网连接即可。
- 交互: 客户端应用程序和用户通过位于云环境内的应用服务器层或接口与数据库交互。
- 灵活性: 云部署的灵活性使其适用于广泛的用途,包括开发、测试和全面生产环境。
关键要点回顾
- 部署拓扑涉及硬件、软件和网络组件的组织。
- 单层架构将应用程序的所有组件部署在单个服务器或机器上。
- 两层数据库设置中,数据库服务器和应用程序在不同的层中运行。
- 三层数据库架构中,应用程序的展示层和业务逻辑层存在于不同的层中。
- 具有互联网连接的用户可以随时随地访问基于云的数据库。