数据库
1.简单来说,就是存放各种数据的一个仓库,也就是一些数据按照某种模型存放到存储器的一个数据集合。简称DB,DataBase
2.那么,数据有了,就需要管理,用来操纵和管理数据的软件就是数据管理系统 简称DBMS,DataBase Managent System
3.那么 把上面这两个放到一起,也就是带有数据库并配置了管理系统的计算机系统 就是数据库系统 简称DBS,DataBase System
关系型数据库
相互之间有关系的数据集合到一起 就是关系型数据库,需要建表,建库,也就是事先要有组织结构常见的有
Oracle Oracle DataBase MySQL MariaDB
Microsoft SQL Server Access
IBM DB2
Sybase Sybase
加州大学伯克利 PostgreSQL
优点:容易理解,它的逻辑类似常见的表格
使用方便,都使用sql语句,sql语句非常的成熟
数据一致性高,冗余低,数据完整性好,便于操作
技术成熟,功能强大,支持很多复杂操作
缺点:*每次操作都要进行sql语句的解析,消耗较大
*不能很好的满足并发需求,特别是海量数据爆发,关系型
数据库读写能力会显得不足
*关系型数据库往往每一步都要进行加锁的操作,也造成了
数据库的负担
*数据一致性高,有时也会使数据的存储不灵活
非关系型数据库
非关系型数据库,又被称为NoSQL(Not Only SQL ),意为不仅仅是SQL( Structured QueryLanguage,结构化查询语言),不需要事先定义结构,也就是不需要建表建库等,每条记录可以又不同的类型和约束条件。
主流软件
Redis 远程字典服务器,分布式内存数据库,
MongoDB 介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的
Memcached 分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载
CouchDB,Neo4j,FlockDB
优点:高并发,读写能力强
弱化数据结构一致性,使用更加灵活
有良好的可扩展性
缺点:通用性差,没有sql语句那样通用的语句
操作灵活导致容易出错和混乱
没有外键关联等复杂的操作
NoSql的使用情况
1.对数据的存储灵活性要求高,一致性要求低
2.数据处理海量并发,要求瞬间效率速度比较高
3.数据比较容易建立Nosql模型
4.网站临时缓冲存储,爬虫应用
NoSql的分类:
1.键值型数据库 (Redis)
2.文档型数据库 (MongoDB)
3.列存储数据库 (HBase)
4.图形数据库
数据库 类型 | 特性 | 优点 | 缺点 |
---|---|---|---|
关系型数据库SQLite、Oracle、mysql | 1、关系型数据库,是指采用了关系模型来组织数据的数据库; 2、关系型数据库的最大特点就是事务的一致性; 3、简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 | 1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状、层次等其他模型来说更容易理解; 2、使用方便:通用的SQL语言使得操作关系型数据库非常方便; 3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率; 4、支持SQL,可用于复杂的查询。 | 1、为了维护一致性所付出的巨大代价就是其读写性能比较差; 2、固定的表结构; 3、高并发读写需求; 4、海量数据的高效率读写; |
非关系型数据库MongoDb、redis、HBase | 1、使用键值对存储数据; 2、分布式; 3、一般不支持ACID特性; 4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。 | 1、无需经过sql层的解析,读写性能很高; 2、基于键值对,数据没有耦合性,容易扩展; 3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。 | 1、不提供sql支持,学习和使用成本较高; 2、无事务处理,附加功能bi和报表等支持也不好; |