数据库:简述对关系型数据库(RDBMS)的认识


  1. 数据库:简述对数据库的认识

  2. 数据库:简述对关系型数据库(RDBMS)的认识

  3. 数据库:简述对非关系型数据库(NoSQL)的认识

  4. 数据库:关系型数据库和非关系型数据库的区别

  5. 数据库:简述对分布式数据库的认识


一、关系型数据库的概念

关系型数据库(Relational DataBase Management System),简称 RDBMS。说起关系型数据库,我们脑海中会立即浮现出 Oracle、MySQL、SQLServer 等数据库,这些都是我们常用的关系型数据库。

关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。在轻量或者小型的应用中,使用不同的关系型数据库对系统的性能影响不大,但是在构建大型应用时,则需要根据应用的业务需求和性能需求,选择合适的关系型数据库。

关系型数据库最大的特点就是在其关系这个词,它可以保存数据库中的各种关系。那么这个关系如何理解呢?我们就拿学校的一个例子来讲吧。在学校里,我们有老师(Teacher)、学生(Student)、课程(Course)这几个实体,而这几个实体之间都是有一定关系的。例如:一个老师能教多个学生,一个学生也能被多个老师教,所以老师和学生之间的关系是N:N的关系。于此类似,学生与课程也是N:N的关系。

二、关系型数据库的发展历程

1979年,Larry Ellison 使用汇编和C语言主导开发了第一个商用关系型数据库 Oracle。在此之后的接近16年内的时间,Oracle 数据库一路奔跑,成为了世界上最流行的关系型数据库。

1989年,微软(Microsoft)也发布了一个关系型数据库 SQL Server,但其同样也是一个收费的商业型数据库。

直到1995年,瑞典公司MySQL AB发布了 MySQL 数据库的第一个版本,从此终结了关系型数据库只能用 Oracle、SQL Server 这些收费软件的神话。

在 MySQL 诞生后,因为其开源、免费的特性,所以其得到了众多中小使用者的拥护,其用户量增长迅猛。而在这期间,MySQL的主人也几易其手。

在2008年,Sun 公司收购了 MySQL AB 公司,同时也获得了 MySQL 数据库的管理权。在 2010 年的时候,Oracle 公司收购了 Sun 公司,获得了 MySQL 的管理权。

而就在 Oracle 收购 Sun 公司的当天,因为担心被 Oracle 收购后MySQL的前景会受到限制,被称为 MySQL 之父的 Michael Widenius fork 了 MySQL 的一个分支,启动了 MariaDB 项目。

果不其然,在被收购不久后,MySQL随即推出了相关的收费版本。虽然原来的免费版本仍然可以使用,但在可预见的未来,Oracle 投入到 MySQL 中的精力可能很有限。毕竟Oracle是一个商业公司,也是要养家糊口的。

说到上面这三个数据库,很多人的印象是 Oracle 很大,但是很难使用。MySQL 使用很方便,似乎是最好的选择。SQL Server 是最没有存在感的一个数据库,基本上处于高不成低不就的状态。

从 https://db-engines.com/en/ranking 网站关系型数据库市场份额排名来看,现在市场份额最高的还是 Oracle 数据库,MySQL 次之,接下来则是 SQL Server 数据库。
在这里插入图片描述
这个排名似乎远远颠覆了我们的日常认知,因为在我们周边貌似很少人使用Oracle,但为什么其市场份额能这么高呢?

任何事情都不可能空穴来风,Oracle能占有这么大市场份额是因为其在海量数据的处理上更具有优势,并且能提供一整套的数据存储解决方案。

所以在一些非常大的企业里,这些企业拥有庞大的资金能力,所以它们会选择用钱购买解决方案,而不是自己雇佣人员使用 MySQL 去维护。

总的来说,Oracle比起MySQL具有下面的优点:

  1. 众多的数据库特性,能满足企业的多样性需求
  2. 海量数据处理的优势
  3. 一整套数据解决方案

但是 Oracle 的缺点也很明显,那就是价格昂贵。

因为Oracle有上面这些特性,所以Oracle更加适合那些大型跨国企业。因为这些企业资金充足,能承担得起Oracle的昂贵费用。

另一方面,这些企业的数据量也是非常庞大,它们更注重数据的安全性和高效存储,并且关心的出现问题的时候能快速解决,Oracle提供的一系列服务正好符合它们的需求。

而对于一些中小型企业或者个人使用者来说,一方面Oracle软件非常笨重,另一方面Oracle授权费用昂贵,对于它们来说无法承受。而它们的数据库又恰好不是特别大,所以对于这些使用者来说,使用MySQL已经能够解决它们的需求了。那么也就无需去付费使用Oracle的数据库了。

三、关系型数据库的标准SQL语句

虽然关系型数据库有很多,但是大多数都遵循SQL(结构化查询语言,Structured Query Language)标准。常见的操作有查询,新增,更新,删除,求和,排序等。

(1) 查询语句:SELECT param FROM table WHERE condition
该语句可以理解为从 table 中查询出满足 condition 条件的字段 param。

(2) 新增语句:INSERT INTO table (param1,param2) VALUES (value1,value2)
该语句可以理解为向table中的param1,param2字段中分别插入value1,value2。

(3) 更新语句:UPDATE table SET param=new_value WHERE condition
该语句可以理解为将满足condition条件的字段param更新为 new_value 值。

(4) 删除语句:DELETE FROM table WHERE condition
该语句可以理解为将满足condition条件的数据全部删除。

(5) 去重查询:SELECT DISTINCT param FROM table WHERE condition
该语句可以理解为从表table中查询出满足条件condition的字段param,但是param中重复的值只能出现一次。

(6) 排序查询:SELECT param FROM table WHERE condition ORDER BY param1
该语句可以理解为从表table 中查询出满足condition条件的param,并且要按照param1升序的顺序进行排序。

总体来说, 数据库的SELECT,INSERT,UPDATE,DELETE对应了我们常用的增删改查四种操作。

关系型数据库对于结构化数据的处理更合适,如学生成绩、地址等,这样的数据一般情况下需要使用结构化的查询,例如join,这样的情况下,关系型数据库就会比NoSQL数据库性能更优,而且精确度更高。由于结构化数据的规模不算太大,数据规模的增长通常也是可预期的,所以针对结构化数据使用关系型数据库更好。关系型数据库十分注意数据操作的事务性、一致性,如果对这方面的要求关系型数据库无疑可以很好的满足。

四、总结

如果单单是从数据库性能来比较的话,那么Oracle数据库无疑是天下第一、吊打MySQL的,毕竟Oracle比MySQL诞生早了10多年。

但很多时候还是得结合具体的使用场景来做出合适的选择。如果数据量很大,并且资金充足,适合使用Oracle吧!如果资金有限,数据量也不大,那么就用MySQL吧!


参考: https://mp.weixin.qq.com/s/5Uyy35jKFHOQSqDk5jKSIA

©️2020 CSDN 皮肤主题: Age of Ai 设计师:meimeiellie 返回首页