数据库管理-第287期 Oracle DB 23.7新特性一览(20250124)
数据库管理287期 20245-01-24
- 数据库管理-第287期 Oracle DB 23.7新特性一览(20250124)
- 1 AI向量搜索:算术和聚合运算
- 2 更改Compatible至23.6.0,以使用23.6或更高版本中的新AI向量搜索功能
- 3 Cloud Developer包
- 4 DBMS_DEVELOPER.GET_METADATA:用于检索数据库对象元数据的API
- 5 PL/SQL中的维度算法支持
- 6 二元性视图放宽
- 7 JavaScript调用PL/SQL代码单元的外部函数接口
- 8 JSON的混合向量索引
- 9 数据库内算法支持VECTOR数据类型预测器
- 10 相邻分区向量索引中的包含列
- 11 JSON类型修饰符增强功能:Limit子句
- 12 JSON到二元性迁移:多集合导入API
- 13 JSON到二元性迁移:架构和数据的验证
- 14 物化表达式列
- 15 在分片空间之间移动数据块(chunk)
- 16 PL/SQL BINARY向量支持
- 17 PL/SQL JACCARD距离支持
- 18 SQL时间分通
- 19 AI向量搜索的分片支持
- 20 小文件表空间缩小
- 21 使用数据库内ONNX运行时支持具有AI向量搜索的图像转换模型
- 22 外部表中的向量数据类型支持
- 总结
数据库管理-第287期 Oracle DB 23.7新特性一览(20250124)
作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Pro: Database
PostgreSQL ACE Partner10年数据库行业经验
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP,ITPUB认证专家
圈内拥有“总监”称号,非著名社恐(社交恐怖分子)公众号:胖头鱼的鱼缸
CSDN:胖头鱼的鱼缸(尹海文)
墨天轮:胖头鱼的鱼缸
ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭
又到了一季度一次的Oracle DB 23ai新特性更新时间,前面的可以查看:
数据库管理-第225期 Oracle DB 23.5新特性一览(20240730)
数据库管理-第256期 Oracle DB 23.6新特性一览(20241031)
1 AI向量搜索:算术和聚合运算
就像您可以对日期、时间戳、间隔和数字进行加(+)、减(-) 或乘(*) 一样,您现在可以将这些算术运算符应用于向量。算术运算在向量的每个维元素上执行。还可以计算一组向量的SUM或AVG。
向量上的算术运算使AI系统能够操纵和组合抽象概念,从而增强它们以更复杂的方式理解和处理语言或数据的能力。
2 更改Compatible至23.6.0,以使用23.6或更高版本中的新AI向量搜索功能
从Oracle Database 23ai(23.6)开始,在版本更新(RU)23.6或更高版本中引入了使用新AI向量搜索功能的能力。
RU 23.6中的 COMPATIBLE 参数:
- 直接安装Oracle Database 23ai Release Update 23.6的新用户:
- 23.6 RU全新安装并使用db create时,COMPATIBLE参数默认设置为23.6.0。
- 安装后,您将无法将COMPATIBLE参数降级为较低的值。
- 使用Oracle Database 23ai Release Update 23.4 和 23.5的客户:
- 修补之前,COMPATIBLE参数可以是 23.0.0、23.4.0 或 23.5.0。
- 安装23.6版本更新时(即修补到 RU 23.6 时),要访问新的Vector DB功能,您必须手动将COMPATIBLE参数设置为23.6.0。
- 注意:在RU 23.6.0中,更新COMPATIBLE参数需要停机。它不会在修补过程中自动完成。您必须选择更新数据库COMPATIBLE设置。
- 使用Oracle Database 19c或21c的客户:
- 将数据库升级到 Oracle Database 23ai 时,COMPATIBLE参数仍与源数据库中的先前设置相同。
- 如果要使用新的 Vector DB 功能,则必须手动将COMPATIBLE参数设置为23.6.0。
- 注意:升级到23ai允许的最低COMPATIBLE为19.0.0。换句话说,您不能直接从Oracle Database 12c或18c升级到Oracle Database 23ai。
3 Cloud Developer包
Cloud Developer包提供内置工具,可无缝连接、处理和集成云服务。这些软件包(即DBMS_CLOUD、DBMS_CLOUD_PIPELINE、DBMS_CLOUD_REPO、DBMS_CLOUD_NOTIFICATION和DBMS_CLOUD_AI)可轻松访问云存储数据、通过管道自动化工作流、触发事件通知,并将AI/ML功能直接集成到数据库中。它们共同为现代云就绪数据库应用程序提供支持,同时简化复杂的云交互。
Cloud Developer包使企业能够处理存储在云中的数据、处理实时数据并使用AI/ML等高级工具,从而受益于云功能。这种方法有助于简化操作,并特别支持本地和云系统的混合。
4 DBMS_DEVELOPER.GET_METADATA:用于检索数据库对象元数据的API
这个API提供了一种开发人员友好的方式来检索数据库对象(例如表、视图和索引)的元数据。API检索每个数据库对象的数据字典中存在的大多数(如果不是全部)信息。它支持多个详细级别,BASIC、TYPICAL和ALL,使客户能够仅获取所需的信息。
截至目前,客户使用DBMS_METADATA+不同字典表和视图查询的组合来构建对象信息。但是,DBMS_METADATA会显示大量不合逻辑的信息,这些信息对于应用程序开发和低代码来说毫无用处。DBMS_METADATA 非常慢(需要几秒钟)并且面向XML,这对开发人员来说并不友好。DBMS_DEVELOPER.GET_METADATA解决了这个问题。
该API的主要优点是:
- 性能:我们期望大多数查询的解析时间在几毫秒内。这对于基于Oracle数据库构建的开发人员工具(例如 VSCode扩展和SQLcl)非常有利,因为这些工具会重复检索对象信息,从而导致糟糕的用户体验。
- 简单性:API以JSON格式返回元数据,这种格式具有自描述性且易于理解。使用JSON作为返回格式可使此 API 轻松与开发人员工具和服务集成。
5 PL/SQL中的维度算法支持
现在,PL/SQL中的向量可以采用加法(+)、减法(-)和乘法(*)。算术运算在向量的每个维元素上执行。
向量上的算术运算使 AI 系统能够操纵和组合抽象概念,从而增强其以更复杂的方式理解和处理语言或数据的能力。PL/SQL对向量算术的支持为开发人员提供了一种在PL/SQL块和函数中应用这些运算的方法,而无需调用SQL。
6 二元性视图放宽
在 JSON 关系二元性视图 DDL 中,用户可以执行以下操作:
- 在子对象中使用字段名称“_id”来标识选择要更新的行的列(即使它没有UK或PK约束)
- 使用标识列作为标识列
额外的DDL可能性允许JSON关系二元性视图支持更多用例。
7 JavaScript调用PL/SQL代码单元的外部函数接口
外部函数接口(Foreign Function Interface,FFI)允许JavaScript开发人员使用更熟悉的语法来调用用PL/SQL编写的代码单元。可以使用本机JavaScript构造与大多数用PL/SQL编写的代码进行交互,而不是使用PL/SQL块。
使用FFI可以简化将PL/SQL代码集成到JavaScript函数的过程,从而为JavaScript开发人员提供更好的体验。
8 JSON的混合向量索引
混合向量索引允许用户使用全文搜索和语义向量搜索的组合轻松地索引和查询其文档,以获得更高质量的搜索结果。现在可以在JSON列上构建混合向量索引。
在JSON列上创建混合向量索引可提供统一的查询API,允许用户运行利用这两种方法的文本查询、向量相似性查询或混合查询。这让用户可以轻松自定义搜索体验并增强搜索结果。
9 数据库内算法支持VECTOR数据类型预测器
此功能使用户能够将一个或多个VECTOR数据类型的列作为预测因子以及结构化企业数据添加到数据库内的机器学习算法中。
非结构化数据的向量表示可以成为传统机器学习算法的强大输入。它们可以对文本和图像数据进行高效的数据处理,有助于加快数据驱动的决策。将向量作为机器学习模型的输入可以处理更广泛的用例。
10 相邻分区向量索引中的包含列
包含列(Included Columns)是指存储在相邻分区向量索引中的附加表列,用于通过消除从基表访问这些列的需要来优化查询执行。
复杂的工作负载通常将关系列上的业务数据搜索与向量相似性搜索相结合。通过将属性过滤器与基于向量的相似性搜索集成在一起,在相邻分区向量索引中包含列可显著增强企业搜索功能。这种集成允许通过直接评估属性过滤器和向量搜索来高效执行复杂查询,从而消除了通过昂贵的连接访问基表的需要。此外,当索引将查询所需的所有列作为覆盖列包含时,可以直接从索引中检索数据,从而加快查询性能。
11 JSON类型修饰符增强功能:Limit子句
JSON类型的Limit子句允许限制可插入JSON类型列的JSON数据的大小。其思想类似于指定varchar2字节存储大小。
如果已知JSON数据不超过一定量,则可以优化执行以提高效率。
12 JSON到二元性迁移:多集合导入API
PL/SQL过程DBMS_JSON_DUALITY.IMPORT_ALL用于将多个文档集合导入JSON关系二元性视图。
在单个PL/SQL调用中导入多个集合使导入过程更简单,并避免了约束违规错误。
13 JSON到二元性迁移:架构和数据的验证
PL/SQL函数DBMS_JSON_DUALITY.VALIDATE_SCHEMA_REPORT和VALIDATE_IMPORT_REPORT用于验证JSON-To-Duality Migrator创建和导入的关系模式和数据。
验证API可帮助用户在将文档集合迁移到二元性视图时验证推荐的关系模式是否正确且没有数据丢失。
14 物化表达式列
表达式列(Expression columns,也称为虚拟列)是从现有列派生(计算)的附加列。它们可以保留(具体化)在磁盘上,补充仅在运行时计算结果的现有默认功能。
在表达式列的运行时计算和DML时计算之间进行选择,可以更灵活地为应用程序选择正确的方法。
具体化表达式列以磁盘存储换取反复计算相同表达式的需要。
15 在分片空间之间移动数据块(chunk)
使用Oracle全球分布式数据库复合分片方法,数据被组织到不同的分片空间中,允许您区分数据子集;但是,任何用于负载平衡的自动块移动都发生在分片空间内。在此版本中,Oracl 全球分布式数据库为您提供了将数据块从现有分片空间移动到另一个分片空间的能力。
此功能使您能够在现有分片空间之间移动数据,或将某些数据移动到新添加的分片空间。您可以根据新的业务需求安排分片数据,例如为某些客户提供新级别的服务或资源,或者将客户从一类服务转移到另一类服务,同时保持区域数据主权。
16 PL/SQL BINARY向量支持
PL/SQL支持BINARY作为向量类型的新维度格式,与SQL一致。BINARY向量经常用于表示某个实体(例如文本文档)是否包含某些特征、列表词或术语。
BINAR 格式的优势有两方面。与默认的FLOAT32向量相比,向量的存储空间可以减少3倍。BINARY向量上的距离计算速度最高可提高40倍。
支持BINARY向量意味着 PL/SQL 将能够以与支持任何其他维度格式的向量相同的方式处理二进制向量。
17 PL/SQL JACCARD距离支持
PL/SQL现在支持JACCARD距离度量,它提供两个BINARY向量之间的相似度度量,其值为0到1。
Jaccard距离是二元向量的常见相似度度量。PL/SQL VECTOR_DISTANCE运算符支持Jaccard作为新度量,这意味着 PL/SQL代码可以在PL/SQL中使用JACCARD距离度量,而不必调用 SQL。
18 SQL时间分通
时间分桶是处理时间序列或事件流数据时的一种常见操作,其中任意定义的时间窗口内的一系列数据点需要映射到特定的固定时间间隔(桶)以进行聚合分析。
借助新的 SQL 运算符 TIME_BUCKET,Oracle为DATETIMES的时间数据时间分桶提供了本机和高性能支持。
为时间序列数据的常见固定时间间隔分桶提供本机SQL运算符可显著简化此类信息的应用程序开发和数据分析。除了更简单、更不容易出错的代码之外,本机运算符还提高了时间序列分析的性能。
19 AI向量搜索的分片支持
借助对向量搜索的分片支持,包含向量的表会自动分布和复制到不共享硬件的Oracle数据库池中。相似性搜索会自动在分片之间并行化,或者如果提供了分片键,则指向特定分片。
分片AI向量搜索提供了几个关键优势,包括通过允许向量分布在多台机器上来提高可扩展性,通过跨分片并行化向量搜索来提高性能,以及提高数据弹性,因为如果一个分片出现故障,其他分片可以继续运行。它还允许将向量搜索部署为全局数据库的一部分,其中单个逻辑数据库分布在多个地理位置。
20 小文件表空间缩小
此功能提供了可靠地缩小小文件表空间的能力。
在早期版本中,组织可能会发现小文件表空间的数据文件变大,尽管实际使用的空间要小得多。 这可能发生在用户删除表空间中的段或对象之后,但根据数据在数据文件中的位置,用户并不总是能够使用数据文件调整大小来恢复释放的空间。
通过使用小文件表空间缩小,您现在可以预期小文件表空间大小接近该表空间中所有段和对象的大小总和。您现在可以可靠地缩小小文件表空间,这意味着改进存储优化并降低存储成本。
21 使用数据库内ONNX运行时支持具有AI向量搜索的图像转换模型
此功能支持导入和使用图像转换模型,以使用23ai中提供的数据库内ONNX运行时引擎。图像转换器模型必须采用 ONNX格式,并包含所需的图像解码和预处理作为ONNX管道的一部分。
Oracle Database 23ai最初支持句子转换器,用于数据库内ONNX运行时和AI向量搜索。这仅支持为文本生成向量。借助对图像转换模型的支持,用户现在可以使用AI向量搜索进行涉及图像的语义相似性搜索,以支持更广泛的用例。
22 外部表中的向量数据类型支持
现在可以轻松访问存储在数据库外部(在文件系统或云对象存储中)的向量数据,以使用外部表执行相似性搜索。只需在存储向量嵌入的外部文件上创建一个带有VECTO 数据类型列的外部表即可。创建后,即可使用标准SQL执行相似性搜索。
可以使用外部表和标准SQL快速轻松地加载在数据库外部创建的向量嵌入。还可以对存储在数据库外部的向量嵌入运行相似性搜索,并将这些搜索与存储在数据库内的数据无缝结合。
总结
Oracle DB 23.7带来了不少传统功能以及AI Vector DB/Search相关功能的增强。
老规矩,知道写了些啥。
相关文章:

