数据库技什么是概念数据建模35932.pptx
《数据库技什么是概念数据建模35932.pptx》由会员分享,可在线阅读,更多相关《数据库技什么是概念数据建模35932.pptx(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据库技术第五章数据库设计过程E/RE/R图到关图到关系模式的系模式的转换转换关系模式关系模式的规范化的规范化需求分析需求分析概念模式设计概念模式设计逻辑模式设计逻辑模式设计数据库实施数据库实施E/RE/R图图UMLUMLRDBMSRDBMS模式模式存储模式存储模式数据库运行和维护数据库运行和维护什么是概念数据建模对系统中数据的描述描述类间的各种关系概念数据建模过程概念数据建模方法UMLER概念数据建模-UML类被表示为由3个部分组成的矩形上面部分给出了类的名称,类名用粗体,背景颜色较深。中间部分给出了该类对象的属性。下面部分给出了对象的约束条件以及可以应用到这些对象的操作。其中第二和第三个部
2、分之间,用一条线间隔开来。UML例子UML关系表达关系是一个或多个类的对象之间的语义连接一个关系可以是因为实体之间的自然联系而造成的结果,例如,一个教师属于某一个院系;也可能是由于发生了某一个事件,例如一个学生选了某门课。关系的度(或元数)关系的度(或元数)参与一个关系的类的数目一元关系一元关系二元关系二元关系关系的重数一个类的对象与另一个类的对象存在的数目上的关系0.1:表示最小值是0,最大值是1。*(或0.*):表示范围从0到无穷大。0.n:最小为0,最大为n。单个1:代表1.1,表示关系中参与的对象数目恰好是1关系的重数举例关联关联关联是一种关系关联的2个类间产生属性概念模式设计ER图实
3、体联系模型(实体联系模型(Entity-RelationshipModel,简,简称称E-R模型)模型)P.P.Chen 于于1976年在年在“TheEntity-RelationshipModel:TowardaUnifiedViewofData”,ACMTransactionsonDatabaseSystems,Vol1,Num1(1976).论论文中提出的。文中提出的。模型直接从现实世界中抽象出实体类型及实体联模型直接从现实世界中抽象出实体类型及实体联系系.用实体联系图即用实体联系图即E-R表示数据模型。其核心就是表示数据模型。其核心就是设计设计E-R图(图(Entity-Relatio
4、nshipDiagram)。)。E-R模型的基本概念实体实体(entity):客观存在,可以相互区别的事物称为实体。:客观存在,可以相互区别的事物称为实体。实体集实体集(entityset):性质相同的同类实体的集合,称实体集。:性质相同的同类实体的集合,称实体集。属性属性(attribute):实体有很多特性,每一个特性称为属性。每一个属:实体有很多特性,每一个特性称为属性。每一个属性有一个值域,其类型可以是整数型、实数型、字符串型等。性有一个值域,其类型可以是整数型、实数型、字符串型等。实体标识符实体标识符(identifier):能惟一标识实体的属性或属性集,称:能惟一标识实体的属性或属
5、性集,称为实体标识符。有时也称为关键码为实体标识符。有时也称为关键码(key),或简称为,或简称为键键。联系联系(relationship)是实体之间的相互关系。是实体之间的相互关系。数据模型数据模型:能表示能表示实体类型实体类型及及实体间联系实体间联系的模型称为的模型称为“数据模型数据模型”。实体表达E-R图的基本组成部分E/RE/R图有四个主要部分:图有四个主要部分:(1 1)实体集,用矩形表示。)实体集,用矩形表示。(2 2)属性,用椭圆形表示。)属性,用椭圆形表示。(3 3)联系,用菱形表示。)联系,用菱形表示。(4 4)直线,表示联系的类型及实体与实体之间)直线,表示联系的类型及实体
6、与实体之间的联系;的联系;数据联系 联系(联系(relationshiprelationship)是实体之间的相互关系。)是实体之间的相互关系。二元联系有以下三种类型:二元联系有以下三种类型:一对一联系一对一联系:实体集:实体集E1E1中每个实体至多和实体集中每个实体至多和实体集E2E2中的一中的一个实体有联系,反之亦然,那么实体集个实体有联系,反之亦然,那么实体集E1E1和和E2E2的联系称为的联系称为“一对一联系一对一联系”,记为,记为“1:11:1”。一对多联系一对多联系:实体集:实体集E1E1中每个实体可以与实体集中每个实体可以与实体集E2E2中任意中任意个(零个或多个)实体间有联系,
7、而个(零个或多个)实体间有联系,而E2E2中每个实体至多和中每个实体至多和E1E1中一个实体有联系,那么称中一个实体有联系,那么称E1E1对对E2E2的联系是的联系是“一对多联一对多联系系”,记为,记为“1:N1:N”。多对多联系多对多联系:如果实体集:如果实体集E1E1中每个实体可以与实体集中每个实体可以与实体集E2E2中中任意个(零个或多个)实体有联系,反之亦然,那么称任意个(零个或多个)实体有联系,反之亦然,那么称E1E1和和E2E2的联系是的联系是“多对多联系多对多联系”,记为,记为“M:NM:N”。三种联系的E-R图实体实体1 1实体实体2 2联系联系实体实体1 1实体实体2 2联系
8、联系实体实体1 1实体实体2 2联系联系 1 11 1联系联系 1 1n n联系联系 m mn n联系联系三种联系的E-R图实例客人客人飞机座位飞机座位号号联系联系院系院系教师教师联系联系课程课程学生学生联系联系 1 11 1联系联系 1 1n n联系联系 m mn n联系联系E-R图实例例:设计一个学生选课数据库。要求包括学生例:设计一个学生选课数据库。要求包括学生(student)(student)、课程、课程(course)(course)和教师和教师(teacher)(teacher)的信息。的信息。实体中存在如下联系:实体中存在如下联系:一个学生可以选修多门课,而每门课也能由多个学生
9、选修;一位教一个学生可以选修多门课,而每门课也能由多个学生选修;一位教师可以教多门课,每门课也可以由多个教师讲授;用师可以教多门课,每门课也可以由多个教师讲授;用E-RE-R图来描述此图来描述此数据库。数据库。学生信息:学号学生信息:学号(no)、学生姓名、学生姓名(name)、年龄、年龄(age)、地址、地址(dddress)课程信息:课程号课程信息:课程号(no)、课程名、课程名(name)、课程学分、课程学分(credits)教师信息:工号教师信息:工号(no)、姓名、姓名(name)、教师的地址、教师的地址(address)学生-课程-教师E-R图studentcourseteache
10、rtaketeach注意:如果一个联系具有属性,则这些属性也与该注意:如果一个联系具有属性,则这些属性也与该联系连接起来。联系连接起来。TeachCourseNo条码白酒容量度数编号销售商联系人地址电话名称销售数量单价E-R图实例白酒销售 IBM研究员研究员E.F.Codd(EdgarFrankCodd,1924-2003)于)于1970发表了业界发表了业界第一篇关于关系数据库理论的论文第一篇关于关系数据库理论的论文“ARelationalModelofDataforLargeSharedDataBanks”,首次提出了关系,首次提出了关系模型的概念。这篇论文是计算机科学史上模型的概念。这篇论
11、文是计算机科学史上最重要的论文之一,也奠定了最重要的论文之一,也奠定了Codd博士博士“关系数据库之父关系数据库之父”的地位。的地位。E.F.Codd因此获得因此获得ACM图灵奖(图灵奖(1981年)。年)。关系数据模型关系描述关系名(关键属性,属性1,属性2,属性N)Student(studentNo,studentName,birthday,sex)关系基本概念关系:对应通常所说的二维表。关系:对应通常所说的二维表。元组:表中的一行即为一个元组元组:表中的一行即为一个元组属性:表中的一列即为一个属性,例如下表有属性:表中的一列即为一个属性,例如下表有4列,就有列,就有4个属性个属性(stu
12、dentNo,studentName,birthday,sex)。)。主键:表中的某个属性组主键:表中的某个属性组(可以多属性组合成主键可以多属性组合成主键),它可以唯一确定,它可以唯一确定一个元组,例如,一个元组,例如,studentNo可以唯一确定一个学生,也就成为学生可以唯一确定一个学生,也就成为学生关系的主键;关系的主键;域:属性的取值范围,例如,大学生性别域是(男,女);域:属性的取值范围,例如,大学生性别域是(男,女);分量:元组中的一个属性个数。例如,学生关系分量为分量:元组中的一个属性个数。例如,学生关系分量为4。关系模式:对关系的描述,一般表示为:关系名关系模式:对关系的描述
13、,一般表示为:关系名(属性属性1,属性,属性2,属性,属性N)。关系模型实例关关系系关系名关系名l元组元组:表中的一行即为一个元组或记录;:表中的一行即为一个元组或记录;l字段字段:表中的一列,列值称为字段值,列名称为字段名:表中的一列,列值称为字段值,列名称为字段名l值域值域:字段值的取值范围:字段值的取值范围元组元组 (记录)记录)属性属性 (字段字段)l主键主键:能唯一标识一个元组的属性集合。:能唯一标识一个元组的属性集合。l外键外键:若属性组:若属性组F F不是关系不是关系R1R1的主键,但它是关系的主键,但它是关系R2R2的主的主 键,则键,则F F称是关系称是关系R1R1的外键。的
14、外键。主键主键主键主键外键外键关系模型查询的实现关系模型查询的实现通过关联表的方式实现良构关系良构关系包含最小的数据冗余,允许操作者插入、删除、修改表中的行而不会引起错误或数据的不一致良构关系良构关系 -关系的规范化关系的规范化1 1、问题、问题学生学生选课选课表表SNoSNoSNameSNameSDeptSDeptMnameMnameCNameCNamegradegrade991230991230贺贺小小华华计计算机算机周至光周至光数据数据库库9696991239991239金金谦谦计计算机算机周至光周至光操作系操作系统统9090991239991239金金谦谦计计算机算机周至光周至光编译编
15、译原理原理9292993851993851陈刚陈刚建筑建筑王勇王勇建筑原理建筑原理8989992076992076吕吕宋宋自自动动化化李霞李霞自自动动化化设计设计8585992076992076吕吕宋宋自自动动化化李霞李霞电电路原理路原理8282数据冗余数据冗余修改异常修改异常插入异常插入异常删除异常删除异常 学号学号 课程课程 学分学分 100 100 人工智能人工智能 3 3 125 125 文化学文化学 2 2 150 150 市场营销学市场营销学 2 2 175 175 人工智能人工智能 3 3 190 190 文化学文化学 2 2更新异常:删除学号为更新异常:删除学号为150150的
16、学生的选课记录,丢掉了学生的学生的选课记录,丢掉了学生150150选修选修“市场营销学市场营销学”的事实,还失去了的事实,还失去了“市场营销市场营销学学”的学分是的学分是2 2的事实。的事实。插入异常:若有一门插入异常:若有一门“法律法律”课,学分为课,学分为3 3,但无学生选修时,但无学生选修时,不能输入。不能输入。消除异常的方法:模式分解 若将以上的学生关系分解成学生若将以上的学生关系分解成学生-选课、课程选课、课程-学分关系,学分关系,更新异常、插入异常就都可消除了,对关系进行分解的过程更新异常、插入异常就都可消除了,对关系进行分解的过程就是规范化过程。就是规范化过程。学号学号课程课程1
17、00100人工智能人工智能125125文化学文化学150150市场营销市场营销175175人工智能人工智能190190文化学文化学课程课程学分学分人工智能人工智能3 3文化学文化学2 2市场营销市场营销2 2学生选课关系学生选课关系课程学分关系课程学分关系属性间有三种联系1)函数依赖函数依赖:给定一个属性的值,可以获得另一个属性的值。:给定一个属性的值,可以获得另一个属性的值。例如,若已知例如,若已知“课程名课程名”的值,便可知道的值,便可知道“授课学时授课学时”。“授授课学时课学时”依赖于依赖于“课程名课程名”,或,或“课程名课程名”决定决定“授课学时授课学时”。记作。记作“课程名课程名授课
18、学时授课学时”。4 43636面向对象面向对象X002X0023 35454数值分析数值分析X001X0016 67272编译原理编译原理Z006Z0065 57272操作系统操作系统Z004Z0042 25454C C程序设程序设计计J003J0036 67272数据库数据库J001J001授课学授课学期期授课学时授课学时课程名课程名课程号课程号2)部部分分依依赖赖:下下表表的的主主键键是是属属性性集集合合 学学号号,课课程程号号。主主键键 学学号号,课课程程号号 决决定定了了“学学分分”的的值值。但但“学学分分”只只由由“课课程程号号”决决定定,与与“学学号号”无无关关,也也就就是是“学学
19、分分”属属性性只只由由主主键键 学学号号,课课程程号号 的的一一部部分分而而不不是是全全部部来来决决定定,把把这这种种依依赖赖称称为为部部分分依赖。依赖。记作记作“学分学分 学号,课程号学号,课程号”。学号学号姓名姓名课程号课程号课程名课程名学分学分01001010100101李灿李灿J01J01数据库数据库4 401001010100101李灿李灿J04J04操作系统操作系统4 401001010100101李灿李灿L02L02数值算法数值算法3 301002010100201张简张简J01J01数据库数据库4 401001010100101李灿李灿J04J04操作系统操作系统4 40200
20、3010200301张名张名F09F09德语德语6 601002010100201张简张简F09F09德语德语6 63)传传递递依依赖赖:下下表表的的主主键键是是“学学号号”,学学生生住住宿宿的的楼楼号号依依赖赖于于学学号号。但但是是,学学生生应应交交的的住住宿宿费费是是由由楼楼号号决决定定的的,也也就就是是说说,“收收费费”依依赖赖于于“楼楼号号”,这这是是一一种种新新的的依依赖赖关关系系:“楼楼号号”依依赖赖于于“学学号号”,而而“收收费费”又又依依赖赖于于“楼楼号号”。一一般般把把这这种种依依赖赖关关系系称称为为“传传递递依依赖赖”。记记作作“学学号号收收费费”。8008008 8150
21、1506006004 41201205005002 21301305005002 21001002 2楼号楼号500500180180收费收费学号学号1)第一范式(FirstNormalForm,1NF)定义:定义:如果一个关系模式如果一个关系模式R的所有属性都是不可分的基的所有属性都是不可分的基 本本 数据项,则关系数据项,则关系R属于第一范式。属于第一范式。注意:集合、数组和结构都不能为第一范式关系中属性的注意:集合、数组和结构都不能为第一范式关系中属性的 类型。类型。符合第一范式的关系可能有插入、删除异常。符合第一范式的关系可能有插入、删除异常。例如:在关系例如:在关系“选课选课”中,存
22、在着部分依赖:中,存在着部分依赖:学分学分 学号,课程号学号,课程号 将导致插入、删除异常。将导致插入、删除异常。p2)第二范式(SecondNormalForm,2NF)定义:定义:若关系模式若关系模式R属于第一范式,且每个非主属性都完属于第一范式,且每个非主属性都完全函数依赖于主键,则全函数依赖于主键,则R属于第二范式属于第二范式。注意:单个属性作为主键的关系自动就是第二范式。注意:单个属性作为主键的关系自动就是第二范式。第二范式中的关系存在更新异常第二范式中的关系存在更新异常.例如:例如:(学号、楼号、收费学号、楼号、收费),虽然学号是单属性主键,虽然学号是单属性主键,属于第二范式,而楼
23、号、收费都由学号决定,存在传递依赖属于第二范式,而楼号、收费都由学号决定,存在传递依赖关系:关系:“学号学号收费收费”将导致更新异常。将导致更新异常。t3)第三范式定定义义:如如果果一一个个关关系系R是是第第二二范范式式的的,并并且且每每个个非非主主属属性性 都不传递依赖于主键,则都不传递依赖于主键,则R属于第三范式。属于第三范式。例例如如:学学生生住住宿宿关关系系可可以以分分解解为为两两个个关关系系:学学生生-楼楼号号关关系系(学学号号,楼楼号号)和和楼楼号号-收收费费关关系系(楼楼号号,收收费费)。这这两两个关系属于第三范式。个关系属于第三范式。学号学号楼号楼号1001002 212012
24、04 41301302 21501508 81801802 2楼号楼号收费收费2 25005004 46006002 25005008 88008002 2500500UML到关系模型的转换类转换系模式名就是类名,关系模式的属性由原类中的各属性组成,关系模式的主键就是原类的主键Student(studentNo,studentName,sex,birthday)UML到关系模型的转换关系转换1:1关联关联(二元关系重数=1:1)两个类转换成两个关系模式在其中任意一个关系模式的属性集中加入另一个关系模式的主键1:N关联关联(二元关系重数=1:N)两个类转换成两个关系模式在N端的类转换成的关系模式
25、中加入1端关系模式的主键1:N关联关联转换实例Teacher(TeacherId,teacherName,sex)Deaprtment(DeptId,deptName,location)Teacher(TeacherId,teacherName,sex,deptId)UML到关系模型的转换关联类关联两端的对象各转换成一个关系模式关联本身也产生一个关系模式,其主键用关联两端对象的主键形成复合键关联类转换实例Student(studentNo,.)Course(courseNo,)selectCourse(studentNo,courseNo,grade)4、E-R模型到关系模式的转换1)实体)实
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 什么是 概念 数据 建模 35932
限制150内