SQL Server 2008数据库应用技术(第二版)
上QQ阅读APP看书,第一时间看更新

1.3 数据模型

1.3.1 数据模型的概念

数据库是某个企业、组织或部门所涉及的数据的综合,它不仅要反映数据本身的内容,而且要反映数据间的联系。由于计算机不可能直接处理现实世界中的具体事物,所以人们必须把具体事物转换成计算机能够处理的数据,在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息。通俗地讲,数据模型就是现实世界的模拟。现有的数据库系统均是基于某种数据模型的。

数据库管理系统是按照一定的数据模型组织数据的,数据结构、数据操作和完整性约束称为数据模型的三要素。

1.数据结构

数据结构是一组规定的用以构造数据库的基本数据结构类型。这是数据模型中最基本的部分,它规定如何把基本数据项组织成更大的数据单位,并通过这种结构来表达数据项之间的关系。由于数据模型是现实世界与机器世界的中介,因此它的基本数据结构类型应是简单且易于理解的;同时,这种基本数据结构类型还应有很强的表达能力,可以有效地表达数据之间各种复杂的关系。

2.数据操作

数据操作能实现对数据结构按任意方式组合起来所得数据库的任何部分进行检索、推导和修改等。实际上,数据结构只规定了数据的静态结构,而操作的定义则说明了数据的动态特性。同样的静态结构,由于定义在其上的操作不同,可以形成不同的数据模型。

3.完整性约束

完整性约束用于给出不破坏数据库完整性、数据相容性等数据关系的限定。为了避免对数据执行某些操作时破坏数据的正常关系,常将那些有普遍性的问题归纳起来,形成一组通用的约束规则,只允许在满足该组规则的条件下对数据库进行插入、删除和更新等操作。

综上所述,一个数据模型实际上给出了一个通用的在计算机上可实现的现实世界的信息结构,并且可以动态地模拟这种结构的变化,因此它是一种抽象方法。为在计算机上实现这种方法,研究者开发和研制了相应的软件——数据库管理系统(DBMS)。DBMS是数据库系统的主要组成部分。

数据模型大体上分为两种类型:一种是独立于计算机系统的数据模型,即概念模型;另一种则是涉及计算机系统和数据库管理系统的逻辑模型。

1.3.2 概念模型

信息是对客观事物及其相互关系的表征,同时数据是信息的具体化、形象化,是表示信息的物理符号。在管理信息系统中,要对大量的数据进行处理,首先要弄清楚现实世界中事物及事物间的联系是怎样的,然后再逐步分析、变换,得到系统可以处理的形式。因此,对客观世界的认识、描述是一个逐步进行的过程,有层次之分,可将它们分成3个层次。

1.现实世界

现实世界是客观存在的事物及其相互联系,客观存在的事物分为“对象”和“性质”两个方面,同时事物之间有广泛的联系。

2.信息世界

信息世界是客观存在的现实世界在人们头脑中的反映。人们对客观世界经过一定的认识过程,进入到信息世界形成关于客观事物及其相互联系的信息模型,在信息模型中,客观对象用实体表示,客观对象的性质用属性表示。

3.数据世界

对信息世界中的有关信息经过加工、编码、格式化等具体处理,便进入了数据世界。数据世界中的数据既能代表和体现信息模型,同时又向机器世界前进了一步,便于用机器进行处理。在这里,每一实体用记录表示,对应于实体的属性用数据项(或称字段)表示,现实世界中的事物及其联系用数据模型表示。

3个领域间的关系如图1-8所示。

图1-8 客观描述的层次

由此可以看出,客观事物及其联系是信息之源,是组织和管理数据的出发点,同时也是使用数据库的归宿。为了把现实世界中的具体事物进行抽象,人们常常首先把现实世界抽象成为信息世界,然后再把信息世界转化为机器世界。把现实世界抽象为信息世界,实际上是抽象出现实系统中有应用价值的元素及其联系,这时所形成的信息结构是概念模型。在抽象出概念模型后,再把概念模型转换为计算机上某一DBMS所支持的数据模型。概念模型是现实世界到真实机器的一个中间层次,是按照用户的观点对数据和信息建模,是数据库设计人员与用户之间进行交流的语言。

目前,描述概念模型的最常用的方法是实体-联系(Entity-Relationship,E-R)方法。这种方法简单、实用,它所使用的工具称为E-R图。E-R图中包括实体、属性和联系3种因素。实体用矩形框表示,属性用椭圆形框表示,联系用菱形框表示,框内填入相应的实体名,实体与属性或者实体与联系之间用无向直线连接,多值属性用双椭圆形框表示,派生属性用虚椭圆形框表示。

E-R模型中使用的基本符号如图1-9所示。

①实体。客观存在并且可以相互区别的事物称为实体。实体可以是具体的事物,也可以是抽象的事件。例如,学生、图书等属于具体的事物,订货、借阅图书等活动是抽象的事件。

图1-9 E-R图基本符号表示

②实体集。同一类实体的集合称为实体集。由于实体集中的个体成千上万,人们不可能也没有必要一一指出每一个属性,因此引入实体型。

③实体型。对同类实体的共有特征的抽象定义称为实体型。由实体名及其属性名集合来抽象和描述。例如,学生(学号,姓名,年龄,性别,成绩)是一个实体型。

④属性。描述实体的特性称为属性。例如,学生实体用学号、姓名、性别、年龄等属性来描述。不同的实体用不同的属性区分。

⑤联系。实体之间的相互关系称为联系,它反映现实世界事物之间的相互关联。实体之间的联系可以归纳为3种类型:

