在目录服务器(又名 LDAP 数据库)和 RDBMS 之间进行选择 [英] Choosing between a directory server (a.k.a LDAP database) and an RDBMS

查看:50
本文介绍了在目录服务器(又名 LDAP 数据库)和 RDBMS 之间进行选择的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

In my project, where I'm the lead developer, we earlier had a network configuration that was stored a single XML file. The configuration contains info about a network layout - its constituent hosts, various details about each host like OS, platform, users configured in each them, several attributes for each user and so on. In the forthcoming version of the product, we want to move the data into a database of some sort since the configuration will be expanded to include more elements and details and maintaining them in XML files will start becoming cumbersome.

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

The first choice was an RDBMS. However owing to the hierarchical nature of the configuration data and with the expandability criterion, a directory server seemed a better choice. The motivations for going with a directory server are

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

  1. It is easier to model hierarchical data in a directory server than in an RDBMS.

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

It is also much easier to create/define new entity types that extend a base type with additional attributes. This is very attractive from a problem-solving point-of-view.

配置数据的读取频率将高于更新频率.尽管性能不是问题,但目录服务器非常适合这种特性.

The configuration data will be read more often than updated. Though performance is not a concern, a directory server suits this characteristic very well.

经过大约一周的 LDAP 和目录服务器基础知识的引导,我现在对目录服务器的选择有些怀疑.我发现了几个问题:

After about a week of bootstrapping myself on the basics of LDAP and directory servers, I'm now somewhat skeptical about the choice of a directory server. I see a few issues:

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

  1. LDAP is less mainstream than an RDBMS. Lot more people have had experience with some SQL and can get started off faster with an RDBMS than a directory server. As I mentioned earlier, it took me a little more than a week to learn just the basics of LDAP (how to create a schema, define a DIT, add entries, export data to LDIF files and so on). This is important because when a new member joins the team, he/she is not faced with a learning curve.

未来我们可能有更多数据需要维护和存储在数据库中.目录服务器可能不是此类数据的好选择(例如,数据可能会在读取时更新).在我看来,拥有两种存储机制是一种负担.

In the future we might have more data to be maintained and stored in the database. A directory server may not be a good choice for such data (e.g. data than may be updated as often as it is read). Having two storage mechanisms is a burden, in my opinion.

在更政治化的方面,我不会因为选择 RDBMS 而受到指责/解雇,即使它不适合当前手头的问题.对于目录服务器,如果上述第 2 点成为现实,我不想回答您为什么不早点想到这一点?"的问题.

On a more political front, I won't be blamed/fired for choosing an RDBMS even if it is not well-suited for the problem currently in hand. With a directory server, if point 2 above becomes a reality, I don't want to be answering the question "Why didn't you think of that earlier?".

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

I'm looking for advice on how to make the choice. Has anyone faced a similar situation before?

EDIT-1:我们在项目中对此进行了讨论,在那里我提出了我在这里提出的确切观点.由于以下原因,我们很可能会选择 RDBMS 而无需进一步评估:

EDIT-1: We had a discussion on this within the project where I put forth the exact points I made here. It is very likely that we'll choose an RDBMS without any further evaluation due to the following reasons:

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

  1. Point 2 was deemed more important than anything else.

我单位内部的想法似乎相当保守,各个级别的人都希望安全.不过我真的不能怪他们.

The thinking within my unit seems to be rather conservative with people at all levels wanting to play it safe. I really can't blame them for it though.

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

"Why not an RDBMS?" was the first question. "Can it done with an RDBMS?" was the second. I finally got the message.

推荐答案

通常我会尽可能快地远离 LDAP,但是您只是调用了使 LDAP 成为更好选择的两个神奇短语"配置数据"和配置数据".

Normally I would run away from LDAP as fast as possible however you just invoked the two magic phrases that make LDAP the better choice " the hierarchical nature of the configuration data " and " configuration data ".

LDAP 专为这种(并且仅适用于这种)类型的数据而设计.

LDAP was designed for this (and only for this) type of data.

选择 LDAP 还有其他更实际的原因.

There are other more pragmatic reasons for choosing LDAP.

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

  1. All LDAPs are the same. Its an access protocol not a database implementation so whether your customer uses an opensource LDAP or a commercial one your software will not need to change.

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

All RDBMSs are different. Whatever RDBMS you choose there will be at least one customer who has standardised on a different incompatable RDBMS -- if you product is reasonably succesful you will end up maintaining a fork for at least MySQL, Postgress, SQLServer, Oracle, DB2 and Sybase.

如果您的客户/老板抱怨它不像 ORACLE/DB2 那样具有安全性/性能/事务性,请指出客户可以选择使用 ORACLE 或 DB2 的 LDAP 实现.

If your customer/boss grumbles that its not as buletproof/performant/transactional as ORACLE/DB2 point out that the customer has the option of using ORACLE's or DB2's LDAP implementation.

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

The only real downside is the lack of LDAP experience out there. Most developers only experience of LDAPs is with the default user security schema which comes with J2EE.

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

LDAP schemas are databases and will require database like adminstration and change control procedures!

  1. 列表项

这篇关于在目录服务器(又名 LDAP 数据库)和 RDBMS 之间进行选择的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