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