数据库没有死,只是范式变了

数据库和数据仓库的区别 一、数据仓库的概念数据仓库之父比尔·恩门(Bill Inmon)在1991年出版的“Building the Data Warehouse”(《建立数据仓库》)一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的... 阅读详情

从文件系统到关系型数据库的演进史,再看 Markdown 在 AI 时代的下一站

最近一段时间,关于数据库行业是否正在消失的讨论明显变多了。

理由看起来也很充分:

  • Agent 可以直接用 Markdown 作为 memory
  • 向量数据库正在替代关系数据库
  • 越来越多应用不再显式设计 schema
  • 很多系统甚至不再“选择数据库”

如果只看这些现象,很容易得出一个结论:
数据库正在退场。

但如果把时间尺度拉长一点,就会发现真正发生变化的并不是数据库的重要性,而是数据抽象层正在迁移。

今天我们面对的,并不是数据库是否还重要的问题,而是是否正在进入一个新的数据抽象层时代——就像当年关系型数据库是在文件系统无法支撑应用复杂度之后诞生的一样。

数据库没有消失,只是范式变了。

一、关系型数据库并不是技术升级,而是一层新的抽象

关系型数据库的出现,并不是一次简单的技术进步,而是一种抽象层的跃迁。

早期计算机系统的数据组织方式非常直接:

  • 应用程序管理文件
  • 程序定义格式结构
  • 程序决定访问路径

这种方式在单程序时代完全有效。但随着系统规模增长,很快暴露出结构性问题:

  • 数据无法共享
  • 结构变化影响整个系统
  • 并发访问不可控
  • 复杂查询难以实现
  • 数据结构难以演进

关系模型真正解决的问题不是“如何存储数据”,而是:
如何让多个程序共享状态。

它第一次实现了数据的逻辑独立性,使应用程序不再依赖底层存储路径,并围绕这一能力建立起统一的数据模型、查询语言、事务机制、一致性保证和索引体系。

数据库从诞生之初,就是一层 shared state abstraction layer。

理解这一点非常重要,因为今天我们面对的问题,与当年文件系统时代其实非常相似。
在这里插入图片描述

二、Markdown 正在重复文件系统当年的角色

进入 AI 时代之后,越来越多系统开始使用:

  • Markdown
  • JSON
  • 向量索引
  • 对象存储

构建 memory layer。

在很多场景中,这确实有效。例如:

  • 个人知识库
  • 轻量级 Agent memory
  • RAG demo 系统
  • 单用户上下文管理

这些系统通常具有共同特点:

  • 低并发
  • 弱一致
  • 追加写入
  • 查询简单

在这种条件下:
Markdown + embedding index
确实可以运行。

但这并不意味着数据库不再需要。

这意味着系统仍然处于一个典型的 pre-relational 阶段。

今天的 Markdown,很像当年的 flat file。

它解决的是表达问题,而不是状态问题。

它提供:

  • 可读性
  • 可交换性
  • 弱结构表达
  • 知识记录

但它没有解决:

  • 并发控制
  • 事务一致性
  • 权限隔离
  • 复杂查询
  • schema 演进
  • 状态恢复

最新的 Agent memory 研究已经开始系统性描述这些限制。例如 ICLR 2025 的 conversational memory 工作指出,长期 memory 的关键问题不再是“存多少上下文”,而是如何构造可压缩、可检索、可演化的 memory unit。

这说明 memory 正在从文本缓存走向结构化状态系统。

三、Agent 时代的新约束已经出现,而且正在迅速放大

关系型数据库诞生的原因,是文件系统无法承载应用规模。

今天类似的压力正在重新出现。

但这一次不是来自程序,而是来自 Agent。

如果未来的软件系统需要同时运行数万、数亿甚至数万亿 Agent,那么数据基础设施面对的对象将不再是程序,而是认知体。

