【文档说明】一章数据库技术及应用课件.ppt,共(79)页,639.535 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-92543.html
以下为本文档部分文字说明:
第4章数据库技术及应用计算机教学实验中心2019软件开发技术基础下一页上一页第2/共67页问题的提出如何创建数据库?创建数据库有哪些步骤?使用什么工具创建数据库?……下一页上一页第3/共67页第
二部分数据库设计需求分析概念设计逻辑结构设计物理结构设计数据库实施阶段下一页上一页第4/共67页一、需求分析与概念设计1.需求分析2.概念设计下一页上一页第5/共67页1.需求分析任务:收集、分析、理解、确定用户的要求;再把用户的要求精确、完整地描述
表达出来。目的:回答“要解决什么问题?”,既系统“做什么?”。具体:详细调查要处理的对象了解原系统工作概况确定新系统的功能考虑今后可能的扩充和改变下一页上一页第6/共67页了解用户需求有关的问题什么是需求?希望,功能,限制,必
需品,任何必要的东西;什么时候?从确定方案开始;为什么?用户的需求是开发需要的依据;来自哪里?来自用户,工业标准,和实践经验;如何实现?使所有相关的人参与需求分析活动,通过有效的交流实现;谁来做?用户,管理人员,开发人员,维护人员。下一页上一页第7/
共67页用户参与需求分析的重要性根据StandishGroup1994年发表的一份研究报告统计,延迟的、超出预算的、未完成工程的最普遍的原因是:⑴缺少用户参与;⑵不完备的需求规范;⑶改变需求规范。下一页上一页第8/共67页
需求分析的难点⑴问题的复杂性涉及因素多而;如运行环境和系统功能等。⑵交流障碍涉及不同类型人员较多,知识背景、角度、角色的不同;⑶不完备性和不一致性用户对问题的陈述有矛盾、片面性等造成;⑷需求易变性需求是变化的。下一页上一页第9/共67页需求工作的重要性IBM公司有关研究的结果表明:有效的需
求管理可以降低开发成本。通常改正需求错误需要付出改正其他错误10倍以上的代价。需求错误通常导致软件工程中全部错误的25-40%。改正很少的需求错误可以避免大量耗费在返工上的成本和时间。下一页上一页第10/共67页获取用户对数据库的要求信息要求要
从数据库中获得信息的内容与性质。处理要求要完成什么处理功能,对处理的响应时间有什么要求。安全性与完整性要求安全性:不同用户使用和操作数据库的情况;完整性:描述数据之间的关联以及数据的取值范围要求。下一页上一页第11/共67页案例分析——教学管理管理的
对象:教师、学生、课程、上课和学习。功能:教师要了解学生、课程、学习的情况、学生要了解教师、课程、学习的情况。信息:教师、学生、课程、学习的有关信息;处理:查询、统计、排序、增加、删除、修改、浏览等。下一页上一页第12/共67页2.概念设计概念设计是数
据库设计的核心环节。即将实际待求解的问题抽象相互关联又各自独立的实体。具体步骤:以需求分析的结果为依据;以数据流图DFD和数据字典DD提供的信息作为输入;运用信息模型工具对目标进行描述;以
用户能够理解的形式表达信息。方法:用E-R方法得到概念模型E-R图。下一页上一页第13/共67页重点是“数据”和“处理”信息要求要从数据库中获得信息的内容与性质,从而导出DB中需要存储的数据处理要求要完成什么处理功能,对处理的响应时间的要求安全性视图定义、访问控制、数据加密、跟踪审
查完整性要求主键不能为NULL下一页上一页第14/共67页二、概念设计概念设计是DB设计的核心环节。概念数据模型是对现实世界的抽象和模拟。概念设计目前采用最广泛的是ER方法。将现实世界抽象为具有属性的实体及及联系。画出一张ER
图,就得到了一个对系统信息的初步描述,进而形成数据库的概念模型。下一页上一页第15/共67页案例分析——教学管理教学由学生、课程、教师、学习、任课等实体组成。学生属性:学号、姓名、性别、年龄、班级课程属性:课程号、课程名称教师属性:姓名、课程号、课时学习属性
:学号、课程号、分数任课属性:教师名、课程号、教室下一页上一页第16/共67页教学管理E-R图课程成绩授课教师学生教师编号、姓名、职称教师编号、课程号学号、姓名、性别、班级课程号、课程名学号、课程号、分数听课学习讲授下一页上一页第1
7/共67页三、逻辑结构设计设计逻辑结构分三步:将概念结构转化为一般的关系模型将转化来的关系模型向特定DBMS支持下的数据模型转换对数据模型进行优化下一页上一页第18/共67页1.数据库逻辑模型的产生概念模型按一定规则可以转换成数据模型。这种转换的原则如下:①一个实体
转换成一个关系模式②一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。③一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。④一个m:n联系转换为一个关系模式。⑤三个或三个以上实体间的一个多元联系转换为一个关系模式。⑥同一实体集的实体
间的联系,也可以按1:1、1:n和m:n三种情况分别处理。下一页上一页第19/共67页①一个实体型转换为一个关系模式实体的属性就是关系的属性,实体的主码就是关系的主码。学生(学号,姓名,年龄,性别)下一页上
一页第20/共67页②一个1:1联系转换为一个关系模式若转换为一个独立的关系模式:各实体的主码以及联系本身的属性均转换为关系的属性,每个实体的主码均是该关系的候选码。若与一端的关系模式合并:则在该关系模式的属性中加入另一个关系模式的主码
和联系本身的属性。下一页上一页第21/共67页举例有3种方案可供选择。下一页上一页第22/共67页3种方案比较方案1职工(职工号,姓名,年龄)产品(产品号,产品名,价格)负责(职工号,产品号)方案
2职工(职工号,姓名,年龄,产品号)产品(产品号,产品名,价格)方案3职工(职工号,姓名,年龄)产品(产品号,产品名,价格,职工号)方案1关系多,增加了系统的复杂性;方案2由于并非每个职工都负责产品,导致产品号属性出现
NULL;方案3比较合理。下一页上一页第23/共67页③1:n联系转换为关系模式有2种方案可供选择。下一页上一页第24/共67页有2种方案对应一个独立的关系模式:与该联系相连的各实体的主码以及联系本身的属性均转换为关系的属性,而关系的主码为n端实体的主码。与n端对
应的关系模式合并:联系本身的属性均换为关系的属性,再加1端实体的主码。下一页上一页第25/共67页2种方案比较方案1仓库(仓库号,地点,面积)产品(产品号,产品名,价格)仓储(仓库号,产品号,数量)方
案2(与n端对应的关系合并)仓库(仓库号,地点,面积)产品(产品号,产品名,价格,仓库号,数量)方案1对仓储变化大的场合比较适用;方案2适应仓储变化小的应用场合。因此方案2较优。下一页上一页第26/共67页④m:n联系
一个m:n联系转换为一个关系模式。与该联系相连的各实体的主码以及联系本身的属性均转换为关系的属性。而关系的主码为各实体主码的组合。下一页上一页第27/共67页m:n关系示意图下一页上一页第28/共6
7页转换的关系模型学生(学号,姓名,年龄,性别)课程(课程号,课程名,学时数)选修(学号,课程号,成绩)下一页上一页第29/共67页⑤三个及以上实体间联系三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多元联系相连的各实体的主码以及联系本身的
属性均转换为关系的属性。而关系的主码为各实体主的组合。下一页上一页第30/共67页将多对多联系E-R图转换为关系模形下一页上一页第31/共67页举例供应商(供应商号,供应商名,地址)零件(零件号,零件名,单价)产品(产品号,产品名,型号)供应(供应商号,零件号
,产品号,数量)下一页上一页第32/共67页⑥同一实体集联系可以按:1:1(一对一)1:n(一对多)m:n(多对多)三种情况分别处理下一页上一页第33/共67页将同实体集1:n联系转换为关系模型方案1:转换为两个关系模式。职工(职工号,姓名,年龄)领导(领
导工号,职工号)方案2:转换为一个关系模式。职工(职工号,姓名,年龄,领导工号)方案2关系少,且能充分表达原有的数据关系,故方案2较好。下一页上一页第34/共67页将同实体集m:n联系转换为关系模型零件(零件号,名称,价格)组装(组装件号,零件号,数量)组装件号为
组装后的组合零件号。下一页上一页第35/共67页2.数据模型的优化以规范化理论为指导⑴确定数据依赖。按需求分析,写出各属性之间的数据依赖。⑵考查是否存在部分函数依赖、传递函数依赖等,确定各关系模式分别属于第几
范式。⑶按照需求分析对数据处理的要求,确定是否需要对它们进行合并或分解。下一页上一页第36/共67页3.设计用户模式对某一类数据的结构、联系和约束的描述称为数据模式。外模式是用逻辑数据模型对用户的数据的描述。利用视图功能设计更符合局部用户需要的用户外模式。(1)使用更符合用户习惯的别名(2)
针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求。姓名学号性别出生日期院系班级下一页上一页第37/共67页三、数据库物理设计及实施物理设备上的存储结构与存取方法称为数据库的物理结构1.确定数据的存储结构综合考虑存取时间、存储空间利
用率和维护代价3方面的因素。2.设计数据的存取路径在关系数据库中,选择存取路径主要是指确定如何建立索引。下一页上一页第38/共67页索引(Index)索引是数据库中独立的存储结构,其作用是提供一种无须扫描每个页面(存储表格数据的物理块)而快速访问数据页的方案。有两类索引
:聚簇索引非聚簇索引下一页上一页第39/共67页(1)聚簇索引以表格中的某个字段作为关键字建立聚簇索引时,表格中的数据会以该字段为排序依据。一个表只能建立一个聚簇索引。这种排序作用使得聚簇键相同的元组被放在同一个物理页中。如果元组过多,一个物理页放不下,则
被链接到多个物理页中。下一页上一页第40/共67页(2)非聚簇索引索引页上的顺序与物理数据页上的顺序一般不一致。建立非聚簇索引,不会引起数据物理存储位置的移动。检索速度不如聚簇索引快。下一页上一页第41/共67页建立索引原则一个(组)属性经常在操作条件中出现。一个(
组)属性经常在连接操作的连接条件中出现。一个(组)属性经常作为聚集函数的参数。下一页上一页第42/共67页建立聚簇索引原则检索数据时,常以某个(组)属性作为排序、分组条件。检索数据时,常以某个(组)属性作为检索限制条
件,并返回大量数据。表中某个(组)的值重复性较大。下一页上一页第43/共67页3.确定数据的存放位置数据库数据备份、日志文件备份等,可以考虑存放在磁带上。可以考虑将表和索引分别放在不同的磁盘上。在查询时,由于两个磁盘驱动器分别在工作,因而可以保证物理读写速度
比较快。下一页上一页第44/共67页4.确定系统配置同时使用数据库的用户数同时打开的数据库对象数使用的缓冲区长度、个数……下一页上一页第45/共67页5.数据库的实施(1)定义数据库结构(2)数据装载下一页上一页第46/共67页例子:建立图书馆数据库①需求分析查询
图书:通过书名和类别查询库中的图书,其中书名为模糊查询。借书处理:在查询的基础上完成借书登记处理。借书时需要输入书号和读者编号,修改图书表记录和增加借阅表记录。还书处理:实现还书处理操作。还书时需要先修改图书记录,改变其借出否标志,再删除相关的借阅记录。下一页上
一页第47/共67页②数据库设计概念模型读者读者性别编号姓名单位电话下一页上一页第48/共67页图书定价作者书名类别图书书名出版社借出否下一页上一页第49/共67页借书读者图书借书日期借书下一页上一页第50/共67页数据库逻辑模型
读者(编号,姓名,单位,性别,电话)性别编号姓名单位电话读者下一页上一页第51/共67页图书的逻辑模型图书(书号,类别,出版社,作者,书名,定价,借出否)定价作者书号类别图书书名出版社借出否下一页上一页第52/共67页借阅的逻辑模
型借阅(书号,读者编号,借阅日期)读者图书借书日期借书下一页上一页第53/共67页规范化图书:{书号→类别,书号→出版社,书号→作者,书号→书名,书号→定价,书号→借出否};读者:{编号→姓名,编号→单位,编号→
性别,编号→电话};借阅:{(书号,读者编号)→借阅日期};所有非主属性对主码完全并直接依赖。各表均为第三范式。下一页上一页第54/共67页完整性约束主码约束:在“图书”表中,“书号”为主码;在“读者”表中,“读者编
号”为主码;在“借阅”表中,“书号”和“读者编号”为主码。这些主码的属性值具有惟一性和非空性。下一页上一页第55/共67页借阅表和图书表间的外码约束借阅中书号为外码(非本关系中的属性),参照表为图书,参照属性为书号。在借阅关系中插入元组(借阅图书)时,仅当图书表中有相
应书号时,系统才执行插人操作,否则拒绝此操作。下一页上一页第56/共67页借阅表和读者表间的外码约束借阅中读者编号为外码,参照表为读者,参照属性为编号。在借阅关系中插入元组(借阅图书)时,仅当读者表中有相应读者编号时,系统才执行插人操
作,否则拒绝此操作。下一页上一页第57/共67页关系的属性设计关系属性的设计包括属性名、数据类型、数据长度、该属性是否允许空值、是否为主码、是否为索引项及约束条件。下一页上一页第58/共67页读者表下一页上一页第59/共67页图书表下一页上一页第60/共67页借阅表下一页
上一页第61/共67页数据库设计的步骤分析建立数据库的目的确定数据库中的表确定表中的字段确定主关键字确定表之间的关系优化设计输入数据并新建其他DB对象下一页上一页第62/共67页⑴分析建立数据库的目的首先考虑“为什么要建立DB及建立DB要完成的任务”。
这是DB设计的第一步,也是DB设计的基础。与DB的最终用户进行交流,了解现行工作的处理过程,讨论应保存及怎样保存要处理的数据。要尽量收集与当前处理有关的各种数据表格。下一页上一页第63/共67页例案分析建立数据库的目的:例如
,实现“教学管理”数据库应用。功能要求:实现“教师、学生、课程、学习成绩”四个方面的综合管理教师可以查看学生的简况、成绩、课程学生可以选择教师、课程和查看成绩下一页上一页第64/共67页⑵确定数据库中的表从确定的DB所要解决的问题和收集的各
种表格中,不一定能够找出生成这些表格结构的线索。因此,不要急于建立表,而应先在纸上进行设计。为了能更合理地确定出DB中应包含的表,应按下列原则对信息进行分类:表中不应包含重复信息每个表应该只包含关于一个主题的
信息可以独立于其他主题来维护每个主题的信息。下一页上一页第65/共67页分析要建立哪些数据表为使DB的信息满足规范化要求,信息应按不同主题分开,单独立表。这样应建立“教师、学生、课程和成绩”四个表。建立下列数据表:学生简况表
教师授课表课程名称表学生成绩表下一页上一页第66/共67页⑶确定表中的字段表确定后,就要确定表应该包含哪些字段。在确定所需字段时,要注意每个字段包含的内容应该与表的主题相关,而且应包含相关主题所需的全部信息。还要注意不要包含需要推导或计算的数据,一定要以最小逻辑部分作为
字段来保存信息。下一页上一页第67/共67页教师授课表分析:基本特征信息应包括:姓名、性别、职称、学历、专业特长其它特征信息:工作时间、政治面貌、联系电话、课程编号、所属院系综合分析:为满足管理目标基本要求,选取下列字段:教师序号、姓名、性别、职称、课程编号、电话下一页上一页第6
8/共67页学生简况表分析:基本特征信息应包括:学号、姓名、性别、班级、出生日期其它特征信息:籍贯、政治面貌、宿舍、所属专业、特长综合分析:为满足管理目标基本要求,选取下列字段:学号、姓名、性别、班级、出生日期、简历下一页上一
页第69/共67页课程名称表分析:基本特征信息应包括:课程编号、教师序号、课程名称其它特征信息:学分、课时、课程先决条件、课时综合分析:为满足管理目标基本要求,选取下列字段:课程编号、课程名称、课时下一页上一页第70/共67页学生成
绩表分析:基本特征信息应包括:学号、课程编号、成绩其它特征信息:学分、教师序号、课程名称综合分析:为满足管理目标基本要求,选取下列字段:学号、课程编号、成绩下一页上一页第71/共67页⑷确定主关键字为保证在不同表中的信息发生联系,每个表都有一个能够
唯一确定每条记录的字段或字段组,该字段或字段组被称为主关键字。如果表中没有可作为主关键字的字段,可在表中增加一个字段,该字段的值为序列号,以此来标识不同记录。下一页上一页第72/共67页例案中数据表的主关键字根据上述确定表的字段
分析:学生简况表的主关键字为“SNO”教师授课表的主关键字为“TID”“TID”是人为加入的主关键字课程名称表的主关键字为“CNO”学生成绩表的主关键字为“SNO”和“CNO”下一页上一页第73/共67页⑸确定表之间的关系在确定了DB的表、表中的字段以及主关
键字之后,还需要确定表之间的关系。在DB中,可以存在一个以上的表,且表与表之间存在着一定的关系。只有分析并建立起表之间的关系,才能将表中的相关信息联系在一起。注:用工具栏中“关系”和“显示表”按钮实现关系的确定。下一页上一页第74
/共67页⑹优化设计在设计完所需要的表、字段和关系之后,用户还应该检查一下所做的设计,找出设计中的不足加以改进。实际上,现在改变DB设计中的不足比表中填满了数据以后再修改要容易得多。下一页上一页第75/共67页优化设计案例分析从以上设计中不难看出,教师库存在数据冗余。
如果某教师讲授课程多于一门,他的相关信息就要重复多次,这是在表设计中要尽量避免的。做如下分解:将课程信息分离出来,形成“教师课程表”,为了形成联系,在该表中增加“课程编号”字段。教师序号教师姓名教师性别课程编号职称电话号码教师序号教师姓名教师性别电话号码职称+课程
编号教师序号教师授课表教师简况表教师授课表下一页上一页第76/共67页优化后的数据表间的联系学生情况表教师简况表课程名称表学生成绩表CNO返回SNOCNO教师授课表TID下一页上一页第77/共67页优化
后的数据表最后得到的数据表共5个:教师简况表教师序号、姓名、性别、职称、电话学生简况表学号、姓名、性别、班级、出生日期、简历课程名称表课程编号、课程名称、课时学生成绩表学号、课程编号、分数教师授
课表课程编号、教师序号下一页上一页第78/共67页⑺创建表之间的关系操作步骤:单击“关系”按钮,设置关系单击“显示表”按钮,选择表关系显示表“课程名称表”和“学生成绩表”之间的联系,需经“创建”才确立。下一页上一页第79/共67页结束语•欢迎参加到中心网站课程的学习讨论中来。
•中心网址:http://ctec.xjtu.edu•我的E-mail地址:LZQctec.xjtu.edu谢谢!