2、数据模型2内容什么是数据模型?什么是概念模型?什么是数据库类型?如何从E-R图导出关系模型?32.1数据模型数据模型是对现实世界数据特征的抽象,是客观事物及其联系的数据描述。数据模型的表示:DM={R,L}数据R:模型中包含哪些记录类型,记录类型的命名;各记录由哪些数据项构成,并对数据项命名;各数据项的数据类型和取值范围等。数据间联系L:各个不同记录类型间所存在的联系和联系方式。4数据之间的联系图2-1三个世界之间的转换关系5信息世界中实体之间的联系基本概念实体客观存在并可相互区别的事物例如:学生张三、数据库课程、计算机学院、春之歌晚会属性实体所具有的特性一个实体可以由若干个属性来刻画例如:学生可由学号、姓名、年龄、性别、系别等组成域属性的取值范围例如:性别的域为(男、女),月份的域为1——12的整数6基本概念实体型具有相同属性的实体必然具有相同的特征和性质(共性)例如:学生(学号、姓名、年龄、性别、系、年级)而学号、姓名、年龄、性别、系、年级分别是属性型注意“型”与“值”之间的区别,后者是前者的一个特例例:(9808100,王平,21,男,计算机系,2)是一个实体值而9808100、王平、21、男、计算机系、2分别是属性值实体集同一类型实体的集合数据库中包含一组实体集,每个实体集中包含一些相同属性的实体例如:全体学生、一个学院的全部课程7基本概念键又称关键字,能唯一标识一个实体的属性或属性集。1)单属性码学生(学号,姓名,性别,电话)2)多属性码学生(学号,身份证号,姓名,性别,电话)3)不含多余属性一个实体集中任意两个实体在主码上的取值不能相同。8图2-2事物之间的联系如下三个实体集:人、书、汽车,之间可能的联系9基本概念实体间的联系多个实体之间的相互关联如:学生与老师间有授课关系,老师与课程间有任课关系联系也可以有属性,如:学生与课程之间有选课联系,每个选课联系都有一个成绩作为其属性10两个实体型间的联系实体集1联系名实体集2111:1联系实体集1联系名实体集2mnm:n联系实体集1联系名实体集21n1:n联系11实体间的联系一对一A中的一个实体至多同B中的一个实体相联系,B中的一个实体也至多同A中的一个实体相联系如:班级与正班长12实体间的联系一对多(多对一)A中的一个实体可以同B中的任意数目的实体相联系,B中的一个实体至多同A中的一个实体相联系如:班级与学生13实体间的联系多对多A中的一个实体可以同B中的任意数目的实体相联系,B中的一个实体也可以同A中任意数目的实体相联系如:学生选课程14联系的表示方法示例班级负责班长111:1联系课程选修学生mnm:n联系班级组成学生1n1:n联系15联系的表示方法示例(续)职工领导1n同一实体型内部的1:n联系课程讲授教师pm多个实体型间的m:n联系参考书n16联系属性的表示方法课程选修学生mn成绩17数据模型的组成三要素1.数据结构数据结构用于描述系统的静态特性,是所研究的对象类型的集合。2.数据操作数据操作用于描述系统的动态特性,是对数据库中各种数据操作的集合,如:数据的检索、插入、删除和修改等。数据模型必须定义这些操作的确切含义、操作规则以及实现操作的语言。183.数据的约束条件数据的约束条件是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和依存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。例如,在学生数据库中,学生的年龄不得超过40岁。19数据之间的联系图2-1三个世界之间的转换关系20计算机世界中的基本概念1.字段(Field):对应于属性的数据称为字段,也称为数据项。字段的命名往往和属性名相同。如:学生有学号、姓名、年龄、性别、系等字段。2.记录(Record):对应于每个实体的数据称为记录。如:一个学生(990001,张立,20,男,计算机)为一个记录。3.文件(File):对应于实体集的数据称为文件。如:所有学生的记录组成了一个学生文件。2.2概念模型21现实世界是设计数据库的出发点,也是使用数据库的最终归宿。而数据模型是实现数据库系统的根据。通过以上的介绍,我们可总结出三个世界中各术语的对应关系如下图所示。现实世界信息世界计算机世界事物总体实体集文件事物个体实体记录特征属性字段事物间联系实体模型数据模型概念模型22E-R方法分析实体及其联系画E-R图数据模型构造数据模型的步骤用以描述现实世界的概念模型23E-R方法文字说明矩形:实体集椭圆:属性菱形:联系集线段:将属性连接到实体集、将实体集连接到联系集有箭头的线段表示联系的类别(映射的基数),始终指向一端(数据模型)无箭头的线段表示n:m(概念模型)24学号姓名班主任班号系号性别年龄学生班级班长11E-R图1.两个不同型实体间联系25学号姓名系主任系号系名性别年龄学生系别录取1nE-R图26学号姓名成绩学分课号系别课名性别年龄学生课程选课nmE-R图27例:学生选修课程学生课程选修姓名学号系别课程名先修课学分成绩用矩形表示实体集,在框内写上实体名用椭圆表示实体的属性用无向边把实体与其属性连接起来用菱形表示实体间的联系将参与联系的实体用线段连接mn联系的数量28工号姓名工程号名称性别年龄职工工程参加n1E-R图2.两个不同型实体间的多种联系负责nm29E-R图3.两个以上不同型实体间的多元联系旅行社组团景点mn游客k30E-R图4.同一实体间的联系职工领导mn31设计E-R图需求分析结果确定局部结构范围实体定义联系定义属性分配局部E|R模式设计全局E-R模式设计1.设计步骤32设计E-R图2、遵循以下两条:针对每一用户作出该用户信息的局部E-R图,确定该用户视图的实体、属性和联系综合局部E-R图,产生出总体E-R图。33实体与属性划分没有形式上截然的界限,这里给出两条准则:1)作为“属性”,不能再具有需要描述的性质,“属性”必须是不可分的数据项,不能包含其他属性。2)“属性”不能与其他实体具有联系,即E-R图中表示的联系是实体之间的联系。满足此两条准则的事物,一般均可作为属性对待。34消除冲突1.属性冲突属性域的冲突:属性的类型、取值范围不同如:不同学校的学号编码方式不同属性取值单位冲突如:重量分别采用磅、千克352.结构冲突同一对象在不同应用中的抽象不同如:职工在某应用中是实体,在另一应用中则抽象为属性同一实体在不同E-R图中属性组成不同实体之间的联系在不同E-R图中呈现不同的类型3.命名冲突同名异义:不同意义的对象具有相同的名字异名同义:同一意义的对象具有不同的名字362.3数据库类型数据库类型根据数据模型划分,DBMS也是根据数据模型设计数据结构有:层次结构、网状结构和关系结构三种类型数据模型:层次模型(HierarchicalModel)网状模型(NetworkModel)关系模型(RelationalModel)372.3.1层次数据模型层次模型树型结构的联系集合1.有且只有一个结点没有父结点,这个结点称为根结点2.根以外的其它结点有且只有一个父结点层次模型中的术语根结点,父结点,兄弟结点,叶结点38层次数据模型(续)R1根结点R2兄弟结点R3叶结点R4兄弟结点R5叶结点叶结点39层次数据模型(续)表示方法实体型:用记录类型描述。每个结点表示一个记录类型。属性:用字段描述。每个记录类型可包含若干个字段。联系:用结点之间的连线表示记录(类)型之间的一对多的联系40层次数据模型(续)特点结点的父结点是唯一的只能直接处理一对多的实体联系每个记录类型定义一个排序字段,也称为码字段任何记录值只有按其路径查看时,才能显出它的全部意义没有一个子女记录值能够脱离父记录值而独立存在41层次数据模型(续)多对多联系在层次模型中的表示用层次模型间接表示多对多联系方法:将多对多联系分解成一对多联系,例如:冗余结点法和虚拟节点法。42图学校行政组织的层次结构432.3.2网状数据模型网状模型图型结构的联系集合1.允许一个以上的结点无父结点;2.一个结点可以有多于一个的父结点。44网状数据模型R1R2R3L1L2R1R2L3L1L2R3L4R4R545网状数据模型(续)R1L1L2R246网状数据模型(续)表示方法(与层次数据模型相同)实体型:用记录类型描述。每个结点表示一个记录类型。属性:用字段描述。每个记录类型可包含若干个字段。联系:用结点之间的连线表示记录(类)型之间的父子联系。47网状数据模型(续)特点只能直接处理一对多的实体联系每个记录类型定义一个排序字段,也称为码字段任何记录值只有按其路径查看时,才能显出它的全部意义48网状数据模型(续)网状模型与层次模型的区别网状模型允许多个结点没有父结点网状模型允许结点有多个父结点网状模型允许两个结点之间有多种联系网状模型可以更直接地去描述现实世界层次模型实际上是网状模型的一个特例49网状数据模型(续)学生宿舍学生教研室系教师50网状数据模型(续)父母人子女树种植砍伐养育赡养51网状数据模型(续)多对多联系在网状模型中的表示用网状模型间接表示多对多联系方法:将多对多联系直接分解成一对多联系52图网状模型的例子53网状模型的优缺点优点能够更为直接地描述现实世界,如一个结点可以有多个父结点具有良好的性能,存取效率较高缺点结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握DDL、DML语言复杂,用户不容易使用54典型的网状数据库系统DBTG系统由DBTG提出的一个系统方案奠定了数据库系统的基本概念、方法和技术70年代推出实际系统CullinetSoftwareInc.公司的IDMSUnivac公司的DMS1100Honeywell公司的IDS/2HP公司的IMAGE552.3.3关系模型目前主要采用的数据模型1970年由美国IBM公司SanJose研究室的研究员E.F.Codd提出本课程的重点56关系数据模型在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行(元组)和列(属性)组成。学生登记表学号姓名年令性别系名年级95004王小明19女社会学9595006黄大鹏20男商品学9595008张文斌18女法律学95………………57关系数据模型(续)实体及实体间的联系的表示方法实体型:直接用关系(表)表示。属性:用属性名表示。一对一联系:隐含在实体对应的关系中。一对多联系:隐含在实体对应的关系中。多对多联系:直接用关系表示。58关系数据模型(续)形式化表示为R(A1,A2,A3,…,Ai,…),其中,R为关系名,Ai为关系的属性名。例1学生、系、系与学生之间的一对多联系:学生(学号,姓名,年龄,性别,系号,年级)系(系号,系名,办公地点)59关系数据模型(续)例2系、系主任、系与系主任间的一对一联系:系主任(姓名,年龄,性别,系号)系(系号,系名,办公地点)例3学生、课程、学生与课程之间的多对多联系:学生(学号,姓名,年龄,性别,系号,年级)课程(课程号,课程名,学分)选修(学号,课程号,成绩)60关系数据模型(续)关系必须是规范化的,满足一定的规范条件最基本的规范条件:关系的每一个分量必须是一个不可分的数据项。工资扣除职工号姓名职称基本工龄职务房租水电实发86051陈平讲师1059.515612115.5...........................61关系数据模型(续)关系模型的操纵主要包括:查询、插入、删除和更新数据完整性约束实体完整性、参照完整性和用户定义完整性存储结构实体与实体之间的联系用表来表示。每一个表对应一种文件结构。62图3个关系63关系数据模型的优缺点优点关系模型建立在严格的数学概念的基础上关系模型的概念单一关系模型的存取路径对用户透明,数据独立性更高,安全保