数据库管理-第287期 Oracle DB 23.7新特性一览(20250124)
数据库管理287期 20245-01-24 数据库管理-第287期 Oracle DB 23.7新特性一览(20250124)1 AI向量搜索:算术和聚合运算2 更改Compatible至23.6.0,以使用23.6或更高版本中的新AI向量搜索功能3 Cloud Developer包4 DBMS_DEVELOPER.GET…...

Golang :用Redis构建高效灵活的应用程序
在当前的应用程序开发中,高效的数据存储和检索的必要性已经变得至关重要。Redis是一个快速的、开源的、内存中的数据结构存储,为各种应用场景提供了可靠的解决方案。在这个完整的指南中,我们将学习什么是Redis,通过Docker Compose…...

四层网络模型
互联网由终端主机、链路和路由器组成,数据通过逐跳的方式,依次经过每条链路进行传输。 网络层的工作是将数据包从源端到目的端,跨越整个互联网。 网络层的数据包称为数据报。网络将数据报交给链路层,指示它通过第一条链路发送数据…...

CUDA学习-内存访问
一 访存合并 1.1 说明 本部分内容主要参考: 搞懂 CUDA Shared Memory 上的 bank conflicts 和向量化指令(LDS.128 / float4)的访存特点 - 知乎 1.2 share memory结构 图1.1 share memory结构 放在 shared memory 中的数据是以 4 bytes(即 32 bits)作为 1 个 word,依…...

