开发/数据库

  |  手机版

收藏网站

投稿QQ:1745232315

IT专家网,汇聚专业声音 解析IT潮流 IT专家网,汇聚专业声音 解析IT潮流

网络

专家视点在现场环球瞭望
IT专家网 > 开发/数据库

关于数据库的前世今生 你了解吗?

作者:51CTO出处:论坛2018-09-11 16:40

  天天都在说数据库,但是,关于数据库的前世今生,你了解多少呢?今天,小编就为大家介绍一下关于数据库的历史。

  数据库是什么?

  大数据背后的一块块基石,则是数据库。

  数据库背后有好多故事,你可能不知道数据库,但是最近火的不行区块链,其实就是去中心化的分布式数据库。

  说完高大上的区块链,我们开始回溯数据库的发展吧

  文件&文件系统

  内存篮子

  最开始是计算机的出现,那时候没有硬盘,只有内存,数据不会进行存储,一般只用于科技计算,计算完输出结果后,程序就撤出内存了。

  后来技术发展,才有了硬盘、文件,在文件的基础上有了文件系统。文件系统可以满足数据存放和查找的需求。

  数据库的诞生

  文件系统作为数据库用了一段时间,当数据越来越多、规模越来越大后,数据查找特别麻烦。数据很容易重复(冗余)、占用存储空间多,数据结构化被迫推进。

  文件系统 vs 数据库

  文件系统和数据库的主要区别是? 简单举个例子,如上图所示。我们理解的数据和文件比较接近,例如文件1存放了玩具狗的数据,文件2存放了系铃铛的狗的数据。但其实玩具狗、玩具猫都是玩具,铃铛和玩具是可以拆分的。数据库的结构化(玩具库架子),让数据不会重复,玩具狗可以系铃铛,也可以不系。

  关系型数据库

  数据库出现后,慢慢演化出关系型数据库,之后又演化成非关系型数据库。我们首先介绍关系型数据库,什么是关系型数据库?

  关系数据就是指数据之间是有关系的。像是上图中系铃铛的玩具狗,铃铛是属于(系在)玩具狗,那我把铃铛取下来放到玩具猫上可以么?可以,那关系就变了,铃铛在数据库里的记录变更为属于猫。 其实数据库有个(存储的关系规范)数据库范式,第一范式到到第五范式。玩具狗与铃铛的拆分只是满足了第一范式,越往下数据的压缩率就越高,相应的存储也会变慢(需要关系范式验证)。

  结构化、共享访问的

  数据库的除了是结构化存储、它还可以共享给程序访问。文件系统时候,程序a读取文件1(小明的玩具),数据库时代,所有程序只要有权限就可以访问所有数据库里的数据(大家的玩具共享)。

  数据表长什么样?

  数据:例如玩具狗,他的各个字段:玩具名称、是否有耳朵、多少条腿等等,玩具狗的所有信息算是一条数据。

  数据表:玩具表就像一个excel表格,里面存了所有玩具的数据。

  玩具表

  铃铛表

  nosql

  随着经济发展,村里小孩越来越多了(云计算的到来),玩具厂每年生产的玩具也多了。一个玩具库(单机)不够用了,所以要多建立几个公共玩具库,玩具存放在不同的玩具库(多台计算机)。为了满足数据爆发式增长的存储需求,数据库部署在多台计算机上,也就是分布式数据库,但是分布式和单机不同的地方在于关系严格性上,分布式要求数据关系不那么严格(半结构化),主要是扩容和大数据存储,所以Nosql(not only sql)就诞生了。

  常见的Nosql有mongodb、hbase等,这里以mongodb为例。

  数据库连接

  var mongoose = require('mongoose')

  var db = 'mongodb://127.0.0.1/test';

  mongoose.connect(db, {

  server: { poolSize: 20 }

  },function(err){

  if (err) {

  console.log('connect to %s error:', db, err.message)

  process.exit(1)

  }else {

  console.log('connected')

  }

  })

  增删改查

  var UserSchema=newSchema({

  name: { type: String},

  phone: { type: Number}

  })

  var User = mongoose.model('User', UserSchema);

  //create 增加

  var user1 = new User;

  user1.name = 'jack1';

  user1.phone = 123456;

  user1.save(function (err) {

  if (err) {

  console.log(err.message)

  }

  })

  var user2 =newUser;

  user2.name = 'jack2';

  user2.phone = 234567;

  user2.save(function (err) {

  if (err) {

  console.log(err.message)

  }

  })

  //查找

  User.find(function(err,users){

  if (err) {

  return console.error(err)

  }else {

  console.log(users)

  }

  })

  分布式vs集群

  很多人可能会混淆分布式和集群的概念,分布式更像是业务拆分到不同服务器上,集群则是多台服务器一起处理同个业务。比较复杂,后续再解释。

  数据库图鉴

  目前市面上常见的数据库品牌,主要有关系型和非关系型数据库两种。计算机世界发展快速,数据库就像一个大生态,愈发多态化多样化。

  数据库图鉴

      综上所述,关于数据库的发展历史,你都了解了吗?

相关文章

关键词:数据库,数据库发展,数据库历史

责任编辑:林音子

网警备案