一、关系型数据库
目前我们常用的数据库一般是关系型数据库,比如Oracle、MySQL、SQL Server。
1、定义:基于关系模型(二维表)所提出的一种数据库。
实际场景:学生与系的关系如下
一个学生必定属于某一个系,因此我们可以把图中学生与系的关系抽象成三个表
这三个表所构成的就是一种简单的关系型数据库。当然在现实应用中我们还会对其进行一定的优化。
2、ER模型(Entity-Relationship)模型:通过增加外键来减少冗余
比如我们上面所举的例子:
中间的那个relation表属于一个冗余的表,我们可以通过给student表中增加外键来去掉这个表。
二、NoSQL数据库
1、常见的NoSQL数据库:HBase数据库
2、NoSQL数据库的思想:BigTable(大表),把所有数据保存到一张表中,采用冗余来存储。可以提高效率但是需要牺牲存储空间。
3、HBase是基于Hadoop的HDFS的
4、HBase的表结构
特点:
#rowkey相当于主键
#行键可以重复,但是相同的行键表示的同一条数据,比如表中的第一、三行。
#没有列,而是列族。创建命令 create `student`.'info'.`grade`