当前位置: 首页 > 科技观察

大数据时代人们还有隐私吗?带你看看数据库的前世今生_0

时间:2023-03-15 09:24:39 科技观察

大数据时代肖奈:表哥,为什么浏览器好像无所不知?刚刚搜了一下感冒怎么治,现在xx医院的广告就跳出来了。达人:当xx公司拥有大量的数据,然后根据这些数据进行精准营销(广告),他们每年可以赚取大量的广告费。达人:虽然广告很恶心,但是数据推荐还是很有必要的,尤其是在信息爆炸的时代,让信息更准确的出现在你的手中。大数据时代:人们还需要隐私吗?(没有授权和使用)用个人信息支付有优惠,然后出售信息。肖奈:表哥,公司最近好像在招DBA(数据库管理员)。工程师不会管理数据库吗?数据库和后端有什么区别?什么是数据库?达人:看来你们公司是大公司,一般小公司是没有dba职位的。其实我们常说的后端工程师也是设计和管理数据库的。但是如果数据达到一定程度,就需要专业的dba来进行数据库性能调优,安全稳定。什么是数据库?大数据背后的基石是数据库。数据库背后有很多故事。数据库大家可能不了解,但是最近火起来的区块链其实就是一个去中心化的分布式数据库。说完高端区块链,我们开始回溯数据库的发展历程。文件&文件系统内存筐最初是计算机的出现。那时候没有硬盘,只有内存,不会存储数据。一般只用于科技计算。计算输出后,程序从内存中清空。后来随着技术的发展,有了硬盘,有了文件,有了基于文件的文件系统。文件系统可以满足数据存储和查找的需要。数据库的诞生文件系统被用作数据库已有一段时间了。当数据越来越大的时候,数据查找就特别麻烦。数据容易重复(冗余),占用大量存储空间,数据结构被迫提前。文件系统与数据库文件系统和数据库之间的主要区别是什么?简单举个例子,如上图所示。我们理解的数据是比较接近文件的。例如,文件1存储了玩具狗的数据,文件2存储了带铃铛的狗的数据。但其实玩具狗和玩具猫都是玩具,铃铛和玩具是可以分开的。数据库(玩具库架)结构防止数据重复,玩具狗可以系铃铛也可以不系。关系型数据库数据库出现后,慢慢演化为关系型数据库,再演化为非关系型数据库。我们首先介绍关系数据库。什么是关系数据库?关系数据是指数据之间存在关系。像上图带铃铛的玩具狗,铃铛是属于(绑在)玩具狗身上的,那我可以把铃铛摘下来放在玩具猫身上吗?是的,那么关系就会发生变化,数据库中铃铛的记录就会变成属于猫。事实上,数据库有一个(存储关系规范)数据库范式,从第一范式到第五范式。玩具狗和铃铛的拆分只满足第一种范式,数据压缩率越高,对应的存储会越慢(需要关系范式验证)。除了结构化存储之外,还可以共享结构化的共享访问数据库以供程序访问。在文件系统中,程序a读取文件1(小明的玩具)。数据库时代,所有程序只要有权限就可以访问所有数据库中的数据(大家的玩具是共享的)。数据表是什么样的数据:比如一只玩具狗,它的各个字段:玩具的名字,有没有耳朵,有多少条腿等等,玩具狗的所有信息都考虑进去了一条数据。数据表:玩具表就像一张excel表,里面存放着所有玩具的数据。Toywatchbellwatchnosql随着经济的发展,村里的孩子越来越多(随着云计算的出现),玩具厂每年生产的玩具也越来越多。一个玩具库(单台电脑)是不够的,需要建立几个公共玩具库,将玩具存放在不同的玩具库(多台电脑)中。为了满足数据爆炸式增长的存储需求,将数据库部署在多台计算机上,即分布式数据库,但分布式和单机的区别在于关系的严格程度,而分布式对数据关系的要求不那么严格(半结构化),主要是为了扩容和大数据存储,所以诞生了Nosql(不仅仅是sql)。常见的Nosql有mongodb、hbase等,这里以mongodb为例。数据库连接varmongoose=require('mongoose')vardb='mongodb://127.0.0.1/test';mongoose.connect(db,{server:{poolSize:20}},function(err){if(err){console.log('connectto%serror:',db,err.message)process.exit(1)}else{console.log('connected')}})CRUDUserSchema=newSchema({name:{type:String},phone:{type:Number}})varUser=mongoose.model('User',UserSchema);//创建添加varuser1=newUser;user1.name='jack1';user1.phone=123456;user1.save(function(err){if(err){console.log(err.message)}})varuser2=newUser;user2.name='jack2';user2.phone=234567;user2.save(function(err){if(err){console.log(err.message)}})//查找User.find(function(err,users){if(err){returnconsole.error(err)}else{console.log(users)}})DistributedvsCluster很多人可能会混淆分布式和集群的概念。分布式更像是把业务拆分到不同的服务器上,而集群则是多台服务器一起处理同一个业务。比较复杂,后面会解释。数据库图鉴目前市面上常见的数据库品牌主要有关系型和非关系型两种。计算机世界正在飞速发展,数据库就像一个大生态系统,变得更加多态和多样化。Relational:Oracle,mysql,Postgresqlnosql:mongodb,hbase数据库图鉴blockchain:去中心化的分布式数据库回到区块链,大数据时代没有隐私,区块链的去中心化能保护隐私吗?首先我们要介绍一下中心化,那么什么是中心化呢?中心化是我们常见的通信模型。客户端需要从服务器获取数据(服务器与数据库交互)。上次我们也讲了输入url后的情况,如果两个client知道对方的地址,就可以直接建立通信。P2P技术常用于资源共享、音视频等。CentralizedvsDecentralizedBlockchain本质上是一个去中心化的分布式数据库。该数据库由一系列按时间顺序连接的密码方法生成的数据块组成。每个数据块包含了一段时间内全网产生的不可篡改的数据记录信息。区块链技术可以让我们的隐私在一定程度上得到保护。关于网络通信和区块链,后续还会继续。失控最后,引用《失控》中KevinCarey的一段话:没有强制的中央控制,子单元具有资格性质:子单元之间的批次高度关联,点与点之间的影响点对点是通过网络形成的非线性因果关系。随着计算机的快速发展,数据库的不断演进,大数据的精准化和智能化,用户也需要隐私。区块链这种去中心化和自组织的形式会成为新趋势吗?