LDAP与数据库的比较

 LDAP 概念

LDAPLightweight Directory Access Protocol),轻量级目录访问协议。它是目录访问协议一个标准。它是基于X.500 标准的,可以根据需要定制。轻量级目录访问协议以信息目录的形式存在,在该目录中可只定义一次用户和组,而在多台机器和多个应用程序间共享它们。1

LDAP 定义与目录服务进行通信所使用的操作,如何找到目录中的实体,如何描述实体属性,以及许多安全特性。这些安全特性可用于对目录进行身份验证,控制对目录中的实体的访问。

LDAP 标准中没有定义在目录服务器上存储信息的方式。为实施LDAP 服务器,使用了许多不同的技术。这些技术包括简单的平面文件、索引文件和相关数据库。无论使用什么技术来实施目录, LDAP 客户端对目录的所有访问都使用相同的标准协议:LDAP。为此,尽管存在不同的内容结构,这些目录都被称为LDAP 目录服务器。

在企业范围内实现LDAP 可以让运行在几乎所有计算机平台上的所有的应用程序从LDAP 目录中获取信息。LDAP 目录中可以存储各种类型的数据:电子邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表,等等。通过把LDAP 目录作为系统集成中的一个重要环节,可以简化员工在企业内部查询信息的步骤,甚至连主要的数据源都可以放在任何地方。

 LDAP目录是否是数据库

某种意义上说,LDAP 目录是一种与关系数据库不同的、特殊的数据库,严格意义上说,

LDAP根本不是数据库而是用来访问存储在信息目录(也就是LDAP目录)中的信息的协议

LDAP和关系数据库是两种不同层次的概念,后者是存贮方式(同一层次如网格数据库,对象数据库),前者是存贮模式和访问协议。LDAP是一个比关系数据库抽象层次更高的存贮概念,与关系数据库的查询语言SQL属同一级别。LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。2

就象SybaseOracleInformixMicrosoft的数据库管理系统(DBMS)是用于处理查询和更新关系型数据库那样,LDAP服务器也是用来处理查询和更新LDAP目录的。换句话来说LDAP目录也是一种类型的数据库,但是不是关系型数据库。不象被设计成每分钟需要处理成百上千条数据变化的数据库,例如:在电子商务中经常用到的在线交易处理(OLTP)系统,LDAP主要是优化数据读取的性能。

目录是特殊化的数据库有着与传统意义上的关系数据库不同的特征【3】

1用户访问目录通常比更新目录多得多

         目录适合存储相对静态的信息。

2)目录不支持事务机制

3)信息访问机制不同

         大多数关系数据库支持标准化的sql访问方式,而LDAP目录的访问使用简单的而又优化的访问方式。

 

 LDAP适合的应用

LDAP最大的优势是:可以在任何计算机平台上,用很容易获得的而且数目不断增加的LDAP的客户端程序访问LDAP目录。而且也很容易定制应用程序为它加上LDAP的支持。LDAP协议是跨平台的和标准的协议,因此应用程序就不用为LDAP目录放在什么样的服务器上操心了。

LDAP服务器可以是任何一个开发源代码或商用的LDAP目录服务器(或者还可能是具有LDAP界面的关系型数据库),因为可以用同样的协议、客户端连接软件包和查询命令与LDAP服务器进行交互。与LDAP不同的是,如果软件产商想在软件产品中集成对DBMS的支持,那么通常都要对每一个数据库服务器单独定制。

LDAP服务器可以用“推”或“拉”的方法复制部分或全部数据,例如:可以把数据“推”到远程的办公室,以增加数据的安全性。复制技术是内置在LDAP服务器中的而且很容易配置。如果要在DBMS中使用相同的复制功能,数据库产商就会要你支付额外的费用,而且也很难管理。

LDAP适合存储符合以下条件的数据:

  • 需要在任何平台上都能读取数据

  • 每一个单独的记录项每一天都只有很少的改变

  • 可以把数据保存在平面数据库(flat database)而不是关系型数据库中换句话来说,也就是不管什么范式不范式的,把所有东西都存在一个记录中(差不多只要满足第一范式)。

LDAP对于存储下面这样的信息最为有用,也就是数据需要从不同的地点读取,但是不需要经常更新。例如,这些信息存储在LDAP目录中是十分有效的:

  • 公司员工的电话号码簿和组织结构图

  • 客户的联系信息

  • 计算机管理需要的信息,包括NIS映射、email假名,等等

  • 软件包的配置信息

  • 公用证书和安全密匙

大多数的LDAP服务器都为读密集型的操作进行专门的优化。因此,当从LDAP服务器中读取数据的时候会比从专门为OLTP优化的关系型数据库中读取数据快一个数量级。也是因为专门为读的性能进行优化, 大多数的LDAP目录服务器并不适合存储需要经常改变的数据。例如,用LDAP服务器来存储电话号码是一个很好的选择,但是它不能作为电子商务站点的数据库服务器。

LDAP 可以用于多应用中的统一的身份认证和授权。1由于LDAP 所具有的查询效率高、状的信息管理模式、分布式的部署框架以及灵活而细腻的访问控制,使LDAP 广泛地应用于基础性、关键性信息的管理,如用户信息、网络资源信息等。LDAP 的应用主要涉及几种类型。信息安全类:数字证书管理、授权管理、单点登录;科学计算类:DCE(Distributed Computing Envirionment,分布式计算环境)UDDI Universal DescriptionDiscovery and Integration, 统一描述、发现和集成协议);网络资源管理类:MAIL 系统、DNS系统、网络用户管理、电话号码簿;电子政务资源管理类:内网组织信息服务、电子政务目录体系、人口基础库、法人基础库。

 关系数据库适合的应用

