数据模型与建模

来源:互联网 发布:春秋干将莫邪 知乎 编辑:程序博客网 时间:2024/06/12 22:55

一、数据模型

信息系统是对信息进行收集、传递、存贮、加工、维护的计算机系统。通过信息系统,信息已经变为有标准有规律有组织的数据(数据库)。数据是信息的记录载体,是经过加工并使之可表现的信息。信息是数据中包含的意义,是数据之所以有价值的内容。所以,信息系统通常也叫做数据处理系统。

要设计一个能满足要求的信息系统,关键之处就是如何把信息系统要处理的信息,通过抽象、综合、分类定义为有标准有规律有组织的数据,进而定义与设计相应的数据库及对应的处理。我们把这些组织起来的各类数据与它们之间的关系称之为各种数据模型。把其组织过程称之为数据建模过程。落实信息系统的数据模型是信息系统数据架构设计的一个最重要的组成部分。

(一)数据模型

所谓数据模型,是通过对展现客观事物的信息进行抽象、综合、分类,组织为具有某种结构的数据,对这些数据结构、其相互之间逻辑关系、数据操作方式及约束的描述。

1、 模型内容

通常认为,数据模型所描述的内容包括三个部分:数据结构、数据操作、数据约束。

(1)   数据结构

数据模型中的数据结构描述主要有两方面内容。一方面内容是描述数据结构的类型、内容、性质。例如层次模型、网状模型,及其记录型、数据项。又如关系模型及其关系、域等。另一方面内容是描述各数据结构间的关系。

(2)   数据操作

数据模型中数据操作主要描述在各数据结构上对应的操作规则、操作类型和操作方式。

(3)   数据约束

数据模型中的数据约束主要描述数据结构内数据及它们之间的制约和依存关系,以及数据动态变化的规则。约束条件可以按不同的原则划分为数据值的约束和数据间联系的约束;静态约束和动态约束;实体约束和实体间的参照约束等。通过数据约束,保证数据的正确、有效和相容。

在上述数据模型的描述中,数据结构是数据模型的基础,数据操作和约束都建立在数据结构上。不同的数据结构具有不同的操作和约束。所以,本文下面的论述也是主要围绕数据结构展开。

2、 模型层次

在建立数据模型的过程中,数据模型按不同的视图分成三个层次:分别是概念数据模型、逻辑数据模型、物理数据模型。

(1)   概念模型

概念模型是面向用户的现实世界的模型,主要用来描述信息系统要处理的现实世界的概念化结构。它使信息系统的设计人员在设计的初始阶段,摆脱计算机系统及数据库的具体技术问题,集中精力分析现实世界数据以及数据之间的联系。概念数据模型与具体的数据库或数据管理系统无关,它必须再进一步转换成逻辑模型、物理模型,才能在具体的数据库中实现。

概念数据模型要面向现实信息世界,一方面,要有较强的表达能力,能够方便、全面、正确地表达信息系统面对现实世界需要处理的数据的属性及它们的分类与关系;另一方面它还应该简单、清晰、易于非技术人员的理解。在概念数据模型中最常用的是E-R模型、面向对象模型等。

(2)   逻辑模型

逻辑模型是既面向用户,又面向某种数据库类型的数据模型,是具体的数据库管理系统所能支持的数据模型。在数据库发展的历史上,比较主流的数据库类型有网状数据模型、层次数据模型、关系数据模型等。通过把概念模型发展为逻辑模型,使之可以对应某种类型的数据模型,进而能在对应的数据库管理系统上实现数据库的建立。

(3)   物理模型

物理模型,是面向具体计算机系统展示的模型。物理模型描述了数据在具体数据库产品与具体储存介质上的组织结构。它不但与具体的数据库有关,而且还与具体的操作系统和硬件有关。每一种逻辑数据模型在落实到具体的计算机系统时都有对应的物理数据模型。通常,每种主流的计算机系统,都提供了相应的数据库生成手段,使逻辑模型向物理模型转换的实现工作大部分由系统完成。而设计者只需按照基本相似的方式,关注数据库的索引、视图、关系等各种内部结构设计。这样,使得各种数据库对于不同的操作系统与硬件,能保证其独立性与可移植性。

(二)主要的数据模型

