数据库就是存放和管理数据的仓库。
数据库和存储,基本上是互联网的瓶颈。
架构上尽量让数据库的压力减少。
数据库种类:关系型数据库,非关系型数据库
关系型数据库:
二维的表格,例如:MySQL和Oracle
可对比Excel表:
一个数据库 --> 一个Excel文件 一个数据表 --> Excel文件中的sheet 一个数据表类型 --> Excel文件中的sheet的列 一条数据 -->Excel文件中的sheet的行
非关系型数据库:NoSQL -- Not Only SQL
key-value:键值
面向高性能并发读/写的缓存存储,其结构类似于数据结构中的Hash表,每个Key分别对应一个Value,能够提供非常快的查询速度、大数据存放量和高并发操作,非常适合通过主键对数据进行查询和修改等操作。
Key-Value数据库的主要特点是具有极高的并发读/写性能,非常适作为缓存系统使用。MemcacheDB、BerkeleyDB、Redis、Flare就是Key-Value数据库的代表。
Column-Oriented:列存储
面向检素的列式存储,其存储结构为列式结构,同于关系型数据库的行式结构,这种结构会让很多统计聚合操作更简单方便,使系统具有较高的可扩展性。这类数据库还可以适应海量数据的增加以及数据结构的变化,这个特点与云计算所需的相关需求是相符合的,比如GoogleAppengine的BigTable以及相同设计理念的Hadoop子系统HaBase就是这类的典州代表。
面需要特别指出的是,Big Table特别适用于MapReduce处理,这对于云计算的发展有很高的适应性。
Document-Oriented:面向文档
面向海量数据访问的文档存储,这类存储的结构与Key-Value非常相似,也是每个Key别对应一个Value,但是这个Value主要以JSON(Java Sript Object Notations)或者XML等格式的文档来进行存储。
面这种存储方式可以很方便地被面向对象的语言所使用。这类数据库可在海量的数据中快速查询数据,典型代表为MongoDB、CouchDB等。
Graph:面向图形
Neo4J
关系型数据库主要产品
- Oracle 11g
- MySQL
- MariaDB
- SQL Server
- Access
- DB2
非关系型数据库主要产品
- Memcached(Key-Value)
- redis(Key-Value)
- MongoDB(Document-Oriented)