当前位置: 首页 > 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.jsqmd.com/news/3745/

相关文章:

  • 交互:在终端中输入用户信息
  • 电脑迁移技巧:适用于 Windows 10/11 的免费磁盘克隆优秀的工具
  • 详细介绍:Windows安装PostgreSQL入门操作手册
  • Java学习日记9.18
  • 在PVE中实现宿主机与虚拟机同网段通信的配置方案
  • 一种CDN动态加速首次访问加速方法
  • CF1716题解
  • 使用vosk模型进行语音识别
  • AI Agent如何重塑人力资源管理?易路iBuilder平台实战案例深度解析
  • docker-compose + macvlan + Elasticsearch - 9.1.4 + Kibana - 9.1.4
  • WinForm 计时器 Timer 学习笔记
  • RocketMQ入门:基本概念、安装、本地部署与集群部署 - 详解
  • 【LeetCode】122. 买卖股票的最佳时机 II
  • VSCode 使用技巧笔记
  • Ansible + Docker 部署 Apache Kafka 3.9 集群
  • 深入了解一波JVM内存模型
  • 完整教程:K230基础-PWM控制介绍及应用
  • 什么是UDFScript用户自定义脚本
  • 高端网站设计中的微交互:细节如何决定用户体验
  • 软件开发公司如何通过 UI 设计服务打造差异化竞争力
  • CCPC2024-Zhengzhou G Same Sum(线段树)
  • 短剧小程序开发全攻略:从技术选型到核心实现(前端+后端+运营干货) - 详解
  • Openwrt-DDNS 配置详解
  • 实用指南:Metal - 2. 3D 模型深度解析
  • 【2025.9.16】关于举办PostgreSQL数据库管理人才研修与评测班的通知
  • Java锁相关问题
  • CDN中使用边缘函数实现自定义编程
  • 第一次课程中的所有动手动脑的问题以及课后实验性的问题
  • 敏捷开发的几个阶段
  • 实战:基于 BRPC+Etcd 打造轻量级 RPC 服务 —— 从注册到调用的完整实现 - 教程