在数据库发展与使用的历史上,主要的数据模型类型有三种:层次模型、网状模型和关系模型。这三种模型是按其数据结构而命名的。前两种采用格式化的结构。在这类结构中实体用记录型表示,记录型之间的联系抽象为记录型之间的连接线。这两种数据结构与图相对应,对应于树形图的数据模型为层次模型;对应于网状图的数据模型为网状模型。关系模型为非格式化的结构,用单一的二维表的结构表示实体及实体之间的联系。满足一定条件的二维表,称为一个关系。

1、 层次与网状模型

在早期的计算机数据处理系统里,广泛使用层次模型与网状模型的数据库管理系统。特别是层次数据库,具有存取方便且速度快;结构清晰,容易理解;数据修改和数据库扩展容易实现;检索关键属性十分方便等特点。

但随着计算机应用对数据库的要求越来越高,上述数据库的缺点也是非常明显的。尤其是网状数据库,数据间的关系通常用指针链接,由于需要存储指针,使得数据量增大;数据间关系没有强约束条件,使得网状结构比较复杂,甚至比较凌乱,增加了用户查询和定位的困难;数据的修改往往涉及指针的修改,维护成本高。在许多计算机事务处理应用系统里,关系数据库逐步取代了上述两种数据库。

2、 关系模型

关系数据库是建立在关系数据模型基础上的数据库,以记录组或数据表的形式组织数据,一个记录组具体表现为一个规范化的二维表。关系数据库的记录组不分层也无指针,是建立空间数据和属性数据之间关系的一种非常有效的数据组织方法。

关系模型与非关系模型不同,它是建立在严格的数学概念的基础上,借助于集合代数等概念和方法来处理数据库中的数据。关系数据模型具有下列优点:一,概念单一,无论实体还是实体之间的联系都用关系表示,操作的对象和操作的结果都是关系,所以其数据结构简单、清晰,用户易懂易用。二,关系模型的存取路径对用户透明,使程序和数据具有高度的独立性、更好的安全保密性。三,关系模型的数据语言非过程化程度较高,用户性能好,具有集合处理能力,并有定义、操纵、控制一体化的优点。关系模型中,结构、操作和完整性规则三部分联系紧密,简化了程序员的工作。为提高程序员的生产率,以及端点用户直接使用数据库提供了一个现实基础。

(三)数据建模

把现实世界需要处理的信息进行综合、抽象、组织,通过逐步求精过程,建立概念、逻辑、物理三个层次的数据模型,最终建立起我们的目标数据库,这整个过程可以称之为数据建模的过程。

1、 概念模型的建立

在建立概念模型时,我们需要充分理解业务需求,把要处理的对象综合、抽象为一个个业务主题,并整理出这些主题的各种主要属性,及相互之间的关系。其中主题的主要属性一定要包含主题与主题之间的关连属性。主题之间的关连属性指的是概要关系,数量的对应关系,关连属性的依存与约束关系。

有了概念模型,就可以进一步建立数据实体的逻辑模型与物理模型。

2、 逻辑模型的建立

在建立逻辑模型时,我们需要决定我们最终选择的数据模型(数据库)种类。因为不同的数据模型种类,实现实体间关系的方法不一样。如对于网状模型,关系通常通过指针实现;而对于关系模型,关系通常通过共享键值、外键实现。另外,我们应该细化与完善对实体与关系的描述,使之可以在具体的数据库管理系统生成相应的具体的数据库对象。这些对象包括数据库的对应文件或表、记录或行、字段或列,对象还包括主键、外键等。

以建模工具Erwin对关系模型的逻辑模型展现为例,它既把概念模型中的实体展现为具体二维表的行与各列,还具体定义了实体的各索引键,与它们间的具体关系。

3、  物理模型的建立

物理模型是对逻辑模型的进一步求精,是真实数据库的完全描述。包括数据库中的一些对象如:表,视图,字段,数据类型、长度、主键、外键、索引、是否可为空,默认值等。并根据具体的计算机系统及使用的具体数据库管理系统,将在逻辑建模阶段创建的各种数据库对象生成为具体的DDL SQL代码。通过运行这些代码,我们就可以创建相应具体数据库对象。人们在具体的计算机系统中使用的大多数建模工具,大都可以通过物理模型的建立,自动生成相应的DDL SQL代码。

二、银行数据模型举例

(一)概念模型

在数据模型的三个层次中,概念模型只与现实世界里需要计算机对其进行数据处理的对象有关,与将采取什么样的数据库管理系统进行数据处理无关,更与具体的计算机系统无关。

为了能全面、准确地描述概念模型,比较常用的方法有“实体-联系方法”,(Entity-Relationship Approach),它是描述现实世界概念结构模型的有效方法。其展现方式为实体-联系图,也即通常说的E-R图(EntityRelationship Diagram)。

