铃铛表
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 集群
很多人可能会混淆分布式和集群的概念, 分布式更像是业务拆分到不同服务器上, 集群则是多台服务器一起处理同个业务. 比较复杂, 后续再解释.
数据库图鉴
目前市面上常见的数据库品牌, 主要有关系型和非关系型数据库两种. 计算机世界发展快速, 数据库就像一个大生态, 愈发多态化多样化.
关系型: Oracle,mysql,Postgresql nosql:mongodb,hbase
数据库图鉴
区块链: 去中心化的分布式数据库
回到区块链, 大数据时代无隐私, 区块链的去中心化能否保护隐私?
首先得介绍下去中心化, 那么中心化又是什么? 中心化就是我们常见的通讯模型, 客户端需要以服务器获取数据(服务端和数据库交互), 上次我们也讲过 输入 url 后发生的事情, 如果两个客户端之间互相知道彼此的地址, 他们可以直接建立通讯. p2p 技术常用于资源共享, 音视频等.
中心化 vs 去中心化
区块链本质上是一种去中心化的分布式数据库, 该数据库是由一串使用密码学方法产生的数据区块按时间顺序有序连接而成, 每个数据块中包含了一段时间内的全网产生的无法篡改的数据记录信息.
区块链技术让我们的隐私得到了一定程度上的保护. 关于网络通讯, 区块链后续继续展开.
失控
最后引用下凯文 * 凯里在失控里的一段话:
没有强制性的中心控制, 次级单位具有资质的性质: 次级单位之间批次高度连接, 点对点间的影响通过网络形成了非线性因果关系.
来源: http://database.51cto.com/art/201809/582911.htm