数据库系统原理及应用-第二章.ppt
数据库原理及应用第二章 数据模型与概念模型第二章 数据模型与概念模型为什么?为什么?为什么要学习模型?为什么要提到这些知识?为什么?第二章 数据模型与概念模型 1、信息的三种世界及描述2、概念模型2.1、表示方法2.2、基本概念2.3、实体联系的类型 3、数据模型3.1、数据模型概述3.2、数据模型分类Objectivesv了解概念模型和数据模型的区别v了解数据模型的分类v了解E-R概念模型图v了解关系数据库模型1.信息的三种世界及描述 11.1 信息的现实世界21.2 信息世界31.3 信息的计算机世界41.4 信息三个世界的关系1.信息的三种世界及描述 11.1 信息的现实世界n要管理的客观存在的各种事物、事务之间的相互联系及事物的发生、变化过程。实体(Entity):现实世界中存在的可以相互区分的事物或概念。实体的特征(Entity Characteristic):每个实体都有自己的特征,利用实体的特征可以区别不同的实体。实体集及实体集间的联系(Relation):具有相同特征或能用同样特征描述的实体的集合。1.信息的三种世界及描述 21.2 信息世界v在信息世界中:n实体的特征在头脑中形成的知识称为属性;n实体通过其属性表示称为实例;n同类实例的集合称为对象,对象即实体集中的实体用属性表示得出的信息集合;n实体集之间的联系用对象联系表示1.信息的三种世界及描述 21.2 信息世界v 信息世界通过概念模型、过程模型和状态模型反映现实世界,它要求对现实世界中的事物、事物间的联系和事物的变化情况准确、如实、全面地表示。1.信息的三种世界及描述 31.3信息的计算机世界u 数据项(Item):对象属性的数据表示。u记录(Record):实例的数据表示。记录有型和值之分:记录的型是结构,由数据项的型构成;记录的值表示对象中的一个实例,它的分量是数据项值。u文件(File):对象的数据表示,同类记录的集合。u数据模型(Data Model):现实世界中的事物和相互联系数据化的结果就是数据模型。1.信息的三种世界及描述1.4 信息的三个世界的联系和转换过程 现实世界 系统分析 信息世界 数据库设计 计算机世界 事物及联系 信息化 信息模型 数据化 数据模型 现实世界 信息世界 计算机世界 实体 实例 记录 特征 属性 数据项 实体集 对象或实体型 数据或文件 实体间的联系对象间的联系 数据间的联系 概念模型数据模型 2.概念模型2.1 概念模型及表示方法v 概念模型是对信息世界的管理对象、属性及联系等信息的描述形式。不依赖计算机及DBMS,它是现实世界的真实全面反映。2.概念模型2.1 概念模型及表示方法工厂工厂厂长厂长v表示方法-(E-R图)用长方形表示实体集,长方形内写明实体集名。用椭圆形表示实体集的属性,并用线段将其与相应的实体集连接起来。用菱形表示实体集间的联系,菱形内写上联系名,用线段分别与有关实体集连接起来,在线段旁标出联系的类型。如果联系具有属性,则该属性仍用椭圆框表示,仍需要用线段将属性与其联系连接起来。负责2.概念模型v对象(Object)和实例(Instance)现实世界中具有相同性质、服从相同规则的一类事物(概念)的抽象称为对象;对象中的每一个具体的事物(实体)为该对象的实例.2.2 概念模型的基本概念2.概念模型v 属性(Attribute)属性为实体的某一方面特征的抽象表示。例如:“学生”的属性可以为“学号”、“姓名”等;2.2 概念模型的基本概念2.概念模型v 主码(Primary Key)和次码(Secondary Key)主码(主关键字)能够惟一标识一个实体;不能惟一标识实体的属性叫次码;(PS:一个实体可以有多个Key,从中选取一个主码。)2.2 概念模型的基本概念2.概念模型v域(Domain)属性的取值范围称为属性的域。例如:“性别”的域为“男”或 女。2.2 概念模型的基本概念2.概念模型一、两个实体集之间的联系 一对一联系(1:1):设有两个实体集A和B,对于A中的每一个实体,B中至多有一个实体与之联系;反之亦然。一对多联系(1:n):设有两个实体集A和B,对于A的每一个实体,B中有一个或多个实体与之联系;而对于B的每一个实体,A中至多有一个实体与之联系。多对多联系(m:n):设有两个实体集A和B,对于A的每一个实体,B中有一个或多个实体与之联系;反之亦然。工厂工厂 负负责责厂厂长长11学校学校 工工作作教教师师1n职职工工 参参加加体育体育团团体体mn2.3实体联系的类型2.概念模型-实体联系的类型(续)二、多个实体集之间的联系 多实体集之间的一对多联系:设实体集E1,En,对于实体集Ej(j=1,n)中的一个给定实体,最多只和其他实体集Ei(ij)中的一个实体相联系,则称Ej与E1,En之间的联系是一对多的。多实体集之间的多对多联系:在两个以上的多个实体集之间,当一个实体集与其他实体集之间均存在多对多联系,而其他实体集之间没有联系时,这种联系称为多实体集间的多对多联系。课课程程讲讲授授教教师师参考参考书书1nm供供应应商商供供应应项项目目零件零件mpn2.概念模型-实体联系的类型(续)如何画E-R模型图?书P542.概念模型-实体联系的类型(续)v第一步,建立局部的E-R模型图:先分析模型中涉及到的实体,再分析实体与实体间的联系,并标注出联系的类型,分析实体及其联系的属性v第二步:综合局部的E-R模型图,建立总的E-R模型图:先将具有相同实体的两个E-R图,以该相同实体为基准进行集成;若还有相同实体的E-R图,则再次集成;这样一直继续下去,直到所有相同实体的局部E-R图都被集成,便可得到全局E-R图2.概念模型-实体联系的类型(续)例1“分析学生和课程之间的E-R模型第一步,先找到模型中的实体,第二步,再分析实体与实体间的联系,并标注出联系的类型,第三步,分析实体及其联系的属性学生(学号、姓名、系别、年级)课程(课程号、课程名、先修课、主讲教师)选修(成绩)第四步,完整的E-R模型如下:学生课程学生课程选课mn2.概念模型-实体联系的类型(续)学生-课程的E-R模型图2.概念模型-实体联系的类型(续)例1:某工厂库存管理实体:仓库、职工、供应商、零件、项目管理语义:一个仓库有多名职工,每个职工只在一个仓库工作一个仓库可以寻访多种零件,一种零件可在多个仓库存放一个供应商可以供应多个项目多种零件,每个项目可以使用多个供应商供应的多种零件,每种零件可以由多个供应商供应,在多个项目中使用2.概念模型-实体联系的类型(续)课后思考E-R模型如何转换为数据模型?书P603.数据模型v 数据模型是一个描述数据、数据联系、数据语义以及一致性约束的概念工具的集合。数据模型提供了一种描述物理层、逻辑层以及视图层数据库设计的方式。v数据模型是数据库系统的核心和基础。3.1 数据模型概述3.数据模型v数据模型的三要素a)数据结构:所研究的对象类型的集合。包括与数据类型、内容、性质有关的对象;与数据之间联系有关的对象。b)数据操作:对数据库中各种数据对象允许执行的操作集合。包括操作对象和有关的操作规则两部分c)数据约束条件:一组数据完整性规则的集合。3.1 数据模型概述3.数据模型v常见的数据模型层次模型、网状模型和关系模型,实体-联系模型,基于对象的数据模型,半结构化数据模型。非关系模型中数据结构的单位:基本层次联系a)两个记录及他们之间一对多(包括一对一)的联系,结构和表示方法如图RiRjLij3.2 数据模型分类3.数据模型v 层次模型的数据结构a)层次模型的定义 有且仅有一个结点没有双亲结点,这个结点称为根结点 除根结点之外的其他结点有且只有一个双亲结点。3.2.1 层次模型院系编号院系名称办公地点教研室编号 教研室学号姓名年龄专业方向职工号姓名根节点兄弟节点兄弟节点3.数据模型b)层次模型的数据表示方法实体集:用记录类型描述。每个节点表示一个记录类型。记录值表示实体;属性:用字段描述。每个记录型包含若干个字段;联系:记录之间的联系使用基本层次联系表示。c)层次模型的特点层次模型像一棵倒立的树;只有一个根结点,有若干个叶结点;结点的双亲是惟一的。3.2.1 层次模型D10计算机系9号楼C01硬件教研室C02软件教研室00001王平2000002李丽20电器92001王海自动化92002张铮数据库92003许明人工智能92004陈真教学院系数据库的一个实例v网状模型的数据结构网状模型结构的基本特征有一个以上的结点没有双亲。结点可以有多于一个的双亲。网状模型的数据表示方法使用记录和记录值表示实体集和实体;每个结点表示一个记录,每个记录包含若干个字段。联系(系)用结点间的有向线段表示。每个有向线段表示一个记录间的一对多的联系。R1R2R1R2R3R4R1R3R2 L1 L2 L1 L2 L33.数据模型3.2.2 网状模型 L1 L2 网状模型1)支持记录码的概念。码即惟一标识记录的数据项的集合。2)保证一个联系中双亲记录和子女记录之间是一对多的联系。3)可以支持双亲记录和子女记录之间某些约束条件。层次模型(1)在进行插入记录值操作时,如果没有指明相应的双亲记录值(首记录值),则不能插入子女记录值(属记录值)。(2)进行删除记录操作时,如果删除双亲记录值(首记录值),则相应的子女结点值(属记录值)也同时被删除。(3)进行修改记录操作时,应修改所有相应记录,以保证数据的一致性。3.2.3 完整性约束条件比较3.数据模型v关系模型的数据结构a)关系模型中的主要术语关系:一个关系对应通常所说的一张二维表。元组:表中的一行称为一个元组。属性:表中的一列称为一个属性。主码:表中的某个属性或属性组,值可以惟一地确定一个元组,且属性组中不含多余的属性。域:属性的取值范围称为域。分量:元组中的一个属性值称为分量。关系模式:关系的型称为关系模式,是对关系的描述。b)关系模型中的数据全部用关系表示3.3 关系数据模型3.数据模型学生学籍表 学 号姓 名性 别年 龄所 在 系00001 王平男20计算机系00002 李丽女20计算机系00010 张晓刚男19数学系关系模式一般的表示是:关系模式一般的表示是:关系名关系名(属性属性1,属性,属性2,属性,属性n).v 关系模型与非关系模型比较1)关系数据模型建立在严格的数学基础之上。2)关系数据模型的概念单一,容易理解。3)关系数据模型的存取路径对用户隐蔽。4)关系模型中的数据联系是靠数据冗余实现的。3.数据模型E-R 数据模型基于对现实世界的这样一种认识:现实世界由一组称作实体的基本对象以及这些对象间的联系构成。实体是现实世界中可区别于其他对象的一件“事情”或一个“物体”。被广泛用于数据库设计。3.数据模型3.4 实体-联系模型(entity-relationship model)面向对象的程序设计(特别是Java、C+或C#)已经成为占主导地位的软件开发方法。这导致面向对象数据模型可以看成是E-R 模型增加了封装、方法(函数)和对象标识等概念后的扩展。3.数据模型3.4 基于对象的数据模型(object-based data model)对象关系模型是面向对象数据模型与关系模型结合的产物,通过提供一个更丰富的类型系统(包括集合体类型和面向对象)来扩展关系数据模型。集合体类型包括嵌套关系、集合、多重集合和数组,允许表的属性为集合体。面向对象提供了子类型和子表的继承,以及对象(元组)引用。3.数据模型3.4 对象-关系数据模型(object-relational data model)2.3.6 对象关系数据模型 1.对象关系数据模型的概念 对象关系数据模型使用二维表表示数据,它包括关系表和对象表两种。关系表属于关系模型,关系的属性对应于表的列,关系的元组对应于表的行,关系数据模型不支持方法。对象表属于面向对象数据模型,支持面向对象的基本功能,对象的类抽象对应二维表,类的实例(对象)对应于表中的行,类的属性对应于表的列,通过对象可调用方法。对象表的数据类型和表结构特点(1)对象表的属性支持复合数据类型 关系表强调属性数据只能是不可分割的简单数据项,复合数据是不允许出现的。对象表的数据可以是基本项,也可以是组合数据项 学生信息的对象表结构学号学号姓名姓名年年龄龄班班级级家庭家庭联联系人系人姓名姓名与学生关系与学生关系电话电话单单位位(2)对象表的属性支持可变长数组类型 v(2)关系表的属性不支持数组类型,更不支持可变长的数组类型。对于一些数据个数不确定的信息,关系表只能独立新建表的方法解决。对象表增加了数组类型,用户可以使用可变长的数组类型保存记录中数据个数不一样的属性数据。学生学生-选课的对象表选课的对象表学号学号姓名姓名年年龄龄班班级级课课程名程名成成绩绩040011王王刚刚2004(2)数据数据库库72C语语言言87软软件工程件工程76040012李力李力2104(2)数据数据库库67040013田田红红2004(3)数据数据库库86软软件工程件工程75(3)对象表的属性支持嵌入表数据类型 对象表中的属性,不仅可以是复合数据、数组数据等带结构的数据,还可以是嵌套表,信息结构更复杂、更丰富。嵌套表有行和列,表的长短与具体元组有关。学号姓名年龄班级 选课040011王刚2004(2)040012李力2104(2)040013田红2004(3)课课程号程号课课程名程名成成绩绩C20数据数据库库72C11C语语言言87C32软软件工程件工程 76课课程号程号课课程名程名成成绩绩C20数据数据库库 86C32软软件工程件工程 75课课程号程号课课程名程名成成绩绩C20数据数据库库67E-R转换为数据模型E-R转换为数据模型E-R转换为数据模型