《第2章数据模型与概念模型.ppt》由会员分享,可在线阅读,更多相关《第2章数据模型与概念模型.ppt(40页珍藏版)》请在三一办公上搜索。
1、数据库系统原理及应用教程,主讲老师:蒋朝辉,第2章 数据模型与概念模型,2.1 信息的三种世界及其描述 2.2 数据库模型 2.2.1 概念模型的基本概念 2.2.2 概念模型的表示方法 2.3 常见的三种数据模型 2.3.1 数据模型概述 2.3.2 层次模型及特点 2.3.3 网状模型及特点 2.3.4 关系模型概述,2.1 信息的三种世界及其描述,从数据转化的顺序来看,数据从现实世界进入到数据库需要经历三个阶段,即现实世界阶段、信息世界阶段和机器世界阶段。,1.现实世界 现实世界是指我们要管理的客观存在的各种事物、事物之间的相互联系及事物的发生、变化过程。,在现实世界中客观存在着各种运动
2、着的事物,各种事物及事物之间存在着复杂的联系。不同的事物之间,存在着不同的特征,这些特征包括静态的和动态的特征。在这些特征中,可以抽取出一些有意义的特征来描述不同的事物个体。,例如:选择姓名、学号、班级、籍贯、所属院系等特征来描述一个学生,而描述一个老师的信息则常选择姓名、年龄、性别、籍贯、所属院系等特征。,利用这些特征,就可以在表征各类不同事物的同时,将不同的事物区别开来。,世界上的很多事物表面上看起来相互独立,但实际上它们之间是相互联系的。由于事物的多样性,导致事物之间的联系也是多方面的。在实际应用中,人们只选择一些有意义或感兴趣的联系,而没有必要选择所有的联系。,例如:在教学管理系统中,
3、教师和学生之间可以仅选择“教学”这种有意义的联系。,2.信息世界 现实世界中的事物及其联系由人门的感官所感知,经过大脑的分析、归纳、抽象形成信息。对这些信息进行记录、整理、归纳和格式化后就构成了信息世界。为正确直观地反映客观事物及其联系,有必要对所研究的信息世界建立一个抽象的模型,称为信息模型或者概念模型。在信息世界中,数据库技术涉及一下概念:,实体(Entity):现实世界中存在的可以相互区分的事物或概念称为实体。一个实体对应了现实世界中的一个事物。实体可以是具体的人、事、物,如一本书,一件衣服,一次借书、一次服装展览等,可以包含很多我们感兴趣的信息,也可以是抽象的概念或联系,如教师和学院的
4、工作关系(即某位教师在某学院工作)也可以抽象为一个实体。,实体集(Entity Set):性质相同的同类实体组成的集合,称为实体集。现实世界中的事物很多,有一些事物具有被关注的一些共同的特征和性质,他们可以有类似的描述,可以被放在一起进行研究和处理。例如:一个学校的所有学生,当利用学籍管理系统进行管理时,这些学生的姓名、学号、班级和成绩等就是要关注的特征或性质,把这些学生的上述性质一起研究和处理,则这些学生就构成一个实体集。,属性(Attribute):实体所具有的某一特性称为属性。客观存在的不同事物,具有不同的特性。从客观世界抽象出来的不同实体,也具有各自不同的特性。可以用若干个属性来刻画一
5、个实体。例如:对于大学生,有很多特性,如学校、学院、专业、班级、学号、姓名、身高、年龄、籍贯、成绩、入学时间等,这些属性组合起来共同表征了一个具体的学生。在信息世界里,人们对某个实体的认识和理解是通过属性来实现的。因此要要正确、全面的描述或者刻画某一个实体,就必须根据不同事物的特征,合理、全面地抽象出不同事物的属性,使人们通过这些属性,就能够对某个事物有一个全面的理解和把握。而且最重要的是,能够通过其中某一个或一些属性把握不同个体之间的本质的区别。,码(Key):能唯一标识每个实体的属性或属性集,称为码或关键字。例如:一个学校里可能存在几个学生重名的现象,所以在数据库系统中就不能用姓名这个属性
6、来唯一标识不同的学生,于是,只好给每个学生编一个不能重复的,能够将他们唯一区别开来的编号,即学号。学号就是实体学生的码。,3.机器世界 信息世界的信息经过抽象和概念化之后,计算机是无法识别的,因此必须对这些信息重新进行加工和转换,使他们能被计算机所识别和成为计算机能够处理和操作的符号。这些符号,即为数据。这些数据构成了机器世界或称为数据世界。用计算机管理信息,必须对信息进行数字化,即将信息用字符和数字来表示。数字化后的信息称为数据,数据是能够被计算机所识别和处理的。当前多媒体技术的发展使计算机能够识别和处理图形、图像、声音等数据。数字化是信息世界到机器世界转换的关键,为数据管理打下基础。信息世
7、界的信息在机器世界中以数据形式存储。机器世界对数据的描述常用到一下四个概念:,字段(Field):又称数据项,它是可以命名的最小信息单位。字段的定义包括字段名(字段的名称)、字段类型(描述该字段的数据类型)、字段长度(限定该字段值的长度)等。记录(Record):字段的有序集合称为记录,一般对应信息世界中的一个具体的实体。它是对一个具体对象的描述。例如:(2009178007,男,178),描述了一个学号为2009178007,性别为男,身高为178cm的学生。文件(File):同类的记录汇集成文件。文件是描述实体集的。例如:所有图书记录组成了一个图书文件。关键字(Key):能唯一标识文件中每
8、个记录的字段或字段集。例如学生的学号可以作为学生记录的关键字。如果一个字段不能唯一确定一条记录,则可以用多个字段作为关键字来唯一标识一条记录。例如学号和课程号可以作为学生选课记录的关键字。,机器世界和信息世界的术语是相互对应的,他们的关系如下表所示:,数据库中,每个概念都有类型(Type,简称型)和值(Value)的区别。,例如,“学生”是一个实体的型,而具体的(张三,男,信息院,19)是实体的值。“姓名”是属性的型,而“张三”是属性的值。记录也有记录的型和值。,2.2 数据库模型,数据库系统的主要功能是处理和表示对象与对象之间的联系。这种联系用模型表示就是数据库模型,它是人们对现实世界的认识
9、和理解,也是对客观现实的近似描述。在不同的数据库管理系统中,应使用不同的数据库模型,但不管采用什么样的模型,都要满足以下几个基本要求:能按照人们的要求真实地表示和模拟现实世界;容易被人理解;容易在计算机上实现;,数据库模型更多地强调数据库的框架和数据结构形式,而不关心具体数据。不同的数据库模型实际上就是提供模型化数据和信息的不同工具,根据模型应用的不同目的,可以将这些数据库模型划分为两类,他们分别属于不同的层次。,第一类模型是概念模型。它是按用户的观点来对数据和信息建模,主要用于数据库设计。第二类模型是数据模型。主要包括网状模型、层次模型、关系模型等。它是按计算机系统的观点对数据建模,主要用于
10、DBMS的实现。,2.2.1 概念模型,概念模型:在把现实世界抽象为信息世界的过程中,只抽取需要的元素及其关联,这时所形成的模型就是概念模型。在抽象出概念模型后,再把概念模型转换为计算机上某一DBMS支持的数据模型。概念模型不涉及数据组织,也不依赖于数据的组织结构,他只是现实世界到机器世界的一个中间描述形式。,目前,描述概念模型最常用的方法是实体联系方法(即E-R方法)。这种方法由于简单、实用,得到了非常普遍的应用。这种方法使用的工具称作E-R图,也把这种描述结果称为E-R模型。,实体(Entity)实体是现实存在的一个事物。具有相同特性的事物的集合构成实体集,集合中的元素(个体)是客观存在的
11、可区分的事物。在E-R图中,实体名写在矩形框内。,概念模型涉及以下几个概念:,实体可以是具体的人、事、物,比如一名学生、一本书等,也可以是一个抽象的概念,例如图书管理系统中,一次借书过程就是一个实体。,(2)属性(Attribute)属性为实体的某一方面特征的抽象表示,即事物所具有的状态特性.,实体的属性用椭圆框表示,框内是属性名,并用连线连到相应的实体。一个实体可以有若干个属性。例如,学生可以有姓名、学号、年龄、性别等属性,不同的属性值可以确定不同的学生。,与属性相关的概念有以下几个:,码(Key):能唯一标识实体的属性集称为码。例如:学生的学号就是一个码(当然也可以是其它的属性或属性集)。
12、对不同的学生码值一定是唯一的,不允许出现多个实体具有相同的码值情况。,比如,学号为2003002,年龄为21岁,男性的学生是李四。左图中学号就是学生实体的码。由于存在重名的现象,所以通常姓名不被选为码。,域(Domain):实体属性的取值一般受到某个条件的约束,如果取值不满足约束条件,则认为是一个非法的值,这个约束条件所确定得却值范围就称为该属性的域。例如:学生的性别的域是“男”,“女”,而成绩的取值范围通常会是0,1,2,.,100。,实体型(Entity Type):一类实体的实体名及其属性名集合就构成了实体型。在一个数据库中,同一类实体的实体型是相同的,即它们的实体名及实体的属性名都是一
13、样的。为了方便我们认为这些属性的排列顺序也是一致的。例如:学生(学号,姓名,性别,年龄)就是表示学生实体的实体型。,关系模式(Relation Schema):对关系的描述称为关系模式,一般表示为:关系名(属性1,属性2,属性n)例如:学生(学号,姓名,性别,年龄,系别,年级)就是描述学生的关系模型。,实体集(Entity Set):具有相同实体型的实体组成的集合称为实体集。例如:在一个学籍管理系统,一个学校的全体学生具有相同的实体型,这些学生实体的集合就是一个实体集。,(3)联系 在现实世界中,事物内部和事物之间是有联系的,这些联系在信息世界中包括实体内部的联系和实体之间的联系。实体内部的联
14、系通常指组成实体的各属性之间的联系,实体之间的联系通常指不同实体之间的联系。实体之间的联系可以分为以下3类:,一对一联系(1:1):如果对于实体集A中的每个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A和实体集B之间具有一对一的联系,记为1:1 例如:在学校里一个班只有一个班长,而一个班长只能是一个班的班长,所以班级和班长之间就是一对一的联系。,一对多联系(1:n):如果对于实体集A中的每个实体,实体集B中有n个(n=0)实体与之联系,反之实体集B中的每个实体,实体集A中至多有一个实体与之联系,则称实体集A和实体集B之间具有一对多的联系,记为1:n 例如:班级和学
15、生之间的联系。一个班级有若干名学生,而每个学生只在一个班级中学习,则班级和学生之间就是一对多的联系。,多对多联系(m:n):如果对于实体集A中的每个实体,实体集B中有n个(n=0)实体与之联系,反之,如果实体集B中的每个实体,实体集A中有m个(m=0)实体与之联系,则称实体集A和实体集B之间具有多对多的联系,记为m:n 例如:课程和学生之间的联系就是多对多的联系。一门课程同时有若干名学生选修,一个学生可以同时选修多门课程。,一般在E-R图中,用菱形表示联系,内部写上联系的名称,两端分别用连线连接发生联系的实体,并分别表上联系的类型。,一般来说,两个以上的实体之间也可以存在一对一,一对多和多对多
16、的联系。例如:对于课程、教师和学生这三个实体,如果一门课程可以有若干老师讲授,而每名老师可以讲授多门课程,每名学生可以学习多门课程,则老师和学生之间是n:p的联系,老师和课程之间是n:m的联系,而学生和课程之间则是p:m的联系。,2.3 常见的三种数据模型,数据(data)是描述事物的符号记录。模型(Model)是现实世界的抽象。数据模型(Data Model)是数据特征的抽象,是数据库管理的教学形式框架。数据模型由数据结构、数据操作和完整性约束三部分组成。数据结构:所研究的对象类型(Object Type)及其相互关联的集合。数据结构用来描述系统数据集合的结构,可以分为语义结构和组织结构两类
17、,是对系统静态特性的描述。a:语义结构:指应用实体、应用语义之间的关联,它是与数据 类型、内容、性质有关的对象。b:组织结构:指用来表达实体及关联的数据的记录和字段结构,它是与数据之间联系有关的对象。,2)数据操作:对数据库中各种对象(型)的实例(值)允许执行的操作及这些 操作规则的集合。数据操作用来描述系统的信息变化,是 对系统动态特性的描述。数据操作的种类有以下两种:a:引用类:不改变数据组织结构与值,如查询;b:更新类:对数据组织结构与值进行修改,如增,删,改。3)数据约束条件:一组数据完整性规则的集合。完整性规则是给定的数 据模型中的数据及其联系所具有的制约和依存规则,用以限 定符合数
18、据模型的数据库状态及状态的变化,以保证数据的 正确性、有效性和相容性。例如:在学校的管理信息数据库中规定学生入学成绩不能低于580分,学生毕业的学分必须达到200个等。,2.常见的数据模型 数据库系统中通常按照数据结构的类型来命名数据模型。例如,层次结构、网状结构和关系结构的模型分别叫作层次模型(Hierarchical Model)、网状模型(Network Model)和关系模型(Relational Model)。层次模型和网状模型统称为非关系模型,非关系模型数据库系统在 20世纪70年代至80年代初非常流行,在数据库系统产品中占据主导地位,而现在已经被关系模型数据库系统取代。除在美国等
19、一些少数国家外,基本上很少使用。关系模型是目前使用最广泛的数据模型,占据了统治地位。所以,在介绍层次模型、网状模型之后,我们主要介绍关系模型。,在非关系模型中,实体集用记录表示,实体的属性对应记录的数据项(或字段)。实体集之间的联系转换成两两记录之间的联系。非关系模型中数据结构的单位是基本层次关系。所谓基本层次关系是指两个记录及它们之间的一对多(包括一对一)的联系,其结构和表示方法如下图所示:,其中Ri位于联系Lij的始结点,称为双亲结点(Parent);Rj位于联系Lij的终结点,称为子女结点(Child)。,2.3.1 层次模型及特点,层次模型是最早发展起来的数据库模型。它的基本结构是树形
20、结构,这种结构方式在现实世界中很普遍,如家族结构、行政组织结构等。层次模型的定义 层次模型也称为树形模型。在数据结构中,定义满足下面两个条件的基本层次联系的集合为层次模型:1)有且仅有一个结点没有双亲结点,这个结点称为根结点。2)除根结点之外的其他结点有且只有一个双亲结点。在层次模型中,每一个结点表示一个记录类型,结点之间的连线表示记录类型间的联系,这种联系只能是父子联系。层次模型的另一个特点是,任何一个给定的记录值只有按其路径查看时,才能显示出它的全部内容,没有一个子女记录值能够脱离双亲记录值而独立存在。,左图中,R1为根结点,R2和R3都是R1的子女结点,R2和R3为兄弟结点;R4和R5是
21、R3的子女结点,R4和R5也为兄弟结点;R2,R4和R5为叶结点。,右图为教学院系的数据结构,该层次数据库有4个记录。结构中:院系记录是根结点(有院系编号、院系名称和办公地点3个数据项),其两个子女结点是教研室(有教研室编号和教研室两个数据项)和学生(有学号、姓名和年龄3个数据项)记录;教研室记录是院系的子女结点,它还是教师(有职工号、姓名和专业方向3个数据项)记录的双亲结点.。学生和教师是叶结点,没有子女结点。,层次模型支持的操作主要有查询、插入、删除和更新。在对层次模型进行操作时,要满足层次模型的完整性约束条件。进行插入操作时,如果没有双亲结点值就不能插入子女结点值;进行删除操作时,如果删
22、除双亲结点值,则相应的子女结点值也被删掉;进行更新操作时,应更新相应记录,以保证数据的一致性。即层次模型的操作应满足以下规则:,在进行插入记录值操作时,如果没有指明相应的双亲记录值(首记录值),则不能插入子女记录值(属记录值)。2)进行删除记录操作时,如果删除双亲记录值(首记录值),则相应的子女结点值(属记录值)也同时被删除。3)进行修改记录操作时,应修改所有相应记录,以保证数据的 一致性。,层次模型的特点 层次模型具有一个基本特点:对于任何一个给定的记录值,只有按其路径查看,才能显示出它的全部意义,没有一个子女记录值能够脱离双亲记录值而独立存在。即层次模型具有一定的存取路径,它仅允许自顶向下
23、的查询。在设计层次模型时,要仔细考虑存取路径的问题,因为路劲一经确定就不能改变。由于路径的问题,给用户带来了不必要的麻烦,尤其是用户要花费时间和精力去解决那些有层次结构产生的问题。层次结构中引入的记录越多,层次变得越复杂,问题会变得越糟糕,从而使应用程序变得比问题要求的还复杂,其结果是程序员在编写、调试和维护程序时花费的时间将比查询本身需要的时间还多。另外,层次模型比较适合于表示数据记录之间一对多的联系,而表示多对多和多对一的联系则非常不方便。,2.3.2 网状模型及特点,网状模型(Network Model)是一种更具有普遍性的结构,从图论的角度讲,网状模型是一个不加任何条件限制的无向图。网
24、状模型是以记录为结点的网状结构,它满足以下条件:(1)可以有任意个结点无双亲。(2)允许结点有一个以上的双亲。(3)允许两个结点之间有一种或两种以上的联系。在网状模型的DBTG(DataBase Task Group)标准中,基本结构是简单二级树称作系,系的基本数据单位是记录,它相当于E-R模型中的实体集,记录又有若干数据项组成,它相当于E-R模型中的属性。,网状模型的数据表示方法 1)使用记录和记录值表示实体集和实体;每个结点表示一个记录,每个记录可包含若干个字段。联系(系)用结点间的有向线段表示。每个有向线段表示一个记录间的一对多的联系。网状模型中的联系简称为系。由于网状模型中的系比较复杂
25、,两个记录之间可以存在多种联系,一个记录允许有多个双亲记录,所以网状模型中的系必须命名。用系名标识不同的系。例如,上图a中R3有两个双亲记录R1和R2,因此把R1与R3之间的联系命名为L1,R2与R3之间的联系命名为L2.另外,网状模型中允许有复合链,即两个记录间可以有两种以上的联系,如上图b所示。,学生选课系统数据库的网状模型的数值化实例,从上图可以看出,所有的实体记录都具有一个以其为始点和终点的循环链表,而每个系都处于两个链表中,一个是课程链,一个是学生链。从而根据学生查找课程和根据课程查找学生都非常方便。以两个结点和一个系构成的结构是网状模型的基本结构,一个结点可以处于基本结构中,从而形
26、成网状结构。,网状模型的完整性约束条件1)支持记录码的概念。码即惟一标识记录的数据项的集合。2)保证一个联系中双亲记录和子女记录之间是一对多的联系。3)可以支持双亲记录和子女记录之间某些约束条件。例如,有些子女记录要求双亲记录存在时才能插入,双亲记录删除时也连同删除。,网状模型的数据查询方式1)从网络中的任何一点开始查询;2)沿着网络中的路径按任一个方向查询。,网状模型和层次模型比较,层次模型的优缺点优点:数据模型本身比较简单;系统性能优于网状模型;能够 提供良好的完整性支持;缺点:在表示非层次性的联系时,只能通过冗余数据(易产生不一致 性)或创建非自然的数据组织(引入虚拟结点)来解决;对插入
27、 和删除操作的限制比较多;查询子女结点必须通过双亲结 点;由于结构严密,层次命令趋于程序化。,网状模型的优缺点优点:能够直接地描述现实世界,一个结点可以有多个双亲,允许 复合链,具有良好的性能,存取效率比较高;缺点:结构比较复杂,且随应用环境的扩大,数据库的结构也越来越复 杂,不利于用户掌握;DDL和DML语言复杂,用户不容易使用;由 于记录之间联系是通过存取路径实现的,应用程序存在访问数据 时必须选择适当的存取路径,因此用户必须了解系统结构的细节 后才能实现其数据存取,程序员要为访问数据设置存取路径,加 重了编应用程序的负担。,1.关系模型的数据结构 关系模型以关系代数为理论基础,以集合为操
28、作对象的数据模型,其数据的逻辑结构是一张由行和列组成的二维表。(1)关系模型中的主要术语 1)关系(Relation)。一个关系对应通常所说的一张二维表,如,2.3.3 关系模型概述,学生学籍表,2)元组(Tuple)。表中的一行称为一个元组。许多系统中也把元组称为 记录。一个元组描述了现实世界中的一个实体值。例如,学生学籍 表中的(00001,王平,男,20,自动化系)元组描述的是,自动化系 学号为00001,姓名为王平,性别为男,年龄为20岁的学生。3)属性(Attribute)。表中的一列称为一个属性(又称为字段)。属性描述 的是现实世界中某个实体集的一些特征。一个表中往往会有多个属 性
29、,为了区分属性,要给每一个列起一个属性名。同一个表中的属 性应具有不同的属性名。例如,学生学籍表中,学号、姓名、性别 年龄、所在系属性描述的是实体型学生的一些特征。4)码(Key)。表中的某个属性或属性组,它们的值可以惟一地确定一个 元组,且属性组中不含多余的属性,这样的属性或属性组称为关系 的码。例如,学号可以唯一地确定一个学生,因而学号是学生学籍 表的码。5)域(Domain)。属性的取值范围称为域。例如,大学生年龄属性的域 为(1628),性别的域则是(男,女)。6)分量(element)。元组中的一个属性值称为分量。,7)关系模式(Relation mode)。关系的型称为关系模式,关
30、系模式 是对关系的描述。关系模式一般的表示是:关系名(属性1,属性2,属性n).例如,学生学籍表关系可描述为:学生学籍(学号,姓名,性别,年龄,所在系)(2)关系模型中的数据全部用关系表示 在关系模型中,实体集以及实体间的联系都是用关系来表示。,例如,关系模型中,学生、课程、学生与课程之间的联系表示为:学生(学号,姓名,性别,年龄,所在系);课程(课程号,课程名,先行课);选修(学号,课程号,成绩).,关系模型要求关系必须是规范化的。所谓关系规范化是指关系模式要满足一定的规范条件。关系的规范条件很多,但首要条件是关系的每一个分量必须是不可分的数据项。,2.关系操作和关系的完整性约束条件关系操作主要包括数据查询和插入、删除、修改数据。关系中的数据操作是集合操作。关系操作语言都是高度非过程的语言关系的完整性约束条件包括三类:实体完整性、参照完整性和用户定义的完整性。3.关系模型与非关系模型比较 1)关系数据模型建立在严格的数学基础之上。2)关系数据模型的概念单一,容易理解。3)关系数据模型的存取路径对用户隐蔽。4)关系模型中的数据联系是靠数据冗余实现的。,本章结束!,