我们看数据库的排名,有些数据库有关系型(RDBMS)和非关系型,他们有什么区别呢? 关系型数据库 这种类型的数据库是最古老的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。 关系型数据库以行(row)和列(column)的形式存储数据,以便于用户理解。 而每张表又有关系,比如:班级表和学生表。我们通过关系数据库的查询语言SQL,就可以查出这些多表关系的信息。 优势: 复杂查询可以用SQL语句方便地在一个表以及多个表之间做非常复杂的数据查询。 事务支持,使得安全性能很高的数据访问要求得以实现。 非关系型数据库: 可以看成传统关系型数据库的阉割版。不需要通过SQL层的解析,性能非常的高。 相比SQL,NoSQL泛指非关系型数据库,常见的非关系型数据库包括: 键值型数据库:使用场景可作为内存的缓存,Redis是最流行的键值型数据库。 文档型数据库:此类型数据库可存放并获取文档,可以是XML、JSON等格式。在数据库中文档作为处理信息的基本单位,一个文档就相当于一条记录。文档数据库所存放的文档,就相当于键值数据库所存放的值。MongoDB是最流行的文档型数据库。 搜索引擎数据库:虽然关系型数据库采用了索引提升效率,但是针对全文索引效率却较低。搜索引擎是应用在搜索引擎领域的数据库存储形式。这样检索的时候才能保证性能最优。典型数据库有:Solr、Elasticsearch、Splunk等。 列式数据库:Oracle、Mysql都是采用行式存储方法,一行就是一个记录。而列式数据库是将数据库按照列存储数据到数据库中。这样做的好处,可以降低I/O,比如你用行数据库,你只要显示4个列,就要把这行20列都加载到内存中,但是用列数据库只需要加载特定的列。典型产品:HBase等。 图形数据库:一种存储图形关系的数据库,一些复杂关系的数据关系,还是可以用图数据库。典型的产品:Neo4j、InfoGird等。 NoSQL的分类很多,即便如此,在DBMS排名中,还是SQL阵营的比重更大,影响力前五的DBMS,有4个是关系型数据库,排名前20的数据库,有12个也是关系型数据库。所以掌握SQL是非常有必要的。 表、记录、字段: 数据库中的一个表对应Java的一个类。 表中的一条数据(记录)对应Java的一个对象。 表中的一个列,表示类中 的一个字段、属性。 表的关联关系: 一对一关联关系 在实际开发中应用不多,因为一对一可以创建为一张表。但有时候,一张表字段太多了,有些是常用的比如学生基本信息,有些是不常用的比如学生的档案信息。这个时候可以拆分成两个表。 一对多关联关系表: 分为主表和从表,一为主表,多为从表。比如班级与学生的关系、部门与员工的关系。这些都是一对多的关系。 多对多关联关系: 表示多对多的关系,必须创建第三张表,该表被称为连接表。它将多对多关系划分为两个一对多关系。将这两个表的主键都插入到第三张表中。 比如学生和课程的关系,一个学生可以选多个课程,一个课程也可以被多个学生选。 比如角色与用户的关系,一个角色可以有多个用户,但是一个用户又可以有多个角色。 自我引用关系: 自己引用自己,员工编号103,的主管编号就是自己。
发表评论 取消回复