《第2章数据模型.ppt》由会员分享,可在线阅读,更多相关《第2章数据模型.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库技术及应用数据库技术及应用第第2章章 数据模型数据模型12本章知识点本章知识点 概念数据模型 重点讨论ER模型基本数据模型 关系模型与关系数据库关系的完整性 n层次数据模型层次数据模型n网状数据模型网状数据模型n关系数据模型关系数据模型n对象数据模型对象数据模型什么是数据模型?什么是数据模型?什么是数据模型?什么是数据模型?模型模型是我们研究、认识客观事物的一种方法,它的本质是抽象,是对现实原型所作一种抽象,即只关心与研究内容有关的因素而忽略无关的因素;借助模型可以把复杂的事物变的相对简单、便于我们认识和分析复杂的事物。3数据模型用来描述事物的结构、语义及数据之间关系的模型叫做数据模型。
2、1.概念数据模型 1.1 概念数据模型的概念及所解决的问题 概念数据模型被用来对现实世界建模,描述客观事物的属性特征及其关系。概念数据模型现实世界现实世界抽象、分析、归纳Database概念数据模型涉及的术语及对象概念数据模型涉及的术语及对象实体(实体集实例)实体描述客观存在并可以相互区分的事物可以是一个具体的人或物如张三,一辆汽车等可以是抽象的事件或概念如一场演出、一名学生选了一门课程等7实体集标识和描述具有相同属性特征的事物的集合,即同类对象的集合。由其名字及其属性集定义。例如,系(系号,系名,系主任)属性 描述实体集的某一特征和性质。属性值一个属性的取值。8域指一个属性的取值范围 码指能
3、够唯一标识实体集中每个实例的属性或属性组联系被用来描述事物及事物之间的关系9实体集之间的联系实体集之间的联系实体集之间的联系实体集之间的联系 (1 1:1:1、1:n1:n和和m:n)m:n)10对于父亲实体集中的一个实例,在子女实体集中存在多个实例与之联系,反之,对于子女实体集中的一个实例,父亲实体集中至多只有一个实例与之联系实体集A中的每一个实例,实体集B中有若干个实例与之联系;实体集B中的每个实例,实体集A中有若干个实例与之联系studentcoursedeptdirector1:11:nm:n一个实体集中记录之间的关系一个实体集中记录之间的关系一个实体集中记录之间的关系一个实体集中记录
4、之间的关系员工(工作证号,姓名,性别,职位,薪水)11 员工上司1n员工员工员工员工1 1员工员工员工员工2 2员工员工员工员工3 3员工员工员工员工5 5 员工员工员工员工6 6员工员工员工员工4 4员工员工员工员工n n进一步的例子进一步的例子进一步的例子进一步的例子12 产品 部件 零件使用mnp使用mn加工1n产品产品产品产品部件部件部件部件2 2部件部件部件部件3 3部件部件部件部件5 5部件部件部件部件4 4零件零件零件零件3 3部件部件部件部件3 3零件零件零件零件1 1零件零件零件零件3 3部件部件部件部件2 2概念数据模型的典型代表概念数据模型的典型代表ER((Entity_
5、Relationship)方法 IDEF1X数据建模方法 UML(Unified Modeling Language)的类图 1.2 1.2 1.2 1.2 E-R(Entity Relationship)E-R(Entity Relationship)E-R(Entity Relationship)E-R(Entity Relationship)模型模型模型模型14实体集 在ER图中实体集用长方形框表示,框内写上实体集的名称。例如:ERER模型图形表示模型图形表示属性用椭圆或圆角框表示,里面写上属性名称且用线段将实体集和它所拥有的全部属性连接起来。例如:实体集名课程实体集语法:实体集实例:课
6、程号 课程名 学分课程联系用菱形表示,菱形框内写上联系名,并用线段将菱形框及与之相关的实体集相连,在线段旁注明联系的基数。ER方法建模实例:对选课系统设计的数据:系、学生、课程、教师建模步骤如下:1 1)标识及定义实体集)标识及定义实体集)标识及定义实体集)标识及定义实体集 标识和描述具有相同属性特征的事物的集合从原始数据中采用分类标识,概括命名方法 抽象出系实体集、学生实体集、课程实体集、教师实体集,用图形方式表示如下:17学生学生 系系课程课程教师教师2)2)标识和定义实体集之间的联系标识和定义实体集之间的联系标识和定义实体集之间的联系标识和定义实体集之间的联系描述事物之间的联系按照业务或
7、管理规则标识和定义联系。例如:一个系管理多名学生,每名学生只属于一个系(1:n)一名学生选修多门课程,每门课程由多名学生选修(m:n)管理系1n学生选课课程mn一个系聘用多名教师,每名教师只受聘于一个系(1:n)管理系1n学生选课课程mn教师 聘用 授课1nmn一名教师讲授多门课程,一门课程由多名教师讲授(m:n)3)3)定义每个实体集的属性定义每个实体集的属性定义每个实体集的属性定义每个实体集的属性从原始数据中选择、确认和命名每个实体集的属性例如:学生实体集由属性学号,姓名,性别,出生年月描述和说明。课程实体集由课程号,课程名,学分,上课时间,课容量从原始数据中。依次列出每个实体集的全部属性
8、。学生学号性别出生年月姓名课程课程号课程名学分课容量上课时间214)4)画出选课系统完整的画出选课系统完整的画出选课系统完整的画出选课系统完整的ERER图图图图课程号系号学分系主任工作证号学号姓名成绩管理系选课课程学生1nmn性别出生年月课程名教师聘用1n授课mn教师号聘任日期奖金工资职称姓名授课评价系名办公电话其领导工作证号 概念数据模型关注的不是客观事物自身发展、变化的规律,它关注和研究如何真实、准确地把客观事物的属性特征、事物之间的联系表示出来,且语义清楚,容易理解。其目标是从需求的角度对数据和信息建模,把现实世界中的客观对象抽象为某种信息结构,这种信息结构不依赖于具体的计算机系统。2.
9、2.基本数据模型基本数据模型基本数据模型(结构数据模型):结构数据模型的概念及所解决的问题结构数据模型结构数据模型结构数据模型结构数据模型结构数据模型是数据库系统采用的数据模型或形式框架,这种模型依赖于计算机。结构数据模型被用于在机器世界中组织数据、存储数据和操作数据。25数据库系统支持的数据模型有:数据库系统支持的数据模型有:n层次模型(树)n网状模型(图)n关系模型n面向对象模型262.1 2.1 层次模型层次模型层次模型层次模型典型系统:IBM公司IMS系统(70年代初推出)主要特征:树型结构根结点只有一个根结点以外的结点有且只有一个父结点27R1R3R2R5R4系主任系号 系名班名班号
10、生日性别学号姓名姓名 职称教师号层次模型层次模型层次模型层次模型28包括系选课课程学生1nmn系号系名系主任学号性别出生年月课程号上课时间限额课程名姓名学分成绩学生课程选课记录选课记录E-R模型层次模型 系2.22.2网状模型网状模型网状模型网状模型主要特征:图型结构允许多个结点无双亲一个结点可以有多个双亲结点之间允许有复合链29ERER模型转换为网状模型模型转换为网状模型模型转换为网状模型模型转换为网状模型30包括系选课课程学生1nmn系号系名系主任学号性别生日课程号上课时间限额课程名姓名学分成绩E-R模型网状模型 系课程学生选课D-SS-SC-S先修课程Pre-course网状模型网状模型
11、网状模型网状模型指针实现:记录类型联系类型查尔斯.巴赫曼(Charles W.Bachman)因主持开发了最早的网状DBMS,解决了数据的集中控制与统一管理等1973年获图灵奖31R1R4R2R5R6cobol 系 学生D-S学生 First,Last,Next,Prior,Owner s99 s00 s02 s03计算机系物理系自动化系系D_SOwner2.3 2.3 关系模型关系模型关系模型关系模型关系是一张命名的二维表表中的每一行称为一条记录每一列称为一个属性。32学号学号姓名姓名性别性别出生年月出生年月2006012891张田女22-08月-19872003012103王博男27-12
12、月-1984学生记录关系名属性名属性值关系数据模型特点关系数据模型特点关系数据模型特点关系数据模型特点模型概念简单现实世界中抽象出来的数据及数据之间的联系均用二维表格(关系)存储 操作方便,系统重构容易 具有完备的数据库理论支持 埃德加.科德(Edgar Frank.Codd),因首次提出了关系数据模型和关系数据库理论(1981年获图灵奖)332.4 2.4 对象对象对象对象(Oriented Object)(Oriented Object)数据模型数据模型数据模型数据模型按照对象方法组织数据,把一个对象的属性特征和行为特征封装成一个能动的整体,通过OID识别每一个对象。特点:支持复杂的数据类
13、型(向量、矩阵、有序集等)语义强封装性继承性支持长事务等数据库管理系统支持数据模型数据库管理系统支持数据模型按计算机系统的观点组织、描述、存储数据的结构及操作特征。DBMS支持的数据模型由三部分组成:数据结构:描述数据库中存储的数据及数据之间的关系;数据操作:描述数据库中存储的数据支持的操作;数据约束:描述数据库中存储的数据值满足的约束条件概念数据模型与基本数据模型概念数据模型与基本数据模型概念数据模型与基本数据模型概念数据模型与基本数据模型36组织存储数据 加工处理现实世界现实世界现实世界现实世界PLAN 转换抽象分析归纳DBMS数据的存数据的存储结构储结构要求:真实描述现实世界的数据 语义
14、清楚容易理解 便于实现要求:高效地组织、存储数据 空间利用率好 操作的响应时间快 综合性能好Database37现实世界现实世界概念数据模型概念数据模型基本基本(结构结构)数据模型数据模型转换组织组织真实客观的描述现实世界的问题;语义清楚,容易理解;Database如何在计算机中存储数据及数据之间的关系?(存储、处理特征)用计算机存储和管理数据用计算机存储和管理数据分析分析归纳归纳抽象抽象数据模型是数据库系统的核心和基础:它为数据的描述和组织提供了方法和工具,使得数据的组织方式产生了变革;它为数据的存储和操作提供了结构和框架,使数据库系统实现了数据的集中控制和统一管理。3.关系模型与关系数据库
15、关系模型与关系数据库n 关系模型n 关系的定义n关系代数与操作40n 用数学方法构建数据的存储结构(概念简单,容易理解)n 用数学方法操作数据(操作方便)n 关系模型坚固的数学基础,使得关系表达式可以被分析和转换成等价的表达式(使操作者不必关心其内部存储细节)3 3.1 1关关关关系系系系模模模模型型型型系号系名系电话10计算机系6277324020数学系62785342学号姓名性别出生日期系号2007012891王佳男22-08月-1987102007030100李宇文男22-08月-198820课程号课程名学分上课时间限额20740063数据库技术与应用336100学号课程号成绩20060
16、128912074006385200703010020740063823.2 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为课程名的集合=数据库原理,英语阅读 D
17、3为成绩的集合=90,100D1xD2xD3=202191,数据库原理,90202191,英语阅读,90202192,数据库原理,90202192,英语阅读,90202191,数据库原理,100202191,英语阅读,100202192,数据库原理,100202192,英语阅读,100 42D1xD2xD3:202191,数据库原理,90202191,英语阅读,90202192,数据库原理,90202192,英语阅读,90202191,数据库原理,100202191,英语阅读,100202192,数据库原理,100202192,英语阅读,10043n 关系描述现实世界的客观事物及其联系n 关系
18、是笛卡儿积的子集学号学号课程名课程名成绩成绩202191数据库原理90202192英语阅读100关系R(D1,D2,D3)只有其中的一部分数据是有意义的关系具有下列性质:关系具有下列性质:关系具有下列性质:关系具有下列性质:不能有重复的元组元组上下无序所有属性都是原子项 按属性名引用域时,左右无序44R(D1,D2,D3)选课(学号,课程名,成绩)学号 char(2),课程名 char(10),成绩 number(3)关系与关系模式关系与关系模式关系与关系模式关系与关系模式关系:定义为一系列域上笛卡儿积的子集关系模式:对关系数据结构的描述例如:选课(学号,课程名,成绩)关系是关系模式在某一时刻
19、的状态或内容。在实际的应用中我们把关系和关系模式都叫做关系,通过上下文区别。45学号学号课程名课程名成绩成绩s1计算机原理90s2数学1003.3 3.3 关系代数与操作关系代数与操作关系代数与操作关系代数与操作46集合运算集合运算集合运算集合运算47并并RSt|t R t sRS差差RSt|t R t sRS交交RSt|t R t S RS关系操作关系操作关系操作关系操作选择操作()从指定关系中选择满足条件的元组组成结果关系例如:列出10系男同学的全部信息 sex=男 and dno=10 (student)48关系操作关系操作关系操作关系操作投影操作()从指定关系的属性集中选择属性子集组成
20、结果关系如:检索出所有学生的学号、姓名,所在系的系号 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关系操作关系操作关系操作关系操作例如,查询计算机系学生的信息(列出:系名,姓名,性别)51dno(系号)(系号)dname(系名)(系名)tel(电话)(电话)30计算机6278552350自动化6278555610化学62773344sno(学号)(学号)snam
21、e(姓名)(姓名)sex(性别)(性别)birth(生日)(生日)dno(系号)(系号)2006012879李宏男01-1月-1988302003012143朱敏女14-7月-1985 50dep(系)(系)student(学生)(学生)查询结果在两张表中,需要用连接操作连接操作步骤:连接操作步骤:连接操作步骤:连接操作步骤:根据查询要求写出查询语句查询计算机系的学生信息(系名,姓名,性别)由于学生信息存储在student表中,而系名存储于dep表中,先做两个表的笛卡儿积,即(dep Student)然后,从笛卡儿积中选择两个关系中公共列值相等的行最后,使用投影操作得到所需的信息(dname,
22、sname,sex)(dep.dno=student.dno and dname=计算机 (dep Student)52连接操作过程:连接操作过程:连接操作过程:连接操作过程:首先,对两个表做笛卡尔积其次,选出student.dno=dep.dno的元组然后,选出属于计算机系的元组最后,得到所需信息5330计算机 62785523 980001 李宏 男 01-1月-1980 3030 计算机 62785523 980015 朱敏 女 01-1月-1985 50 50 自动化 62785556 980001 李宏 男 01-1月-1980 3050 自动化 62785556 980015 朱敏
23、 女 01-1月-1985 5010 化学 62773344 980001 李宏 男 01-1月-1980 3010 化学 62773344 980015 朱敏 女 01-1月-1985 503.43.4关系代数与关系代数与SQLSQL语言语言 从语言形式看关系代数用关系表达式表示查询要求,SQL语言使用了更适合于计算机操作的语言形式谓词表示查询要求。4.关系的完整性关系的完整性n主码约束n外来码约束n域约束 关系的完整性也称为完整性约束(Integrity Constraint,IC),是数据库管理系统为了防止不符合语义的数据、不满足条件的数据载入数据库,对数据库数据的正确性、有效性进行检查
24、和控制的一种机制。4.1 4.1 主码约束主码约束主码约束主码约束 主码约束保证关系中的主码属性值不空且唯一。通常主码须满足的两个条件:唯一性:在一个关系中,不存在两个元组,它们具有相同的主码值。例如,SNO是关系STUDENT的主码,不会有两个学生具有相同的SNO值。最小性:不存在一个属性可以从主码的属性集中去掉,而同时仍能保持上述唯一性。4.2 外来码约束外来码约束 若关系R中含有另一个关系S的主码Ks所对应的属性或属性组F,(该属性或属性组F称为关系R的外来码Foreign Key),则关系R中的每一个元组在属性组F上的值必须满足:或者取空值,或者等于S中某个元组的主码Ks的值。外来码约
25、束(引用完整性)保证关系之间相关数据的完整性和一致性。3001-1月-1980女朱一敏9901013001-1月-1982女刘姗2121932001-1月-1981男王明2021921008-3月-1981男李宏202191DNO系号BIRTH 出生年月SEX性别SNAME姓名SNO(学号)62786756无线电系4062783356计算机系3062785656外语系2062788656中文系 10Director系主任DNAME系名DNO 系号外来码(Foreign Key)主码(Primary Key)4.3 4.3 域(域(域(域(DomainDomain)约束)约束)约束)约束域约束规则定义一个关系属性满足的条件。例如,在定义STUDENT关系时可以申明属性SEX(性别)的取值只能为“男”或“女”。根据需要也可以申明学生年龄的取值范围在16至35岁之间。60概念数据模型面向现实世界、面向数据使用需求建模,描述数据的属性特征及数据之间的关系。基本(结构)数据模型面向机器世界,面向数据处理需求在计算机中组织、存储数据及其之间的关系。小结p 概念数据模型关注:如何真实地表示和描述现实世界的数据;建模结果语义清楚容易理解,也便于计算机实现。p 基本数据模型关注:如何在计算机中组织、存储数据;其空间利用率好;操作响应时间快;综合性能好。
限制150内