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

【中国数据库前世今生】数据存储管理的起源与现代数据库发展启蒙

记录开启本篇的目的:

作为1名练习时长2年半的DBA,工作大部分时间都在和数据库打交道,包括Oracle,Mysql,Postgresql,Opengauss等国内外数据库。但是对数据库的发展史却知之甚少。

正好腾讯云开发者社区正在热播:【纪录片】中国数据库前世今生,借此机会了解数据库发展历史,和演变进程,既充实知识体系架构,有可以有益于读者。

1.数据的起源

说到数据库,大家可能并不陌生,你的银行卡余额可以实现从一个银行网点存入,在另一个银行网点取出。你的王者数据只要登录同一个账号就能在不同设备上打野都得益于数据库保存了你的"数据"。

包括黑客使用钓鱼网站盗取你的数据,也是利用漏洞进入数据库获取你的账号,密码。

并在在大学中,计算机类专业学生基本上都会接触过Mysql或者SQL Server等数据库产品,也许,即使你工作多年,没有从事数据库行业,也一定会对这本书有印象吧,基本上他是学习数据库这门课的必备书籍。

img

但是古代我们可没有当今的数据库,甚至上个世纪五六十年代我国也没有数据库,那么前人是如何记录数据的呢?

2. 现代数据库出现前的数据保存和管理

对于大部分接触数据库的非DBA开发者来说,使用数据库最多的无非是增删改查(insert,delet,uodate,select),那么,在先到数据库工具发明以前,人们是怎么实现数据的增删改查和保存的呢

在数字化和数据库技术普及之前,人们对数据的记录和管理主要依赖于一些传统的方法。这些方法虽然在效率和准确性上无法与现代技术相媲美,但它们在当时是最有效的数据管理方式,直到今天,也是人们记录数据的方式之一。本小节将探讨一些在数据库技术出现之前,人们用来记录和存储管理数据的常见方法。

2.1 纸质记录

纸质记录是最原始的数据记录方式之一。人们使用笔和纸来记录信息,如账簿、日记、表格等。这些记录可以手工整理和分类,但查找特定信息时往往需要花费大量时间。

image-20240729011421129

特点

  • 易于创建:任何人只要有纸和笔就可以开始记录。
  • 直观性:信息一目了然,易于理解和阅读。

缺点

  • 检索效率低:查找特定信息时需要手动翻阅。
  • 易损坏:纸质记录容易受潮、褪色或被损坏。

2.2 文件柜存储

文件柜是纸质记录的物理存储解决方案。通过将记录好的文件、文档分类存放在文件柜中,可以更好地管理和保护这些记录。

image-20240729011447581

特点

  • 组织性:通过文件夹和标签,可以有效地组织大量文档。
  • 物理保护:文件柜为纸质记录提供了物理保护。

缺点

  • 空间占用:需要足够的空间来存放文件柜。
  • 检索不便:尽管比单纯纸质记录有所改进,但检索特定文件仍然不够快捷。

2.3 索引卡片

索引卡片是一种用于快速查找信息的工具。每张卡片上记录一条信息,然后根据一定的规则(如字母顺序)进行排序,以便于快速检索。

image-20240729011725979

特点

  • 快速检索:通过索引排序,可以快速定位到特定信息。
  • 灵活性:卡片可以根据需要重新排序或分类。

缺点

  • 手动维护:需要人工更新和维护索引顺序。
  • 信息量限制:每张卡片只能记录有限的信息。

2.4 打孔卡片

打孔卡片是早期计算机中使用的一种数据输入方式。通过在卡片上打孔来表示不同的数据,然后通过读卡机读取数据。

image-20240813130540935

特点

  • 机械化输入:相比手工记录,打孔卡片提高了数据输入的速度。
  • 适用于早期计算机:在计算机技术发展的早期阶段,打孔卡片是主要的数据输入方式。

