要相应的修改某一部分,不会影响到其它部分,层数越多,相应的可维护性也不断提高;可重用性增加,代码的冗余减少,同一个程序能满足多种需求;可管理性增加,分层越多,可以把开发
工作发给更多地开发小组,便于管理。
但是由图1.2可以看出,业务逻辑层不仅负责业务逻辑,而且实现了对数据库层的访问,既直接访问了数据库,在对业务逻辑进行操作涉及到的对数据库中的数据进行保存,更新,删除,和
查询操作。
这样做的缺点有两个: (1)代码不清晰,在逻辑层中混含了对数据库的操作,没有彻底分离业务逻辑和对底层的操作。
(2)对于同一个系统,为了实现不同的业务逻辑和对大量数据进行操作,要编写多组访问数据库的代码,增加了代码量。
为了把数据访问细节和业务逻辑分开,可以把数据访问作为独立的持久化层。
即表述层,业务逻辑层,持久化层,数据库层。
重新分层的四层软件结构,如图1.3所示。
对于持久化层,主要是封装对数据库的访问细节,为业务逻辑层提供了面向对象的API,使数据库层相对于逻辑层来说是透明的,减小了编写代码时上层对下层的依赖,减少了对数据库的访问次数。
完善的持久化层要达到如下目的: (1)增加了代码的可重用性,并而对所有数据库的访问都能实现。
(2)能够支持多种数据库平台。
(3)具有相对独立性,当持久化的实现发生变化,底层的变化也不会影响上层的逻辑。
对于复杂的数据库模型,直接通过JDBC编程来实现持久化层需要程序员具有专业的数据库知识,同时对于企业应用的开发人员,要花费大量时间和精力对于每个应用程序都开发持久化层是不可行的。
目前在持久化层领域,开发一个方便的软件既节省时间又利于大规模的软件生产。
6 第一章对象/关系映射基础1.3关系模型和对象模型1.3.1数据模型 在介绍关系模型和对象模型之前,先介绍数据模型。
数据模型(Data Model)是对现实世界进行抽象的工具,用于描述实现世界的数据,数据关系,数据语义和数据约束等方面的内容【61。
不同的数据模型提供给我们模型化数据和信息的不同工具。
数据模型在整个数据库系统中具有非常重要的地位。
他既与应用程序和数据有关,又和数据库管理系统(Database Management System,DBMS)相关;既可用于描述应用领域的数据,又可用于描述数据库系统的实现方式。
目前数据库系统的数据模型主要包括网状模型,层次模型,关系模型和面向对象数据库模型f7】,其中关系模型的应用最为广泛。
1.3.2关系模型 关系模型是目前最重要的一种数据模型,当前世界上大多数数据库管理系统都是基于关系模型的。
关系模型是用二维表结构表示实体及实体之间联系的数据模。
关系(Relation)是描述对象的基本手段。
关系模型的数据结构是一个由“二维表框架”组合的集合,每个二维表又称为关系。
每个二维表表示一个实体集或实体集之间的联系。
表中的一行称为一个元组,一列称为属性,属性的取值范围称为域(Domain)。
实体与实体之间的联系通过表中的相同属性来实现的。
在关系数据模型中,所有属性的域都必须是原子类型(Atomic type)。
这就是著名的第一范式(First normal form,1NF)。
它使得记录的属性不能复合和嵌套博J。
如果某一属性组的值唯一地决定了关系中其他属性的值,并且其任何真子集均无此性质,则该属性组称为该关系的键(Key)。
一个关系至少有一个键,也可能有多个键。
在多个键中选一个主键(Primary key)。
如果关系中的属性或属性组不是本关系的键,而是引用其它关系或本关系的键,则称为此关系的外键(Foreign key)。
键是关系模型的核心。
关系模型的完整性规则是对关系的某种约束条件。
关系有三类完整性约束101:实体完整性(Entity Integrity),参照完整性(Referential Integrity),用户定义的完整性。
(1)实体完整性实体完整性规则:若属性A是基本关系R的主属性,则属性A的值不能为空值。
实体完整性规则规定基本关系的所有主属性都不能取空值,而不仅是主码不能取空值。
对于实体完整性规则,有以下说明: ①实体完整性能够保证实体的唯一性。
7 大连交通大学T学硕十学位论文 实体完整性规则是针对基本表而言的,由于一个基本表通常对应现实世界的一个实体集(或联系集),而现实世界中的一个实体(或一个联系)式可区分的,他在关系中以键作为实体的标识,主属性不能够取空值就能够保证实体(或联系)的唯一性。
②实体完整性能够保证实体的可区分性 空值不是空格值,它是跳过或者不输属性值,用“.