数据库管理系统及应用
20世纪80年代以来,面向对象的方法和技术在计算机各个领域,包括程序设计语言、软件工程、信息系统设计、计算机硬件设计等各方面都产生了深远的影响,也促进数据库中面向对象数据模型的研究和发展。
数据结构、数据操作和完整性约束条件这三个方面的内容完整地描述了一个数据模型,其中数据结构是刻画模型性质的最基本的方面。
注意:这里讲的数据模型都是逻辑上的,也就是说是用户眼中看到的数据范围.同时它们又都是能用某种语言描述,使计算机系统能够理解,被数据库管理系统支持的数据视图。这些数据模型将以一定的方式存储于数据库系统中,这是DBMS的功能,是DBMS中的存储模型。
在格式化模型中,实体用记录表示,实体的属性对应记录的数据项(或字段)。实体之间的联系在格式化模型中转换成记录之间的两两联系。
格式化模型中数据结构的单位是基本层次联系。所谓基本层次联系是指两个记录以及它们之间的一对多(包括一对一)的联系,如图2.8所示。图中Ri位于联系Lij的始点,称为双亲结点
Rj Ri 双亲节点
Lij 一对多(包括一对一)的联系名 子女节点
图 2.8 基本层次联系
(Parent),Rj位于联系Lij的终点,称为子女结点(Child)。
2.1.5 层次模型和网状模型
层次模型是数据库系统中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。层次数据库系统的典型代表是IBM公司的IMS(Information Management System)数据库管理系统,这是1968年IBM公司推出的第一个大型的商用数据库管理系统,曾经得到广泛的使用。
层次模型用树形结构来表示各类实体以及实体间的联系。现实世界中许多实体之间的联系本来就呈现出一种很自然的层次关系,如行政机构、家族关系等。
在现实世界中事物之间的联系更多的是非层次关系的,用层次模型表示非树形结构是很不直接的,网状模型则可以克服这一弊病。
网状数据库系统采用网状模型作为数据的组织方式。网状数据模型的典型代表是DBTG系统,亦称CODASYL系统。这是20世纪70年代数据系统语言研究会 (Conference On Data System Language,CODASYL)下属的数据库任务组(Data Base Task Group, DBTG)提出的一个系统方案。DBTG系统虽然不是实际的软件系统,但是它提出的基本概念、方法和技术具有普遍意义。它对于网状数据库系统的研制和发展起了重大的
— 23 —
第二章 数据模型和数据库系统结构
影响。后来不少的系统都采用DBTG模型或者简化的DBTG模型。例如,Cullinet software公司的IDMS、Univac公司的DMS1100、HoneyWell公司的IDS/2、HP公司的IMAGE等。
2.1.6 关系模型
关系模型是目前最重要的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。
1970年美国IBM公司San Jose研究室的研究员E.F.Codd首次提出了数据库系统的关系模型,开创了数据库关系方法和关系数据理论的研究,为数据库技术奠定了理论基础。由于E.F.Codd的杰出工作,他于1981年获得ACM图灵奖。 一、关系数据模型的数据结构
关系模型与以往的模型不同,它是建立在严格的数学概念的基础上的。严格的定义将在下一章给出。这里只简单勾画一下关系模型。在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。现在以学生登记表(如图2.9所示)为例,介绍关系模型中的一些术语。
学生登记表
学 号 08001 08002 08003 ? 姓 名 王小飞 黄大鹏 张 楠 ? 年 龄 19 20 19 ? 性 别 男 男 女 ? 系 名 国贸 会计 工商 ? 年 级 08 08 08 ? 图 2.9 关系模型的数据结构
·关系(Relation):一个关系对应通常一张表,如图2.9的这张学生登记表; ·元组(Tuple):表中的一行即为一个元组;
·属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名。如上表有六列,对应六个属性(学号,姓名,年龄,性别,系名和年级);
·主码(Key):表中的某个属性组,它可以唯一确定一个元组,如图2.9中的学号,可以唯一确定一个学生,也就成为本关系的主码;
·域(Domain):属性的取值范围,如人的年龄一般在1~150岁之间,大学生年龄属性的域是(14~38),性别的域是(男,女),系别的域是一个学校所有系名的集合;
·分量:元组中的一个属性值;
·关系模式:对关系的描述,一般表示为:
关系名(属性1,属性2,...,属性n)
— 24 —
数据库管理系统及应用
例如上面的关系可描述为:
学生(学号,姓名,年龄,性别,系名,年级)
在关系模型中,实体以及实体间的联系都是用关系来表示。例如学生、课程、学生与课程之间的多对多联系在关系模型中可以如下表示:
学生(学号,姓名,年龄,性别,系名,年级) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩)
关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件,这些规范条件中最基本的一条就是,关系的每一个分量必须是一个不可分的数据项,也就是说,不允许表中还有表,图2.10中工资和扣除是可分的数据项,工资又分为基本工资、工龄工资和职务工资,扣除又分为房租和水电,因此,图2.10的表就不符合关系模型要求。
二、关系数据模型的操纵与完整性约束
关系数据模型的操作主要包括查询、插入、删除和修改数据。这些操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:实体完整性、参照完整性和用户定义的完整性。其具体含义将在后面介绍。
工资构成 职工号 08055 ? 姓名 张彬 ? 职称 基本 助教 ? 950 ? 工龄 200 ? 职务 300 ? 房租 200 ? 水电 100 ? 1150 ? 扣款 实发 图 2.10 不符合关系模型要求的表格
关系模型中的数据操作是集合操作,操作对象和操作结果都是关系,即若干元组的集合,而不像格式化模型中是单记录的操作方式。另一方面,关系模型把存取路径向用户隐蔽起来,用户只要指出“干什么”,或“找什么”,不必详细说明“怎么干”或“怎么找”,从而大大地提高了数据的独立性,提高了用户生产率。 三、关系数据模型的存储结构
在关系数据模型中,实体及实体间的联系都用表来表示。在数据库的物理组织中,表以文件形式存储,有的系统一个表对应一个操作系统文件,有的系统自己设计文件结构。
2.1.6.4 关系数据模型的优缺点
关系数据模型具有下列优点:
— 25 —
第二章 数据模型和数据库系统结构
·关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。 ·关系模型的概念单一。无论实体还是实体之间的联系都用关系表示。对数据的检索结果也是关系(即表)。所以其数据结构简单、清晰,用户易懂易用。
·关系模型的存取路径对用户透明,从而具有更高的数据独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作。
所以,关系数据模型诞生以后发展迅速,深受用户的喜爱。
当然,关系数据模型也有缺点,其中最主要的缺点是,由于存取路径对用户透明,查询效率往往不如格式化数据模型。因此为了提高性能,必须对用户的查询请求进行优化,但这增加了开发数据库管理系统的难度。
— 26 —
相关推荐: