1. 聚能聊>
  2. 话题详情

天呐,世界上为什么会有这么多种数据库?

在一开始接触计算机的时候,我特别不能理解,为什么世界上会有数据库这样的东西。因为有个东西叫excel,它和数据库一样是一个表格,我只要把数据库放上去,在里面搜索一个数据比数据库还快,所以我在想为什么要有数据库。

大学的时候开始学习关系型数据库。仅关系型数据库就有 DRDS、Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL等等等等。

随着web 2.0 的兴起,关系型数据库渐渐表现的力不从心,而NoSQL 顺势而生、迅猛发展。 蓝鹅,光 NoSQL 数据库就有四大类,包括HBase、Redis、Cassandra、 CouchDB 、MongoDb、Infinite Graph 、InfoGrid 、Riak 等等等等。

天呐,为什么这个世界上会有这么多种数据库嘞?

1468907335253

困惑还远远不止以上这些。

近期,开始接触时序数据库。时序数据这个领域是一个比较专的领域,但同时它的范围又很广,因为我们平时遇到的数据里头有相当大的一部分都是时序数据,但是它又相对来说比较专,因为它不像我们一般的数据库什么都可以做,所以时序数据这个领域还是蛮特别的。

说到时序数据库,那也不止一种啊,InfluxDB、Graphite、OpenTSDB、Riak TS、 Druid 等等等等。

一起来讨论讨论吧,

1. 世界上为什么会有数据库?

2. 为啥世界上又会有那么多种的数据库呢?

3. 作为如此优秀滴程序猿GG,在数据库的使用中,你遇到过哪些坑?

4. 在做一个数据库技术选型的时候,你会考虑哪些方面呢?

———-----

下面,造福社会、造福人类、造福程序猿的福利来啦~

———-----

时序数据库的选型问题也是让人头疼呢?(对,就是那么生硬的转折)我们应该从哪些方面去考虑呢?写性能?数据分析的能力?存储压缩比?性价比?

在阿里巴巴内部,就是在时序数据处理和存储所面临的问题以及解决问题的过程中,以及不断应对挑战,就慢慢形成了高性能时序数据库 HiTSDB 。他不是一朝一夕的结果,而是经过阿里内部多年的孵化,诞生出来的。

今天,HiTSDB 在阿里云上首次正式发布,启动公测,HiTSDB 支持每秒 1000 万的时序数据点写入,还有比如高性能数据查询,时序数据库领域的”插值“、”降精度“,聚合运算啦,数据支持高效的压缩比啦,对他来说统统都是小case。

公测名额有限,需要的亲速来申~

猛戳下面的链接,了解HiTSDB的详情后,再去申请公测哦!

高并发写入、低成本存储,HiTSDB邀您抢先公测,名额有限,速来!

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    优酷VIP季卡 x 2

  • 奖品二

    云栖定制电脑包 x 3

  • 奖品三

    免费套餐邀请码 x 2

178个回答

7

巴洛克上校 已获得优酷VIP季卡 复制链接去分享

  1. 世界上为什么会有数据库?
    从古至今就有,因为有数据啊,有数据就需要有东西存放啊,存放多了要是找起来麻烦啊所以就有了贴标签,分类啊编号啊等等,这不就是数据库吗。只是在三维空间里的数据库,人们通过智慧把他应用到了计算机里而已。
  2. 为啥世界上又会有那么多种的数据库呢?
    引用一段话

    Oracle: 我们需要企业级数据库。

      MySQL: Oracle 不开源。

  PostgreSQL: MySQL 的功能不够多。
  SQLite: 你可以把我嵌入到任何地方。这样,4 种数据库够大家用了。
  MongoDB: 为什么我们要用 join 和模式(schema)?
  CouchDB: 为什么我们要有集合(collection)?
  Redis: 为什么我们要面向文档?
  Memcached: 为什么我们要用硬盘?
  Neo4j: SQL 缺乏足够的关系。
  Bigtable: MongoDB 的对 web 的扩展性不管好。
  Hbase: Bigtable 不开源。
  Cassandra: Bigtable 不是 Facebook 开发的。
  Riak: Cassandra 不是用 Erlang 语言编写的。
  OrientDB: 让我们把所有东西都放到同一个数据库里!

 <font size="+1" color="red"> HiTSDB :你们都不行我数据高效读写  ,多种数据计算能力,况且现在免费公测还不赶紧的,

完美解决这个问题!

  1. 作为如此优秀滴程序猿GG,在数据库的使用中,你遇到过哪些坑?
    前端涉及不到数据库,只是上学学过些基础的,所以没遇到过坑
  2. 在做一个数据库技术选型的时候,你会考虑哪些方面呢?
    当然是按需求选择了,高安全性,高稳定性,高性价比
 
星屋易购 回复

问题2的回答666(⁎⁍̴̛ᴗ⁍̴̛⁎)

巴洛克上校 回复

@youirong 《十里春风不如你》

raymond_table 回复

表格存储:BigTable好啊,可是G家不给外人用;那你们怎么不用HBase?因为只会C++啊啊

评论
0

天&amp;mdash;空 已获得云栖定制电脑包 复制链接去分享

因为:
Oracle: 是一个面对企业开放的数据库。
MySQL: MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。
PostgreSQL: MySQL的功能不够多,而且PostgreSQL是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如MySQL和Firebird),和专有系统(比如Oracle、Sybase、IBM的DB2和MicrosoftSQLServer)之外的另一种选择。。
SQLite: 是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 其特点是高度便携、使用方便、结构紧凑、高效、可靠。 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下 - 只要确保SQLite的二进制文件存在即可开始创建、连接和使用数据库
MongoDB:是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
CouchDB: 是用Erlang开发的面向文档的数据库系统,CouchDB一种半结构化面向文档的分布式,高容错的数据库系统,其提供RESTFul HTTP/JSON接口,所以它一直倍受用户的青睐。
Redis: 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Memcached:是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
Neo4j: SQL缺乏足够的关系。
Bigtable: Bigtable将 存储的数据都视为字符串,但是Bigtable本身不去解析这些字符串,客户程序通常会在把各种结构化或者半结构化的数据 串行化到这些字符串里。通过仔细选择数据的模式,客户可以控制数据的位置相关性。最后,可以通过BigTable的模式参数来控制数据是存放在内存中还是硬盘上。
Hbase: Bigtable不开源。
Cassandra:是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与AmazonDynamo的完全分布式的架构于一身。Cassandra是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与AmazonDynamo的完全分布式的架构于一身。
Riak: Riak是以 Erlang 编写的一个高度可扩展的分布式数据存储,Riak的实现是基于Amazon的Dynamo论文,Riak的设计目标之一就是高可用。Riak支持多节点构建的系统,每次读写请求不需要集群内所有节点参与也能胜任。
OrientDB:OrientDB的主要特点是支持多模型对象,即它支持不同的模型,如文档,图形,键/值和真实对象。 它包含一个单独的API来支持所有这四个模型。

天&amp;mdash;空 回复

youirong给个邀请码吧~(渴望)

中间件雁溪 回复

一点就给错了。。。。这系统还不能撤回。我面壁思过去了

天&amp;mdash;空 回复

。。

笨笨的粽子妞 回复

你是要免费套餐邀请码吗?我有……

天&amp;mdash;空 回复

不了Thanks♪(・ω・)ノ

hihihihihi 回复

到产品页面申请试用,然后帐号留下,然后坐等审批,一般不超过一天

评论
0

浮生递归 已获得优酷VIP季卡 复制链接去分享

能不能来张季卡,哈哈,先谢谢啦

  1. 世界上为什么会有数据库?
    因为有数据,数据多了,自然就成了库。
  2. 为啥世界上又会有那么多种的数据库呢?
    因为人有高矮胖瘦,数据也是如此。不同的数据处理,自然需要不同的数据库。当然,从产品角度来看,数据库也只是一种产品。是产品就会更新换代。久而久之,就N多数据库了。重点是,将来会更多。/苦瓜脸
  3. 作为如此优秀滴程序猿GG,在数据库的使用中,你遇到过哪些坑?
    ACCESS数据库,有个压缩功能。有时候当数据库文件很大的时候,压缩下,会变得小很多。使用上,感觉不出来有什么变化。既然有这么好用的功能,为什么不自动压缩呢,还要等她大了,再手动处理,多不人性化啊。要是用的人不知道这个功能,不就懵圈啦。