缺点

  • 数据限制:每张卡片能表示的数据量有限。
  • 易出错:打孔错误可能导致数据错误。

2.5 小节

尽管这些传统方法在现代看来效率低下,但它们在当时是最有效的数据管理方式。随着技术的发展,数据库的出现极大地提高了数据存储、检索和处理的效率。现代数据库技术不仅提高了数据处理的速度,还增加了数据的安全性和可访问性。

3. 现代数据的引入和发展

毫不夸张的说,在使用现代数据库以前,人们对于数据的存储和管理基本上是基于以上方法或者以上方法的改进优化来实现的。对于整个数据的管理体系十分庞大且处理效率相对低下。在存储大量数据时,无论采用什么方式管理,都存在巨大的人力成本浪费。

在前辈一代代的努力下,现代数据库经过数年的发展,已经进入我们生活的方方面面,对于大部分非开发者来说,他们可能不会接触到数据库的开发部署,但无时无刻享受着现代数据库发展带来的生活便利。

3.1 现代数据库发展起步

此阶段主要是

在20世纪60年代,计算机技术刚刚起步,数据存储主要采用人工方式,数据的维护和管理非常困难。

1946年,有个叫冯·诺依曼的人发明了计算机,最开始的计算机的主要用途是将程序指令存储器和数据存储器合并在一起,然后进行相应的运算。这时候的数据管理非常简单。主要是通过大量的分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理。然而,随着计算机的诞生和成熟,数据管理技术也迅速发展。传统的文件系统难以应对数据增长的挑战,也无法满足多用户共享数据和快速检索数据的需求。

此时,数据管理的主要目标是存储和检索数据,因此,这种简单数据存储阶段被称为“关系数据库管理系统”。

结构化数据存储阶段随着计算机技术的发展,到了70年代,人们开始探索如何更有效地存储和管理数据。此时,数据管理的主要目标是提高数据的准确性和完整性,因此,结构化数据存储阶段被称为“关系数据库管理系统”。在这个阶段,人们开始使用SQL(StructuredQuery Language)来操作和管理数据库,这也是现代数据库技术的基础。

阶段三:对象数据存储阶段到了80年代,随着计算机技术的进一步发展,人们开始认识到,数据不仅仅是结构化的,还可能是对象化的。因此,这个阶段被称为“对象数据库管理系统”。在这个阶段,数据库开始支持对象的概念,可以存储和管理对象化的数据。

阶段四:分布式数据库阶段随着计算机网络技术的发展,到了90年代,人们开始探索如何分布式地存储和管理数据。这个阶段被称为“分布式数据库系统”。在这个阶段,数据库开始支持分布式的概念,可以在多台计算机上存储和管理数据。

阶段五:云计算数据库阶段到了21世纪,随着云计算技术的发展,人们开始探索如何在云上存储和管理数据。这个阶段被称为“云计算数据库系统”。在这个阶段,数据库开始支持云的概念,可以在云上存储和管理数据。

阶段六:大数据数据库阶段随着大数据技术的发展,人们开始探索如何处理和管理海量的数据。这个阶段被称为“大数据数据库系统”。在这个阶段,数据库开始支持大数据的概念,可以处理和管理海量的数据。

站在前辈的肩膀上

本篇文章的完成了,离不开各位前辈的文章,资料分享。在此一并感谢并做标注说明。如有侵权,请联系本人即刻删除。

本文引用及参考文章如下:

  1. 数据库的发展历程与阶段从起步到现代技术的演进

相关文章:

【中国数据库前世今生】数据存储管理的起源与现代数据库发展启蒙

记录开启本篇的目的: 作为1名练习时长2年半的DBA,工作大部分时间都在和数据库打交道,包括Oracle,Mysql,Postgresql,Opengauss等国内外数据库。但是对数据库的发展史却知之甚少。 正好腾讯云开发者社区正在热播:【纪录片】中国数据库前世今生,借此机会了解…...

