数据模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
解:部门和部门主任 之间的“领导”联系是 一个一对一的联系,其 E-R图如图2.5所示。 部门和职工之间的 “所属”联系是一个一 对多的联系,其E-R图 如图2.6所示。 维修人员和设备之 间的“维修”联系是一 个多对多的联系,其ER图如图2.7所示。
2.2.4 怎样设计E-R图 设计E-R图的基本步骤如下: (1)用方框表示出实体。 (2)用椭圆表示各实体的属性。 (3)用菱形表示实体之间的联系。
1. 两个不同实体集之间联系的画法
两个不同实体集之间存在1:1、1:n和m:n联系,可以用图 形来表示两个实体集之间的这三类联系,如图2.2所示。
2. 两个以上不同实体集之间联系的画法
两个以上不同实体集之间可能存在各种关系,以3个不同实体 集A、B和C为例,它们之间的典型关系有1:n:m和r:n:m 联系。 对于1:n:m联系,表示A和B之间是1:n(一对多)联系, B和C之间是n:m(多对多)联系,A和C之间是1:m(一对多) 联系。这两个典型关系的表示方法如图2.3所示。
2.2.2 实体间的联系方式
在现实世界中,事物内部以及事物之间是有联系的,这些联 系在信息世界中反映为实体(型)内部的联系和实体(型) 之间的联系。实体内部的联系通常是指组成实体的各属性之 间的联系。实体之间的联系通常是指不同实体集之间的联系。 两个实体集之间的联系可以分为以下3类: 一对一联系(简记为1:1) 一对多联系(简记为1:n)
2.2.1 信息世界中的基本概念
实体(Entity):客观存在并可相互区别的事物称为实 体。 属性(Attribute):实体所具有的某一特性称为属性。 码(Key):码有时也称关键字。所谓码,是指在实体 属性中,可用于区别实体中不同个体的一个属性或几 个属性的组合,称为该实体集的“码”。 域(Domain):属性的取值范围称为该属性的域。 实体型(Entity Type):具有相同属性的实体必然具 有共同的特征和性质。用实体名及其属性名集合来抽 象和刻画同类实体,称为实体型。 实体集(Entity Set):同型实体的集合称为实体集。
2.3.1 层次模型
层次数据模型是数据库系统最早使用的一种模型,它的数据 结构是一棵“有向树”。层次模型的特征是:
有且仅有一个节点(即根节点)没有父节点。 其他节点有且仅有一个父节点。
例如,图2.9所示为一个系教务管理层次数据模型,图2.9 (a)是实体之间的联系,图2.9(b)是实体型之间的联系。 图2.10是一个实例。
ຫໍສະໝຸດ Baidu
数据模型
• 在数据库中用数据模型这个工具来抽象、表示 和处理现实世界中的数据和信息。
• 通俗地讲数据模型就是现实世界的模拟。
• 数据模型应满足三方面要求
– 能比较真实地模拟现实世界 – 容易为人所理解 – 便于在计算机上实现
• 不同的数据模型实际上是提供模型化数据和信息 的不同工具。根据模型应用的不同目的,可以将 这些模型划分为两类,它们分属于两个不同的层 次。 • 第一类模型是概念模型,也称信息模型, 它是按用户的观点来对数据和信息建模,主要用 于数据库设计。 • 另一类模型是数据模型逻辑模型和物理模 型 ,主要包括网状模型、层次模型、关系模型等, 它是按计算机系统的观点对数据建模,主要用于 DBMS的实现。
第二章 数据模型
2.1 2.2 2.3 2.4 什么是数据模型 概念模型 DBMS支持的数据模型 各种数据模型的总结
2.1 什么是数据模型
数据模型是客观事物及其联系的数据描述,它应具有描述 数据和数据联系两方面的功能。组成数据模型的三要素是数据 结构、数据操作和数据的完整性约束条件。 数据模型可以形式化地表示为: DM=(R,L) 其中,DM(Data Model)是数据模型的英文简称;R代 表记录型集合;L代表不同记录型联系的集合。 例如,在学生选课问题中,R是学生和课程两个记录型的 集合,L是它们之间的联系,即为“选修”联系。
网状模型的主要优点如下: 1. 更为直接地描述客观世界,可表示实体间的多种复杂联系。 2. 具有良好的性能和存储效率。 网状模型的缺点如下: 1. 数据结构复杂,导致其DDL语言也极其复杂。 2. 数据独立性差,由于实体间的联系本质上是通过存取路径 表示的,因此应用程序在访问数据时要指定存取路径。
3. 同一实体集内的二元联系的画法 同一实体集内的二元联系表示其中实体之间相互联系,同 样有1:1、1:n和n:m联系。例如,职工实体集中的领导与 被领导的联系是1:n的,而职工实体集中的婚姻联系是1:l的。 同一实体集内的1:1、1:n和n:m联系如图2.4所示。
【例2.1】 试画出3个E-R图,要求实体型之间具有一对一、 一对多和多对多各种不同的联系。
2.3.2 网状模型 用网状结构表示实体及其之间联系的模型称为网状模型。 网中的每一个节点代表一个记录型,联系用链接指针来实现。 广义地讲,任何一个连通的基本层次联系的集合都是网状模 型。它取消了层次模型的两点限制,网状模型的特征如下: 允许节点有多于一个的父节点。 可以有一个以上的节点没有父节点。
将它们合并在一起,给“选修”联系添加“分数”属性, 给“开课”联系添加“上课地点”属性,得到最终的E-R图, 如图2.8(c)所示。
2.3 DBMS支持的数据模型
E-R方法是抽象和描述现实世界的有力工具,用E-R图表 示的概念模型独立于具体的DBMS所支持的数据模型,它是 各种数据模型的共同基础。还需将概念模型转换为DBMS支 持的数据模型,也就是说必须把数据库组织成符合DBMS规 定的数据模型。 目前成熟地应用在DBMS中的数据模型有层次模型、网状 模型和关系模型。
例如,图2.13给出了一个简单的关系模型,其中图2.13(a) 给出了关系模式: 教师(教师编号,姓名,性别,所在系名) 课程(课程号,课程名,教师编号,上课教室)
图2.13(b)给出了这两个关系模式的关系,关系名称 分别为教师关系和课程关系,均包含两个元组,教师关系 的编号为主码,课程关系的课程号为主码。
2.1.1 数据的描述
对数据的描述应指出在模型中包含哪些记录型,并对记 录型进行命名;指明各个记录型由哪些数据项构成,并对数 据项进行命名,每个数据项均需指明其数据类型和取值范围, 这是数据完整性约束所必需的。 例如,在前面的学生选课问题中,学生记录型S为(学号, 姓名,性别,班号),课程记录型C为(课程号,课程名,任课教 师)。如学号由长度为10的字符型数据构成,性别只能取 “男”或“女”。
关系模型的主要优点如下: 1. 与非关系模型不同,关系模型具有较强的数学理论根据。 2. 数据结构简单、清晰,用户易懂易用,不仅用关系描述实 体,而且可用关系描述实体间的联系。 3. 关系模型的存取路径对用户透明,从而具有更高的数据独 立性和更好的安全保密性,也简化了程序员的工作以及数 据库建立与开发工作。 关系模型的缺点如下: 1. 由于存取路径对用户透明,查询效率往往不如非关系模型, 因此为了提高性能,必须对用户的查询表示进行优化,这 样又将增加开发数据库管理系统的负担。 2. 关系必须是规范化的关系,即每个属性是不可分的数据项, 不允许表中有表。
注意:一个系统的E-R图不是唯一的,从不同的侧面出 发画出的E-R图可能很不同。总体E-R图所表示的实体联系 模型,只能说明实体间的联系关系,还需要把它转换成数据 模型才能被实际的DBMS所接受。
【例2.2】 某大学选课管理中,学生可根据自己的情况选修 课程。每名学生可同时选修多门课程,每门课程可由多位教 师讲授,每位教师可讲授多门课程。画出对应的E-R图。 解:在该大学选课管理中,共有3个实体,学生实体的属 性有学号、姓名、性别和年龄,教师实体的属性有教师号、 姓名、性别和职称,课程实体的属性有课程号和课程名。如 图2.8(a)所示。其中,学生实体和课程实体之间有“选修” 联系,这是n:m联系,教师实体和课程实体之间有“开课” 联系,这是n:m联系,如图2.8(b)所示。
如图2.11所示给出了一个简单的网状模型,其中2.11(a)是 学生选课E-R图。图2.11(b)中,S表示学生记录型,C表示课 程记录型,用联系记录型L表示S和C之间的一个多对多的选修 联系。
图2.12表示一个具体实例,其中C记录有一个指针,指向 该课程号的第一个L记录。L记录有两个指针,第一个指针指 向下一个同课程号的L记录,第二个指针指向下一个同学号 的L记录。S记录有一个指针,指向该学号的第一个L记录。 这里构成的单链表均为循环单链接,用这些链表指针实现联 系。
2.1.2 数据间联系的描述
对数据间联系的描述要指明各个不同记录型间所存在的 联系和联系方式。 数据模型中的“联系”是一种特殊类型记录,通常还要 对这种“联系”进行命名。数据库系统与文件系统本质不 同就表现在数据库中各个记录是互相联系的,正是通过这 种联系,数据库才能支持访问不同类型记录的数据,并提 高数据访问的效率 例如,在前面的学生选课问题中,“选修”联系将多 个学生记录与多个课程记录关联起来,即多个学生可以选 修同一门课程,一个学生也可以选修多门课程。
多对多联系(简记为m:n)
1. 1:1联系 如果对于实体集A中的每一个实体,实体集B中至多有一 个(也可以没有)实体与之联系,反之亦然,则称实体集A 与实体集B具有1:l联系。 例如,学校里面,一个班只有一个正班长,而一个班长 只在一个班中任职,则班与班长之间具有一对一联系。 2. 1:n联系 如果对于实体集A中的每一个实体,实体集B中有n个实体 (n≥0)与之联系,反之,对于实体集B中的每一个实体,实 体集A中至多只有一个实体与之联系,则称实体集A与实体集 B有1:n联系。 例如,一个班有若干名学生,而每个学生只在一个班中 学习,则班与学生之间具有一对多联系。
3. m:n联系 如果实体集A中的每一个实体,实体集B中有n个实体 (n≥0)与之联系,反之,对于实体集B中的每一个实体,实 体集A中也有m个实体(m≥0)与之联系,则称实体集A与实 体集B具有多对多联系,记为m:n。 例如,一门课程同时有若干个学生选修,而一个学生可 以同时选修多门课程,则课程与学生之间具有多对多联系。
2.2.3 实体联系表示法(E-R方法)
建立概念模型最常用的方法是实体-联系方法,简称E-R方 法。该方法直接从现实世界中抽象出实体和实体间的联系, 然后用E-R图来表示数据模型。 在E-R图中实体用方框表示;联系用菱形表示,并且用边 将其与有关的实体连接起来,并在边上标上联系的类型;属 性用椭圆表示,并且用边将其与相应的实体连接起来。对于 有些联系,其自身也会有某些属性,同实体与属性的连接类 似,将联系与其属性连接起来。
2.2 概念模型
计算机只能处理数据,所以首先要解决的问题是按用户 的观点对数据和信息建模,然后按计算机系统的观点对数据 建模。图2.1所示的是现实世界客观对象的抽象过程。
现实世界
信息世界
机器世界
将现实世界的问题用概念模型来表示
将概念模型转换为 DBMS 支持的数据模型
概念模型实际上是现实世界到机器世界的一个中间层 次。概念模型用于信息世界的建模,是现实世界的第一层 抽象,是数据库设计人员进行数据库设计的有力工具。
2.3.3 关系模型 关系模型是用二维表格结构来表示实体和实体之间联系的 数据模型。关系模型的数据结构(型)是一个“二维表框架” 组成的集合,每个二维表又称为关系,因此可以说,关系模 型是“关系框架”组成的集合。 目前大多数数据库管理系统都是关系型的,例如,SQL Server就是一种关系数据库管理系统,它支持关系数据模型。
层次模型的主要优点如下: 1. 比较简单,仅用很少的几条命令就能操纵数据库。 2. 结构清晰,节点间联系简单,只要知道每个节点的双 亲节点,就可以知道整个模型结构。 3. 可以提供良好的数据完整性支持。 层次模型的缺点如下: 1. 不能直接表示两个以上实体间的复杂联系和实体间多 对多联系。 2. 对数据的插入和删除的操作限制太多。 3. 查询孩子节点必须通过双亲节点。
相关文档
最新文档