SQL数据库,设置特别多。有次SQL装好后,进行了一堆设置后,还是无法访问。最后找人帮忙,也是检查了一大圈,才发现有个协议没开。真是太不智能了。就不能一键安装,一键设置就能直接使用么。反正每次都是相同操作。

  1. 在做一个数据库技术选型的时候,你会考虑哪些方面呢?
    看项目需求和开发环境。比如SQL也不是必选。有时候项目很小,ACCESS就够了。成本和环境要求也低。甚至有时候TXT数据库也行。
中间件雁溪 回复

小仙女来啦~魔法棒一挥,就满足了你的小小心愿,哈哈哈哈哈哈

浮生递归 回复

巴拉巴拉小魔仙~变~朵蜜,炫光舞法,朵蜜天女,变身~谢谢题主~

评论
2

luneice 已获得免费套餐邀请码 复制链接去分享

数据是一种记录,数据库是这些记录的集合。似乎有人类以来就有数据库的影子了,只是那个时候数据量少没有意识到数据的分类。现在互联网发展迅速,许多记录需要保存,而且保存的形式又很多,因此就发明了许许多多的数据库。关系型的非关系型,有适合高并发的做大数据分析的等。总之,不同数据库的发明是各式各样需求推动的,没有需求发明它干嘛,还不如怪怪撸代码。

所以在选择数据库的时候也要看自己的需求喽,是普通的应用还是网站?是做数据挖掘和数据分析?根据不同的需求选择合适的数据库才是明智的,才能达到事半功倍的效果。

luneice 回复

心苦,根本用不了。作为一名大二学生,阿里云已经用了两年了……

评论
1

北方的郎 已获得云栖定制电脑包 复制链接去分享

1. 世界上为什么会有数据库?
在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段。
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和市场的发展,特别是二十世纪九十年代以后,数据管理不再仅仅是存储和管理数据,而转变成用户所需要的各种数据管理的方式。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在各个方面得到了广泛的应用。
2. 为啥世界上又会有那么多种的数据库呢?
因为用户需求不同,同时各个厂商也都有自己的利益以及技术特点。
3. 作为如此优秀滴程序猿GG,在数据库的使用中,你遇到过哪些坑?
其实在工作中数据库方面的大部分问题最后往往都是误操作,烂SQL比如缺乏索引,乱用游标等等。数据库系统本身的坑还真不多。
4. 在做一个数据库技术选型的时候,你会考虑哪些方面呢?
价格,性能,安全等因素。不过其实一个技术团队往往用一种数据库,一般不会轻易变的。

1

1569181547541214 已获得云栖定制电脑包 复制链接去分享

为什么要有数据库呢?在一本看过计算机教学书前言中指出
第一,excel 无法多人共享数据。保存在已连接网络的计算机中的文件,可以通过共享设定实现多个用户在线阅读或编辑。但是,当某个用户打开该文件的时候,其他用户就无法进行编辑了。如果是网上商城的话,当某个用户购买商品地时候,其他用户就无法购买了。
第二,excel无法提供操作大量数据所需的格式。瞬间从几十万或者上百万的数据中获取想要的数据,必须把数据保存为适当的格式。excel无法提供相应的数据格式。
第三,实现编写自动化需要编程技术能力。通过编写计算机程序可以实现数据读取和编辑自动化。
第四,无法应对突发事故。当文件被误删、硬盘故障无法读取的时候,可能会造成重要数据地丢失。同时数据还可能被他人简单的读取或窃用。

1

心之海子 已获得免费套餐邀请码 复制链接去分享

😁,希望能得到一个邀请码。
1.世界上为什么会有数据 库?
我觉得这是随着信息技术和市场的发展,必然出现的产物,因为在在信息化社会,充分有效地管理和利用各类信息资源,是进行科学研究和决策管理的前提条件。数据库技术是管理信息系统、办公自动化系统、决策支持系统等各类信息系统的核心部分,是进行科学研究和决策管理的重要技术手段,所以数据库的产生是必然的。

