版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章 数据库设计中的数据模型,数 据 模 型,关系数据模型,面向对象数据模型,退 出,本 章 要 点,一、数据模型概念,设计数据库系统时,一般先用图或表的形式抽象地反映数据彼此之间的关系,称为建立数据模型。,常用的数据模型一般可分为两类,一是语义数据模型,如实体_联系模型(E-R模型),面向对象模型等;二是经典数据模型,如层次模型,网状模型,关系模型。,数 据 模 型,语义数据模型强调语义表达能力,建模容易方便,概念简单、清晰,易于用户理解,是现实世界到信息世界的第一层抽象,是用户和数据库设计人员之间进行交流的语言。,经典数据模型用于机器世界,一般和实际数据库对应,例如层次模型,网状模型,关
2、系模型分别和层次数据库,网状数据库和关系数据库对应,可在机器上实观。这类模型有更严格的形式化定义,常需加上一些限制或规定。,数 据 模 型,设计数据库时通常利用第一类模型作初步设计,之后按一定方法转换为第二类模型,再进一步设计全系统的数据库结构。通常包括数据结构、数据操作和完整性约束三部分内容。,数 据 模 型,数据结构:描述的是数据库数据的组成、特性及其相互间联系,是对系统静态特性的描述。在数据库系统中通常按数据结构的类型来命名数据模型,如层次结构、网状结构和关系结构.模型分别命名为层次模型,网状模型,关系模型。,数 据 模 型,数据操作:指对数据库中各种对象的实例允许执行的操作的集合,包括
3、操作及有关的操作规则,是对系统动态特性的描述。主要有检索和维护(包括录入、删除、修改)等两大类操作。,数 据 模 型,数据的约束条件:指数据完整性规则的集合,它是给定数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态及其变化,以保证数据的完整性。,数 据 模 型,二、数据之间的联系,1、一对一联系(1:1) 若对于实体集A中每一个实体,实体集B中至多只有一个实体与之联系,反之对于实体集B中每一个实体,实体集A中也至多只有一个实体与之联系。则称实体集A与实体集B之间具有一对一联系,记为1:1。,数 据 模 型,2、一对多联系(1:N) 若对于实体集A中的每一个实体,实
4、体集B中有n个实体(n0)与之联系。而对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多的联系,记为1:N。,数据之间的联系,3、多对多联系(M:N) 若对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反过来对于实体B中的每一个实体,实体集A中有m个实体(m0)与之联系,则称实体集A与实体集B之间有多对多联系,记为M:N。,数据之间的联系,三、实体联系模型(Entity-Relationship Model) E-R模型是P.PS.Chen于1976年提出的一种概念模型,用E-R图来描述一个系统中的数据及其之间关系。,数据模型,在E
5、-R图中,用长方形表示实体集,在长方形框内写上实体名。,用菱形表示实体间联系,菱形框内写上联系名。,用无向边把菱形和有关实体相连接,在无向边旁标上联系的类型,如1或M或N。,用椭圆形表示实体或联系的属性。如用椭图形,将它与一个相应实体间以无向边相连。或以表格形式,表示方法为:实体名(属性1,属性2)。,实体联系模型,实体联系模型,学校系统的 E-R图如右图所示:,实体联系模型,要注意的几个问题:,1、某些联系也具有属性,2、 对于三个实体m:n:p的联系,如老师、学生、课程间联系可如图2.3所示描述。,实体联系模型,3、E-R图可以表现一个实体内部部分成员和另一部分成员间的联系,这类联系称为自
6、回路。,实体联系模型,4、E-R图可以表现二个实体集间多类联系。例如一个单位中职工和工作的关系,一个职工可承担多项工作,一个工作一般有多人承担,这种工作关系是多对多的关系。另一方面,有一些职工对一些工作是主要责任人,一个职工可对多项工作负责,但一项工作只有一个责任人,它们之间这种负责关系为1对多联系,可用图2.5描述。,实体联系模型,用二维表格数据(即集合论中的关系)来表示实体和实体间联系的模型叫关系数据模型。 Oracle、DB2、Informix、Sybase、SQL Server、Access、Visual FoxPro全都是关系数据库管理系统。,关系数据模型,关系数据模型用二维表表示实
7、体集,二维表由多列和多行组成。,每列描述实体的一个属性,每列的标识称为属性名,在关系数据库中称为数据项或字段。,表中每一行称为一个元组,描述一个具体实体,在关系数据库中称为记录。,关系数据模型,元组的集合构成表,称为关系,描述一个实体集中各类数据的集合,在关系数据库中也称之为表。,关系数据模型由多个关系表构成,每个表表示法为:关系名(属性1,属性2,属性n),例如:学生(学号,姓名,性别,出生年月,专业,班级,政治面貌,家庭住址,履历)。,关系数据模型,在一个关系的属性中有的属性或属性组能唯一标识一个元组,称为主码,或称为关键字。,有些属性取值有一定范围,属性的取值范围称为域。一个域对应关系数
8、据库中的表中的一个数据项的值的集合。域可以是整数、实数、字符串、如期、逻辑真假等。,元组中一个属性值称为分量,对应关系数据库中一条具体记录的一个数据项的具体值。,关系数据模型,1、关系是元组的集合,元组在关系中的顺序不影响关系。,几点说明:,2、同一关系任意元组不允许全同。对于每一表,一般要选定或设计主码,用以区分不同元组。,3、关系的每一属性都是不可再细分的基本数据类型,这种特性称为原子性。,4、在一个表中属性排列顺序可以交换,不影响关系。,5、允许属性值为空值(null value),表示该属性值未知,空值不同于0,也不同于空格。,关系数据模型,由E-R模型转化出关系模型,画法为:,将每一
9、个实体型(矩形)用一个关系表示,实体的属性就是关系的属性,实体的码就是关系的主码。,对于一对一的联系可将原两实体合并为一个关系表示,关系属性由二个实体属性集合而成,如有的属性名相同,则应加以区分。,对于一对多的联系,在原多方实体对应的关系中,添加一方实体的主码,多方实体主码是多方对应关系的主码。,关系数据模型的设计,将多对多的联系转换为新关系,联系名为关系名,联系的属性加上相关两实体主码构成关系的属性集,相关两实体主码的集合是联系关系的主码。 例如图2.2中在成绩属性集(分数)的基础上建立关系成绩(学号,课程号,分数),它将是联系学生和课程两个实体的关系,其中,学号是学生实体的主码,课程号是课
10、程实体的主码,分数是联系“成绩”的原有属性,学号和课程号构成成绩关系的主码。,关系数据模型的设计,对于M: N: P的联系,仿照多对多联系处理,联系转化为关系,原三个相关实体的主码及联系自身的属性构成联系关系的属性。,关系数据模型的设计,对于自回路,区分一对多和多对多。对于多对多情况,先复制原实体中主码及涉及的主要属性,改名后存另一个表,再仿照一对多联系和多对多联系处理,联系转化为关系,原实体中主码加上更名后原实体中主码作为联系的属性。例如学生和学生之间合作联系可用合作(学号,相关学号)表示。,关系数据模型的设计,面向对象模型可以看成是E-R模型增加了封装、方法、和对象标识等概念后的扩展。 面
11、向对象方法将实体集抽象地看成是对象的集合,对象具有属性,接受约束,彼此间存在联系。 将对象分类并抽象成类,可以利用面向对象开发工具绘制数据模型。 将系统分析与设计统一起来,在建模基础上进一步直接建库建表。,面向对象数据模型,1997年国际对象管理集团(ObjectManagementGroup,OMG)通过将统一建模语言(Unified Modeling Language,UML)定为建模语言的行业标准,成为目前最为风行的建模语言。,面向对象数据模型,UML定义的类图 UML是由世界著名的面向对象技术专家 G. Booch、J. Rumbauhg和I. Jacobson发起,在Booch方法、
12、OMT方法和OOSE方法的基础上,汲取许多面向对象方法的优点,广泛征求意见,几经修改而完成的。目前已成为面向对象领域内占主导地位的标准建模语言。 UML用9种图:用例图、类图、对象图、时序图、活动图、协作图、组件图、状态图、部署图对现实世界进行模拟。,面向对象数据模型,类是具有相似结构、行为和关系的一组对象的抽象表示。 对象是类的实例,它定义了系统在给定时刻具有的物理元素,而没有具体考虑系统的动态活动。 UML规定用类图描述类及其之间的关系。 类图(Class Diagram),表现类以及类之间的关系,可用于表现信息之间的联系、数据及其处理的概要过程。,UML定义的类图,对象图可以具体表现对象
13、及对象之间的相互关系。 可以利用类描述数据表、主码、外码、视图、域;用方法描述索引、约束、派生;用关联、聚集、组合表现实体集间聚集、组合等关系。 类图与对象图都是UML的静态结构图,是系统分析与系统设计中极为重要的文件,是其他动态结构图的依据。,UML定义的类图,一、类图的概念 在类图中,类由矩形框来表示,矩形框内分为三层,分别说明类的名称、类的属性(表现类的结构特征)与类的方法(表现类的操作、行为或处理),在类与类之间用特殊符号表示它们之间的关系。 类的名称是分析与设计中需要的关于类的标识,应尽量用领域内的术语,同时又要让人容易领会其意义。,UML定义的类图,类的属性常被用来表示数据的结构与
14、界面的情况,在类图中用文字串说明,文字串的格式为: 可见性属性名:类型多重性次序=初始值特性 其中,中括号表示可选,对于具体的类,可以有,也可能没有。,UML定义的类图,一般讲,类不限定属性的个数,我们在需求分析阶段绘制时可以只考虑那些对系统设计必要的特征。 一个类代表多个对象,各对象间的区别主要体现在属性值的不同上。 类的方法表示类的操作或功能,例如对数据表的添加、修改、删除、查询、计算、分类、归纳、导出、打印等等,它们都作用在该类所派生的对象上,在设计界面时必须考虑,在为数据库建模时可以暂不考虑。,UML定义的类图,二、对象图的概念 对象图是类图的具体形式,表示类的实例样本,并且可以显示键
15、值和关系。 对象图几乎使用与类图完全相同的标识,唯一的不同在于它显示的是类的多个实例,而不是实际的类,用对象名:类名(加下划线)表示对象名(空缺对象名时表示是匿名对象)。对象有生命周期,只在系统某一时间段存在。对象图主要应用在交互图中。,UML定义的类图,三、类图的图形元素,UML定义的类图,用右键点击“Logical View”,在弹出菜单中选“New”,再选“Class Diagram”,就会在“Logical View”目录下创建一个类。双击该类,进入类设计窗口,见图2.6。,图2.6 建立类图,在目录树右边会显示帮助绘制类图的工具条,其内容与意义见图2.7。 先点击工具条上的类,再在类
16、图设计窗口上点击,就会建立一个新类,可以定义类名。用右键点击该类,选“Open Specification”将出现如图2.8所示的类的属性对话框。,UML定义的类图,在普通属性页面(General)上,可以定义类名、类的种类、类的角色。在Documentation框中可以以文本方式填入与执行类有关的约束条件。 用右键点击类,弹出菜单如图2.9所示。,UML定义的类图,在该菜单中点选“New Attribute”,可以在图中添加属性,每添加一个新属性,该属性都会列入到右边目录树中。,R,UML定义的类图,图2.9 右键点击类图弹出的菜单,用右键点击目录树中的属性名,点选“New Operatio
17、n”,弹出设置属性的属性的对话框,如图2.10所示。,UML定义的类图,图2.10 属性数据类型设置,在类图中,用鼠标右击关联线,弹出菜单如图2.11所示。,UML定义的类图,图2.11 右击关联线设置多重性,利用Rose能十分容易地完成建模操作 其步骤如下: 1. 分析系统中的实体。 2. 分析每一个类的含义和职责、确定属性和操作。 3. 确定类之间的关系。,利用Rose建模操作,UML 中类有三种主要的构造型:边界类、控制类和实体类。数据库设计时主要考虑实体类。 实体类保存要放进持久存储体的信息。持久存储体是数据库或文件等可以永久存储数据的介质。通常每个实体类对应实际系统中的表格,最终对应
18、数据库中的数据表,实体类中的属性对应数据库表中的字段。,利用Rose建模操作,chapter_1,利用Rose建模操作,R,图2.12 学生管理系统数据库面向对象数据模型示意图,类之间的关系是类图中比较复杂的内容。有关联、聚合、组合、泛化、依赖等。 关联是模型元素之间的一种语义联系,表示类与类之间的连接。它使一个类的可见属性和方法被另一个类使用。 关联可以是双向关联,也可以是单向关联,在UML图中用无箭头实线或单向的箭头线表示,单向的箭头指向调用或查询的方向。,利用Rose建模操作,可以给关联加上关联名来描述关联的作用。关联两端的类也可以以某种角色参与关联,角色可以具有多重性,表示可以有多少个
19、对象参与关联。 可以通过关联类进一步描述关联的属性、操作以及其他信息。关联类通过一条虚线与关联连接,可以将它看成为实体与实体之间的联系关系。对于关联可以加上一些约束,以加强关联的含义。,利用Rose建模操作,利用Rose建模操作,图2.13 利用Rose2003为数据库建模,(1)右击逻辑视图(Logical view)NewClass Diagram改名为学生管理双击“学生管理”出现类设计窗口,利用工具条中的“类”按钮在其中建立类:“系”、“教研室”、“老师”、“学生”、“课程”、“教学”、“成绩” (2)在组件视图(component view)中创建数据库对象:右击组件,在弹出菜单中选D
20、ata ModelerNewDatabase命名为:XSGL。(假设在SQL Server2000中已经建立了数据库XSGL)。,从建模到建库与建表的自动化操作,(3)右击XSGLOpen Specification在Target中选数据库管理系统(DBMS)右击XSGLData ModelerNewTablespace,定义表空间,例如“PRIMARY”。 (4)展开Logical view右击Schemas Data ModelerNewSchema,定义模型名,例如Schema1。右击Schema1Open Specification在弹出对话框中选择Database为XSGL。 (5)创建模型视图。右击Schema1选Data ModelerNewData Model Diagram,生成模型视图New Diagram,定义模型视图名,例如“学生”。,从建模到建库与建表的自动化操作,(6)建表。双击“学生”,在视图中利用工具条中的对象模型生成数据表“系”、“教研室”、“老师”、“学生”、“课程”等。右击各个表,选Open Specification在弹出对话框General页面中选择Tablespace为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度版权购买合同:文学作品著作权购买及使用权
- 欠薪借款合同范例
- 04版影视剧本创作与拍摄合同
- 煤矿出售铲车合同模板
- 2024年度商业特许经营合同
- 2024年度承包合同:城市基础设施建设项目承包合同
- 电厂煤渣采购合同模板
- 消防值守合同模板
- 2024年度环境保护与节能减排合同
- 煤炭平台合作合同模板
- 幼儿园名师公开课:大班数学《排一排》原版动态课件
- 过敏源管理与控制制度
- 大学会计生涯发展展示
- 2024年“312”新高考志愿填报指南
- (正式版)YBT 6163-2024 预应力混凝土用耐蚀螺纹钢筋
- 医院设备维保方案
- 小学科普社团活动计划
- 初中女生会议课件省公开课金奖全国赛课一等奖微课获奖课件
- 美国实时总统大选报告
- 2024年初中学业音乐科目水平考试题库及答案
- 铁路运输安全知识
评论
0/150
提交评论