前端最基础的就是HTML+CSS+Javascript。掌握这三项技术算是入门,但也只是入门而已。现在前端开发的定义远不止于此。前端小课堂(HTML/CSS/JS),本着提高技术水平,夯实基础知识的中心思想,开课(每周四)。有两种类型的数据库:关系数据库(RDBMS)和非关系数据库(NoSQL)。关系数据库:mysql、oracle、SQLserver非关系数据库:HBase、Redis、MongoDB、Couchbase、LevelDBNoSQLNoSQL(NoSQL=NotOnlySQL),指非关系数据库。是区别于传统关系型数据库的数据库管理系统的总称。为什么使用NoSQL?对于一些需要灵活结构的数据,关系型数据库的水平扩展能力不够,而NoSQL存储数据不需要固定的模式,无需冗余操作即可水平扩展。RDBMS与NoSQLRDBMS高度组织的结构化数据结构化查询语言(SQL)数据和关系存储在单独的表中。数据操作语言、数据定义语言严格一致性基本事务NoSQL不仅仅意味着SQL没有声明式查询语言没有预定义模式键值存储、列存储、文档存储、图形数据库最终一致性,而不是ACID属性非结构化和不可预测的数据CAP定理高性能、高可用和可扩展性ACID规则(关系型数据库)事务是英文的transactions,与现实世界中的事务非常相似。它有以下四个特点:1.A(Atomicity)原子性很容易理解。也就是说,事务中的所有操作要么完成,要么不执行。事务成功的条件是事务中的所有操作都成功,只要有一个操作失败,则整个事务失败,需要回滚。例如银行转账,从A账户转100元到B账户,分为两步:1)从A账户取出100元;2)向B账户存入100元。这两个步骤必须一起完成,或者不一起完成。如果只完成了第一步,第二步失败了,钱就莫名减少了100元。2、C(Consistency)一致性一致性也比较好理解,就是说数据库必须一直处于一致的状态,事务的运行不会改变数据库原有的一致性约束。比如现有的完整性约束a+b=10,如果一个事务改变了a,那么b必须改变,使得事务结束后仍然满足a+b=10,否则事务失败。3.I(Isolation)Independence所谓独立性,就是并发事务不会互相影响。如果一个事务要访问的数据正在被另一个事务修改,只要另一个事务没有提交,它访问的数据就不受未提交事务的影响。比如有一笔交易,要从A账户转100元到B账户,如果交易没有完成,此时如果B查看他的账户,是看不到新增的100元的。4、D(Durability)持久化是指事务一旦提交,其所做的修改将永久保存在数据库中,即使宕机也不会丢失。CAP定理(CAPtheorem)在计算机科学中,CAP定理(CAPtheorem),又称布鲁尔定理(Brewer'stheorem),它指出对于一个分布式计算系统,不可能同时满足以下三点:一致性(所有节点同时拥有相同的数据)可用性(保证无论成功或失败,每个请求都有响应)分区容忍性(系统中任何信息的丢失或失败都不会影响系统的继续运行)CAP理论的核心是:分布式系统不能同时满足一致性、可用性和分区容错三个需求,最多只能同时满足两个需求。因此,根据CAP原则,NoSQL数据库分为三类满足CA原则、CP原则和AP原则:CA-单点集群,满足一致性和可用性的系统,通常不是很强大在可扩展性方面。CP-满足一致性和分区容错性的系统,通常性能不是特别高。AP——满足可用性和分区容错性的系统,一般对一致性的要求可能较低。RedisRedis是一个用ANSIC语言编写的开源日志型Key-Value数据库,支持网络、内存和持久化,并提供多种语言的API。开发工作目前由VMware托管。Redis常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash/Map)、列表(list)、集合(sets)和有序集合(sortedsets)五种类型,操作非常方便。比如你做的是好友系统,查看好友关系,如果使用其他的key-value系统,你必须要把对应的好友拼接成一个字符串,然后在提取好友的时候解析值,而redis比较简单,它直接支持列表的存储(使用双向链表或压缩链表)。varredis=require("redis"),client=redis.createClient();client.on("error",function(err){console.log("Error"+err);});client.set("stringkey","stringval",redis.print);client.hset("hashkey","hashtest1","somevalue",redis.print);client.hset(["hashkey","hashtest2","一些其他值"],redis.print);client.hkeys("hashkey",function(err,replies){console.log(replies.length+"replies:");replies.forEach(function(回复,我){console.log(""+i+":"+reply);});client.quit();});属于CP类型MongoDBMongoDB是一个高性能、开源、无模式的文档型数据库,开发语言为C++。它可以在许多场景中用作传统关系数据库或键/值存储的替代方案。在MongoDB中,文档是对数据的抽象,它的表示就是我们常说的BSON_(BinaryJSON)_。BSON是一种轻量级的二进制数据格式。MongoDB可以使用BSON并将BSON作为数据存储存储在磁盘上。BSON是为效率而设计的,它只需要占用很少的空间,而且它的编码和解码都非常快。即使在最坏的情况下,BSON格式的存储效率也比最好情况下的JSON格式高。对于前端开发者来说,一个“文档”就相当于一个对象。varmongodb=require('mongodb');varmongodbServer=newmongodb.Server('localhost',27017,{auto_reconnect:true,poolSize:10});vardb=newmongodb.Db('mydb',mongodbServer);/*打开数据库*/db.open(function(){/*选择'contact'集合*/db.collection('contact',function(err,collection){/*插入数据*/collection.insert({name:'FredChien',email:'cfsghost@gmail.com',tel:['0926xxx5xx','0912xx11xx']},function(err,data){if(data){console.log('成功插入');}else{console.log('FailedtoInsert');}});/*查询*/collection.find({name:'FredChien'},function(err,data){/*找到这个人*/if(data){console.log('Name:'+data.name+',email:'+data.email);}else{console.log('找不到');}});});});MongoDB比较灵活,可以设置为强一致_(CP类型)_或最终一致_(AP类型)_但它默认是CP类型微信公众号:前端linong参考前端培训目录,前端训练规划,前端训练计划https://www.runoob.com/mongodb/nosql.htmlhttps://www.cnblogs.com/zgblog/p/5488735。网页格式