进程通讯——类型和发展
进程常用交互方法如上...

在 Windows 11 中为 SMB 3.x 文件共享协议提供 RDMA 支持
注:机翻,未校。 Enable SMB Direct in Windows 11 在 Windows 11 中启用 SMB Direct Provides RDMA support for the SMB 3.x file sharing protocol 为 SMB 3.x 文件共享协议提供 RDMA 支持 Vigneshwaran Vijayakumar November 3, 2024 Last Updat…...
C 标准库 - `<errno.h>`
C 标准库 - <errno.h> 引言 在C语言编程中,正确处理错误是保证程序稳定性和可靠性的关键。C标准库中的<errno.h>头文件提供了错误码定义和宏,使得开发者能够更好地管理和处理程序运行过程中可能出现的错误。本文将详细介绍<errno.h>头文件的作用、常用错…...

2025年01月28日Github流行趋势
项目名称:maybe 项目地址url:https://github.com/maybe-finance/maybe项目语言:Ruby历史star数:37540今日star数:1004项目维护者:zachgoll, apps/dependabot, tmyracle, Shpigford, crnsh项目简介ÿ…...

7. 马科维茨资产组合模型+金融研报AI长文本智能体(Qwen-Long)增强方案(理论+Python实战)
目录 0. 承前1. 深度金融研报准备2. 核心AI函数代码讲解2.1 函数概述2.2 输入参数2.3 主要流程2.4 异常处理2.5 清理工作2.7 get_ai_weights函数汇总 3. 汇总代码4. 反思4.1 不足之处4.2 提升思路 5. 启后 0. 承前 本篇博文是对前两篇文章,链接: 5. 马科维茨资产组…...
Android 启动流程
一 Bootloader 在嵌入式系统中,Bootloader的引导过程与传统的PC环境有所不同,主要是因为嵌入式系统的硬件配置和应用场景更加多样化。以下是嵌入式系统中Bootloader被引导的一般流程: 1. 硬件复位 当嵌入式设备上电或复位时,处…...
庆祝2025到来:C++编程的新篇章
作者:w(゚Д゚)w吓洗宝宝了 发布时间:2025年1月19日00:00 引言 新年伊始,万象更新。在这充满希望的2025年,我们迎来了新的机遇和挑战。作为C编程爱好者的一员,我感到无比激动和自豪。C作为一种强…...
基于STM32的智能家用温控器设计
目录 引言系统设计 硬件设计软件设计 系统功能模块 温度监测模块自动加热与制冷模块用户交互与显示模块节能模式与定时功能模块远程控制与数据上传模块 控制算法 温度调节算法定时任务与节能优化算法数据记录与反馈算法 代码实现 温度监测与自动控制代码定时与节能模式代码数据…...