拉卡拉上半年营收29.82亿元 外卡、数字化服务提升业绩增长空间

8月9日晚,拉卡拉(300773.SZ)发布2024年半年业绩报告。在国内经济延续恢复向好态势、国内消费市场规模持续增长的背景下,拉卡拉积极推进“推广数字支付、共享数字科技、兑现数据价值”的经营战略,上半年公司实现营业收入29.82亿元,…...

数学建模——启发式算法(蚁群算法)

算法原理 蚁群算法来自于蚂蚁寻找食物过程中发现路径的行为。蚂蚁并没有视觉却可以寻找到食物,这得益于蚂蚁分泌的信息素,蚂蚁之间相互独立,彼此之间通过信息素进行交流, 从而实现群体行为。 蚁群算法的基本原理就是蚂蚁觅食的过程…...

【Pytorch实用教程】在做模型融合时非常关键的代码:nn.Identity()详解

文章目录 nn.Identity()基础介绍主要用途示例代码以ResNet为例介绍 self.resnet.fc = nn.Identity() 的作用1. **背景:ResNet 模型结构**2. **代码 `self.resnet.fc = nn.Identity()` 的作用**3. **为什么使用 `nn.Identity()`**4. **示例代码**nn.Identity()基础介绍 nn.Ide…...

【开源力荐】一款基于web的可视化视频剪辑工具

嗨, 大家好, 我是徐小夕. 之前一直在社区分享零代码&低代码的技术实践,也陆陆续续设计并开发了多款可视化搭建产品,比如: H5-Dooring(页面可视化搭建平台)V6.Dooring(可视化大屏搭建平台)橙…...

鸿萌数据恢复服务: 如何修复 SQL Server 数据库错误 829?

天津鸿萌科贸发展有限公司从事数据安全服务二十余年,致力于为各领域客户提供专业的数据恢复、数据备份、网络及终端数据安全等解决方案与服务。 同时,鸿萌是众多国际主流数据恢复软件(Stellar、UFS、R-Studio、ReclaiMe Pro 等)的授权代理商&#xff0c…...

OpenCV图像处理——按最小外接矩形剪切图像

引言 在图像处理过程中,提取感兴趣区域(ROI)并在其上进行处理后,往往需要将处理后的结果映射回原图像。这一步通常涉及以下几个步骤: 找到最小外接矩形:使用 cv::boundingRect 或 cv::minAreaRect 提取感兴…...

《熬夜整理》保姆级系列教程-玩转Wireshark抓包神器教程(4)-再识Wireshark

1.简介 按照以前的讲解和分享路数,宏哥今天就应该从外观上来讲解WireShark的界面功能了。 2.软件界面 由上到下依次是标题栏、主菜单栏、主菜单工具栏、显示过滤文本框、打开区、最近捕获并保存的文件、捕获区、捕获过滤文本框、本机所有网络接口、学习区及用户指…...

调用yolov3模型进行目标检测

要调用已经训练好的YOLOv3模型对图片进行检测,需要完成以下几个步骤: 加载预训练模型:从预训练的权重文件中加载模型。准备输入图片:将图片转换为模型所需的格式。进行推理:使用模型对图片进行推理,得到检…...

linux文件——重定向原理——dup、重定向与execl、VFS

前言:本篇讲解linux下的重定向相关内容。 在本篇中, 博主将会带着友友们一边实验, 一边探索底层原理。 通过本篇的学习, 友友们将会了解到重定向是如何实现的, 重定向的本质是什么, 重定向和进程替换之间的…...

【STM32 FreeRTOS】任务

使用 RTOS 的实时应用程序可以被构建为一组独立的任务。每个任务在自己的上下文中执行,不依赖于系统内的其他任务或 RTOS 调度器本身。在任何时间点,应用程序中只能执行一个任务,实时 RTOS 调度器负责决定所要执行的任务。因此, R…...

