郑州轻工业学院计算机与通信工程学院、软件学院第二章数据模型郑州轻工业学院软件职业技术学院1-2数据库原理2.1.两大类数据模型2.2数据模型的组成要素2.3主要的逻辑数据模型2.4层次模型2.5网状模型2.6关系模型郑州轻工业学院软件职业技术学院1-3数据库原理1.现实世界现实世界即客观存在的世界,各种事物及事物之间的联系。一个事物可以有许多特征,通常都是选用人们感兴趣的以及最能表征该事物的若干特征来描述该事物。以人为例,常选用姓名、性别、年龄、籍贯等描述一个人的特征。事物间的关联是多方面的。2.信息世界现实世界中的事物及其联系由人们的感官感知,经过人们头脑的分析、归纳、抽象,形成信息。对这些信息进行记录、整理、归类和格式化后,它们就构成了信息世界。对所研究的信息世界建立一个抽象的模型,称之为信息模型(即概念模型)。目前较为流行的一种信息模型是实体联系模型。郑州轻工业学院软件职业技术学院1-4数据库原理3.机器世界用计算机管理信息,必须对信息进行数据化,数据化后的信息称之为数据,数据是能够被机器识别并处理的。数据化了的信息世界称之为机器世界。学号姓名性别年龄课程号学分课程名职称年龄教师名课程任课教师学生选课成绩籍贯郑州轻工业学院软件职业技术学院1-5数据库原理数据模型分成两个不同的层次(1)概念模型也称信息模型,它是按用户的观点来对数据和信息建模。(2)数据模型主要包括网状模型、层次模型、关系模型等,它是按计算机系统的观点对数据建模。2.1.两大类数据模型郑州轻工业学院软件职业技术学院1-6数据库原理客观对象的抽象过程---两步抽象–现实世界中的客观对象抽象为概念模型;–把概念模型转换为某一DBMS支持的数据模型。概念模型是现实世界到机器世界的一个中间层次。2.1.两大类数据模型郑州轻工业学院软件职业技术学院1-7数据库原理在信息世界中,常用的主要概念如下:1.实体(Entity)客观存在并且可以相互区别的“事物”称为实体。实体可以是可触及的对象,如一个学生,一本书,一辆汽车;也可以是抽象的事件,如一堂课,一次比赛等。2.属性(Attributes)实体的某一特性称为属性。–如学生实体有学号、姓名、年龄、性别、系等方面的属性。–属性有型和“值”之分,型即为属性名,如姓名、年龄、性别是属性的型;“值”即为属性的具体内容,如(990001,张立,20,男,计算机)这些属性值的集合表示了一个学生实体。郑州轻工业学院软件职业技术学院1-8数据库原理3.实体型(EntityType)若干个属性型组成的集合可以表示一个实体的类型,简称实体型。–如学生(学号,姓名,年龄,性别,系)就是一个实体型。4.实体集(EntitySet)同型实体的集合称为实体集。–如所有的学生、所有的课程等。5.键(Key)能唯一标识一个实体的属性或属性集称为实体的键。–如学生的学号,学生的姓名可能有重名,不能作为学生实体的键。郑州轻工业学院软件职业技术学院1-9数据库原理6.域(Domain)属性值的取值范围称为该属性的域。–如学号的域为6位整数,姓名的域为字符串集合,年龄的域为小于40的整数,性别的域为(男,女)。7.联系(Relationship)在现实世界中,事物内部以及事物之间是有联系的,这些联系同样也要抽象和反映到信息世界中来,在信息世界中将被抽象为实体型内部的联系和实体型之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系;实体之间的联系通常是指不同实体集之间的联系。反映实体型及其联系的结构形式称为实体模型,也称作信息模型,它是现实世界及其联系的抽象表示。郑州轻工业学院软件职业技术学院1-10数据库原理两个实体型之间的联系有如下三种类型:(1)一对一联系(1:1)实体集A中的一个实体至多与实体集B中的一个实体相对应,反之亦然,则称实体集A与实体集B为一对一的联系。记作1:1。–如:班级与班长,观众与座位,病人与床位。(2)一对多联系(1:n)实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体至多与实体集A中的一个实体相对应。记作1:n。–如:班级与学生、公司与职员、省与市。(3)多对多(m:n)实体集A中的一个实体与实体集B中的多个实体相对应,反之,实体集B中的一个实体与实体集A中的多个实体相对应。记作(m:n)。–如:教师与学生,学生与课程,工厂与产品。郑州轻工业学院软件职业技术学院1-11数据库原理实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。可以用图形来表示两个实体型之间的这三类联系,如图所示。ABABAB–(a)(b)(c)图不同实体集实体之间的联系郑州轻工业学院软件职业技术学院1-12数据库原理信息世界中的实体抽象为计算机世界中的数据,存储在计算机中。在计算机世界中,常用的主要概念如下:1.字段(Field)对应于属性的数据称为字段,也称为数据项。字段的命名往往和属性名相同。–如学生有学号、姓名、年龄、性别、系等字段。2.记录(Record)对应于每个实体的数据称为记录。–如一个学生(990001,张立,20,男,计算机)为一个记录。3.文件(File)对应于实体集的数据称为文件。–如所有学生的记录组成了一个学生文件。郑州轻工业学院软件职业技术学院1-13数据库原理在计算机世界中,信息模型被抽象为数据模型,实体型内部的联系抽象为同一记录内部各字段间的联系,实体型之间的联系抽象为记录与记录之间的联系。现实世界是设计数据库的出发点,也是使用数据库的最终归宿。实体模型和数据模型是现实世界事物及其联系的两级抽象。而数据模型是实现数据库系统的根据。通过以上的介绍,我们可总结出三个世界中各术语的对应关系如图所示。现实世界信息世界计算机世界事物总体实体集文件事物个体实体记录特征属性字段事物间联系实体模型数据模型图三个世界各术语的对应关系郑州轻工业学院软件职业技术学院1-14数据库原理2.2数据模型的组成要素数据模型是模型的一种,是现实世界数据特征的抽象。数据模型通常由数据结构、数据操作和数据的约束条件三个要素组成。1.数据结构数据结构用于描述系统的静态特性。数据组织结构是指数据对象类型的集合,它描述数据对象的数据类型、内容、属性,以及数据对象之间的联系。数据组织结构是对数据库的静态特性的描述。数据结构有层次结构、网状结构和关系结构三种类型,按照这三种结构命名的数据模型分别称为层次模型、网状模型和关系模型。郑州轻工业学院软件职业技术学院1-15数据库原理2.数据操作数据操作是指对数据库中的数据允许执行的操作的集合。对数据库的数据操作主要有检索和更新(插入、删除、修改)两大类操作,在数据模型中须对其详细定义。数据操作是对数据库的动态特性的描述。3.数据的约束条件数据的完整性约束是数据完整性规则的集合,它是对数据以及数据之间关系的制约和依存规则,用于保证数据库的完整性和一致性。–例如,在学生数据库中,学生的年龄不得超过40岁。郑州轻工业学院软件职业技术学院1-16数据库原理2.3主要的逻辑数据模型2.3.1数据模型的分类数据模型的好坏,直接影响数据库的性能。数据模型的选择,是设计数据库的一项首要任务。目前最常用的数据模型有层次模型(HierarchicalModel)、网状模型(NetworkModel)和关系模型(RelationalModel)。这三种数据模型的根区别在于数据结构不同,即数据之间联系的表示方式不同。–层次模型用“树结构”来表示数据之间的联系;–网状模型是用“图结构”来表示数据之间的联系;–关系模型是用“二维表”来表示数据之间的联系。郑州轻工业学院软件职业技术学院1-17数据库原理其中层次模型和网状模型是早期的数据模型,统称为非关系模型。20世纪70年代至80年代初,非关系模型的数据库系统非常流行,在数据库系统产品中占据了主导地位,现在已逐渐被关系模型的数据库系统取代,但在美国等国,由于早期开发的应用系都是基于层次数据库或网状数据库系统,因此目前层次数据库或网状数据库的系统仍很多。20世纪80年代以来,面向对象的方法和技术在计算机各个领域,包括程序设计语言、软件工程、计算机硬件等各方面都产生了深远的影响,出现了一种新的数据模型——面向对象的数据模型郑州轻工业学院软件职业技术学院1-18数据库原理2.4层次模型层次模型是数据库系统中最早出现的数据模型,采用层次模型的数据库的典型代表是IBM公司的IMS(InformationManagementSystem)数据库管理系统,现实世界中,许多实体之间的联系都表现出一种很自然的层次关系,如家族关系,行政机构等。层次模型用一棵“有向树”的数据结构来表示各类实体以及实体间的联系。–在树中,每个结点表示一个记录类型,结点间的连线(或边)表示记录类型间的关系,每个记录类型可包含若干个字段,记录类型描述的是实体,字段描述实体的属性,各个记录类型及其字段都必须命名。–如果要存取某一记录型的记录,可以从根结点起,按照有向树层次向下查找。郑州轻工业学院软件职业技术学院1-19数据库原理下图是层次模型有向树的示意图。结点A为根结点,D,F,G为叶结点,B,D为兄结点……图层次模型有向树的示意图ABCDEF郑州轻工业学院软件职业技术学院1-20数据库原理1.层次模型的特征(1)有且仅有一个结点没有双亲,该结点就是根结点;(2)根以外的其他结点有且仅有一个双亲结点,这就使得层次数据库系统只能直接处理一对多的实体关系;(3)任何一个给定的记录值只有按其路径查看时,才能显出它的全部意义,没有一个子女记录值能够脱离双亲记录值而独立存在。例如:以下是一个层次模型的例子,如图所示。D#DNDLR#RNS#SNSST#TNTDTS教研室R学生S郑州轻工业学院软件职业技术学院1-21数据库原理层次数据库为TS,它具有四个记录型,分别是:记录型D(系)是根结点,由字段D#(系编号)、DN(系名)、DL(系地点)组成,它有两个孩子结点,:R和S,记录型R(教研室)是D的孩子结点,同时又是T的双亲结点,它由R#(教研室编号)、RN(教研室名)两个字段组成,记录型S(学生)由S#(学号)、SN(姓名)、SS(成绩)三个字段组成,记录型T(教师)由T#(职工号)、TN(姓名)、TD(研究方向)三个字段组成,S与T是叶结点,它们没有子女结点,由D到R,R到T,由D到S均是一对多的关系。郑州轻工业学院软件职业技术学院1-22数据库原理对应上述数据模型的一个值,–该值是D02系(计算机系)记录值及其所有后代记录值组成的一棵树,–D02系有3个教研室子记录值:R01、R02、R03和3个学生记录值:S63871、S63874、S63876,–教研室R01有3个教师记录值:T2101、T17090、T3501.郑州轻工业学院软件职业技术学院1-23数据库原理2.层次模型的数据操纵与数据完整性约束层次模型的数据操纵主要有查询、插入、删除和修改,进行插入、删除和修改操作时要满足层次模型的完整性约束条件。–进行插入操作时,如果没有相应的双亲结点值就不能插入子女结点值;–进行删除操作时,如果删除双亲结点值,则相应的子女结点值也被同时删除;–修改操作时,应修改所有相应的记录,以保证数据的一致性。郑州轻工业学院软件职业技术学院1-24数据库原理3.层次模型的优缺点层次模型的优点主要有:(1)比较简单,只需很少几条命令就能操纵数据库,比较容易使用。(2)结构清晰,结点间联系简单,只要知道每个结点的双亲结点,就可知道整个模型结构。现实世界中许多实体间的联系本来就呈现出一种很自然的层次关系,–如表示行政层次,家族关系很方便。(3)它提供了良好的数据完整性支持。郑州轻工业学院软件职业技术学院1-25数据库原理层次模型的缺点主要有:(1)不能直接表示两个以上的实体型间的复杂的联系和实体型间的多对多联系,只能通过引入冗余数据或创建虚拟结点的方法来解决,易产生不一致性。(2)对数据的插入和删