已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 数据模型与概念模型,什么是数据模型 概念模型 常见的数据模型,数据模型,为什么要建立数据模型(Data Model)? 象盖大楼的设计图一样,DM可使所有的 项目参与者都有一个共同的数据标准 避免出现问题再解决(边干边改的方式) 可及早发现问题 加快应用开发速度,数据模型,通俗来讲,数据模型就是对现实世界的模拟、描述或表示。数据模型应满足的三个要求:,(1)比较真实地描述现实世界;,(2)易为用户所理解;,(3)易于在计算机上实现。,数据模型的构成,数据模型的三要素 数据结构 数据的表示方法(数据的组织形式),是一种静态特征的描述 数据操作 数据操作是指对数据库的查询、修改、删除和插入等操作,是一种动态特征的描述 完整性约束 数据及数据间联系应具有的制约和依赖规则 如:一个系可有多个学生,一个学生只能属于一个系,数据模型的分类,根据不同的抽象层次,数据模型分为三类 概念数据模型 结构数据模型 / 逻辑数据模型 物理数据模型,(1) 现实管理系统的用户与计算机管理系统的设计人员之间的专业差异。,(2) 用户理解与计算机实现的矛盾。,现实世界的数据化过程,数据模型的分类,概念数据模型 现实世界的事物经过人脑的抽象加工,提取出对用户有用的信息,经过组织整理加工形成结合现实世界和计算机世界之间的中间模型 数据库的设计人员在设计的初始阶段摆脱具体技术问题,集中精力分析数据、数据之间的联系 最常用的概念模型是E-R模型 概念模型与具体的DBMS无关,它必须转换成结构模型,才能在DBMS中实现,数据模型的分类,结构数据模型(逻辑数据模型) 面向用户建模,它是用户从数据库所看到的数据模型 是具体的DBMS所支持的数据模型(网状/层次 /关系/面向对象) 既要面向用户,也要面向系统 一般由概念模型转换得到,数据模型的分类,物理数据模型 面向具体的DBMS,面向机器,描述数据在存储介质上的组织结构 不仅与具体的DBMS有关,还与操作系统和硬件有关 为保证其独立性和可以执行,大部分PDM的实现工作由系统自动完成,而设计者只设计索引、聚簇等特殊结构,现实世界,信息世界 概念模型,机器世界 物理模型,认识抽象,转换,逻辑模型,第2章 数据模型与概念模型,什么是数据模型 概念模型 常见的数据模型,基本术语,实体 客观存在并可相互区别的事物 如:每个学生、每个职工、学生的一次注册 实体集 同类实体的集合 如:全体教师、所有学生的注册 属性 实体的某一特性 如:姓名、年龄、性别、职称、注册时间、宗教,概念模型,概念模型,码(Key) 能唯一标识实体的属性(或属性集合) 如:学号、系号、身份证号码 域(Domain) 属性的取值范围,即属性的域 如:学号的域:8位字符串;年龄的域:1275 联系(Relationship) 现实世界中事物之间的联系 如:一个班级有多个学生;一个系有多个班级 ,概念模型,术语的对应关系,实体集 同型实体的集合称为实体集。例如,全体学生就是一个实体集。,概念模型,联系的分类 实体集内部的联系,即实体集内部实体之间的联系; 实体集之间的联系,即一个实体集中的实体与另一实体集中实体的联系。,概念模型,实体集之间的联系分为三类 (1) 一对一联系(11)对于实体集A和实体集B来说,如果对于A中的每一个实体a,B中至多有一个实体b与之联系;而且,对于实体集B和实体集A来说,也是如此,则称实体集A与实体集B具有一对一联系,记为11。 如:一个班级只有一个班长,一个公司只有一个总经理,一个组只有一个组长 ,概念模型,(2)一对多联系(1n)对于实体集A中每一个实体,在实体集B中有n个实体与之联系,而且,对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,则称实体集和实体集具有1对多的联系,记为1n。 如:一个班主任管理多个学生,一个项目经理管理多个组员,一个教师可以教授多门课程 ,概念模型,(3)多对多联系(mn)如果对于实体集A中的每一个实体,实体集B中有n个实体与之联系;同时,对于实体集B中的每一个实体,实体集A中有m个实体与之联系,则称和具有多对多联系,记为mn。 如:一个学生可以选修多门课程,一门课程可以被多个学生选修;一份订单可以订购多种产品,一种产品可以被多份订单订购 ,概念模型,ER模型的图示形式就称为ER图。ER 图提供了用图形表示实体型、属性和联系的方 法。ER图的要点如下: 实体型 用矩形表示,矩形框内写明实体名。,学生,教师,概念模型,属性 用椭圆形表示,并用无向边将其与相应的实体连接起来。,概念模型,联系 联系本身:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n),概念模型,联系 联系的属性:联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。,概念模型,实例 课程、教师与参考书三个实体型 一门课程可以有若干个教师讲授, 使用若干本参考书, 每一个教师只讲授一门课程, 每一本参考书只供一门课程使用,概念模型,实例 供应商、项目、零件三个实体型;一个供应商可以供给多个项目多种零件; 每个项目可以使用多个供应商供应的零件; 每种零件可由不同供应商供给。,概念模型,实例 职工实体型内部具有领导与被领导的联系; 某一职工(干部)“领导”若干名职工; 一个职工仅被另外一个职工直接领导;,随堂练习1,设有商店和顾客两个实体,“商店”的属性有商店编号、商店名、地址、电话,“顾客”的属性有顾客编号、姓名、地址、年龄、性别。假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每次区商店购物有一个消费金额和日期。试画出ER图,并注明属性和联系类型。,随堂练习2,设有一局部应用,包括3个实体“科室”、“医生”、“病人”,且有如下事实:每位医生属于且仅属于一个科室;每个科室有多位医生可以接诊病人;病人根据自己的症状选择相应的科室就诊;一位病人在同一科室中多次看病时,每次可能由不同的医生为其诊断。设科室的属性包括科室代码、科室名称,医生的属性包括工号、姓名、职称,病人的属性包括姓名、年龄、工作单位。试画出ER图,并注明属性和联系类型。,第2章 数据模型与概念模型,什么是数据模型 概念模型 常见的数据模型,常见的数据模型,基于树的层次模型(hierarchical model) 20世纪60年代末到70年代初 基于图的网状模型(network model) 20世纪70年代 基于表的关系模型(relational model) 20世纪80年代至今 基于对象的面向对象模型(Object Oriented Model) 研究开发中,层次模型,20世纪60年代末到70年代初 有且仅有一个根节点;其它节点有且仅有一个父节点,根结点,叶结点,叶结点,层次模型(续),教员学生层次数据库的一个实例,层次模型,优点 结构简单 缺点 不能表示两个以上实体之间的复杂联系和实体之间的多对多联系;严格的层次顺序使数据插入和删除操作变得复杂,容易产生冗余、插入异常、删除异常、修改异常等。,网状模型,20世纪70年代 允许一个以上节点无父节点 一个节点可以有多于一个父节点,网状模型(续),例如:一个学生可以选修若干门课程,某一课程 可以被多个学生选修,学生与课程之间是多对多 联系。 引进一个学生选课的联结记录,由3个数据项组成 学号 课程号 成绩 表示某个学生选修某一门课程及其成绩,网状模型(续),学生/选课/课程的网状数据模型,网状模型(续),学生/选课/课程的网状数据库实例,网状模型,优点 能够更直接的描述现实世界 缺点 结构比较复杂,而且随着应用环境的扩大,数据库的结构变得越来越复杂,不利于用户掌握;DDL和DML语言复杂,用户不容易使用;程序员要为访问数据设置存取路径,加重编程负担。,关系模型,20世纪80年代 在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成。,学生登记表,属性,元组,关系模型(续),例1. 学生、系、系与学生之间的一对多联系: 学生(学号,姓名,年龄,性别,系号,年级) 系 (系号,系名,办公地点) 例2. 学生、课程、学生与课程之间的多对多联系: 学生(学号,姓名,年龄,性别,系号,年级) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩),关系模型,优点 使用表的概念,简单直观;直接表示实体之间的多对多联系;具有更好的数据独立性。 缺点 关系模型中的数据联系是靠数据冗余实现的,由于数据冗余,使得关系的空间效率和时间效率较低;关系模型的连接等操作开销较大,需要较高性能的计算机的支持。,面向对象模型,对象模型 使用面向对象技术来表示信息世界的实体类型及实体之间联系的模型称为对象模型。,对象,封装,消息,面向对象模型,优点 (1)适合处理各种各样的数据类型:例如图片、声音、视频、文本、数字等。 (2)面向对象程序设计与数据库技术相结合:提供了一个集成应用开发系统。 (3)提高开发效率:面向对象数据模型提供强大的特性,例如继承、多态和动态绑定,这样用户不用编写特定对象的代码就可以构成对象并提供解决方案。,面向对象模型,缺点 (1)没有准确的定义:很难提供一个准确的定义来说明面向对象DBMS应建成什么样 (2)维护困难:随着组织信息需求的改变,对象的定义也要求改变并且需移植现有数据库,以完成新对象的定义。 (3)不适合所有的应用:面向对象数据模型用于需要管理数据对象之间存在的复杂关系的应用,它们特别适合于特定的应用,例如工程、电子商务、医疗等,但并不适合所有应用。,对象关系数据模型,1. 对象关系数据模型的概念 对象关系数据模型使用二维表表示数据,它包括关系表和对象表两种。关系表属于关系模型,关系的属性对应于表的列,关系的元组对应于表的行,关系模型装不支持方法。对象表属于面向对象数据模型,支持面向对象的基本功能,对象的类抽象对应二维表,类的实例(对象)对应于表中的行,类的属性对应于表的列,通过对象可调用方法。,. 对象表的数据类型和表结构特点,(1)对象表的属性支持复合数据类型 关系表强调属性数据只能是不可分割的简单数据项,复合数据是不允许出现的。对象表的数据可以是基本项,也可以是组合数据项。,学生信息的对象表结构,(2)对象表的属性支持可变长数组类型,关系表的属性不支持数组类型,更不支持可变长的数组类型。对于一些数据个数不确定的信息,关系表只能独立新建表的方法解决。对象表增加了数组类型,用户可以使用可变长的数组类型保存记录中数据个数不一样的属性数据。,学生-选课的对象表,(3)对象表的属性支持嵌入表数据类型,对象表中的属性,不仅可以是复合数据、数组数据等带结构的数据,还可以是嵌套表,信息结构更复杂、更丰富。嵌套表有行和列,表的长短与具体元组有关。,课程号 课程名 成绩 C20 数据库 72 C11 C语言 87 C32 软件工程 76,课程号 课程名 成绩 C20 数据库 86 C32 软件工程 75,课程号 课程名 成绩 C20 数据库 67,随堂练习,1、( )属于信息世界的模型,实际上是现实世界到机器世界的一个中间层次。 A.数据模型 B.概念模型 C.E-R图 D.关系模型,2、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美术馆室内设计招投标样本
- 公积金贷款利率变动趋势
- 航空器材货车司机招聘合同样本
- 节假日货车租赁合同样本
- 月底销售冲刺总结5篇
- 体育馆防潮层施工承包合同
- 交通运输会计招聘合同范本
- 污水处理厂泵房建设合同
- 产业园区混凝土施工合同
- 服装剪裁刀具选择原则
- YY∕T 1782-2021 骨科外固定支架力学性能测试方法(高清最新版)
- 西亚教学设计与反思
- 乙酸乙酯的反应器设计流程图
- EM277的DP通讯使用详解
- 耐压绝缘测试报告
- 野兽派 beast 花店 调研 设计-文档资料
- 水泵房每日巡视检查表
- 杭州市区汽车客运站临时加班管理规定
- 垫片冲压模具设计毕业设计论文
- 冷库工程特点施工难点分析及对策
- Python-Django开发实战
评论
0/150
提交评论