关系数据库的优点是建立在严格的数学概念的基础上,概念单一,实体与实体间的联系都用关系表示,故其数据结构简单、清晰,存取路径对用户透明,故有更高的数据独立性和更好的安全保密性。缺点是查询效率不如非关系型数据库,故必须对查询进行优化,增加了开发数据库管理系统的难度。具体来说关系数据库的优缺点如下:

(1)关系数据库系统的优点

a灵活性和建库的简单性:从软件开发的前景来看,用户与关系数据库编程之间的接口是灵活与友好的。目前在多数RDDMS产品中使用标准查询语言SQL,允许用户几乎毫无差别地从一个产品到另一个产品存取信息。与关系数据库接口的应用软件具有相似的程序访问机制,提供大量标准的数据存取方法。
b
.结构简单:从数据建模的前景看,关系数据库具有相当简单的结构(元组),可为用户或程序提供多个复杂的视图。数据库设计和规范化过程也简单易行和易于理解。由于关系数据库的强有力的、多方面的功能,已经有效地支持许多数据库纳应用。
(2)关系数据库系统的缺点
a
.数据类型表达能力差:从下一代应用软件的发展角度来看,关系数据库的根本缺陷在于缺乏直接构造与这些应用有关的信息的类型表达能力,缺乏这种能力将产生以下有害的影响,例如:大多数RDBMS产品所采用的简单类型在重构复杂数据的过程中将会出现性能问题;数据库设计过程中的额外复杂性;RDBMS产品和编程语言在数据类型方面的不协调。
    
大多数现代的RDBMS产品已成熟地用于商务和财政方面,而这些领域不要求很高和很复杂的数据模型。虽然这些产品多多少少克服了一些以上所述的缺点,但从理论上看关系数据模型不直接支持复杂的数据类型,这是由于第一范式的要求,所有的数据必须转换为简单的类型,如整数、实数、双精度数和字符串。
    
对于工程应用来说,这种不能支持复杂数据类型的典型结果就是需要额外地分解数据结构工作,这些被分解的结构不能直接表示应用数据,且从基本成分重构时也非常繁琐和费时间。
b
.复杂查询功能差:关系数据库系统的某些优点也同时是它的不足之处。虽然SQL语言为数据查询提供了很好的定义方法,但当用于复杂信息的查询时可能是非常繁琐的。此外,在工程应用时规范化的过程通常会产生大量的简单表。在这种环境下由存取信息产生的查询必须处理大量的表和复杂的码联系以及连接运算。
    
除非这些查询以固定的例行程序方式提供,否则用户就必须对SQL非常熟悉,以便适当地浏览数据库,查出所需的信息。然而,一旦查询方式按固定例行程序方式进行,用户最终就进行应用软件的常规维护。但应用或人机接口软件的变化又可能要求经常修改例行的查询,数据库结构的变化也可能导致例行查询程序以及应用或人机接口软件的失效。由于这些原因,关系数据库系统的维护开销可能是很大的。
   
由于关系数据库不能提供足够的构造能力及性能方面的原因,在进行较复杂的数据库设计过程中,不可能将许多工程问题直接分解成一些简单的部分。由于缺乏直接指针存取方法,所以查询有关的信息需要花费时间。
c
.支持长事务能力差;由于RDBMS记录锁机制的颗粒度限制,对于支持多种记录类型的大段数据的登记和检查来说,简单的记录级的锁机制是不够的,但基于键值关系的较复杂的锁机制来说却很难推广也难以实现。
d
.环境应变能力差:在要求系统频繁改变的环境下,关系系统的成本高且修改困难。在工程应用中支持模式演变schema evolution)的功能是很重要的,而RDBMS不容易支持这种功能。另外,关系数据库和编程语言所提供的数据类型的不一致,使得从一个环境转换到另一个环境时需要多至30%的附加代码。

         由于数据结构简单、清晰,存取路径对用户透明,故有更高的数据独立性和更好的安全保密性的优点,关系数据库得到了广泛的应用,广泛应用于用于人事档案管理、商业管理、仓库管理等数据库管理系统。因为这些系统所需的数据结构以及实体之间的联系比较单一。但正是因为其数据类型表达能力差,不适合多媒体以及许多非结构化数据的存储,环境应变能力差、弹性差,不能满足实时性要求,不适合许多特殊应用,对某些应用效率差等原因关系数据库在许多场合并不适用。

参考文献

[1].   陈岳彬, LDAP技术的应用电脑知识与技术, 2008(34): 1637-1638+1644.

[2].  http://baike.baidu.com/view/159263.htm

[3].  夏天初识LDAP. 程序员, 2003(8): 102-104.

[4].  任军基于LDAP的目录服务综述计算机应用研究, 2005(5): 8-10.

[5].  龚乐君与杨荣根目录服务技术的研究科技资讯, 2006(14): 246.

[6].  张丽君, LDAP目录与关系数据库之间数据同步技术的研究内蒙古石油化工, 2009(23): 60-62.

[7].  施伯乐关系数据库的理论进展计算机科学, 1987(2): 37-41.

[8].  刘晓娟关系数据库运用分析黑龙江科技信息, 2008(4): 60.

[9].  李斌从关系数据库到通用数据库管理科学文摘, 1999(1): 44.

    原文作者:数据库基础
    原文地址: https://my.oschina.net/wanjubang/blog/513202
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