在目录服务器(也称为LDAP数据库)和RDBMS之间进行选择

trs*_*hiv 5 rdbms choice directory-server

在我的项目中,我是首席开发人员,我们之前的网络配置存储在一个XML文件中.配置包含有关网络布局的信息 - 其组成主机,有关每个主机的各种详细信息,如操作系统,平台,在每个主机中配置的用户,每个用户的几个属性等等.在即将推出的产品版本中,我们希望将数据移动到某种类型的数据库中,因为配置将扩展为包含更多元素和细节,并且将它们保存在XML文件中将变得很麻烦.

第一个选择是RDBMS.然而,由于配置数据的分层特性和可扩展性标准,目录服务器似乎是更好的选择.使用目录服务器的动机是

  1. 在目录服务器中建模分层数据比在RDBMS中建模更容易.

  2. 创建/定义扩展具有附加属性的基本类型的新实体类型也更容易.从问题解决的角度来看,这是非常有吸引力的.

  3. 配置数据将被更频繁地读取而不是更新.虽然性能不是问题,但目录服务器非常适合这种特性.

经过大约一周的自我介绍LDAP和目录服务器的基础知识后,我现在对目录服务器的选择持怀疑态度.我看到一些问题:

  1. LDAP不如RDBMS主流.很多人都有过使用某些SQL的经验,并且使用RDBMS可以比目录服务器更快地启动.正如我之前提到的,我花了一个多星期的时间来学习LDAP的基础知识(如何创建模式,定义DIT,添加条目,将数据导出到LDIF文件等).这很重要,因为当一个新成员加入团队时,他/她不会面临学习曲线.

  2. 将来,我们可能需要维护更多数据并将其存储在数据库中.目录服务器可能不是这种数据的良好选择(例如,数据可能会在读取时经常更新).在我看来,拥有两个存储机制是一种负担.

  3. 在更具政治性的方面,我不会因为选择RDBMS而受到指责/解雇,即使它不适合目前的问题.使用目录服务器,如果上面的第2点成为现实,我不想回答"为什么你没有想到这个?".

我正在寻找如何做出选择的建议.以前有没有人遇到类似的情况?

编辑1:我们在项目中就此进行了讨论,在此我提出了我在这里提出的确切观点.由于以下原因,我们很可能在没有任何进一步评估的情况下选择RDBMS:

  1. 第2点被认为比其他任何事情都重要.

  2. 我单位内部的想法似乎相当保守,各个层次的人都想要安全地玩.我真的不能责怪他们.

  3. "为什么不是RDBMS?" 是第一个问题."它可以用RDBMS完成吗?" 是第二个.我终于收到了消息.

Jam*_*son 4

通常我会尽快摆脱 LDAP,但是您只是调用了两个神奇的短语,使 LDAP 成为更好的选择“配置数据的层次结构性质”和“配置数据”。

LDAP 是为这种(并且仅针对这种)数据类型而设计的。

选择 LDAP 还有其他更务实的原因。

  1. 所有 LDAP 都是相同的。它是一种访问协议而不是数据库实现,因此无论您的客户使用开源 LDAP 还是商业 LDAP,您的软件都不需要更改。

  2. 所有 RDBMS 都是不同的。无论您选择哪种 RDBMS,至少都会有一个客户对另一种不兼容的 RDBMS 进行了标准化——如果您的产品相当成功,您最终将至少维护 MySQL、Postgress、SQLServer、Oracle、DB2 和 Sybase 的分支。

如果您的客户/老板抱怨它不像 ORACLE/DB2 那样防弹/高性能/事务性强,请指出客户可以选择使用 ORACLE 或 DB2 的 LDAP 实现。

唯一真正的缺点是缺乏 LDAP 经验。大多数开发人员对 LDAP 的唯一体验是使用 J2EE 附带的默认用户安全模式。

LDAP 模式是数据库,需要像管理和更改控制程序这样的数据库!

  1. 项目清单