北大青鸟java培训:开源数据库的选择方法?

北大青鸟java培训:开源数据库的选择方法?,第1张

随着互联网的不断发展,有时候企业需要使用不同的开源数据库来搭建自己的在线平台。

下面我们就一起来了解一下,在选择数据库的时候我们都有哪些方法可以使用。

有一个明确的目标这一点看似简单,但在和很多人聊过MySQL、MongoDB、PostgreSQL之后,我觉得这一点才是重要的。

面对繁杂的开源数据库,更需要明确自己的目标。

无论这个数据库是作为开发用的标准化数据库后端,抑或是用于替换遗留代码中的原有数据库,这都是一个明确的目标。

目标一旦确定,就可以集中精力与开源软件的提供方商讨更多细节了。

了解你的工作负载尽管开源数据库技术的功能越来越丰富,但这些新加入的功能都不太具有普适性。

譬如MongoDB新增了事务的支持、MySQL新增了JSON存储的功能等等。

目前开源数据库的普遍趋势是不断加入新的功能,但很多人的误区却在于没有选择适合的工具来完成自己的工作——这样的人或许是一个自大的开发者,又或许是一个视野狭窄的主管——终导致公司业务上的损失。

致命的是,在业务初期,使用了不适合的工具往往也可以顺利地完成任务,但随着业务的增长,很快就会到达瓶颈,尽管这个时候还可以替换更合适的工具,但成本就比较高了。

例如,如果你需要的是数据分析仓库,关系数据库可能不是一个适合的选择如果你处理事务的应用要求严格的数据完整性和一致性,就不要考虑NoSQL了。

不要重新发明轮子在过去的数十年,开源数据库技术迅速发展壮大。

开源数据库从新生,到受到质疑,再到受到认可,现在已经成为很多企业生产环境的数据库。

企业不再需要担心选择开源数据库技术会产生风险,因为开源数据库通常都有活跃的社区,可以为越来越多的初创公司、中型企业甚至500强公司提供开源数据库领域的支持和三方工具。

先从简单开始你的数据库实际上需要达到多少个9的可用性?对许多公司来说,“实现高可用性”仅仅只是一个模糊的目标。

当然,常见的答案都会是“它是关键应用,我们无论多短的停机时间都是无法忍受的”。

成都IT培训http://www.kmbdqn.cn/发现数据库环境越复杂,管理的难度就越大,成本也会越高。

理论上你总可以将数据库的可用性提得更高,但代价将会是大大增加的管理难度和性能下降。

所以,先从简单开始,直到有需要时再逐步扩展。

一:表中应该避免可为空的列;二:表不应该有重复的值或者列;三: 表中记录应该有一个唯一的标识符 在数据库表设计的时候,数据库管理员应该养成一个好习惯,用一个ID号来 唯一的标识行记录,而不要通过名字、编号等字段来对纪录进行区分。每个表都应该有一个ID列,任何两个记录都不可以共享同一个ID值。另外,这个ID值最 好有数据库来进行自动管理,而不要把这个任务给前台应用程序。否则的话,很容易产生ID值不统一的情况。另外,在数据库设计的时候,最好还能 够加入行号。如在销售订单管理中,ID号是用户不能够维护的。但是,行号用户就可以维护。如在销售订单的行中,用户可以通过调整行号的大小来对订单行进行 排序。通常情况下,ID列是以1为单位递进的。但是,行号就要以10为单位累进。如此,正常情况下,行号就以10、20、30依次扩展下去。若此时用户需 要把行号为30的纪录调到第一行显示。此时,用户在不能够更改ID列的情况下,可以更改行号来实现。如可以把行号改为1,在排序时就可以按行号来进行排 序。如此的话,原来行号为30的纪录现在行号变为了1,就可以在第一行中显示。这是在实际应用程序设计中对ID列的一个有效补充。这个内容在教科书上是没 有的。需要在实际应用程序设计中,才会掌握到这个技巧。四:数据库对象要有统一的前缀名 一个比较复杂的应用系统,其对应的数据库表往往以千计。若让数据库管理员看到对象名就了解这个数据库对象所起的作用,恐怕会比较困难。而且在数据库对象引用的时候,数据库管理员也会为不能迅速找到所需要的数据库对象而头疼。   为此,笔者建立,在开发数据库之前,最好能够花一定的时间,去制定一个数据库对象的前缀命名规范。如笔者在数据库设计时,喜欢跟前台应用程序协商,确定 合理的命名规范。笔者最常用的是根据前台应用程序的模块来定义后台数据库对象前缀名。如跟物料管理模块相关的表可以用M为前缀而以订单管理相关的,则可 以利用C作为前缀。具体采用什么前缀可以以用户的爱好而定义。但是,需要注意的是,这个命名规范应该在数据库管理员与前台应用程序开发者之间达成共识,并 且严格按照这个命名规范来定义对象名。其次,表、视图、函数等最好也有统一的前缀。如视图可以用V为前缀,而函数则可以利用F为前缀。如此数据库管理员无论是在日常管理还是对象引用的时候,都能够在最短的时间内找到自己所需要的对象。五:尽量只存储单一实体类型的数据 这里将的实体类型跟数据类型不是一回事,要注意区分。这里讲的实体类型 是指所需要描述对象的本身。笔者举一个例子,估计大家就可以明白其中的内容了。如现在有一个图书馆里系统,有图书基本信息、作者信息两个实体对象。若用户 要把这两个实体对象信息放在同一张表中也是可以的。如可以把表设计成图书名字、图书作者等等。可是如此设计的话,会给后续的维护带来不少的麻烦。   如当后续有图书出版时,则需要为每次出版的图书增加作者信息,这无疑会增加额外的存储空间,也会增加记录的长度。而且若作者的情况有所改变,如住址改变 了以后,则还需要去更改每本书的记录。若这个作者的图书从数据库中全部删除之后,这个作者的信息也就荡然无存了。很明显,这不符合数据库设计规范化的需 求。遇到这种情况时,笔者建议可以把上面这张表分解成三种独立的表,分别为图书基本信息表、作者基本信息表、图书与作者对应表等等。如此设计以后,以上遇到的所有问题就都引刃而解了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6646475.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存