扣子平台音频功能:让声音也能“智能”起来。扣子免费系列教程(14)
在数字化时代,音频内容的重要性不言而喻。无论是在线课程、有声读物,还是各种多媒体应用,音频都是传递信息、增强体验的关键元素。扣子平台的音频功能,为开发者和内容创作者提供了一个强大而灵活的工具,让音频的使用和…...

Dismissible组件的用法
文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了GestureDetector Widget相关的内容,本章回中将介绍Dismissible Widget.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在这里介绍的Dismissible是一个事件响应Widget,它和GestureDetector类似,不过它只…...
C语言--数据在内存中的存储
在C语言中,数据在内存中的存储方式主要取决于数据的类型和存储位置。以下是C语言中数据在内存中的存储方式的详细说明: 1. 数据类型与存储方式 基本数据类型 • 整数类型(如int、short、long等): • 存储方式&#x…...
CPP-存储区域
CPP支持手动开辟和释放内存,所以对于内存的理解非常重要! 在C中,内存存储通常可以大致分为几个区域,这些区域根据存储的数据类型、生命周期和作用域来划分。这些区域主要包括: 代码区(Code Segment/Text S…...

9.中断系统、EXTI外部中断
中断系统原理 中断 中断系统是管理和执行中断的逻辑结构,外部中断是众多能产生中断的外设之一,所以本节我们就借助外部中断来学习一下中断系统。在以后学习其它外设的时候,也是会经常和中断打交道的。 中断:在主程序运行过程中…...

新增文章功能
总说 过程参考黑马程序员SpringBoot3Vue3全套视频教程,springbootvue企业级全栈开发从基础、实战到面试一套通关_哔哩哔哩_bilibili 之前又偷懒几天。回老家没事干,玩也玩不好,一玩老是被家里人说。写代码吧还是,他们都看不懂&a…...

《HelloGitHub》第 106 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 Python、…...
使用Ollama 在Ubuntu运行deepseek大模型:以DeepSeek-coder为例
DeepSeek大模型这几天冲上热搜啦! 咱们来亲身感受下DeepSeek模型的魅力吧! 整个操作流程非常简单方便,只需要2步,先安装Ollama,然后执行大模型即可。 安装Ollama 在Ubuntu下安装Ollama非常简单,直接sna…...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...
.Net Framework 4/C# 关键字(非常用,持续更新...)
一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...
Spring是如何解决Bean的循环依赖:三级缓存机制
1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间互相持有对方引用,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...