解密:为什么国产数据库使用PostgreSQL而不是MySQL

前言
为什么国产数据库纷纷使用PostgreSQL作为基础框架?
作为开源数据库的杰出代表,主要来对比PostgreSQL与MySQL的版权。版权可以理解为许可(License),直接与开源协议的描述相关,下面来看一下两者的许可表述。

PostgreSQL许可
PostgreSQL许可是一种自由的开源许可,与BSD或MIT许可证类似。1994年之前的部分版权属于加利福尼亚董事会;1996年-2020年,部分版权属于PostgreSQL全球开发小组;全球开发小组主要成员分散在世界各地,其背后不受任何公司实体控制,这使其成为一个真正的开放项目。
BSD开源协议是一个给于使用者很大自由的协议。可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布,被誉为开源许可的“活雷锋”。
BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD由于允许使用者修改和重新发布代码,也允许使用或在BSD代码上开发商业软件发布和销售,因此是对商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
PostgreSQL许可描述:https://www.postgresql.org/about/licence/

MySQL许可
众所周知,MySQL被Oracle所控制,MySQL同时使用了GPL和一种商业许可(称为双重许可)。
GPL(General Public license)是公共许可,遵循了GPL的软件是公共的。如果某软件使用了GPL软件,那么该软件也需要开源,如果不开源,就不能使用GPL软件,这和是否把该软件商用与否是没关系的。
如果无法满足GPL,就需要获得商业许可,通过与Oracle公司联系,制定解决方案,受Oracle公司约束。

具体约束:
① 不允许对在MySQL上作出的修改申请专利;
② MySQL上的修改需要公开,且所有权归Oracle所有;
③ 出于纯学术目的、练习目的源码修改也是符合GPL的;
④ Oracle的MySQL企业版或高级功能会涉及费用,并且Oracle公司不允许其它基于MySQL的闭源产品。
其它基于MySQL的数据库也遵循并必须遵循GPL许可或GPL的修订版GPL V2,譬如Mariadb。GPL 许可逻辑上与商业许可存在冲突,可以理解为:商业许可是控制MySQL的公司留给自己的特权。
由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的就不适合集成/采用作为类库和二次开发的基础。从GPL 到GPL V2 V3,另外还有LGPL,这个协议一直有在演变中,内容表述比较复杂,这会影响开源精神的发展与传承并且容易产生分歧。

总结
同为开源软件,PostgreSQL源码使用自由友好、商业应用不受任何公司实体所控制,而MySQL则在一定程度上有所限制。


标签: 暂无标签
iidba

写了 218 篇文章,拥有财富 2860,被 235 人关注

转播转播 分享分享 分享淘帖
回复

使用道具

成为第一个吐槽的人

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