当前主流的关系型数据库有Oracle、DB2、MySQL等。
非关系型数据库有 NoSql、Cloudant。
典型的NoSQL数据库
临时性键值存储(memcached、Redis)、永久性键值存储(ROMA、Redis)、面向文档的数据库(MongoDB、CouchDB)、面向列的数据库(Cassandra、HBase)
1.关系型数据库通过外键关联来建立表与表之间的关系;
2.非关系型数据库通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定。
比如, 有一个学生的数据:
姓名:张三,性别:男,学号:12345,班级:二年级一班
还有一个班级的数据:
班级:二年级一班,班主任:李四
关系型数据库中,我们创建学生表和班级表来存这两条数据,并且学生表中的班级存储的是班级表中的主键。
非关系型数据库中,我们创建两个对象,一个是学生对象,一个是班级对象,用java来表示就是:
class Student {
String id;
String name;
String sex;
String number;
String classid;
}
class Grade {
String id;
String name;
String teacher;
}
通过设置Student类的classid等于Grade类的id来建立这种关系;
非关系型数据库中,我们查询一条数据,结果出来一个数组,关系型数据库中,查询一条数据结果是一个对象。
总结:关系型数据库与NoSQL数据库并非对立而是互补的关系,即通常情况下使用关系型数据库,在适合使用NoSQL的时候使用NoSQL数据库,让NoSQL数据库对关系型数据库的不足进行弥补。