数据模型.docx
- 文档编号:12783567
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:12
- 大小:80.22KB
数据模型.docx
《数据模型.docx》由会员分享,可在线阅读,更多相关《数据模型.docx(12页珍藏版)》请在冰豆网上搜索。
数据模型
第二章数据模型
在数据库中用数据模型这个工具来抽象、表示和处理现实世界。
客观对象的抽象过程---两步抽象
⏹现实世界中的客观对象抽象为概念模型;
概念模型也称信息模型,它是按用户的观点来对数据和信息建模。
⏹把概念模型转换为某一DBMS支持的数据模型。
数据模型主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。
2.1概念模型
概念模型是现实世界到机器世界的一个中间层次。
是数据库设计人员和用户之间进行交流的语言,因此,它应具有:
Ø较强的语义表达能力
Ø简单、清晰,易于用户理解
一、概念模型涉及的基本概念:
(1)实体(Entity)
客观存在的并可相互区别的事物称为实体,可以是具体的人、事、物,也可以是抽象的概念或联系。
(2)属性(Attribute)
实体所具有的某一特性称为属性。
一个实体可以由若干个属性来刻画。
如学生实体可以由学号、姓名、性别、出生年月等属性组成。
(3)码(Key)
唯一标识实体的属性集称为码。
例如学号是学生实体的码。
(4)域(Domain)
属性的取值范围称之为该属性的域。
例如学生实体的性别的域为(男,女),年龄的域为小于38岁等等。
(5)实体型(EntityType)
用实体名及其属性名集合来抽象和刻划的同类实体,称为实体型。
例如:
学生(学号,姓名,性别,出生年月,系,入学时间)就是一个实体型。
(6)实体集(EntitySet)
同型实体的集合,称为实体集。
例如全体学生就是一个实体集。
(7)联系(Relationship)
实体内部的联系:
指实体的各属性之间的联系。
实体之间的联系:
指不同实体集之间的联系。
两个实体集之间的联系可以分为三类:
一对一联系(1:
1)、一对多联系(1:
n)和多对多联系(m:
n)。
两个以上实体集之间也存在着一对一、一对多、多对多的联系。
(第18页图1.11)
同一实体集内的各实体之间也存在一对一、一对多、多对多的联系(第18页图1.12)
二、概念模型的表示方法
概念模型是对信息世界建模,所以概念模型应该方便、准确地表示出信息世界中常用概念。
概念模型的表示方法很多,其中最常用最著名的是实体-联系方法(Entity-RelationshipApproach),简称E-R方法。
E-R方法是用E-R图来描述现实世界的概念模型,也称为E-R模型。
实体-联系方法是抽象和描述现实世界的有力工具。
用E-R图表示的概念模型独立于具体的DBMS所支持的数据模型,它是各种数据模型的共同基础,因而比数据模型更一般、更抽象、更接近现实世界。
2.2数据模型
一、数据模型的组成要素
数据模型是严格定义的一组概念的集合。
这些概念精确地描述了系统的静态、动态特性和完整性约束条件。
数据模型通常由数据结构、数据操作和完整性约束三部分组成,称之为数据模型的三要素。
1)数据结构分为:
层状结构、网状结构和关系结构
数据结构是刻画数据模型性质最重要的方面,因此数据库系统中通常按照数据结构类型来命名数据模型,如层次模型、网状模型和关系模型。
数据结构是对系统静态特性的描述。
2)数据操作是对系统动态特性的描述,它主要包括对数据库的两大类操作:
即检索和更新。
Ø检索:
是指对数据的筛选、统计和读取等操作
Ø更新:
是指对数据的插入、删除和修改操作
3)数据的完整性约束条件:
数据的完整性约束条件是一组完整性规则的集合。
完整性规则是给定数据模型中数据及其联系所具有的制约和依存规则。
这些规则的作用是保证数据的正确、有效和相容性。
本科生年龄不大于30岁,研究生年龄不大于38岁,学生累计成绩不得有三门以上不及格。
二、最常用的数据模型
数据库领域最常用的数据模型有四种:
✧层次模型(HierarchicalModel)
✧网状模型(NetworkModel)
✧关系模型(RelationalModel)
✧面向对象模型(ObjectOrientedModel)
面向对象数据库系统(OODBS)是数据库技术与面向对象程序设计方法相结合的产物。
它所支持的面向对象数据模型(OO模型)目前仍缺少统一的规范说明,即没有一个统一的严格的定义。
在此不做深入的讨论。
在关系数据模型产生之前,数据库管理系统普遍使用的数据模型是层次和网状数据模型,它们又被称为非关系数据模型.它们的数据结构和图的结构是相互对应的.
在非关系模型中,概念模型中的实体型反映为记录型,实体型的属性反映为记录的字段。
因此,图的结点表示为记录型,结点之间的连线表示为记录型之间的联系。
在非关系数据模型中,将两个记录型之间的一对一、一对多和多对多的联系,归结为一个只有1:
n联系的基本层次联系,(因为1:
1可以看作是1:
n的特例,m:
n可以分解为两个1:
n的联系)。
图中Ri位于联系Lij的始点,称为双亲结点(Parent),Rj位于联系Lij的终点,称为子女结点(Child)。
1、层次模型:
在现实世界中,许多事物都是按层次组织起来的,如一个家族、一所高校的组成都是典型的层次结构,为了描述这样的客观对象,层次数据模型也就应运而生。
层次数据模型,满足下列两个基本条件:
Ø有且仅有一个结点无双亲,这个结点称为根结点;
Ø其它结点有且仅有一个双亲。
在层次模型中,同一双亲的子女结点称为“兄弟结点”,没有子女的结点称为“叶结点”。
从P92图5-18可以看出,层次模型象一棵倒立的树,所以层次模型也称为树状模型。
层次模型中的每一个结点表示一个记录型。
结点之间的有向线表示记录型之间的联系,这种联系是父与子之间的一对多的联系。
在层次模型的中,任何一个给定的记录值只有按其路径查看时,才能显出它的全部意义,没有一个子女记录值能够脱离双亲记录值而独立存在。
层次模型对具有一对多的层次联系的部门描述得非常自然、直观,易于理解。
历史上最典型层次模型,是1968年由IBM公司推出的数据库管理系统是IMS(InformationManagementSystem)。
网状模型:
采用层次模型组织数据,使数据的查询变得很简便,无需设计特别的算法,因为查询路径是唯一的。
它的这种简单性,一方面给数据的查询带来了好处。
另一方面,又使它在描述具有复杂联系的客观事物时,显得力不从心。
这使得它不得不重新考虑放宽对其结构中结点的两个限制条件。
从而使它让位于网状数据模型,即网状数据模型符合下列两个条件:
Ø允许有一个以上的结点无双亲;
Ø允许一个结点可以有多于一个的双亲。
从上述定义看出,层次模型中子女结点与双亲结点的联系是唯一的,而在网状模型中这种联系可以不唯一。
因此,在网状模型中,要为每个联系命名,并指出与该联系有关的双亲记录和子女记录。
(P93图5-20)
网状数据模型中记录的概念,类似于关系数据模型中关系的概念。
如:
记录型→(对应)→关系模式,记录→(对应)→关系的元组,记录字段→(对应)→关系的属性
网状数据库采用网状模型作为数据的组织方式。
网状数据库的典型代表是CODASYL系统,这是20世纪70年代数据系统语言研究会CODASYL(ConferenceOnDataSystemsLanguage)下属的数据库任务组(DataBaseTaskGroup,DBTG)提出的一个系统方案,所以又称为DBTG报告。
DBTG报告虽然不是一个具体的数据库管理系统,但是它提出的基本概念、方法和技术具有普遍意义,后来很网状数据库管理系统都是采用DBTG报告所提出的模型设计的。
网状模型取消了对层次模型结点的两个限制,从而构成了比层次结构更复杂的网状结构。
尽管网状模型也不支持多对多联系,但由于一个多对多联系可以转化为两个一对多联系,所以网状模型可以间接地描述多对多联系。
例如学生(S)与课程(C)是多对多的联系,一个学生可以选修多门课程,一门课程也可以供多个学生选读,这种联系用层次模型是很难描述的,如果在学生与课程之间建立一个中间实体:
“学生-课程(SC)”,这就可以把原来的多对多联系转化为S与SC、C与SC这两个一对多联系,而这种情况正是典型的网状结构,
网状数据模型的优点:
✓能够更为直接地描述现实世界,如一个结点可以有多个双亲。
✓具有良好的性能,存取效率较高。
网状数据模型的缺点:
✧结构比较复杂,且随着应用环境的扩大,数据库的结构变得越来越复杂,不利于最终用户的掌握。
✧其DDL,DML语言复杂,用户不易使用
✧由于记录之间的联系是通过存取路径实现的,应用程序在访问数据时必须选择适当的存取路径,因此,用户必须了解系统结构的细节,加重了编写应用程序的负担。
层次数据库是数据库应用的先驱,而网状数据库则对数据库的概念、方法、技术进行了较全面的发展。
所以对这两种数据模型的了解有助于今后对数据库技术的进一步学习和研究。
层次模型和网状模型统称为非关系模型,非关系模型数据库系统在20世纪70年代至80年代初非常流行,在数据库系统产品中占据主导地位,而现在已经被关系模型数据库系统取代。
除在美国等一些少数国家外,基本上很少使用。
关系模型是目前使用最广泛的数据模型,占据了统治地位。
所以,我们主要介绍关系模型。
关系模型是数据库领域中目前最重要的一种数据模型。
自20世纪80年代以来,计算机厂商推出的DBMS几乎都支持关系模型。
即便是非关系模型数据库系统产品也大都加上了关系接口。
目前的数据库领域的研究工作也都是以关系方法为基础的。
关系模型与非关系模型不同,它是建立在严格的数学概念的基础上的。
为了便于理解,这里主要讨论按照用户观点所应了解的关系模型。
在用户看来,关系模型中数据结构就是一张二维表。
(如P31图1.27所示)
学生登记表:
学号
姓名
性别
年龄
系号
年级
950104
王小明
女
19
01
95
950206
黄大鹏
男
20
02
95
950508
张文斌
女
18
05
95
…
…
…
…
…
…
系信息表:
系号
系名
办公室
主任
电话
01
计算机
教209
张立
5585021
02
物理
教501
李可
2334102
…
…
…
…
…
05
地质工程
教301
陈鹏
5585206
上表是一张学生登记表,和一张系信息表,它们由行和列组成。
现以上两表为例,介绍关系模型中的一些术语如下:
(1)关系(Relation):
一个关系对应通常所说的一张二维表;
(2)元组(Tuple):
表中的一行即为一个元组;
(3)属性(Attribute):
表中的一列即为一个属性,给每一个属性起一个名称即属性名。
上表有六列,对应六个属性(学号,姓名,性别,年龄,系号和年级);
(4)域(Domain):
属性的取值范围,所以又称“值域”;
(5)分量:
元组中的一个属性值;
(6)关系模式:
对关系的描述,一般表示为:
关系名(属性1,属性2,…,属性n)
(7)关键字或码(Key):
表中用来唯一确定(标识)一个元组的某个属性或属性组合。
如表中学号;
关键字必须唯一,但它的唯一性不是只对关系的当前元组构成来确定的。
还要考虑元组构成的将来可能性。
如表中姓名
一个关系中,关键字的值不能为空,即关键字的值为空的元组在关系中是不允许存在的。
与关键字相关的术语:
①候选关键字(CandidateKey)或候选码:
如果一个关系中存在多个属性或属性组合都能用来唯一标识该关系的元组,这些属性或属性组合都称为该关系的候选关键字或候选码。
②主关键字(PrimaryKey)或主码:
在一个关系的若干个候选关键字中指定作为关键字的属性或属性组合称为该关系的主关键字或主码。
③非主属性(NonPrimaryAttribute)或非码属性:
关系中不组成码的属性均为非主属性或非码属性。
④外部关键字(ForeignKey)或外键:
当关系中某个属性或属性组合虽不是该关系的关键字或只是关键字的一部分,但却是另外一个关系的关键字时,称该属性或属性组合为这个关系的外部关键字或外键。
⑤主表与从表:
主表与从表是指以外键相关联的两个表;以外键作为主键的表称为主表,外键所在的表称为从表。
(8)关系模型(Relationalmodel):
用二维表结构来表示实体及实体间联系的模型称之。
关系模型要求关系必须是规范化的,即要求关系必须满足一定的规范条件。
其中最基本的一条是:
关系的每一个分量必须是一个不可分的数据项,即不允许表中还有表。
如P32图1.28就不符合关系模型的要求。
在关系模型中,实体及实体间联系都是用关系来表示的。
例如:
学生、课程、学生与课程之间的多对多联系在关系模型中可以如下表示:
学生(学号,姓名,性别,年龄,系,年级)
课程(课程号,课程名,学分)
选修(学号,课程号,成绩)
2、关系数据模型的操纵
(1)操作:
查询、插入、删除、修改。
前一种为检索,后三种为更新,关系模型数据操作的特点如下:
✧集合操作,操作对象和操作结果都是关系,即若干组元的集合;
✧存取路径对用户隐蔽,用户只要指出:
“干什么”或“找什么”,不必考虑“怎么找(干)”
✧存取路径由RDBMS自动选择,方便了用户,提高了数据的独立性。
(2)关系数据操作的理论标准为关系代数或关系演算。
其中,关系演算又分为元组关系演算和域关系演算两种。
关系代数、元组关系演算和域关系演算三种抽象语言在表达能力上是完全等价的。
(3)介于关系代数和关系演算之间的实用的代表性的关系操纵语言是SQL(StructuredQueryLanguage),
3、完整性约束条件:
包括:
实体完整性、参照完整性、用户定义的完整性。
1)实体完整性(EntityIntegrity)
定义:
若属性A是基本关系R的一个主属性,则任何元组在A上的分量都不能为空。
实体完整性规定:
主码的任何属性都不能为空。
这是因为:
✧一个基本关系通常对应概念模型中的一个实体集或联系;
✧概念模型中的实体及联系都是可区分的,它们有某种唯一性标识,称之为“码”;
✧主码不能取空值。
若取空值,则表明存在一个不以“码”为唯一性标识的实体。
2)参照完整性(ReferentialIntegrity)
参照完整性是对关系间引用数据的一种限制。
定义:
若属性组A是基本关系R1的外码,它与基本关系R2主码K相对应,则R1中每个元组在A上的值必须为以下两种情况之一:
✧等于R2中某元组的主码值;
✧取空值(A的每个属性值都是空值)。
例如:
职工关系(职工编号,姓名,性别,年龄,身份证号码,部门编号)
部门关系(部门编号,部门名称,部门经理)
3)用户定义的完整性
实体完整性和参照完整性是关系模型必须满足的两个完整性约束条件,任何关系系统都必须自动维护之。
用户定义的完整性约束条件是某一具体数据库的约束条件,是用户自己定义的某一具体数据必须满足的语义要求。
关系模型的DBMS应提供给用户定义它的手段和自动检验它的机制,以确保整个数据库始终符合用户所定义的完整性约束条件。
如:
职工关系(职工编号,姓名,性别,年龄,身份证号码,部门编号)
4、关系数据模型的存储结构
关系模型中,实体及实体间联系以“表”来表示,在数据库的物理组织中,表以文件形式存储。
一个数据表对应一个操作系统文件。
文件结构由系统自己设计。
5、关系数据模型的优缺点
优点:
(1)与非关系模型不同,是建立在严格的数学概念的基础上的。
(2)概念单一,无论是实体,还是实体间联系,都是以“关系”表示。
对数据的检索结果也是“关系”(即表),其数据结构简单、清晰,用户易懂易用。
(3)存取路径对用户透明,从而具更高的数据独立性,更好的安全保密性,简化了程序员的工作。
缺点:
查询效率不如非关系模型高。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据模型