数据库系统概念系列 - 数据库系统的历史

news2024/11/25 6:35:50

从商业计算机的出现开始,数据处理就一直推动着计算机的发展。事实上,数据处理自动化早于计算机的出现。Herman Hollerith 发明的穿孔卡片,早在20世纪初就用来记录美国的人口普查数据,并且用机械系统来处理这些卡片和列出结果。穿孔卡片后来被广泛用作将数据输入计算机的一种手段。

在这里插入图片描述

数据存储和处理技术发展的年表如下:

  • 20世纪50年代和20世纪60年代初: 磁带被用于数据存储。诸如工资单这样的数据处理已经自动化了,数据存储在磁带上。数据处理包括从一个或多个磁带上读取数据,并将数据写回到新的磁带上。数据也可以由一叠穿孔卡片输入,而输出到打印机上。例如,工资增长的处理是通过将增长表示到穿孔卡片上,在读入一叠穿孔卡片时同步地读入保存主要工资细节的磁带。记录必须有相同的排列顺讯。工资的增加额将被加入到从主磁带读出的工资中,并被写到新的磁带上,新磁带将成为新的主磁带。
    磁带(和卡片组)都只能顺序读取,数据规模可以比内存大得多,因此,数据处理程序被迫以一种特定的顺序来对数据进行处理,读取和合并来来自磁带和卡片组的数据。

在这里插入图片描述

  • 20世纪60年代末和20世纪70年代: 20世纪60年代末硬盘的广泛使用极大地改变了数据处理的情况,因为硬盘允许直接对数据进行访问。数据在磁盘上的位置是无关紧要的,因为磁盘上的任何位置都可在几十毫秒内访问到。数据由此摆脱了顺序访问的限制。有了磁盘,我们就可以创建网状和层次的数据库,它可以将表和树这样的数据结构保存在磁盘上。程序员可以构建和操作这些数据结构。

    📒 由 Codd[1970] 撰写的一篇具有里程碑意义的论文定义了关系模型和在关系模型中查询数据的非过程方法,由此关系型数据库诞生了。关系模型的简单性和能够对程序员屏蔽所有实现细节的能力具有真正的诱惑力。随后,Codd 因其所做的工作获得了声望很高的 ACM 图灵奖。

在这里插入图片描述

  • 20世纪80年代: 尽管关系模型在学术上很受重视,但是最初并没有实际的应用,这是因为它被认为性能不好;关系型数据库在性能上还不能和当时已有的网状和层次数据库相提并论。这种情况直到 System R 的出现才得以改变,这是 IBM 研究院的一个突破性项目,它开发了可以构造高效的关系型数据库系统的技术。Astrahan 等[1976] 和 Chamberlin 等 [1981] 给出了关于 System R 的很好的综述。完整功能的 System R 原型导致了 IBM 的第一个关系型数据库产品 SQL/DS 的出现。与此同时,加州大学伯克利分校开发了 Ingres 系统。它后来发展成具有相同名字的商品化关系数据库系统。最初的商品化关系型数据库系统,如 IBM DB2、Oracle、Ingres 和 DECRdb,在推动高效处理声明性查询的技术上起到了主要的作用。到了20世纪80年代初期,关系型数据库已经可以在性能上与网状和层次型数据库进行竞争了。关系型数据库是如此简单易用,以至于最后它完全取代了网状/层次型数据库,因为程序员在使用后者时,必须处理许多底层的实现细节,并且不得不将他们要做的查询任务编码成过程化的形式。更重要的,他们在设计应用程序时还要实时考虑效率问题,而这需要付出很大的努力。相反,在关系型数据库中,几乎所有的底层工作都由数据库自动来完成,使得程序员可以只考虑逻辑层的工作。自从在20世纪80年代取得了统治地位以来,关系模型在数据模型中一直独占鳌头。

    📒 在20世纪80年代人们还对并行和分布式数据库进行了很多研究,同样在面向对象数据库方面也有初步的工作。

  • 20世纪90年代初: SQL 语言主要是为决策支持应用设计的,这类应用是查询密集的;而20世纪80年代数据库的支柱是事务处理应用,它们是更密集的。决策支持和查询再度成为数据库的一个主要应用领域。分析大量数据的工具有了很大的发展。

    📒 在这个时期许多数据库厂商推出了并行数据库产品。数据库厂商还开始在他们的数据库中加入 对象 - 关系 的支持。

  • 20世纪90年代: 最重大的事件就是互联网的爆炸式发展。数据库比以前有了更加广泛的应用。现在数据库系统必须支持很高的事务处理速度,而且还要有很高的可靠性和 24 x 7 的可用性(一天24小时,一周7天都可用,也就是没有进行维护的停机时间)。数据库系统还必须支持对数据的 Web 接口。

  • 21世纪第一个十年: 21世纪的最初五年中,我们看到了 XML 的兴起以及与之相关联的 XQuery 查询语言成为了新的数据库技术。虽然 XML 广泛应用于数据交换和一些复杂数据类型的存储,但关系数据库仍然构成大多数大型数据库应用系统的核心。在这个时期,我们还见证了 “自主计算/自动管理” 技术的成长,其目的是减少系统管理开销;我们还看到了开源数据库系统应用的显著增长,特别是 PostgreSQL 和 MySQL。

    📒 在21世纪第一个十年的后几年中,用于数据分析的专门的数据库有很大增长,特别是将一个表的每一列高效地存储为一个单独的数组的列存储,以及为非常大的数据集的分析而设计的高度并行的数据库系统。有几个新颖的分布式数据库存储系统被构建出来,以应对非常大的 Web 节点如 Amazon、Facebook、Google、Microsoft 和 Yahoo!的数据库管理需求,并且这些系统中的某些现在可以作为 Web 服务提供给应用开发人员使用。在管理和分析流数据如股票市场报价数据或计算机网络检测数据方面也有重要的工作。数据挖掘技术现在被广泛部署应用,应用实例包括基于 Web 的产品推荐系统和 Web 页面上的相关广告自动布放。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1179285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

