3.Nodejs入门-----数据库

来源:互联网 发布:分贝测试软件 编辑:程序博客网 时间:2024/05/18 00:11

一.传统数据库技术回顾

数据库就是存储数据的,那么存储数据就用txt就行了啊,为什么要有数据库?

 

理由之1: 数据库有行、列的概念,数据有关系,数据不是散的。

老牌数据库,比如MySQL、SQL Server、Oracle、Access。这些数据库,我们管他们叫做结构型数据库。为什么?因为每个表中,都有明确的字段,每行记录,都有这些字段。不能有的行有,有的行没有。

理由二:数据库能够提供非常方便的接口,让增删改查操作变得简单

我们的老牌数据库,都无一例外的使用SQL语言,管理数据库。

SQL就是structure query language。

比如,查询所有女生: SELECT * FROM step1 WHERE xingbie = '女';

再比如,查询所有女生,并且年龄20~24之间,且在北京:

1       SELECT * FROM step1 WHERE xingbie = '女' AND nianling < 24 AND nianling >= 20 AND xianzaisuozaidi = '北京';

 

理由之三:数据库不能自己玩儿,要给向PHP、.net、jsp等语言提供接口。

用php这些语言,能够向数据库之中增删改查。

 


老牌数据库,都是结构型数据库,现在出了什么问题?

比如,我们现在想往一个已经有1000条数据的数据库中增加一个字段“高中信息”。

之前已经存在的数据,实际上不需要增加这个字段。因为这些用户已经填写完毕表单了,不需要再手机高中信息了。我们的意图就是在今后注册的用户,需要填写高中信息。但是,我们刚才说了,所谓的字段,是表的一个结构。所有的行都必须拥有,不能有的行有这个字段,有的行没有这个字段。

可想而知,大数据时代,数据库中有100万条数据都算少的。我们如果要动字段,时间太长。

所以,字段这个东西,太不灵活。

 

数据不灵活。一个字段,需要是同样类型的数据。不能一行记录是文本,一行记录是数字。

 

非结构型数据库NoSQL应运而生。

NoSQL是个怪胎,无法挑战老牌数据库,但是在大数据时代有自己的意义。

 

二.NoSQL


非结构型数据库。没有行、列的概念。用JSON来存储数据。

集合就相当于“表”,文档就相当于“行”。

 

文档就是JSON,上下文语境中,也是JavaScript范畴,所以我们的数据库也是JS范畴的东西,JS全栈。

因此,我们总结NoSQL数据库在以下的这几种情况下比较适用:1、数据模型比较简单;2、需要灵活性更强的IT系统;3、对数据库性能要求较高;4、不需要高度的数据一致性;5、对于给定key,比较容易映射复杂值的环境。


我们看,有些系统,特别需要筛选。比如,筛选出所有女生大于20岁的。那么SQL型数据库,非常擅长!因为它有行、列的概念。

但是,有些系统,真的不需要进行那么多的筛选,比如站内信。站内信只需要存储就好了。不需要筛选。那么NoSQL的。

 

NoSQL不是银弹,没有资格挑战老牌数据库,还是特定情况下,是适合的。

 


0 0
原创粉丝点击