2.为啥会有那么多的数据库?
数据类型的多样化,要求 对 数据的数量结果 也必然是多样而不同的,针对种种不同,不同 的数据库应运而生了 。我 相信随着信息化,智能化 时代的到来,对数据的处理需求将再爆发出来,到时会有更多新型的数据库会 出现,你说呢 ?

3.在数据使用中会遇到那些坑?
我说说我在数据库事务中遇到的坑 吧!
a.乐观锁与可重复读
乐观锁其实在更大范围确保了可重复读的问题,如果你的事务隔离等级为可重复读,mysql的默认等级,你又使用了乐观锁的话,你一定要小心谨慎,不然很可能出错。举个很经典的例子,死循环。
public void update(String id){
DataVo vo=mapper.getById(id);
while(mapper.update(vo)==0){

    vo=mapper.getById(id)  

}
}
b.readonly是否为只读事务
从数据库的层面我们知道只读事务可以解决重复读的问题,并且防止该事务中的任何非查询操作。但是我们在数据库驱动中设置的readonly属性真的就是数据库层面的只读事务吗。
这个问题没有确切的答案,需要看具体的驱动实现。比如:在老版本的oralce驱动中确实是设置了只读事务,而在新驱动中则只设置连接为只读。而且甚至在事务中存在非查询操作也不会报错。
c.事务与缓存可重复读
隔离等级为Repeatable read的事务可以重复读取同一数据,然而同时使用缓存的时候要格外小心,因为缓存很可能会破坏可重复读。

4.在做一个数据技术选型的时候,会考虑那些方面?
我觉得首先需要对数据的特点做出分析跟判断,你想要对数据处理后得到什么样的结果,以结果为导向,以安全,效率为条件 ,从这几个方面去考虑选择那些数据技术。

0

merrysos 复制链接去分享

这个是需要怎么来参与呢?

中间件雁溪 回复

如果您要申请HiTSDB的公测,那直接查看 https://www.aliyun.com/aliware/hotproducts/hitsdbbeta?spm=5176.8217306.rtdmain.4.ZQMYQL 这里即可。如果想领取礼品呢,给个高质量的回答,本姑娘来打赏:)

hihihihihi 回复

给点32个赞!!!!

评论
1

独步武林 复制链接去分享

看大拿头像先得夸句漂亮!我就是冲你来的请导师转身赐予我包包吧。

兽。 回复

哈哈

评论
0

ald2000 复制链接去分享

为什么每次一个知识都能变成广告,小编妹子留下微信晚上约

中间件雁溪 回复

哈哈哈哈哈,论题给大家讨论,广告也留给有需要的人,一箭双雕啊~~~

评论
0

1089601681934224 复制链接去分享

我的步伐都跟不上现在的数据库了,好多都不懂

中间件雁溪 回复

学无止境:)

评论
0

他城之途 复制链接去分享

这波广告打的我猝不及防。

中间件雁溪 回复

谢谢夸奖,哈哈哈哈哈

评论
0

mushuai5211 复制链接去分享

然尔怎么领取

中间件雁溪 回复

礼品需要参与回答,优质的用户将会得到礼品哦~

评论
0

股神在线 复制链接去分享

怎么领取勒?

中间件雁溪 回复

礼品需要参与回答,优质的用户将会得到礼品哦~

评论
1

笨笨的粽子妞 复制链接去分享

未来是数据时代,大数据时代,数据量的现实摆在眼前,数据需求的不同摆在面前,在没有一种数据库能够强大到应对所有问题之前,需要不同的数据库去面对不同问题不同场景不同需求进行对应的存储。

在使用数据库是经常用到的问题是和队友命名不一致,每次在自己用缩写的时候对方表示看不懂,在自己用“高逼格”的英文单词命名法的时候,对方用拼音……心好累……

选择数据库的时候会考虑相应业务的数据量需求以及未来的数据量增长趋势,数据存储的安全性能,以及与业务架构和编程语言的衔接问题。

1

彗星の尘埃 复制链接去分享

数据库的存在是为了将数据进行统一管理,杂乱无序的数据进行分类和排序。

0

1965380177137590 复制链接去分享

嗯嗯

0

1251802832724241 复制链接去分享

0

1754602716587742 复制链接去分享

因为有这些数据才会有网络

0

兽。 复制链接去分享

有什么用途?

9