javascript中的new原理及实现

在js中,我们通过new运算符来创建一个对象,它是一个高频的操作。我们一般只是去用它,而很少关注它是如何实现的,它的工作机制是什么。 1 简介 本文介绍new的功能,用法,补充介绍了不加new也同样创建对象的方…

HDD最后的冲刺:大容量硬盘的奋力一搏

1.引言 在上一篇文章(微软Azure云数据中心工作负载分享:SSD与HDD,何去何从?)中,我们提到在应对SSD QLC/PLC大容量的挑战中,HDD也是在不断的努力,推出HAMR,SMR等新介质。…

【已解决】ModuleNotFoundError: No module named ‘dgl‘

禁止使用下面方法安装DGL,这种方法会更新你的pytorch版本,环境越变越乱 pip install dgl 二是进入DGL官网:Deep Graph Library (dgl.ai),了解自己的配置情况,比如我cuda11.8,ubuntu,当然和linux是一样的 …

卡尔曼滤波之二:Python实现

卡尔曼滤波之二:Python实现 1.背景描述2.构建卡尔曼滤波公式2.1 预测2.2 更新 3.代码实现3.1 输入值3.2 pykalman包实现3.3 不使用Python包实现3.4 效果可视化 参考文献 了解了卡尔曼滤波之一:基本概念,可以结合代码来理解下卡尔曼滤波的2个预…

STM8单片机在医疗设备中的应用和优势

STM8单片机作为一种高性能、低功耗的微控制器,在医疗设备领域得到了广泛的应用。本文对STM8单片机在医疗设备中的应用进行了研究,探讨了它在医疗设备中的优势和特点,并分析了其在提升医疗设备性能、精确控制和数据处理等方面的应用效果。 一…

接口幂等性详解

1. 什么是幂等性 幂等性指的是对同一个操作的多次执行所产生的影响与一次执行的影响相同。无论操作执行多少次,系统状态都应该保持一致。 在计算机科学和网络领域中,幂等性通常用来描述服务或操作的特性。对于RESTful API或HTTP方法,一个幂…

【Linux】服务器与磁盘补充知识,硬raid操作指南

服务器硬件 cpu 主板 内存 硬盘 网卡 电源 raid卡 风扇 远程管理卡 1.硬盘尺寸: 目前生产环境中主流的两种类型硬盘 3.5寸 和2.5寸硬盘 2.5寸硬盘可以通过使用硬盘托架后适用于3.5寸硬盘的服务器 但是3.5寸没法转换成2.5寸 2.如何在服务器上制作raid 华为服务器为例子做…

