📄 9.txt
字号:
据库结构的描述。这些数据是数据库系统中有关数据的数据,称作“元数据”(metadata
)。DD提供了对数据库数据描述的集中管理手段,对数据库的使用和操作都要通过查阅数
据字典来进行。
5 数据和数据联系的描述
数据,从人们对现实生活中事物特性的认识到计算机数据库里的具体表示要经历三个
领域:现实世界 - 概念世界(信息世界)- 机器世界(存储世界或数据世界)。
5.1三个世界
1、现实世界
数据库管理的对象存在于现实世界之中。在现实世界里,事物及事物之间存在着联系
,有的联系还很复杂。例如复方中药物相互作用的关系就是复杂的知识系统。
2、概念世界
概念世界是现实世界在人们头脑中的反映,是对客观事物及其联系的一种抽象描述。
它不是现实世界的简单录像,而要经过选择、命名、分类等抽象过程产生概念模型。概念
模型是现实世界到机器世界必然经过的中间层次。建立概念模型涉及到下面几个术语:
* 实体(Entity)
我们把客观存在并可相互区别的事物称作实体。实体可以是实际事物,也可以是抽象
事件。同一类实体的集合称为实体集。我们用“实体型”表示抽象的实体集,简称为实体
。
* 属性(Attribute)
描述实体的特性称为属性。例如方剂(编号、方名、来源、主治、组成等)。属性的
具体取值称作“属性值”,用以刻画一个具体实体。例如属性组合02931000021037301 《
备急千金要方》第21卷第373页第1方,则代表了一个具体的方剂。
* 关键字
如果某个属性或属性组合的值能够唯一地标识出实体集中的每一个实体,可以选作关
键字。用作标识的关键字也称作“码”。如上例中方剂编号,可以选作关键字,由于书名
有许多版本,书中有许多方剂不宜选作关键字。
* 联系(Relationship)
实体集之间的对应关系称作为“联系”,它反映现实世界事物之间的相互关联。联系分两
种。一种是实体内部各个属性之间的联系:例如相同药性的药物会有很多个,而每一种药
物(从理论上讲)只有一种药性。另一种是实体之间的联系:例如一种病下有病因、发病
、病机、病位、证候、症状体征;而表现出的这些病因、发病、病机、病位、证候、症状
体征等,可以发生在其它的疾病中。
3、机器世界
数据库中的数据是有结构的,这种结构用数据模型表示。数据模型将概念世界中的实
体,及实体之间的联系进一步抽象成便于计算机处理的方式。任何一个数据库管理系统都
是基于某种数据模型的。按照数据库管理系统所支持的数学模型划分有层次数据库、网状
数据库、关系数据库三种类型。这将列专题讨论。
5.2 E-R 模型
E-R 模型简称E-R图。它是描述概念世界,建立概念模型的实用工具。数据库设计工作比较
复杂,将实现世界的数据组织成符合具体数据库管理系统所采取的数据模型,一般情况下
不可能一次到位。通过绘制E-R图可以描述组织模式。它可以进一步转换成任何一种DBMS所
支持的数据模型。E-R图有三要素:
* 实体(型)——用矩形表示,框内标注实体名称
* 属性——用椭圆形表示,并用连线与实体连接起来。
* 实体间的联系——用菱形表示,框内注明联系名称。
实体间的联系抽象化后可以归结为三种类型:
1、一对一联系(1∶1)
设A,B为两个实体集。若A中的每个实体至多和B中的一个实体有联系,反过来,B中的每个
实体至多和A中的一个实体有关系,称A对B或B对A是1∶1联系。例如一个公司只有一个总经
理,同时一个总经理不能在其它公司兼任。应该注意的是“至多”一词的含义,1∶1联系
不一定都是一一对应的关系。如下图所示:
1 1
2、一对多联系(1∶n)
如果A中的每个实体可以和B中的几个实体有联系,而B中的每个实体至多和A中的一个
实体有联系,那么A对B属于1∶n联系,例如一个学生只能在一个系注册,但一个系有很多
学生。一对一的关系可以看作是一对多联系的一个特例,即n = 1。
n 1 n 1
3、多对多联系(m∶n)
如果A中的每个实体可以和B中的几个实体有联系,而B中的每个实体也可以和A中的多
个实体有联系,那么A对B或B对A属于1∶n联系。例如一个学生可以选择多门课程,一门课
可以由多名学生来选。
m n m n
联系有时也有属性,这类属性不属于任何一个实体。例如成绩不是学生或课程的属性
,是学生选修了某种课程的结果的属性,是反映某种关系的属性。
在现实世界中,无处不存在着关系,而且这些关系是复杂的,动态的、变化的、多维的,
研究这些关系是规律发现的关键所在。
5.3 实例
制作方剂数据库E-R图
分析方剂含有的数据项:
描述方剂数据项之间的关系
6 数据模型
数据库中的数据是有结构的,这种结构反映出事物及事物之间的联系。概念模型中的实体
及实体间的联系要进一步表示成便于计算机处理的数据模型。任何一个数据库管理系统都
是基于某种数据模型的,一个具体数据模型应当反映全组织数据之间的整体逻辑关系。
数据模型由三部分组成,即模型结构、数据操作和完整性规则。其中模型结构是数据模型
最基本的部分,它将确定数据库的逻辑结构,是对系统静态特性的描述。
数据操作提供对数据库的操作手段,主要有检索和更新两大类操作。数据操作是对系
统动态特性的描述。
完整性原则是对数据库有效状态的约束。
数据库系统的发展,根据其支持的数据库模型(data model),到目前为止经历了三
代:层次网状模型、关系模型和面向对象模型。
1、层次模型(60年代末-70年代)
数据按树结构表示实体及其之间联系的模型称为层次模型。树的每一个结点代表一个记录
类型。如下图所示:
解表剂
辛温解表剂 辛凉解表剂 扶正解表
麻黄汤 桂枝汤 九味羌活汤……
麻黄 桂枝 杏仁……
层次模型有两点限制:
* 有且仅有一个结点无父结点,此结点即为树的根;
* 其它结点有且仅有一个父结点
层次模型表示1∶n联系非常直接、方便。但是它不能直接表示m∶n联系,必须设法转换成
几个1∶n的联系才行,用层次模型建立的数据库称作层次数据库,最典型的系统为IBM公司
的IMS(Information Management System)产品。
2、网状模型(60年代末-70年代)
用网状结构表示实体及其之间联系的模型称为网状模型。网中的每一个结点代表一个记录
类型,联系用链接指针来实现,它取消了层次模型的两点限制,允许结点有多于一个的父
结点,可以有一个以上的结点没有父结点。如下图所示:
图略 病 (使用) 方
方1 方2 方3 方4
病1方1 病1 方2 病3 方1 病1 方3 病1 方4
病2 方1 病2 方2 病2 方3
病1 病3
病2
网状模型和层次模型在本质上是一致的。从逻辑上看,它们都是基本层次联系的集合
,用结点表示实体,用有向边(箭头)表示实体间的联系;从物理上看,它们每一个结点
都是一个存储记录,用链接指针来实现记录之间的联系。当存储数据时这些链接指针就固
定下来了,数据检索时必须考虑存取路径问题;数据更新时,涉及到链接指针的调整,缺
乏灵活性;系统扩充相当麻烦。
3、关系模型(70年代-80年代)
以二维表来的形式来表示实体和实体间联系的数据模型称为关系模型,因此这里的关系又
称作“表”。如下表所示:
方剂组成关系
方剂号 药名 标准药名 剂量 标准剂量 炮制*
01 麻黄 麻黄 三两 9g 去节
01 桂枝 桂枝 二两 6g
01 杏人 杏仁 七十个 28g 去皮尖
01 炙甘草 甘草 一两 3g 炙
* 关系:一个关系就是一张二维表,每个关系有一个关系名(组成关系)。在计算机
里,一个关系可以存储为一个文件。
* 元组:表中的行称为元组。一行为一个元组,对应存储文件中的一个记录值。上表
中有4个元组。
* 属性:表中的列称为属性,每一列有一个属性名。这里的属性与前面讲的实体属性
相同,属性值相当于记录中的数据项或者字段值。
* 域:属性的取值范围,即不同元组对同一个属性的取值限定范围
* 关键字:属性或属性组合,其值能够唯一地标识一个元组。例如上表中的“标准药
名”。
* 关系模式:对关系的描述称为关系模式,格式为:关系名(属性1、属性2、属性3…
…属性n)
* 元数:关系模式中属性的数目是关系的元数。
了解上面的术语之后,又可以将关系定义为元组的集合;关系模式是属性的集合;元组是
属性值的集合;一个具体的关系模型是若干个关系模式的集合。
记录之间的联系是通过不同关系中的同名属性来体现的,例如要查有“麻黄”的处方,都
治疗那些病证,那么就必须在有标准药名“麻黄”的方剂编号查出来,再根据方剂编号与
病证的关系表,找到这些方剂主治的病证。
关系模型的用户界面简单,有严格的设计理论,它已经成为几种数据模型中最主要的
数据模型。70年代初,E.F.CODD定义了关系数据库的基本概念,为关系数据库系统的全面
开发奠定了基础。70年代末推出了一些试验系统,80年代初出现了一批商品化的关系数据
库管理系统,如SQL/DS、DB2、INGRES、ORACLE、INFOMIX、UNIFY、DBASE等。SQL语言在1
986年被美国ANSI和国际标准化组织(ISO)采纳为关系数据库语言的国际标准。
关系数据模型的诞生,标志着数据库技术的成熟。它有如下的特点:
1)关系必须规范
所谓规范化就是指关系模型中的每一个关系模式都必须满足一定的要求。最基本的要求是
每个属性值必须是不可分割的数据单元,即表中不能再包含表。如下图所示:
姓名 职称 应发工资 应扣工资
基本工资 业绩工资 车补 房租 水电 所得税
2)模型概念单一
在关系模型中,无论实体本身还是实体间的联系均用关系表示。多对多联系在非关系模型
中不能直接表示,在关系模型中则变得非常简单了。在层次模型和网状模型中实体用记录
来表示,联系用指针链接,概念不单一。这正是关系模型和非关系模型的本质的区别。关
系模型无需另设指针,而是数据本身自然地反映它们之间的联系。如下表所示:
病名 方名
病1
病1
病2
病2
病2
病3
病3
病3
病3 方1
方2
方1
方2
方3
方1
方2
方3
方4
3)集合操作
在关系模型中,操作的对象和结果都是元组的集合,即关系。
关系模型的上述特点也是它的优点,关系模型虽然出现得比较晚,但发展十分的迅速,成
为数据库技术中的主流技术。
4、面向对象模型(80年代开始)
面向对象模型中最基本的概念是对象(object)和类(class)
1)对象:现实世界中实体的模型化,它和记录的概念相似,但是更加复杂。每一个对
象有一个唯一的标识符,并把一个状态(state)和一个行为(behavior)封装在一起。对
象的状态是描述该对象属性值的集合,对象的行为是对该对象操作的集合。
2)类:每个类由两个部分组成,其一是类型;其二是对这个对象类型进行的操作方法
。类的定义使得共享同样属性集合和方法集合的对象组合成一类。
3)类层次:一个系统中所有的类和子类组成一个树状的类层次。
面向对象数据库是数据库技术与面向对象程序设计方法相结合的产物,它可支持非常
规应用领域的新一代数据库系统。由于面向对象模型中不仅包括对象状态的属性集,而且
包括类的方法及类层次,具有丰富的表达能力。因此,面向对象的数据库比层次、网状、
关系数据库使用方便。但由于模型复杂,系统实现起来难度大。目前,已经出现了一些小
规模的面向对象的数据库系统,但尚未被广泛使用。
面向对象数据库技术可望成为继关系数据库技术之后的新一代数据管理技术,但面向
对象数据库的成熟仍有赖于许多关键问题的解决。标准化和形式化是面向对象数据库系统
研究和发展的一个重要方向;必须考虑新、旧技术的接轨问题;面向对象数据库模型有丰
富的建模能力,这一方面使用户建模容易,另一方面也使面向对象数据库模式复杂,需要
研制更高级的数据库工具;视图、演绎能力、语义建模和长事务也是面向对象系统应该具
备的数据库特征;可扩充体系结构也是一个重要方向。
参考文献:
《ORACLE数据库系统基础》清华大学出版社 俞盘祥编著
《数据库原理及应用》清华大学出版社 李大友编
《数据库技术新进展》清华大学出版社 李绍原主编
--
※ 来源:.南京大学小百合站 http://bbs.nju.edu.cn [FROM: 202.112.59.146]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -