当前位置: 首页 > news >正文

架构架构设计师备考第32天——数据库交互NoSQL

一、 应用程序与数据库的交互

1 库函数级别访问接口

核心机制

考点:OCI的适用场景与局限性。
考题示例
Q:Oracle的OCI接口属于哪种数据交互方式?其最大缺点是什么?
A:库函数级别访问;强数据库依赖性。


2 嵌入式SQL访问接口

核心机制

  • 将SQL语句嵌入高级语言源码(如C、Java),凭借预编译器转换为纯宿主语言代码。
  • 技术挑战与解决方案
    问题解决方案
    编译器不识别SQL预编译器转换SQL为函数调用
    程序与DBMS数据传递函数库实现数据传递
    数据类型不匹配预编译器处理类型转换
  • 扩展语法:宿主变量声明、游标操作等。

考点:嵌入式SQL的预编译过程、宿主语言概念。


3 通用数据接口标准

代表技术

  1. ODBC(开放数据库连接)
    • 原理:应用程序 → ODBC API → DBMS驱动程序 → 数据库。
    • 优势:统一访问异构数据库(如SQL Server、Oracle)。
    • 流程:注册数据源 → ODBC建立连接 → 执行SQL。
  2. JDBC(Java数据库连接)
    • Java专属API,支持跨数据库SQL执行(如MySQL、PostgreSQL)。
  3. ADO.NET
    • .NET框架的类库,支持关系数据、XML及应用程序交互。

考点:ODBC/JDBC的跨数据库原理、数据源注册机制。
考题示例
Q:ODBC如何建立对不同数据库的统一访问?
A:通过DBMS专属驱动程序屏蔽底层差异。


4 ORM访问接口

核心机制

  • 对象与关系数据库的映射(如Java的Hibernate、MyBatis)。
  • 工作流程
    程序对象 → ORM框架 → 生成SQL → 数据库操作。
  • 优势
    • 降低SQL依赖,提升研发效率(程序员专注对象而非SQL)。
  • 框架对比
    框架类型特点
    Hibernate全自动能力强但复杂笨重
    MyBatis半自动灵活度高,SQL可控

考点:ORM解决“对象-关系阻抗不匹配”的原理、框架选型依据。


二、 NoSQL数据库

1 分类与特点

四大类型

  1. 键值存储(如Redis):高性能读写,适用缓存、会话存储。
  2. 文档数据库(如MongoDB):JSON/BSON格式,灵活模式。
  3. 列族数据库(如Cassandra):分布式存储,高扩展性。
  4. 图数据库(如Neo4j):高效处理实体关系(如社交网络)。

核心特点

  • 无固定模式:动态数据结构。
  • 分布式架构:水平扩展,容错性强。
  • 最终一致性:替代ACID,保障高可用。
2 体系框架

典型架构对比

类型数据模型适用场景
键值库Key-Value实时计数器、配置存储
文档库Document内容管理、用户画像
列族库Wide Column日志分析、时序数据
图数据库Graph推荐系统、欺诈检测

嵌入式架构):

考点:NoSQL分类及适用场景、CAP定理(一致性/可用性/分区容忍性权衡)。


本章核心考点总结

技术类别核心概念典型考题方向
库函数接口OCI强依赖性适用场景分析
嵌入式SQL预编译机制宿主语言作用
通用接口ODBC跨库原理JDBC与Java整合
ORM对象-关系映射Hibernate vs MyBatis
NoSQL分类与CAP定理嵌入式架构特点

附:高频考题

  1. Q:ORM框架如何解决对象与数据库的异构性问题?
    A:借助元数据映射对象属性与表字段,自动生成SQL。
  2. Q:NoSQL中“最终一致性”适用于什么场景?
    A:高并发读写且允许短暂数据不一致的平台(如社交平台点赞)。
http://www.gsyq.cn/news/11772.html

相关文章:

  • 交互:在终端中输入用户信息
  • 电脑迁移技巧:适用于 Windows 10/11 的免费磁盘克隆优秀的工具
  • 在PVE中实现宿主机与虚拟机同网段通信的配置方案
  • CF1716题解
  • RocketMQ入门:基本概念、安装、本地部署与集群部署 - 详解
  • VSCode 使用技巧笔记
  • 软件开发公司如何通过 UI 设计服务打造差异化竞争力
  • 短剧小程序开发全攻略:从技术选型到核心实现(前端+后端+运营干货) - 详解
  • 实用指南:Metal - 2. 3D 模型深度解析
  • Java锁相关问题
  • 第一次课程中的所有动手动脑的问题以及课后实验性的问题
  • 设计模式六大原则 - 实践
  • HyperWorks许可与多用户支持
  • 什么样的代码可以称得上是好代码? - 浪矢
  • 抖胆代理商,DD3118S芯片,USB3.0读卡方案,替代GL3213S方案
  • 微软Teams Channel Agent上线:中国卖家AI赋能品牌出海新机遇与实战策略(2025前瞻) - 详解
  • docker制作
  • 【AI领域】如何写好Prompt提示词:从新手到进阶的完整指南 - 详解
  • 【文摘随笔】从业开发工作五年后,再读短篇《孔乙己》——年少不懂孔乙己,长大已成孔乙己
  • Hive SQL - INSERT
  • 完整教程:基础算法---【差分】
  • C++设计模式之创建型模式:工厂方法模式(Factory Method) - 教程
  • 【铸网-2025】线下赛 web 详细题解
  • 国标GB28181平台EasyGBS如何赋能路网数字化管理与应急指挥?
  • 完整教程:Spring Boot 核心注解分类与应用指南
  • 【Proteus仿真】AT89C51单片机串行数据转换为并行仿真 - 实践
  • 深入解析:JVM(六)-- StringTable
  • 第15章 day18 Ast系列篇
  • Ubuntu 桌面快捷方式创建增加记录
  • arm64中的内存屏障指令