Java面试--框架--Spring MVC

Spring MVC 目录 Spring MVC1.spring mvc简介2.spring mvc实现原理2.1核心组件2.2工作流程 3.RESTful 风格4.Cookie,Session4.1 会话4.2 保存会话的两种技术 5.拦截器5.1过滤器、监听器、拦截器的对比5.2 过滤器的实现5.3 拦截器基本概念5.4 拦截器的实现 1.spring …...

土壤水分监测系统的工作原理

TH-TS200土壤水分监测系统是一种在地球科学、农学等领域广泛应用的分析仪器,它主要用于监测土壤中的水分含量,为农业生产、水资源管理、环境保护等提供重要数据支持。通常包括数据采集器、土壤水分传感器、土壤温度传感器(部分系统配备)、计算机软件以及…...

k8s学习--如何控制pod调度的位置

文章目录 一、Pod 调度基础二、通过节点选择器 (Node Selector) 控制调度三、使用节点亲和性 (Node Affinity)四、使用污点和容忍 (Taints and Tolerations)五、Pod 反亲和性 (Pod Anti-Affinity) 总结 在 Kubernetes (K8s)中,Pod 是应用运行的最小单位&#xff0…...

基于mysqldump的MySQL数据库异地备份方案(含完整脚本和解释)

MySQL数据库异地备份方案 0 文档描述 本文描述了一个数据库异地备份方案,以下脚本代码都是在线上应用的本文以CentOS7为例,其他系统请自行查询安装命令如果评论有需求,我就对应系统做一下文档 1 基本原理 1.1 流程 原理本身很简单&#…...

C语言中10个字符串函数详解

目录 1.strlen 2.strcpy 3.strcat 4.strcmp 5.strncpy 6.strncat 7.strncmp 8.strstr 9.strtok 10.strerror 1.strlen 基本结构:size_t strlen(const char *str);功能:用于计算字符串的长度;字符串已经 0作为结束标志…...

flume系列之:查询多个flume agent组是否有topic重复接入情况

flume系列之:查询多个flume agent组是否有topic重复接入情况 一、查询zk节点下的flume agent组二、获取采集的topic三、获取重复接入的topic,支持设置重复接入白名单四、执行流程五、完整代码一、查询zk节点下的flume agent组 def get_flumeAgent_zkPath(zkRootPaths):for z…...

Windows自动化1️⃣环境搭建WinAppDriver

对于技术选型: 我尝试了, pywinauto, WinAppDriver,CukeTest 担心CukeTest可能会收费, 尝试pywinauto,在元素点击,搜索时, 遇到不可用情况; WinAppDriver是微软家的,大厂开源, 就它了! 步骤一:安装WinAppDriver 进入WinAppDriver下载页面(https://githu…...

云服务器Docker内部署服务后,端口无法访问?

云服务器Docker内部署服务后,端口无法访问,可以按照以下思路进行排查: 以【docker run --name my-nginx -d -p 9395:80 nginx】举例: 查看Docker映射是否正确,可使用docker ps命令查看。Docker是否设置端口映射&#…...

Unity将摄像机视角保存成Json文件方便读取使用

系列文章目录 unity工具 文章目录 系列文章目录👉前言👉一、设置环境👉二、代码如下👉三、使用方法 👉四、下次外部调用json里面的摄像机位置的时候如下代码方法👉壁纸分享👉总结 &#x1f449…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理&#xff1a…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版!!!6.8截至答题,大家注意呀! 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:( B ) A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

今日科技热点速览

🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用: 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests:发送 …...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...

HTML前端开发:JavaScript 获取元素方法详解

作为前端开发者,高效获取 DOM 元素是必备技能。以下是 JS 中核心的获取元素方法,分为两大系列: 一、getElementBy... 系列 传统方法,直接通过 DOM 接口访问,返回动态集合(元素变化会实时更新)。…...

Python竞赛环境搭建全攻略

Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...