关于数据库
什么是数据库
所谓“数据库”是以一定方式储存在一起、能与多个用户共享、与应用程序彼此独立的数据集合,是为了管理数据而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。
常用的数据库有很多,例如:MariaDB、SQLite、mongoDB、redis、CouchDB、MySQ等等。按照其是否建立在关系模型基础上可分为 【关系型数据库】 和 【非关系型数据库】
例:各种数据库
关系型数据库
关系数据库,是建立在关系模型基础上的数据库。关系模型就是指二维表格模型,而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织,即数据表之间不是相互独立的,而是彼此关联的;关系模型由关系数据结构、关系操作集合、关系完整性约束三部分组成。简单说,关系型数据库是由多张能互相联接的二维行列表格组成的数据库。
关系型数据库的最大优点就是事务的一致性,这个特性,使得关系型数据库中可以适用于要求一致性、严密性、重要性比较高的系统中。比如:涉及金钱方面的银行系统。
【主流的关系型数据库】
当前主流的关系型数据库有Oracle(甲骨文公司,收费型)
、DB2
、PostgreSQL
、Microsoft SQL Server(微软)
、Microsoft Access
、MySQL
、浪潮K-DB
等。其中以三大关系型数据库包:Oracle
,SQLServer
,MySQL
最著名
非关系型数据库
非关系型数据库,又被称为NoSQL(Not Only SQL ),直译为“不仅仅是SQL”(言下之意既有SQL的特性,还有所拓展和创新)。即表与表之间相互独立,并不存在关联关系。NoSQL是一种数据库革新思想,核心诉求是摆脱结构化数据和复杂表关联所带来的欠灵活、高成本、低效率、低扩展等弊病;
在非关系型数据库中,数据的存储格式是相对灵活的,没有关系型数据库中表字段格式的严格要求,例如MongoDB可以存储任意Json数据在同一集合中,Redis可以存储任意键值对;
【主流的非关系型数据库】
当前主流的非关系型数据库有redis
、memcache
、hbase
、leveldb
、mangodb
、rocksdb
等等
【非关系型数据库的优缺点】
缺点是没有关系型数据库的严谨稳定和强大功能,难以支持复杂的关联查询——因为这些特性都是建立在【严格表格式】和【复杂表关联】基础上的;
优点1:学习和开发成本低——没有格式要求,没有复杂关联,不需要进行表设计;
优点2:维护成本低——复杂的业务关联是需要花较大代价去理解和维护的;
优点3:访问速度飙升——数据分散化和碎片化了以后,就方便做快照和内存缓存了;
优点3:可扩展性好,方便做分布式集群——没有了关联关系,数据之间相互变得更独立了,便于分散存储和访问;
总结起来就是:功能换效率,外加高扩展;
【非关系型数据库的应用场景】
对严密、稳定性要求没有那么高的场景,例如社交、小游戏、资讯类服务等,相反如银行项目、政府项目、电子商务等对信息严密性要求很高的场景,就还是离不开关系型数据库的;
对高并发、访问速度的要求比较高的场景,如新闻、电商、购票等;
对开发、维护成本要求比较高的场景,如中小企业项目、外包项目、创业项目等;
其实一个比较好的架构是:【关系型数据库做核心数据管理 + 非关系型数据库做缓存、并发、分布式】;