【第36节 应用程序与数据库交互】


一、节概述

本节《应用程序与数据库交互》主要讲解应用程序如何通过不同方式与数据库进行连接、访问和操作,是系统架构设计中“数据层与业务层交互”的关键环节。

它在软考系统架构设计师考试中地位重要,涉及的技术栈丰富,包括 库函数接口嵌入式 SQL通用数据访问接口 以及 对象关系映射(ORM)等内容。这些技术直接关系到系统的数据访问效率、可维护性和可扩展性,是高频考点与实战应用的结合体。


二、知识详解

1. 应用程序与数据库交互的常见方式

应用程序与数据库的交互方式大致可分为以下四类:

交互方式简要说明
库函数接口由数据库厂商提供的底层访问接口
嵌入式 SQLSQL 嵌入高级语言代码中
通用数据接口标准跨数据库的统一访问方案,如 ODBC、JDBC
对象关系映射(ORM)将数据库表与对象自动映射,提高开发效率

2. 库函数接口(Library API)

这是一种低层次、效率高、依赖性强的数据库访问方式。

  • 示例:Oracle 的 OCI(Oracle Call Interface)
  • 特点:
    • 允许开发者对数据库进行精细控制
    • 对性能要求高的系统适用
    • 但需掌握数据库特定的 API 规范,可移植性较差

🔴 适合高性能、数据库定制化程度高的场景


3. 嵌入式 SQL(Embedded SQL)

在程序代码中直接嵌入 SQL 语句,是数据库早期应用中广泛使用的方式。

  • 常用于 C/C++、COBOL 等语言中
  • 编译前由预处理器将 SQL 解析为对应的函数调用

优缺点:

  • 🔴 优点:便于理解,开发直观
  • 🔴 缺点:可移植性差,耦合度高,调试复杂

4. 通用数据接口标准

该方式主要解决异构数据库访问统一性问题,常见的标准包括:

📌 ODBC(Open Database Connectivity)
  • 微软提出的早期标准
  • 通过统一的 API 操作不同厂商数据库
  • 🔴 最大优点是:不依赖具体 DBMS
📌 JDBC(Java Database Connectivity)
  • Java 平台下的标准数据库访问方式
  • JDBC 驱动类型包括:
    • Type 1:JDBC-ODBC 桥接
    • Type 2:本地 API 驱动
    • Type 3:网络协议中间件
    • Type 4:纯 Java 驱动(推荐)
📌 ADO(ActiveX Data Objects)
  • 微软用于 .NET 平台的数据访问接口
  • 相较 DAO 和 RDO,ADO 更灵活、抽象程度高
接口类型适用语言/平台特点
DAOVB面向 Jet 引擎
RDOVB面向关系型数据库
ADOVB/.NET面向多种数据源,抽象度更高
JDBCJava支持多数据库,跨平台

5. 对象关系映射(ORM)

ORM 是将数据库表与应用程序中的对象进行自动映射的技术,大幅度简化数据库操作。

常见 ORM 框架:

框架平台特点
MyBatisJava半自动化,需要手写 SQL
JPA/HibernateJava全自动映射,适合快速开发
Entity Framework.NET微软官方 ORM 工具

ORM 优势:

  • 🔴 提高开发效率:开发者无需关心底层 SQL
  • 🔴 易于维护和扩展
  • 🔴 支持缓存机制,有助于性能提升

ORM 劣势:

  • 性能略逊于手写 SQL
  • 对复杂查询支持不如原生 SQL 灵活

三、关键点提炼

🧠 高频考点整理如下:

🔴 库函数接口 是最底层的访问方式,如 Oracle 的 OCI

🔴 嵌入式 SQL 通过预编译器转换为函数调用,易与业务代码耦合

🔴 ODBC/JDBC/ADO 属于跨平台、跨数据库的统一访问标准

🔴 JDBC 驱动 类型及区别是常考细节

🔴 ORM 框架优缺点 与适用场景要能灵活判断


四、考试提示

📌 出题常见形式包括:

  • 名词解释题(如 ORM、JDBC)
  • 场景判断题(判断哪种方式适用于某个项目背景)
  • 技术对比题(比如 JDBC 与 ODBC 的差异)

🎯 易混淆点:

  • ODBC vs. JDBC:前者为微软通用标准,后者为 Java 专用标准
  • MyBatis vs. Hibernate:前者手动编写 SQL,后者自动生成 SQL
  • 嵌入式 SQL 并非 ORM,而是 SQL 融入语言代码中

五、总结与建议

本节内容结合了理论理解与工程实践,需要熟悉多种访问方式的技术特征与适用场景,建议采取如下学习策略:

  • 构建比较表格,强化不同访问方式的异同点理解
  • 在复习中多结合真实开发项目的经验,理解其设计动因
  • 通过画图梳理交互方式的结构层次和数据流转路径

特别建议使用实际代码片段(如 JDBC 连接、MyBatis 映射 XML)进行练习,以帮助理解抽象概念的落地实现。


坚持复习,逐步积累,下一节我们继续深入系统架构知识体系!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值