时间:2022-10-10 18:05:27 | 浏览:402
数据库的发展基本上也是伴随着计算机技术经历了40年的历史,从最初的文件系统上的文件,到有结构的层次和网状数据库,一直到今天被广泛使用的关系型数据库。随着互联网和物联网行业的兴起,数据量飞速增长,对大数据的采集、存储和应用是每个数据库必备的技能。现在大多数应用都是数据存储密集型,而不是计算密集型。
众所周知,文明的发展离不开信息的积累,而任何东西的积累离不开存储。因此,信息存储是文明发展的重要环节,从某种意义上讲,甚至可以说是人类迈入文明社会的标志之一。在历史上,人类曾经创造过很多信息存储的方法。我们一起来看下存储发展历程。
古老的东方开始使用甲骨文记录着自己的数据。
到了东汉,人们开始用纸张记录数据。纸的出现使得信息的记录、传播和继承,有了革命性的进步,促进了人类文化的传播。同时纸也为后来打孔卡的出现奠定了基础。
到了近代有了打孔卡、磁带、软磁盘(记得小时候初中一年级见到的电脑好像是这种存储)、硬盘。以前大学上计算机课,总是听老师讲以前的U盘都是几M的,现在的U盘都有上百G的,而且很便宜。
存储现在发展的已经很快,现在存储数据很廉价。而数据库的必备功能就是存储数据。
传统的关系型数据库大家都接触的比较多,比如常见的Oracle、MySQL、PostgreSQL。数据库中每个属性都有特性的类型来定义,可以把数据想象成一个个表格存储着。和我们记录数据的认知非常相似,一行行记录着信息。
例如学生表里一条记录,就是一个学生他的属性描述,包括年龄、性别、出生年月日、所属班级等。但班级也有它的更详细的属性,那就可以在学生表里增加一个关系字段来表示该学生所属的班级索引,通过索引连接到班级表,可以查到这个班级的年级、班主任、学生人数等信息。
随着移动互联网时代的到来,需要存储的数据量越来越大,对机器的扩展要求成为了数据库的必备技能,这也是传统数据库的弱点,比如Oracle在做集群是很有限的。NoSQL对于数据库的扩展和高可用是它的强项。
那为什么NoSQL能够有可扩展和高可用呢?
我们都知道CAP理论,CAP理论指的是一个分布式系统最多只能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)这三项中的两项。
分布式系统的一致性通常称为ACID,即原子性、一致性、隔离性、永久性,传统的关系型数据库都能做到。简单的你可以理解一致性为数据写入数据库中,后续读取是否能立刻读取到更新的最新值。
另外,我们可以看到大多数NoSQL数据库都是“弱一致性”的,强调的是“最终一致性”,可以理解为如果你停止向数据库写入数据,并等待一段不确定的时间,那么最终所有的读取请求都会返回相同的值。换句话说,不一致性是暂时的,最终会解决。通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上改观。显然,NoSQL大都是用一致性来换取了可用性和分区容错性。那么牺牲一致性到底值不值得呢?举个例子,淘宝双十一当天,对于商品的评论和访问数可能不需要那么在意,首要是要保证服务器的高可用,崩了什么都白搭了!
在实际的应用中,存在一种场景,我们要求数据库必须保证ACID和高可用性,于是一批新型的数据库诞生了,比如蚂蚁金服的OcenBase和最近的“新晋网红”数据库TiDB。他们看似近乎完美的支持的分布式一致性和高可用性,支持标准SQL,对传统的关系型数据库提供迁移兼容方案。
还有一个数据库可以关注下,Vertica。很多人把Vertica划分到传统关系型数据库中,但是他与传统型关系库又有不同:
Vertica并不是一个广泛应用的数据库,我们上面提到了CAP理论,提到所有数据库不能同时满足“三性”,但是对于特性的应用场景设计,就能很大程度上在“三性”上取得平衡。
Vertica的原型称为“C-Store”,C-Store最早是2005年学术界的一个项目,作者是2015年图灵奖获得者 Mike Stonebraker,同时也是Vertica的创办者。
论文总结一下三点:
C-Store 应该是第一个将列存技术在实际系统中实现出来的,比Google的BigTable要早(公众号回复“列存储”,可下载C-Store和BigTable论文)。
其实以前的一些经典理论还是很有道理的,比如CAP、比如Raft呀,各个数据库还都是“术业有专攻”,别老想着用一种数据库打天下。比如,核心系统的事务数据还是选择使用MySQL或者postgreSQL。分析性数据库还是选择Vertica或者Greenplum。
数据库 : 数据库(DataBase 简称 DB)就是信息的集合或者说数据库是由数据库管理系统管理的数据的集合。数据库管理系统 : 数据库管理系统(Database Management System 简称 DBMS)是一种操纵和管理数据库
数据库简介数据库:顾名思义,就是数据的仓库,它是长期存储在计算机内,有组织的、可共享的数据的集合。数据库管理系统(DBMS: 用来对数据进行存储、管理等操作的软件)数据库分类数据库通常分为:层次式数据库、网络式数据库和关系式数据库三种。而不
大家好,在讲数据库之前,我用了很长的时间,和大家分享了很多VBA方面的一些知识点,其中很多是我个人对VBA的理解。从这讲开始我们要在原先的基础上深入的讲解一些VBA的提高利用,就是我们要开始讲解的数据库。在《VBA与数据库利用》中我会讲解到
数据库是系统健康和用户行为健康的重要指标。数据库中的异常行为可能会引起应用程序中的问题。或者当应用程序中存在异常时,都可以使用数据库指标来帮助加快调试过程。先来认识下市面上常用的数据库:关系型数据库1. MySQL数据库2. Microso
1、为什么要使用数据库持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。持久化的大多数时候是将内存中的数据存储在数据库中,当然也可以存储在磁盘文件、XML数据文件中。方便管理数据(例如:快速的检索等)2、什么是数
人民网北京12月27日电 (记者乔雪峰)近日发布的《软件和信息技术服务业十四五规划》中,明确提出我国“十四五”时期要加快实施国家软件发展战略,不断提升软件产业创新活力,聚力攻坚基础软件,有效满足多层次、多样化市场需求,为构建以国内大循环为主
大家好,在上一讲中,讲了数据库的概念及表的概念,通过上讲的内容,我们大概了解了一些数据库的基本知识。其实,在我的日常生产中,数据库和我们也是息息相关的,当我们打电话、上网、去银行交易等等,都要访问不同的数据库,这些数据库各有自己的特点,但都
基础知识学习,面试必备,关注吧 骚年01 第一,什么是数据库?维基百科上是这样定义的:所谓“数据库”是以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。一个数据库由多个表空间(Tablespace)
基本概念数据(data):描述事物的符号记录称为数据。数据库(DataBase,DB):是长期存储在计算机内、有组织的、可共享的大量数据的集合,具有永久存储、有组织、可共享三个基本特点。数据库管理系统(DataBase Management
在数据分析的技能中,数据库与SQL会是性价比最高的技能之一。数据库是逻辑上的概念,它是一堆互相关联的数据,放在物理实体上,是一堆写在磁盘上的文件,文件中有数据。这些最基础的数据组成了表(table),我们把它想象成一张Excel的sheet
数据库的发展已走过近四十年,作为基础软件之一,数据库称得上是一个“古老”的领域。而随着新技术的涌现,这个传统的领域也正不断焕发出新的生机。如果说云时代的到来推动了数据库的变革,那么,与 Serverless 的结合,则再次为数据库的发展添了
数据库基本概念数据库是一个以某种有组织的方式存储的数据集合。数据库(database)是保存有组织的数据的容器。数据库管理系统(DBMS)是一种数据库软件,MySQL是一种DBMS,即它是一种数据库软件,作者使用的数据库管理系统是MySQL
1992年11月,Microsoft Access 1.0版本发布。同时,这也是Access数据库,第一次进入大家的视野。起初,Access的原名并不叫Access,而叫Cirrus。Ciruus开发于Visual Basic之前,当时的窗
概述数据库(Database)是存储与管理数据的软件系统,就像一个存入数据的物流仓库。在商业领域,信息就意味着商机,取得信息的一个非常重要的途径就是对数据进行分析处理,这就催生了各种专业的数据管理软件,数据库就是其中的一种。当然,数据库管理
(报告出品方/作者:中信证券,杨泽原、丁奇)报告综述:安全可控势在必行,数据库国产替代加速开展,以党政为代表的国产替代先行,并不断向金融、电信等领域拓展。同时,伴随云计算、大数据技术的快速发展, 云数据库、数据仓库、大数据分析等领域快速增长