DAY46 139.单词拆分 + 多重背包 + 背包问题总结篇

139.单词拆分 题目要求:给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 思路 完全背…

NVMe FDP会被广泛使用吗?

文章开头,我们需要先了解固态硬盘的读写机制。我们知道,固态硬盘的存储单元是由闪存颗粒组成的,无法实现物理性的数据覆盖,只能擦除然后写入,重复这一过程。因而,我们可以想象得到,在实际读写过…

04-SpringBoot的基础配置及其配置文件分类,解决Yaml文件失效问题

SpringBoot的配置 SpringBoot是用来提高Spring程序的开发效率的,使用SpringBoot后几乎不用做任何配置功能就有了,因为很多功能已经有默认配置帮我们做好了 配置文件的相关配置 在一个项目中不同的技术对应不同的配置文件并且这些配置文件的格式也不统一 SpringBoot提供了一…

打印由*组成的菱形

如图所示,这是我们要用代码所实现的图形。 那么我们该如何实现这个呢,对于这种题,我们只有静下心来找其中的规律了。 我们先来看看它的上面部分: 它是由空格和星号组成的,那么我们是不是可以先打印空格然后再打印星号…

2023 年 API 安全状况

在当今快速变革的数字世界中,API 已成为快速交付业务功能的关键。这些数字连接器支撑着我们今天见证的大部分企业创新,从无缝的客户体验到集成的合作伙伴生态系统。 随着 API 使用量的激增,潜在风险呈指数级增长。让我们用硬数据来说明 API …

【redis 面试题】③ 缓存雪崩

文章目录 前言一、什么是缓存雪崩二、缓存雪崩的解决方案 前言 跟着B站的黑马程序员学习面试题,目前是redis的第三个内容——缓存雪崩 课程传送门:redis——缓存雪崩 一、什么是缓存雪崩 缓存雪崩是设置缓存时采用了相同的过期时间,导致缓存…

Pytorch 快速参数权重初始化

定义一个函数: 这里比如要初始化2维卷积权重值,采用xaiver 数据分布,还有很多其他的数据分布可以探索 def weights_init(m):if isinstance(m, nn.Conv2d):xavier(m.weight.data)xavier(m.bias.data) 然后定义一个含2维卷积的网络&#xff…

HTML5+CSS3小实例:带功能区的图片悬停特效

实例:带功能区的图片悬停特效 技术栈:HTML+CSS 效果: 源码: 【HTML】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" content=&…

esxi 6.7下安装黑裙

esxi上创建一个黑裙系统的虚拟机&#xff0c;用来存资料 一、工具 硬件&#xff1a; 工控机&#xff1a;装有esxi6.7系统&#xff08;192.168.100.2&#xff09;&#xff0c;配置&#xff1a;3865U&#xff0c;16G内存&#xff0c;120Gmsata120sata硬盘&#xff0c;6个网口 主…

oracle转换人大金仓全过程

前提 Oracle服务器&#xff1a;创建用户&#xff0c;导入数据库人大金仓服务&#xff1a;创建用户 注意&#xff1a;两者的参数设置要保持一致&#xff08;数字集UTF-8&#xff09;&#xff0c;人大金仓设置大小字符不敏感 人大金仓工具介绍 数字库开发管理工具&#xff1a;链…

【PTE-day03 报错注入】

报错注入 1、报错注入 group by count2、报错注入 extractvalue3、报错注入updatexml1、报错注入 group by count http://124.222.124.9:8888/Less-5/?id=-1 union select 1,count(*),concat((select database()),ceil(rand(0)*2)) as a from information_schema.tables grou…

思维模型 飞轮效应

本系列文章 主要是 分享 思维模型&#xff0c;涉及各个领域&#xff0c;重在提升认知。万事开头难&#xff0c;坚持就不难。 1 飞轮效应的应用 1.1使用飞轮效应的亚马逊 亚马逊的创始人杰夫贝索斯&#xff08;Jeff Bezos&#xff09;提出了“飞轮理论”&#xff0c;即通过不断…

jira Licenses更新步骤

有时候我们不想花钱使用jira,那么只有通过一个月以续期的方式来使用jira。下面提供下自己实测的方式 1、获取License Key 登录地址&#xff1a;https://my.atlassian.com 登录自己的Google账号&#xff0c;进入到下面账号&#xff0c;然后点击“New Trial License” product上…