




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第二章 数据库应用系统 设计概述,2019/7/28,2,知识点:,数据库应用系统的开发 数据库的设计 数据库规范化设计理论,2019/7/28,3,2.1 数据库应用系统的开发,在数据库管理系统上开发数据库应用系统是一个复杂的过程,必须在软件开发理论和方法的指导下进行,否则很难开发出高效适用的应用系统。,2019/7/28,4,2.1 数据库应用系统的开发,数据库应用系统的开发方法很多,得到广泛运用的有以下三种: 结构化生命周期法 快速原型法 面向对象方法,2019/7/28,5,2.1 数据库应用系统的开发,结构化生命周期法的基本思想是把系统开发看作是工程项目,需要经过以下5个阶段: 系统规划 系统分析(需求分析) 系统设计 系统实施(编程) 系统运行(测试) 系统维护,2019/7/28,6,2.1 数据库应用系统的开发,结构化生命周期法的开发步骤 一、系统规划阶段 在系统正式开发之前,必须进行系统调查和可行性分析。本阶段的主要任务是根据用户的系统开发请求,初步调查,明确问题,进行可行性分析研究。,2019/7/28,7,2.1 数据库应用系统的开发,结构化生命周期法的开发步骤 二、系统分析阶段 系统分析阶段可以说是系统开发中最重要的一步,主要任务是: 需求分析 信息采集 编写需求说明书,2019/7/28,8,2.1 数据库应用系统的开发,结构化生命周期法的开发步骤 三、系统设计阶段 如果系统分析阶段的任务是解决“干什么”的问题,那么系统设计阶段的任务是确定“怎么干”。 系统设计工作由总体设计和详细设计两部分组成。,2019/7/28,9,2.1 数据库应用系统的开发,结构化生命周期法的开发步骤 三、系统设计阶段 总体设计 完成概念模型的设计 详细设计 完成数据库设计和应用程序的设计,2019/7/28,10,2.1 数据库应用系统的开发,结构化生命周期法的开发步骤 四、系统实施阶段 第一步:应选择合适的软件开发工具; 第二步:使用所选择的开发工具,建立数据库, 输入原始数据,编写和调试各个模块的应用程序代码; 第三步:完成各个子系统和模块之间的联合调试和测试;,2019/7/28,11,2.1 数据库应用系统的开发,结构化生命周期法的开发步骤 五、系统运行阶段 将系统交给用户正式投入之前,便进入系统的运行测试阶段。在试运行过程中,可能会发现很多问题,要广泛听取用户的意见,并根据运行结果进行评估,修改系统的错误、改进系统的性能。,2019/7/28,12,2.1 数据库应用系统的开发,结构化生命周期法的开发步骤 投入运行:系统维护阶段 将系统交给用户正式投入之后,可能会发现很多新的问题,或用户提出新的要求,开发者应不断对系统进行修改、维护或调整,直至系统生命周期的结束。,2019/7/28,13,2.1 数据库应用系统的开发,快速原型法的基本思想就是依据原型进行快速开发,对存在的问题反复修正,直到用户满意为止。,分为四步: 系统基本需求的确定 对原型功能的选择 原型的构造与试用 原型的修改和完善,2019/7/28,14,2.1 数据库应用系统的开发,面向对象方法是把面向对象分析、面向对象设计与面向对象程序设计结合在一起,形成面向对象方法。 分为以下五步: 需求分析 需求模型化 概要设计 详细设计 编程实施,2019/7/28,15,2.1 数据库应用系统的开发,面向对象方法,2019/7/28,16,2.1 数据库应用系统的开发,面向对象方法,2019/7/28,17,2.1 数据库应用系统的开发,三种开发方法的比较: 当应用方面的需求可明确提出并在一段时间内保持稳定时,可以采用生命周期法进行建设。 当解决一些规模不大但不确定因素较多的管理决策问题时,采用快速原型法。 当用户需求经常发生变化,系统必须有很强的应变能力时,采用面向对象方法。,2019/7/28,18,2.2 数据库的设计,一个设计良好的数据库,在很大程度上决定了系统的成功与否。 一般分为四步: 概念模型设计 逻辑数据库设计 规范化理论的应用 物理数据库的设计,2019/7/28,19,2.2 数据库的设计,1、概念模型设计 概念模型设计的描述最常用的工具是E-R图,具体步骤如下: (1)确定实体; (2)确定实体的属性; (3)确定实体的主键; (4)确定实体间的联系类型; (5)画出E-R图;,2019/7/28,20,2.2 数据库的设计,2、逻辑数据库设计 逻辑数据库设计是将概念模型转换成数据库管理系统所支持的数据模型。 如果是关系型数据库管理系统,就应将概念模型转换为关系模型,即将E-R图中的实体和联系转换为关系模式。,2019/7/28,21,2.2 数据库的设计,2、逻辑数据库设计 学院(学院代码、学院名称、院长姓名、学院地址、学院电话、学院简介) 教师(教师编号、系部编号、姓名、性别、学历、职称、办公电话、手机、E-mail、照片) 班级(班级编号、班级名称、班长、联系电话、奖励处罚、系部编号) 学生(学号、姓名、性别、出生年月、籍贯、个人简历、照片、奖励处罚、班级编号),2019/7/28,22,2.2 数据库的设计,3、规范化理论的应用 在逻辑数据库设计中,形成了一组关系模式。如果关系模式没有设计好,就会出现数据冗余、数据更新异常、数据删除异常、数据插入异常等问题。规范化理论的目的就是设计好的关系模式。,4、物理数据库设计 物理数据库设计是设计数据库的存储结构和物理实现方法。,2019/7/28,23,2.3 规范化理论的基本概念,1函数依赖 函数依赖是属性之间的一种联系。如果一个关系模式设计的不好,说明在它的某些属性之间存在“不良”的函数依赖。 设在关系R中,X、Y为R的两个属性子集,如果每个X值只有一个Y值与之对应,则称属性Y函数依赖于属性X;或称属性X惟一确定属性Y,记作XY。 如果XY,同时Y不包含于X,则称XY是非平凡的函数依赖。,2019/7/28,24,2.3 规范化理论的基本概念,2完全函数依赖 设在关系R中,X、Y为R的两个属性子集,若XY,且对于X的任何一个真子集X,都有XY, 则称Y完全函数依赖于X。若X Y,则称Y部分函数依赖于X。,2019/7/28,25,2.3 规范化理论的基本概念,3传递函数依赖 设在关系R中,X、Y、Z为R的三个属性子集,若XY,YZ,且X不依赖于Y,则称Z传递函数依赖于X 。,2019/7/28,26,2.4 规范化设计,规范化的基本思想是消除关系模式中的数据冗余,消除数据依赖中不合适的部分,解决数据插入、更新、删除时发生异常现象。 这就要求关系数据库设计出来的关系模式要满足规范的模式,即“范式” (Normal Form) 。,2019/7/28,27,2.4 规范化设计,数据库的逻辑设计为什么要遵循一定的规范化理论? 例如,要求设计教学管理数据库,其对象“学生”的关系模式如下: 学生(学号,姓名,年龄,系别,课程号,成绩),2019/7/28,28,2.4 规范化设计,数据库的逻辑设计为什么要遵循一定的规范化理论? 根据实际情况,这些数据有如下语义规定: 1. 一个系有若干个学生,但一个学生只属于一个系; 2. 一个系只有一名系主任,但一个系主任可以同时兼几个系的系主任; 3. 一个学生可以选修多门功课,每门课程可有若干学生选修; 4. 每个学生学习课程有一个成绩。,2019/7/28,29,2.4 规范化设计,2019/7/28,30,2.4 规范化设计,数据库的逻辑设计为什么要遵循一定的规范化理论? 分析以上关系中的数据,可以看出:(SNO,CNO)属性的组合能唯一标识一个元组,所以(SNO,CNO)是该关系模式的主键。但在进行数据库的操作时,会出现以下几方面的问题。,2019/7/28,31,2.4 规范化设计,数据库的逻辑设计为什么要遵循一定的规范化理论? 可能出现的问题: 1. 数据冗余。每个系名和系主任的名字存储的次数等于该系的学生人数乘以每个学生选修的课程门数,同时学生的姓名、年龄也都要重复存储多次,数据的冗余度很大,浪费了存储空间。,2019/7/28,32,2.4 规范化设计,数据库的逻辑设计为什么要遵循一定的规范化理论? 可能出现的问题: 2. 插入异常。如果某个新系没有招生,尚无学生时, 则系名和系主任的信息无法插入到数据库中。 因为在这个关系模式中,(SNO,CNO)是主关系键。根据关系的实体完整性约束,主关系键的值不能为空,而这时没有学生,SNO和CNO均无值,因此不能进行插入操作。 另外,当某个学生尚未选课,即CNO未知,实体完整性约束还规定,主关系键的值不能部分为空,同样不能进行插入操作。,2019/7/28,33,2.4 规范化设计,数据库的逻辑设计为什么要遵循一定的规范化理论? 可能出现的问题: 3. 删除异常。 某系学生全部毕业而没有招生时,删除全部学生的记录则系名、系主任也随之删除,而这个系依然存在,在数据库中却无法找到该系的信息。 另外,如果某个学生不再选修C1课程,本应该只删去C1,但C1是主关系键的一部分,为保证实体完整性,必须将整个元组一起删掉,这样,有关该学生的其它信息也随之丢失。,2019/7/28,34,2.4 规范化设计,数据库的逻辑设计为什么要遵循一定的规范化理论? 可能出现的问题: 4. 更新异常。 如果学生改名,则该学生的所有记录都要逐一修改SN; 又如某系更换系主任,则属于该系的学生记录都要修改MN的内容,稍有不慎,就有可能漏改某些记录,这就会造成数据的不一致性,破坏了数据的完整性。 。,2019/7/28,35,2.4 规范化设计,数据库的逻辑设计为什么要遵循一定的规范化理论? 由于存在以上问题,SCD是一个不好的关系模式。产生上述问题的原因,直观地说,是因为关系中“包罗万象”,内容太杂了。 那么,怎样才能得到一个好的关系模式呢? 把关系模式SCD分解为下面三个结构简单的关系模式,如图所示。 学生S(SNO,SN,AGE,DEPT) 选课SC(SNO,CNO,SCORE) 系D(DEPT,MN),2019/7/28,36,2.4 规范化设计,分解后的关系模式,2019/7/28,37,2.4 规范化设计,一个好的关系模式应该具备以下四个条件: 1. 尽可能少的数据冗余。 2. 没有插入异常。 3. 没有删除异常。 4. 没有更新异常。,2019/7/28,38,2.4 规范化设计,如何按照一定的规范设计关系模式,将结构复杂的关系分解成结构简单的关系,从而把不好的关系数据库模式转变为好的关系数据库模式,这就是关系的规范化。 规范化又可以根据不同的要求而分成若干级别。,2019/7/28,39,2.4 规范化设计,把关系数据库的规范化过程中为不同程度的规范化要求设立的不同标准称为范式(Normal Form)。 由于规范化的程度不同,就产生了不同的范式。 满足最基本规范化要求的关系模式叫第一范式, 在第一范式中进一步满足一些要求为第二范式, 以此类推就产生了第三范式等概念。 每种范式都规定了一些限制约束条件。,2.4.1 第一范式,2019/7/28,40,2.4规范化设计,第一范式(First Normal Form)是最基本的规范形式,即关系中每个属性都是不可再分的简单项。每个规范化的关系都属于1NF,这也是它之所以称为“第一”的原因。 定义 如果关系模式R,其所有的属性均为简单属性,即每个属性都是不可再分的,则称R属于第一范式,简称1NF,记作R1NF。,2.4规范化设计,2.4.1 第一范式,2019/7/28,41,2.4规范化设计,2.4规范化设计,只要将所有的属性表示为不可分的数据项,转化后的关系即符合第一范式。,2.4.1 第一范式,2019/7/28,42,2.4规范化设计,然而,一个关系模式仅仅属于第一范式是不适用的。 关系模式SCD属于第一范式,但其具有大量的数据冗余,具有插入异常、删除异常、更新异常等弊端。,2.4规范化设计,2.4.1 第一范式,2019/7/28,43,2.4规范化设计,定义 如果关系模式R1NF,且每个非主属性都完全函数依赖于任意一个侯选关键字,则称R属于第二范式,简称2NF,记作R2NF。,2.4规范化设计,2.4.2 第二范式,2019/7/28,44,2.4规范化设计,2.4.2 第二范式,带来问题的原因是:非主属性“学分”仅仅依赖于“课程号”,也就是说只是部分依赖于主关键字(学号,课程号),而不是完全依赖。,2019/7/28,45,2.4规范化设计,2NF的关系模式解决了1NF中存在的一些问题,2NF规范化的程度比1NF前进了一步,但2NF的关系模式在进行数据操作时,仍然存在着一些问题。,2.4规范化设计,2.4.2 第二范式,2019/7/28,46,2.4规范化设计,定义 如果关系模式R2NF,且每个非主属性都不传递依赖于R的任何候选关键字,则称R属于第三范式,简称3NF,记作R3NF。 如果R3NF,则R也是2NF。 如果R2NF,则R不一定是3NF。,2.4规范化设计,2.4.3 第三范式,2019/7/28,47,2.4规范化设计,2.4.3 第三范式,在该表中,关键字是学号,由于是单个关键字,没有部分依赖的问题,这个关系肯定属于第二范式。 带来问题的原因是:关系中存在传递依赖。“院系名称”、“院系地址”两个属性依赖于“院系编号”,而“院系编号”又依赖于“学号”,因此,“院系名称”、“院系地址”两个属性通过“院系编号”依赖于“学号”,这种现象称为传递依赖。,2019/7/28,48,2.4规范化设计,2.4.4 BC范式,定义 如果关系模式的所有属性(包括主属性和非主属性)都不传递依赖于R的任何侯选关键字,则称R属于BCNF,记作RBCNF。 如果R3NF,则R也是2NF。 如果R2NF,则R不一定是3NF。,2019/7/28,49,2.4规范化设计,2.4.5 数据库规范化设计小结,一个关系只要其分量都是不可分的数据项,就可称作规范化的关系,但这只是最基本的规范化。这样的关系模式是合法的。 但人们发现有些关系模式存在插入、删除、修改异常、数据冗余等弊病。 规范化的目的就是使结构合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新。,2019/7/28,50,2.4规范化设计,2.4.5 数据库规范化设计小结,规范化的基本原则就是遵从概念单一化“一事一地”的原则,即一个关系只描述一个实体或者实体间的联系。 若多于一个实体,就把它“分离”出来。 因此,所谓规范化,实质上是概念的单一化,即一个关系表示一个实体。,2019/7/28,51,2.4规范化设计,2.4.5 数据库规范化设计小结,注意 在数据库设计过程中,一般说来,1NF很容易遵守,完全遵守3NF的人很少。从关系模型的角度来看,满足3NF最符合标准,这样的设计容易维护。而BCNF的范式出现机会较少,而且会破坏完整性,可以在设计时不考虑它。 规范化的优点是减少了数据冗余,节约了存储空间,同时加快了增、删、改的速度,但在数据查询方面,需要进行关系模式之间的连接操作,因而影响查询的速度。因此,并不一定要求全部模式都达到BCNF,有时故意保留部分冗余可能更方便数据查询。,2019/7/28,52,2.5 “教学管理系统”的开发,2.5.1 系统规划阶段,1提出开发请求 某大学是一所多科性大学,学校设有经济学院、化学与环境工程学院、机械自动化学院、信息工程学院、计算机学院、商学院、会计学院等11个学院。学校现有教职工近1400人,学生18000多人。 随着信息量的增加,教学管理工作越来越繁杂,手工管理的弊端日益显露。为了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 打包物品购买协议书
- 森林争议解决协议书
- 木方采购合同协议书
- 果园无偿转让协议书
- 服装批发入股协议书
- 淘宝租用安全协议书
- 撤销物业前期协议书
- 有关领养孩子协议书
- 村民集体创业协议书
- 2024年行李秤相关项目实施方案
- 宁波市余姚市交通运输局招聘工作人员笔试真题2024
- 《现代西方女性主义》课件
- 2024年南京市建邺区平安联盟工作辅助人员招聘笔试真题
- 殡葬人员劳务合同协议
- 国内外著名幼儿教育家及其教育理念
- 2024年生物医学工程试题及答案
- 6.3 国家行政机关-八年级《道德与法治》下册教学设计(统编版)
- 浙江省宁波市2024学年第二学期高考与选考模拟考试化学试卷及答案(宁波二模)
- 2025年江苏省新高考高三联考数学试卷试题(含答案详解)
- 造价咨询进度管理制度
- 工程第一次监理例会会议纪要
评论
0/150
提交评论