E-R图提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。它用矩形表示实体型,矩形框内写明实体名。用椭圆表示实体的相关属性,并用无方向连线将实体型与其相应的属性连接起来。用菱形表示实体型之间的联系,在菱形框内写明两个实体间的关系概要,也用无方向连线将有联系的实体型连接起来;同时在菱形的两侧连线上标注上联系的类型。联系类型有三种:1对1(1:1),1对多(1:m、1:n),多对多(m:n)。

下面,以银行交易系统为例,探讨如何建立需要处理的数据实体的概念模型。

在银行交易处理系统里,信息系统面对要处理的数据实体有很多,这些数据实体都需要我们进行抽象、综合、分类,组织为具有某种结构的数据,并对这些数据结构及其相互之间逻辑关系进行充分的分析,以便系统进行需要的处理。

例如,银行信息系统面对的最主要的数据实体有客户与账户。每个银行都会有许多的客户,而这些银行客户会在银行开立各种各样的银行账户,记录客户在银行各种资产负债的变化情况及现状。

根据此前对银行客户、访问标识、账户以及它们之间关系的描述,我们可以知道,银行客户要获取银行相关的账户金融服务,需要通过提交他的访问标识,去访问他在银行拥有的账户。这样,我们可以建立如下实体-关系图:


图:实体-关系图

我们来分析一下,上述E-R模型,是如何展现与描述我们的实体和它们间的关系。

1、 实体

上述E-R图里,有三个实体,它们分别是用方框描述的客户、账户、访问标识。图中还举例列举了这三个实体部分比较重要的属性。

(1)   客户

这里的客户主要指的是银行客户,即银行的服务对象。客户的属性有:

  • 姓名

    客户姓名是客户有效身份证件里记载的姓名。这些有效证件通常有护照、身份证等。

  • 出生日期

    客户属性里的出生日期是一个非常重要的属性。经常有这样的情况,我们需要通过姓名来查找某个客户的相关资料。但是,无论在中国或者在全球,同名同姓的人实在太多了。据某方面的某个统计:中国重名最多的前50个名字,重复率全部都超过十几万。其中前五个最多的名字为:张伟,290607个;王伟,281568个; 王芳,268268个;李伟,260980个;王秀英,246737个。 如果光用姓名作为对数据库进行检索的索引键,将会出现非常多的重键。例如,一个叫张伟的客户由于银行卡丢失了要到银行挂失,但他忘记了具体卡号。如果我们用他的名字进行检索,可能会查到数万个张伟,而究竟是哪一个,我们将难以判断。这并不是我们希望的结果。

    但如果我们在客户资料里保留了客户的出生日期,那么,我们可以用姓名加出生日期进行检索。检索结果的重复几率就会非常低。所以在国际社会的人员交流管理中,普遍对人员的出生日期是特别关注的。只有掌握了人员的出生日期,鉴定人员的唯一性就相对容易与简单了。

  • 客户标识

    由于客户姓名并不唯一,就算加上客户出生日期也不能保证能唯一识别客户。所以,几乎所有国家都对其公民赋予一个唯一识别标识。例如,在中国,是身份证号。在美国,是社会安全号(Social Security Number)。这些公民唯一识别号的唯一性由国家来保证。所以,银行也可以借用这些识别号作为唯一的客户标识。客户标识通常包含了客户标识种类和客户标识号。

  • 其他属性

(2)账户

这里指的账户,是指客户在银行的账户。该账户用于记录客户在银行的资产、负债或其它非货币东西的现状、数量变化的历史等。不同的账户会对应银行不同的产品与服务。账户的属性有:

  • 账户标识

    账户标识是账户的唯一标识。账户标识通常包括账户种类与账户号。

  • 客户标识

    账户的客户标识表明该账户是属于哪一个客户的,这客户标识与客户实体里的客户标识一致。

  • 姓名

    账户所属客户的姓名,与客户实体里的姓名一致。

  • 其他属性

(3)访问标识