数据库将不再管理数据记录,而是管理认知轨迹:

  • context
  • reasoning
  • tool calls
  • knowledge
  • observations
  • tasks

数据库开始管理的是:
state trajectories
而不是:
data rows

与此同时,并发模型也正在发生变化。

传统数据库面对的是多程序并发,而未来数据库面对的是多 Agent 并发。

程序通常是确定性的,而 Agent 通常是非确定性的。

这意味着:

  • 状态合并
  • 版本控制
  • 冲突检测
  • 推理路径协调

都会成为数据库级问题。

MemoryAgentBench 已经把 Agent memory 能力拆解为:

  • retrieval
  • test-time learning
  • long-horizon reasoning
  • selective forgetting

这些能力本质上对应数据库中的索引、更新、压缩与恢复机制。

与此同时,token 成本正在成为新的访问路径约束。

ICLR 2026 的 MEM1 工作进一步证明:
简单扩展 context window 无法解决长期 memory 问题,系统必须维护一个 compact internal state。

另一类研究(如 ACON)则直接把 context compression 定义为长程 Agent 的核心系统问题。

这说明:
context engineering 正在成为新的 schema 设计
harness engineering 正在成为新的事务系统

新的数据抽象层正在形成。

四、训练正在成为新的数据基础设施问题

另一个正在发生但常被忽视的变化是,训练本身正在从一次性离线过程变成持续的在线过程。

在传统机器学习系统中,模型训练发生在部署之前,而数据库负责管理部署之后的业务状态。

但在 Agent 系统中:

  • retrieval
  • reflection
  • tool feedback
  • test-time learning

正在不断改变模型行为本身。

这意味着 memory 不再只是推理阶段的辅助组件,而正在成为训练过程的一部分。

当学习成为持续状态演化过程时,数据库所管理的对象也从业务数据扩展为认知状态,甚至进一步扩展为学习状态。

换句话说:

  • 过去数据库管理的是业务状态
  • 今天数据库开始管理认知状态
  • 未来数据库可能管理学习状态

这是数据库范式迁移正在发生的另一个重要信号。

五、下一代数据库正在指向统一认知状态空间

如果关系型数据库解决的是:
multi-program shared state

那么下一代数据库需要解决的是:
multi-agent shared cognition state

这种状态不是单一类型的数据,而是一个多维状态空间:

在这里插入图片描述

  • 当前状态(OLTP)
  • 历史状态(OLAP)
  • 语义状态(Vector)
  • 演化状态(Time-series)

数据库社区其实已经沿着这个方向前进。

PVLDB 2025 的向量数据库研究明确将 vector store 定义为 LLM 系统的 long-term memory substrate;

GraphRAG 研究则开始把 retrieval 扩展为结构化 reasoning path,而不仅仅是语义匹配。

当数据基础设施需要支持数万、数亿甚至数万亿 Agent 时,数据库将第一次成为认知基础设施。

系统必须支持:

  • decision trace
  • reasoning history
  • tool invocation lineage
  • state evolution timeline

权限模型也将发生变化:
从
user → table
转变为

  • agent → memory region
  • agent → tool state
  • agent → world model fragment

数据库的角色正在从:
data storage layer
转变为:
cognition state infrastructure layer

Markdown 不会消失,但它不会成为终点。

它更可能成为下一代数据抽象层出现之前的入口格式,并沿着这样的路径演进:
在这里插入图片描述

Markdown
→ metadata
→ chunking
→ embedding
→ vector index
→ relational state
→ agent memory substrate

在这个过程中:
Markdown 从 storage format 变成 interface format。

真正的数据层仍然需要新的数据库抽象。

六、数据库没有消失,只是进入了新的位置

文件系统并没有消失,它只是退到了数据库下面。

关系型数据库也不会消失,它可能正在退到 Agent memory 的下面。

Markdown 不是数据库的终点,它只是下一层数据库诞生之前的入口格式。

数据库没有死。

只是范式变了。