● 一对一联系(1:1):设A、B为两个实体集,如果A中的每个实体至多和B中的一个实体有联系,反过来,B中的每个实体至多和A中的一个实体有联系,称A对B或者B对A是一对一联系。例如,班级和班长这两个实体之间就是一对一的联系,如图1-10(a)所示。

● 一对多联系(1:n):设A、B为两个实体集,如果A中的每个实体可以和B中的多个实体有联系,而B中的每个实体至多和A中的一个实体有联系,称A对B是一对多联系。例如,班级和学生这两个实体之间就是一对多联系,如图1-10(b)所示。

● 多对多联系(m:n):设A、B为两个实体集,如果A中的每个实体可以和B中的多个实体有联系,而B中的每个实体也可以和A中的多个实体有联系,称A对B或B对A是多对多联系。例如,学生和课程这两个实体之间就是多对多联系,如图1-10(c)所示。

图1-10 实体间的联系

值得注意的是,联系也可以有属性,例如,学生选修课程,则“选修”这个联系就有“成绩”属性,如图1-11所示。

图1-11 实体-联系属性图

由于实体集中的个体成千上万,人们不可能也没有必要一一指出个体间的对应关系,只需指出实体型间的联系,注明联系方式,这样既简单又能表达清楚概念。具体画法是:把有联系的实体(矩形框)通过联系(菱形框)连接起来,注明联系方式,再把实体的属性(椭圆框)连到相应实体上。

一般为了简洁,在E-R图中可略去属性,着重表示实体联系情况,属性可单独以表格形式列出。

1.3.3 逻辑模型

逻辑模型指数据库中数据的组织形式和联系方式。数据库中的数据是按照一定的逻辑结构存储的,这种结构是用数据模型来表示的。现有的数据库管理系统都是基于某种数据模型的。按照数据库中数据采取的不同联系方式,数据模型可分为3种:层次模型、网状模型和关系模型。

1.层次模型

用树形结构表示实体及其之间联系的模型称为层次模型。在这种模型中,数据被组织成由根开始的倒置的一棵树,每个实体由根开始沿着不同的分支放在不同的层次上。

层次模型的优点是结构简单,层次清晰,易于实现;适合描述类似家族关系、行政编制及目录结构等信息载体的数据结构。

其基本结构有两个限制:

①此模型中有且仅有一个结点没有双亲结点,称为根结点,其层次最高。

②根结点以外的其他结点有且仅有一个双亲结点。

所以,使用层次模型可以非常直接、方便地表示1:1和1:n联系,但不能直接表示m:n联系,难以实现对复杂数据关系的描述。一个层次模型的简单例子如图1-12所示。

图1-12 PS数据库层次模型

该层次数据库PS具有6个记录类型。记录类型P(学院)是根结点,由字段P#(学院编号)、PN(学院名称)、PL(办公地点)组成,它有两个子结点:D(系)和DP(部)。记录类型R(教研室)和S(学生)是记录类型D的两个子结点。T(教师)是R的子结点。其中,记录类型D由字段D#(系编号)和DN(系名)组成,记录类型DP由字段DP#(部门编号)和DPN(部门名称)组成,记录类型R由R#(教研室编号)、RN(教研室名称)和RC(教研室人数)组成,记录类型S由S#(学号)、SN(学生姓名)和SS(学生成绩)组成,记录类型T由T#(教师编号)、TN(教师姓名)和TD(研究方向)组成。

在该层次结构中,DP、S、T是叶子结点,它们没有子结点。由P到D、由P到DP、由D到R、由D到S、由R到T均是一对多的联系。

2.网状模型

网状模型是一种比层次模型更具有普遍性的结构,它去掉了层次模型的两个限制,允许多个结点没有双亲结点,允许结点有多个双亲结点,此外它还允许两个结点之间有多种联系。因此,网状模型可以更直接地描述现实世界。而层次模型实际上是网状模型的一个特例。

网状模型的主要优点是在表示数据之间的多对多联系时具有很大的灵活性,但是这种灵活性是以数据结构的复杂化为代价的。

网状结构可以有很多种,如图1-13所示。其中图1-13(a)所示为一个简单的网状结构,其记录类型之间都是1:n的联系。图1-13(b)所示为一个复杂的网状结构,学生与课程之间是m:n的联系,一个学生可以选修多门课程,一门课程可以被多个学生选修。图1-13(c)所示为一个简单环形网状结构,每个父亲可以有多个已为人父的儿子,而这些已为人父的儿子却只有一个父亲。图1-13(d)所示为一个复杂的环形网状结构,每个子女都可以有多个子女,而这多个子女中的每一个都可以再有多个子女(m:n)。图1-13(e)中人和树的联系有多种。图1-13(f)中既有父母到子女的联系,又有子女到父母的联系。

图1-13 网状模型

3.关系模型

关系模型是目前最重要的一种模型。美国IBM公司的研究员E.F.Codd于1970年发表题为《大型共享系统的关系数据库的关系模型》的论文,文中首次提出了数据库系统的关系模型。20世纪80年代以来,计算机厂商推出的数据库管理系统(DBMS)几乎都支持关系模型。

关系模型与层次和网状模型的理论和风格截然不同,如果说层次和网状模型是用“图”表示实体及其联系,那么关系模型则是用“二维表”来表示的。从现实世界中抽象出的实体及其联系都使用关系这种二维表表示。而关系模型就是用若干个二维表来表示实体及其联系的,这是关系模型的本质。关系模型如图1-14所示。

图1-14 关系模型

由于关系型数据库采用了人们习惯使用的表格形式作为存储结构,易学易用,因而成为使用最广泛的数据库模型。