访问标识是银行客户赖以访问其在银行开立账户及获取银行相关服务的凭据。在许多场合里,访问标识会通俗地称之为登录名、用户名、用户号、用户别名、用户昵称等。在银行的信息系统服务界面里,访问标识也会使用账号、卡号等。访问标识的属性有:

  • 访问标识

    这里的访问标识是访问标识实体的唯一标识,是访问标识实体里最重要的内容。它是一窜字符串。银行信息系统通过读取客户或银行员工在银行信息系统的服务界面上输入的访问标识,经过相应的认证与处理,就可以唯一识别客户,以提供银行对客户的相应服务。

  • 适用渠道

    通常,银行会对不同渠道的访问标识有不同的要求。例如,在网银,访问标识可以是别名、昵称等;但在柜台,通常要求是账号、卡号。另外,银行客户也会根据不同的渠道,选择不同的访问标识。一个访问标识可以适用多种渠道。客户的某个访问标识,仅在其适用的渠道有效。

  • 适用账户标识

    不同的访问标识,根据银行相关规定与客户的意愿,可以访问不同的账户。当然,某个访问标识可以访问哪一个账户,根据银行的相关规定与客户的意愿,需要履行一定的手续后,指定才能成立。

  • 认证方式

    不同的渠道、不同的账户、不同的服务,有不同的安全防护等级与安全措施,会对应不同的认证方式。通常,越是容易被仿冒、越是要害的服务,对应的认证方式越复杂。这类服务有:网银、移动银行等全自助式的服务,涉及大额转账的服务。

  • 客户标识

    访问标识的客户标识表明该访问标识是属于哪一个客户的,这客户标识与客户实体里的客户标识一致。

  • 认证标识

    所谓认证标识,最通常的就是指认证密码。按银行的希望,最理想的情况是,不同的认证场合与认证方式最好对应不同的认证标识。并且,认证标识最好长一点、复杂一点(有的网站规定组成密码里的数字、大写字母、小写字母、其他字符均不能连续超过3个),且能经常变化,以防泄漏被仿冒。在比较复杂的认证方式里,认证标识可能不止一个。多个认证标识会在一个交易的不同阶段通过不同的方式分别输入,以增加认证的可靠性。

    另外,认证标识通常以加密方式存储。

  • 对应权限

    综合前面几点,不同的访问标识、不同的渠道、不同的账户、不同的认证方式,会对应不同的服务内容与权限。例如,如果是账户查询,通常输入查询密码就可以。如果是转账,就要加上进一步的认证。有的银行要求再输入转账密码,有的银行要求插入U盾等。

  • 其他属性

2、关系

客户、账户、访问标识三个实体之间,存在三个关系。它们的关系用菱形体现,它们的数量关系体现在菱形的两侧。

(1)   客户与账户

一个客户在一个银行里通常会拥有多种账户,例如有活期存款账户、定期存款账户、信用卡账户等。在某种账户里,还可能拥有多个账户。如活期存款账户,有用于工资转入的账户、有用于各种自动扣费的账户等等。

总之,客户与账户的关系是拥有的关系,是一对多的关系。

(2)   客户与访问标识

从前面的论述可以看到,一个客户,为了能在不同的渠道上访问不同的账户、获取不同的服务,通常会使用不同的访问标识。

可见,客户与访问标识的关系是使用的关系,是一对多的关系。

(3)   访问标识与账户

不同的访问标识可以访问不同的账户,反过来,不同的账户可以由不同的访问标识进行访问。

可见,访问标识与账户的关系是访问的关系,是多对多的关系。

(二)逻辑模型

在数据模型的三个层次中,逻辑模型涉及具体的数据模型(数据库)种类。在把上述概念模型进一步深化为逻辑模型时,假设我们采用的是关系数据模型,用工具Erwin展现,其逻辑模型大概会是如下:


图:Erwin逻辑模型

从上图可以看出,逻辑模型比概念模型更具体、更细化了。图中每个框图代表某个数据库表的一行,框图里每一行表示数据库的各列。在每一个框图里,分为上下两部分,上半部份为键区,下半部分为数据区。两个区域定义的数据库表各列分别对应原来实体里用作索引键的属性与非索引键的属性。

与层次模型和网状模型不同,关系模型用共享值来隐含地体现其关系,这是关系模型的特点。上述Erwin可以完全体现这种使用共享键的实体-关系模型。

从上图可以看出,无论是账户或者是访问标识,都通过客户的客户标识将其关系起来。而账户与访问标识,则通过账户标识关系起来。

最后,逻辑模型还要进一步具体化为物理模型。由于物理模型与具体的数据库和计算机系统有有关,会涉及具体数据库与计算机系统的许多概念。且不同的数据库与不同的计算机系统会有不一样的表述方式。所以,这里就不再对物理模型进行详细论述了。

原创粉丝点击