数据仓库【范式建模】 1.概述 数据仓库这个概念是由 Bill Inmon 所提出的、他在 "Build the Data Warehouse" 一书中所提出了数据仓库的定义。 数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。 阅读详情

相关推荐

数据库范式详解:从第一范式到第五范式

数据库范式是数据库设计中的一种理论基础,用来减少冗余数据并确保数据的依赖关系。范式通过将数据分解成多个表格,并利用外键建立关系来实现数据库的高效管理。范式有不同的级别,从低级范式到高级范式,需求越高,设计越复杂。基本上,数据越是拟合较高的范式,数据的完整性和一致性就越高。每一种范式都有其特定的应用场景和优势。遵循这些范式,不仅能帮助我们设计出更加高效、可维护的数据库,还能在数据的完整性、一致性和查询性能等方面提供重要保障。随着业务需求的复杂化,数据库范式的重要性愈加凸显。

https://blog.cmdragon.cn/ 1178

漫谈数据仓库和范式

0x00 概述 长期从事数据仓库的你,是否还记得数据库设计中的三大范式?在设计数据仓库的表时,是否考虑过规范化和反规范化之间的区别?是否想过数据仓库和数据库在设计中对范式考虑的侧重点是什么? 本文,将包含如下几个方面: 一起回顾数据库设计中经典的三大范式 聊一聊数据仓库和范式之间的关系 聊一聊数据仓库和数据库在范式设计中的侧重点 全文将会围绕一个订单表(假设一个订...

木东居士 2325

数据仓库学习笔记 --- 数据仓库与数据库范式

|—— 三范式 首先回顾一下范式是什么: 设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同的范式,各种范式呈递次规范,越高的范式数据库冗余越小。 目前关系数据库有六种范式: 第一范式(1NF)、 第二范式(2NF)、 第三范式(3NF)、 巴斯-科德范式(BCNF)、 第四范式(4NF)、 第...

杨鑫newlife的专栏 1135

【DataBase】数据库三范式【看了就有收获,最简单的例子解释】

第二范式(2NF):消除了非主属性对于码【主属性的集合】的部分函数依赖(简单来说:表中的非主属性【姓名】必须完全依赖于主属性【学号】) 名词解释; 码(候选码):就是主属性的集合。 有了码就可以获取到码对应的其他属性【id【主属性】确定--就可以确定 姓名 系名和系主任 (非主属性)。课名【主属性】可以获取分数【非主属性】】 主属性:码里面的属性就是主属性,包括id,课名。 非主属性:不是主属性的就是非主属性,包括姓名和系名和系班主任,分数。 函数依赖:函数y=f(x)代表给定一个x值,y的值也是确

m0_64210833的博客 1万+

从AD到HFSS:Gerber文件驱动的PCB三维电磁仿真全流程解析

本文详细解析了从AD到HFSS的Gerber文件驱动的PCB三维电磁仿真全流程,重点介绍了Gerber文件作为桥梁的重要性、AD端Gerber文件导出实战指南、HFSS 3D Layout导入技巧及高级问题排查方法。通过实际案例和技巧分享,帮助工程师高效完成PCB电磁仿真,提升设计验证效率。

weixin_33735077的博客 260

Android Studio运行报错: failed to load include path ……\platforms\android-35\android.jar的最细解决方案

【代码】Android Studio运行报错: failed to load include path ……\platforms\android-35\android.jar的最细解决方案。

2401_86789230的博客 2万+

数据仓库的两种建模方法(范式建模和维度建模)

数据仓库的两种建模方法 范式建模 Inmon提出的集线器的自上而下(EDW-DM)的数据仓库架构。操作型或事务型系统的数据源,通过ETL抽取转换和加载到数据仓库的ODS层,然后通过ODS的数据建设原子数据的数据仓库EDW,EDW不是多维格式的,不方便上层应用做数据分析,所以需要通过汇总建设成多维格式的数据集市层。优势:易于维护,高度集成;劣势:结构死板,部署周期较长 范式建模应用在EDW层...

大数据ING的博客 1万+

告别CANoe?手把手教你用Python+PCAN搭建汽车诊断脚本(附完整代码)

本文详细介绍了如何利用Python和PCAN硬件搭建高性价比的汽车诊断自动化方案,替代昂贵的CANoe工具。通过开源库python-can和udsoncan实现UDS诊断协议,涵盖硬件选择、环境配置、核心功能实现及性能优化,附完整代码示例,助力开发者快速构建诊断脚本。

weixin_42551227的博客 373

一篇文章搞懂数据仓库:三范式与反范式

一、第一范式 二、第二范式 三、第三范式 四、反范式化 五、范式化设计和反范式化设计的优缺点 5.1 范式化 (时间换空间) 5.2 反范式化(空间换时间) 六、OLAP和OLTP中范式设计

独木不成林,单弦不成音。 3万+

Arduino+NRF24L01 无线遥控舵机与无刷电机系统搭建指南

本文详细介绍了使用Arduino和NRF24L01模块搭建无线遥控系统的完整指南,涵盖舵机和无刷电机的无线控制。从硬件选型、电路连接到代码编写与调试,提供了实用技巧和常见问题解决方案,帮助DIY爱好者低成本实现稳定可靠的无线遥控应用。

sre5engineer的博客 588

64、5G 侧链通信技术详解

本文详细解析了5G侧链通信的关键技术,包括资源感知与选择、UE间协调、混合ARQ、功率控制、信道探测与CSI报告以及侧链同步。资源感知与选择通过周期性或随机方式实现资源分配,UE间协调通过主动或被动方式避免资源冲突。混合ARQ机制确保数据传输可靠性,功率控制和信道探测优化传输质量并减少干扰。侧链同步则通过多种方式确保设备间时间一致性。这些技术相互配合,构建了高效稳定的5G侧链通信体系,适用于智能交通、物联网、应急通信等多个领域,为未来无线通信发展提供强大支撑。

oil88的博客 102

数据库的三大范式+BC范式

数据库有三大范式和BC范式,我们来详细探讨一下: 首先三大范式: 第一范式 第一范式(1NF):表中所有属性都不能再分,都应该是原子值。 这也是数据表的最低的最基本的要求。 第二范式 第二范式(2NF):在满足第一范式的前提下,还要求每一个非主属性都要完全依赖于任何一个候选码。 上面这句话听起来比较抽象,其实也好理解。(下面的主键(限第二范式中)其实指:主键或候选码,这么写的看起来太绕就简写成主键...

吟游诗人——吟唱生命的不朽 1万+

通过傅里叶变换进行音频变声变调

在游戏或者一些特殊场景下为了提高娱乐性或者保护声音的特征,我们会对音频进行变声变调处理。

yang1fei2的博客 1818

数据库范式Database Normalization

数据库范式化是为了最小化冗余和依赖,对关系型数据库中的字段和表进行合理组织的过程。 现在共有1nf,2nf,3nf和bcnf 4种: http://en.wikipedia.org/wiki/Database_normalization 第一范式是关系型数据库最主要的属性。也就是说第一范式是关系型数据库的最低要求。 如果一个关系型数据库满足第三范式,则称为“范式化的”。关系型数

我的学习成长日记 2133

200、从反激到LLC:工程师的成长之路

文章摘要: 本文以工程师视角探讨从反激式到LLC电源设计的思维转变。通过48V通信电源故障案例,揭示LLC谐振电容ESR温度特性引发的隐患,强调LLC需精确计算与测试。对比反激与LLC的核心差异:反激需控制寄生参数(如漏感尖峰、电容ESR),而LLC的关键在于频率响应和死区时间优化。作者提出三大思维转变:从匝比计算转向增益曲线分析,从时域波形观察转向频域频谱诊断,从元件更换转向参数调整。最后给出实战建议,包括建立故障库、关注元件参数细节及示波器调试技巧,指出工程师需从"控制"思维升级为"谐振"思维,实现技术

Jack010169的博客 323

ZYNQ microblaze boot.bin固化步骤

一,ZYNQ移植软核的原理FPGA规模巨大而且功能复杂,因此设计的每一个部分都从头开始是不切实际的。一种解决的办法是:对于较为通用的部分可以重用现有的功能模块,而把主要的时间和资源用在设计中的那些全新的、独特的部分。这就像是你在开发应用程序的时候就不用直接去写驱动物理硬件的代码,而是直接调用Windows提供的API就行了。

wangjie36的博客 2782

数据库三大范式、BC范式、第四范式

为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库,必须满足一定的范式。

Sankkl1的博客 9879

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

传统数据库三范式建模和数据仓库维度建模 详细篇

如何建库建表? 传统三范式建模 和数据仓库 维度建模都是什么?有什么区别?

qq_55006020的博客 2759

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

数据仓库-数仓是如何反三范式的?

在回答数据库和数据仓库的区别时,最常见的回答是数据仓库反三范式,数据库遵循三范式。 那么具体的区别时什么?下面进行简单的说明。 数据库三范式 字段列含义不可分割。 数据库默认遵循第一范式,不遵循第一范式无法创建表,下面的"进货"和"销售"列可以再细分,所以不符合第一范式。 2.表有主键,且非主键列依赖主键列。 下图中可以将"学号"和"课名"作为联合主键,但是非主键列如"系主任"并没有直接依赖联合主键,所以不符合第二范式。 3.非主键列不互相依赖。 非主键列"系...

A coder of life 3136

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

详解数据库三大范式、BCNF范式

文章目录 什么是”范式(NF)”1. 第一范式(1NF)2. 第二范式(2NF)2.1 函数依赖2.1.1完全函数依赖2.1.2 部分函数依赖 2.2 码2.3 非主属性 3. 第三范式(3NF)4. 小结 4.1 三大范式总结 4.2 完全&部分函数依赖 4.3 表设计规范(范式的选择) 什么是”范式(NF)” 按照教材中的定义,范式是“符合某一种级别的关系模式的集合,表示一个关系内部各属性之间的联系的合理化程度”。很晦涩吧?实际上你可以把它粗略地理解为一张数据表的.

qq_37149892的博客 1万+

数据库(DB)和数据仓库(DW)的区别

数据库与数据仓库的核心差异主要体现在用途、数据特点及设计理念上。数据库(如MySQL)服务于业务系统,强调实时增删改查,采用三范式设计;数据仓库(如Hive)面向分析决策,存储历史数据,采用星型模型优化查询。两者通过ETL实现数据流转,需严格区分业务处理(OLTP)与分析处理(OLAP),避免混合使用影响性能。数据仓库并非简单的大数据库,与数据湖形成互补而非替代关系。

weixin_65034131的博客 934

【数据仓库】数据仓库常见的数据模型——范式模型

BCNF 是第三范式的一个扩展和加强。它要求表中的每个决定因素(Determinant)必须是候选键。这意味着在 BCNF 中,任何非平凡的函数依赖关系的决定因素都必须是超键。

铁盒薄荷糖的博客 1820

SQL笔记 -- 范式(第一范式、第二范式、第三范式、巴斯范式、反范式)及数据库设计原则

第一范式、第二范式、第三范式、巴斯范式、反范式及数据库设计原则

Kaiser__的博客 5591

数据库的三范式及BC范式

数据库的三范式及BC范式

老照片 8685
上一篇: Memoria 备份与恢复功能上线:你的智能体终于有了存档点
下一篇: 【MOI 实践 Vol.2】[特殊字符]报表数字看不懂、口径对不上?让AI帮你搞定一切
MatrixOrigin
博客等级 码龄5年 708粉丝 230原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值