1、数据库技术及应用,第2章 数据模型,1,2,本章知识点,概念数据模型重点讨论ER模型 基本数据模型关系模型与关系数据库 关系的完整性,层次数据模型 网状数据模型 关系数据模型 对象数据模型,什么是数据模型?,模型模型是我们研究、认识客观事物的一种方法,它的本质是抽象,是对现实原型所作一种抽象,即只关心与研究内容有关的因素而忽略无关的因素;借助模型可以把复杂的事物变的相对简单、便于我们认识和分析复杂的事物。,3,数据模型用来描述事物的结构、语义及数据之间关系的模型叫做数据模型。,1. 概念数据模型,1.1 概念数据模型的概念及所解决的问题,概念数据模型被用来对现实世界建模, 描述客观事物的属性特
2、征及其关系。,概念数据模型,概念数据模型涉及的术语及对象,实体(实体集实例) 实体描述客观存在并可以相互区分的事物可以是一个具体的人或物 如张三,一辆汽车等 可以是抽象的事件或概念 如一场演出、一名学生选了一门课程等,7,实体集 标识和描述具有相同属性特征的事物的集合,即同类对象的集合。 由其名字及其属性集定义。 例如,系(系号,系名,系主任) 属性描述实体集的某一特征和性质。 属性值 一个属性的取值。,8,域 指一个属性的取值范围码 指能够唯一标识实体集中每个实例的属性或属性组 联系 被用来描述事物及事物之间的关系,9,实体集之间的联系 (1:1、1:n和m:n),10,对于父亲实体集中的一
3、个实例,在子女实体集中存在多个实例与之联系,反之,对于子女实体集中的一个实例,父亲实体集中至多只有一个实例与之联系,实体集A中的每一个实例,实体集B中有若干个实例与之联系;实体集B中的每个实例,实体集A中有若干个实例与之联系,一个实体集中记录之间的关系,员工(工作证号,姓名,性别,职位,薪水),11,进一步的例子,12,概念数据模型的典型代表,ER((Entity_Relationship)方法 IDEF1X数据建模方法 UML(Unified Modeling Language)的类图,1.2 E-R (Entity Relationship)模型,14,实体集在ER图中实体集用长方形框表示
4、,框内写上实体集的名称。例如:,ER模型图形表示,属性用椭圆或圆角框表示,里面写上属性名称且用线段将实体集和它所拥有的全部属性连接起来。例如:,联系用菱形表示,菱形框内写上联系名,并用线段将菱形框及与之相关的实体集相连,在线段旁注明联系的基数。,ER方法建模实例: 对选课系统设计的数据: 系、学生、课程、教师 建模步骤如下:,1)标识及定义实体集,标识和描述具有相同属性特征的事物的集合 从原始数据中采用分类标识,概括命名方法抽象出系实体集、学生实体集、课程实体集、教师实体集,用图形方式表示如下:,17,2) 标识和定义实体集之间的联系,描述事物之间的联系 按照业务或管理规则标识和定义联系。例如
5、:,一个系管理多名学生,每名学生只属于一个系(1:n),一名学生选修多门课程,每门课程由多名学生选修(m:n),一个系聘用多名教师,每名教师只受聘于一个系(1:n),一名教师讲授多门课程,一门课程由多名教师讲授(m:n),3)定义每个实体集的属性,从原始数据中选择、确认和命名每个实体集的属性 例如:学生实体集由属性学号,姓名,性别,出生年月描述和说明。课程实体集由课程号,课程名,学分,上课时间,课容量从原始数据中。依次列出每个实体集的全部属性。,21,4) 画出选课系统完整的ER图,概念数据模型关注的不是客观事物自身发展、变化的规律,它关注和研究如何真实、准确地把客观事物的属性特征、事物之间的
6、联系表示出来,且语义清楚,容易理解。,其目标是从需求的角度对数据和信息建模,把现实世界中的客观对象抽象为某种信息结构,这种信息结构不依赖于具体的计算机系统。,2. 基本数据模型,基本数据模型(结构数据模型):结构数据模型的概念及所解决的问题,结构数据模型,结构数据模型是数据库系统采用的数据模型或形式框架,这种模型依赖于计算机。 结构数据模型被用于在机器世界中组织数据、存储数据和操作数据。,25,数据库系统支持的数据模型有:,层次模型(树) 网状模型(图) 关系模型 面向对象模型,26,2.1 层次模型,典型系统:IBM公司IMS系统 (70年代初推出) 主要特征: 树型结构 根结点只有一个 根
7、结点以外的结点有且只有一个父结点,27,层次模型,28,学生,课程,选课记录,选课记录,E-R模型,层次模型,系,2.2网状模型,主要特征: 图型结构 允许多个结点无双亲 一个结点可以有多个双亲 结点之间允许有复合链,29,ER模型转换为网状模型,30,E-R模型,网状模型,网状模型,指针实现: 记录类型 联系类型 查尔斯.巴赫曼(Charles W.Bachman)因主持开发了最早的网状DBMS,解决了数据的集中控制与统一管理等1973年获图灵奖,31,cobol,2.3 关系模型,关系是一张命名的二维表 表中的每一行称为一条记录 每一列称为一个属性。,32,学生,记录,关系名,属性名,属性
8、值,关系数据模型特点,模型概念简单 现实世界中抽象出来的数据及数据之间的联系均用二维表格(关系)存储操作方便,系统重构容易具有完备的数据库理论支持埃德加.科德(Edgar Frank. Codd), 因首次提出了关系数据模型和关系数据库理论(1981年获图灵奖),33,2.4 对象(Oriented Object)数据模型,按照对象方法组织数据,把一个对象的属性特征和行为特征封装成一个能动的整体,通过OID识别每一个对象。特点: 支持复杂的数据类型(向量、矩阵、有序集等) 语义强 封装性 继承性 支持长事务等,数据库管理系统支持数据模型,按计算机系统的观点组织、描述、存储数据的结构及操作特征。
9、DBMS支持的数据模型由三部分组成: 数据结构:描述数据库中存储的数据及数据之间的关系; 数据操作:描述数据库中存储的数据支持的操作; 数据约束:描述数据库中存储的数据值满足的约束条件,概念数据模型与基本数据模型,36,37,数据模型是数据库系统的核心和基础: 它为数据的描述和组织提供了方法和工具,使得数据的组织方式产生了变革; 它为数据的存储和操作提供了结构和框架,使数据库系统实现了数据的集中控制和统一管理。,3. 关系模型与关系数据库,关系模型关系的定义 关系代数与操作,40,用数学方法构建数据的存储结构(概念简单,容易理解)用数学方法操作数据(操作方便)关系模型坚固的数学基础,使得关系表
10、达式可以被分析和转换成等价的表达式(使操作者不必关心其内部存储细节),3.1关系模型,3.2 关系的定义,定义一(域): 域(Domain)是值的集合。 定义二(笛卡尔积): 设D1, D2, , Dn为一组域,D1, D2, Dn上的笛卡尔积定义为: D1D2Dn(d1, d2, ,dn)diDi, i=1, 2, , n 定义三(关系): 笛卡尔积D1D2Dn的子集叫做在域D1,D2,Dn上的关系(Relation)。 用 R(D1, D2 , Dn)表示,R是关系名。,41,笛卡尔儿的例子,D1为学号的集合=202191,202192 D2为课程名的集合=数据库原理,英语阅读 D3为成绩
11、的集合=90,100 D1xD2xD3 = 202191,数据库原理,90 202191,英语阅读,90 202192,数据库原理,90 202192,英语阅读,90 202191,数据库原理,100 202191,英语阅读,100 202192,数据库原理,100 202192,英语阅读,100 ,42,D1xD2xD3 : 202191,数据库原理,90 202191,英语阅读,90 202192,数据库原理,90 202192,英语阅读,90 202191,数据库原理,100 202191,英语阅读,100 202192,数据库原理,100 202192,英语阅读,100,43,关系描述
12、现实世界的客观事物及其联系关系是笛卡儿积的子集,只有其中的一部分数据是有意义的,关系具有下列性质:,不能有重复的元组 元组上下无序 所有属性都是原子项 按属性名引用域时,左右无序,44,R(D1,D2,D3) 选课(学号,课程名,成绩),学号 char(2), 课程名 char(10), 成绩 number(3),关系与关系模式,关系:定义为一系列域上笛卡儿积的子集关系模式:对关系数据结构的描述 例如:选课(学号,课程名,成绩) 关系是关系模式在某一时刻的状态或内容。 在实际的应用中我们把关系和关系模式都叫做关系,通过上下文区别。,45,3.3 关系代数与操作,46,集合运算,47,关系操作,
13、选择操作() 从指定关系中选择满足条件的元组组成结果关系例如:列出10系男同学的全部信息 sex= 男 and dno= 10 (student),48,关系操作,投影操作() 从指定关系的属性集中选择属性子集组成结果关系 如:检索出所有学生的学号、姓名,所在系的系号 sno,sname,dno(student),49,关系操作,连接操作(join) 将不同表中的相关记录连在一起组成一个跨表的结果记录R*S= (Ra1,Ran,Sb1,Sbj-1,Sbj+1,Sbm)( Rai=Sbj(R x S) 这里,RS为R与S的笛卡儿积,50,关系操作,例如,查询计算机系学生的信息(列出:系名,姓名,
14、性别),51,dep(系),student(学生),查询结果在两张表中,需要用连接操作,连接操作步骤:,根据查询要求写出查询语句 查询计算机系的学生信息(系名,姓名,性别) 由于学生信息存储在student表中,而系名存储于dep表中,先做两个表的笛卡儿积,即(dep Student) 然后,从笛卡儿积中选择两个关系中公共列值相等的行 最后,使用投影操作得到所需的信息 (dname,sname,sex)( dep.dno=student.dno and dname=计算机 (dep Student),52,连接操作过程:,首先,对两个表做笛卡尔积 其次,选出student.dno = dep.
15、dno的元组 然后,选出属于计算机系的元组 最后,得到所需信息,53,计算机 62785523 980001 李宏 男 01-1月-1980 30 30 计算机 62785523 980015 朱敏 女 01-1月-1985 50 50 自动化 62785556 980001 李宏 男 01-1月-1980 30 50 自动化 62785556 980015 朱敏 女 01-1月-1985 50 10 化学 62773344 980001 李宏 男 01-1月-1980 30 10 化学 62773344 980015 朱敏 女 01-1月-1985 50,3.4关系代数与SQL语言,从语言形
16、式看关系代数用关系表达式表示查询要求,SQL语言使用了更适合于计算机操作的语言形式谓词表示查询要求。,4. 关系的完整性,主码约束 外来码约束 域约束,关系的完整性也称为完整性约束(Integrity Constraint,IC),是数据库管理系统为了防止不符合语义的数据、不满足条件的数据载入数据库,对数据库数据的正确性、有效性进行检查和控制的一种机制。,4.1 主码约束,主码约束保证关系中的主码属性值不空且唯一。通常主码须满足的两个条件:,唯一性:在一个关系中,不存在两个元组,它们具有相同的主码值。 例如,SNO是关系STUDENT的主码,不会有两个学生具有相同的SNO值。,最小性:不存在一
17、个属性可以从主码的属性集中去掉,而同时仍能保持上述唯一性。,4.2 外来码约束,若关系R中含有另一个关系S的主码Ks所对应的属性或属性组F,(该属性或属性组F称为关系R的外来码Foreign Key),则关系R中的每一个元组在属性组F上的值必须满足:或者取空值,或者等于S中某个元组的主码Ks的值。外来码约束(引用完整性)保证关系之间相关数据的完整性和一致性。,4.3 域(Domain)约束,域约束规则定义一个关系属性满足的条件。例如,在定义STUDENT关系时可以申明属性SEX(性别)的取值只能为“男”或“女”。根据需要也可以申明学生年龄的取值范围在16至35岁之间。,60,概念数据模型面向现实世界、面向数据使用需求建模,描述数据的属性特征及数据之间的关系。基本(结构)数据模型面向机器世界,面向数据处理需求在计算机中组织、存储数据及其之间的关系。,小结,概念数据模型关注:,如何真实地表示和描述现实世界的数据;建模结果语义清楚容易理解, 也便于计算机实现。,基本数据模型关注:,如何在计算机中组织、存储数据; 其空间利用率好; 操作响应时间快; 综合性能好。,