1、第10章 数据库应用系统设计,数据库原理及应用与实践,主编 贾铁军 谷伟副主编 俞小怡 王冠 万程 编者 戴春妮 王坚,国家“十三五”重点出版规划项目上海高校优秀教材奖获得者主编,上海市高校精品课程上海高校优质在线课程,基于SQL Server2016(第3版 立体化.新形态),目 录,上海市高校精品课程国家十三五规划项目,教学目标,教学目标 掌握数据库设计的任务及步骤 掌握数据库设计中的需求分析、概念设计、逻辑设计、物理设计方法 掌握数据库实现和运行维护 学会编写数据库文档和案例,重点,重点,上海市高校精品课程国家十三五规划项目,10.1 数据库设计概述,【案例10-1】数据库设计极为重要且
2、关键。 一个成功的信息应用系统,是由约50% 的业务(含业务数据信息支持)加约 50% 的软件所组成,而这50% 的成功软件又有25%的数据库加25%的数据库等程序所组成,数据库设计的好坏是一个关键。如果将企业的数据资源比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分。,10.1.1数据库设计任务、内容和特点,1.数据库设计的概念数据库设计是指根据用户及应用系统需求,设计与构建数据库结构及应用系统的过程。 2.数据库设计的任务1)DB结构设计指根据实际业务和用户需求, 进行数据库模式设计和子模式(内外)设计。 包括DB概念设计、逻辑设计和物理设计。2)DB应用程序设计:对新系统功
3、能性能等设计。3.数据库设计的特点1)数据库构建是软硬件和构件(技术和界面)结合.2)数据库设计DB结构与应用系统设计相结合.,复习,应用程序-事务处理,上海市高校精品课程国家十三五规划项目,企事业等用户,模块,ER图-概念设计,表结构-逻辑设计,存储安排,索引等-物理设计,10.1.2 数据库设计方法简述,著名新奥尔良(NewOrleans)法,目前公认较完整和权威一种规范化设计方法,将数据库设计分4阶段: 需求分析(用户+系统需求)、概念设计(ER图-信息分析和定义), 逻辑设计(模式+结构设计)、物理设计(存储方式、索引等). 1.基于E-R模型的数据库设计方法 步骤:根据业务需求确定实
4、体-联系-属性-ER图-转换逻辑数据模型-设计数据表结构。*2.基于3NF的数据库设计方法 思想:在分析基础上,确定属性依赖关系, 组织单一模式再投影分解,消除3NF 约束条件,规范成几个3NF关系模式。 3.计算机辅助数据库设计方法 步骤:需求分析,概念设计,逻辑设计,物理设计 (实现自动化设计PD-PB),ER图-概念设计,表结构-逻辑设计,存储安排,索引等-物理设计,上海市高校精品课程国家十三五规划项目,PowerDesigner,PowerBuilder,数据库设计(开发)六个阶段,面向问题,面向实现方法,上海市高校精品课程国家十三五规划项目,DB设计过程,10.1.3 数据库开发设计
5、的步骤,BD设计(开发)步骤:1)需求分析阶段2)概念结构设计阶段3)逻辑结构设计阶段4)物理设计阶段5)数据库实施阶段6)运行与维护阶段,BD设计,设计关键-综合归纳抽象,准确分析用户及系统需求,数据模型关系模型并优化,索引,选取存储结构和方法,应用系统-数据库,功能性能等-需求分析报告,DB设计报告,上海市高校精品课程国家十三五规划项目,10.2 数据库应用系统设计,10.2.1 系统需求分析1.需求分析的任务需求分析的任务是通过详细调研实际业务处理的对象,通过深入对原系统的工作情况的分析,明确用户各种需求,在此基础上确定新系统的功能、性能、安全可靠性等。DB需求分析主要包括“数据(信息)
6、”和“处理”两个方面.调查、收集、分析、确定用户及系统各种需求,编写文档。2.需求分析的方法主要方法有自顶向下和自底向上两种,其中结构化分析方法(Structured Analysis, SA)是一种简单实用的方法。,应用系统业务数据库,上海市高校精品课程国家十三五规划项目,需求分析报告,数据报表、作业单、图表等,10.2.1 系统需求分析,数据字典和数据流图(1)数据字典DD-业务数据及结构属性(特征)的集合(清单)1)数据项数据项名,含义说明,别名,数据类型,长度,范围,联系2)数据结构数据结构名,含义说明,组成:数据项或数据结构3)数据流 数据流名,说明,数据流来源,去向,组成:数据结构
7、4)数据存储数据存储名,说明,编号,流入数据流,流出,组成5)处理过程处理过程名,说明,流入,处理(功能),输出(2)数据流图DFD数据流图(Data Flow Diagram,DFD)描述数据与处理流程及其关系的图形表示。常用DFD 2种:,处理,判断,实体,数据源/谭,处理,文件,处理,实体,数据+结构-特征描述集,上海市高校精品课程国家十三五规划项目,10.2.2 概念结构设计,10.2.2 概念结构设计 概念结构设计是将需求分析得到的用户及业务需求,抽象为信息结构(概念模型-ER图)的过程。概念结构设计的特点:易于理解(文图表描述),可用于和用户交换意见,用户的积极参与是数据库设计成功
8、的关键。真实、充分地反映现实世界,包括业务中各事物之间的联系,能满足用户对数据处理要求.是对现实世界(实际业务)的一个真实模拟。易于更改,当应用环境和业务及应用要求改变时,容易对概念模型修改和扩充。易于向关系、网状、层次等数据模型转换(实现)。,真实抽象表达-完整准确模拟-易理解修改-便实现,上海市高校精品课程国家十三五规划项目,10.2.2 概念结构设计,概念结构设计:将用户需求抽象为概念模型的过程(BD设计关键)1.概念结构的设计方法(1)自顶向下(右上图)(2)自底向上(右下图)(3)逐步扩张(分解)(4)混合策略,信息结构E-R图,上海市高校精品课程国家十三五规划项目,10.2.2 概
9、念结构设计,2.概念结构设计的步骤(1)进行数据抽象,设计局部E-R模型(2)集成各局部E-R模型,形成全局E-R图3.数据抽象与局部E-R模型设计(1)数据抽象 设计局部E-R模型的关键是正确划分实体和属性。实体、联系和属性在形式上并无明显区分的界限,通常是按照现实世界中事物的自然划分来定义实体、联系和属性,进行数据抽象,调整后得到实体和属性。,自底向上方法的设计步骤,上海市高校精品课程国家十三五规划项目,事物,10.2.2 概念结构设计,3.数据抽象与局部E-R模型设计(1)数据抽象分类:定义某一类概念作为现实世界 中一组对象的类型,将一组具有某些共 同特性和行为的对象抽象为一个实体, 对
10、象和实体间是“is-member-of”关系。聚集:定义某个类型的组成成分。将对象的类型的组成成分抽象为实体的属性(特征)。抽象了对象内部类型和成分的“is-part-of”。概括:定义类型间一种子集联系。 (2)局部E-R图设计 选择好一个局部(事物)应用后,就要 对每个局部应用逐一设计分E-R图。,研究生,本科生,专科生,中小学生,上海市高校精品课程国家十三五规划项目,10.2.2 概念结构设计,实体和属性是相对的,常要根据实际情况进行必要调整,在调整时要遵守两条原则:属性必须是不可分的数据项,属性不能再有需要描述的性质.属性不能与其他实体具有联系。联系只发生在实体之间。【案例10-2】设
11、有如下实体:学生:学号、系名称、姓名、性别、年龄、选修课程名课程:编号、课程名、开课单位、任课教师号教师:教师号、姓名、性别、职称、讲授课程编号单位:单位名称、电话、教师号、教师姓名实体中存在如下联系:(1)一个学生可选修多门课程,一门课程可为多个学生选修.(2)一个教师可讲授多门课程,一门课程可为多个教师讲授.(3)一个系可有多个教师,一个教师只能属于一个系。,上海市高校精品课程国家十三五规划项目,原子性,10.2.2 概念结构设计,学生选课局部E-R图,教师任课局部E-R图,上海市高校精品课程国家十三五规划项目,?,10.2.2 概念结构设计,4、全局E-R模型设计各个局部视图即分E-R图
12、建立好后,还要对其进行合并,集成为一个整体的概念数据结构即全局E-R图。 (1)一次集成法:一次集成多个简单局部E-R图。(2)逐步累积式 任何方法,集成局部E-R图都分为两个步骤:(1)合并.解决各个局部E-R图之间的冲突,将各个局部E-R图合并起来生成初步E-R图.E-R图中冲突有3种:属性冲突、命名冲突、结构冲突.(2)修改与重构:消除不必要的冗余,生成基本E-R图.在形成初步E-R图后,消除冗余 联系,便可得到基本E-R模型。,ER图集成,上海市高校精品课程国家十三五规划项目,生成初步E-R图,【案例10-3】以教务管理系统中的两个分E-R图为例,说明如何消除各分E-R图之间的冲突,进
13、行分E-R模型的合并,从而生成初步E-R图.(1)两个分E-R图中存在着命名冲突,学生选课局部-图中的实体型“系”与教师任课局部-图中的实体型“单位”,都是指“系”,即所谓的异名同义,合并后统一改为“系”,这样属性“名称”和“单位名”即可统一为“系名”.(2)还存在着结构冲突,实体型“系”和“课程” 在两个不同应用中的属性组成不同,合并后这两实体的属性组成为原来分E-R图中的同名实体属性的并集。解决上述冲突后,合并两分E-R图,生成下图所示的初步总E-R图.,上海市高校精品课程国家十三五规划项目,学生:学号、系名称、姓名、性别、年龄、选修课程名课程:编号、课程名、开课单位、任课教师号教师:教师
14、号、姓名、性别、职称、讲授课程编号单位:单位名称、电话、教师号、教师姓名,优化后的基本E-R图,上海市高校精品课程国家十三五规划项目,用分析法消除数据冗余生成基本E-R图,在初步E-R图中,“课程”实体型中的属性“教师号”可由“讲授”教师与课程之间的联系导出,而学生的平均成绩可由“选修”联系中的属性“成绩”中计算出来,所以“课程”实体型中的“教师号”与“学生”实体型中的“平均成绩”均属于冗余数据。另外,“系”和“课程”之间的联系“开课”,可以由“系”和“教师”之间的“属于”联系与“教师”和“课程”之间的“讲授”联系推导出来,所以“开课”属于冗余联系。这样,初步E-R图在消除冗余数据和冗余联系后
15、,便可得到基本的E-R图。,上海市高校精品课程国家十三五规划项目,初步的全局E-R图,上海市高校精品课程国家十三五规划项目,10.2.3 逻辑结构设计,1.逻辑结构设计的任务和步骤逻辑结构设计的任务:概念结构是各种数据模型的共同基础。为了能够用DBMS实现用户需求,还须将概念结构进一步转化为相应的数据模型。逻辑结构设计分为3个步骤 (1)将概念结构转化为数据模型(关系、网状、层次)。(2)将转化的模型向特定DBMS支持下的数据模型转换。(3)对数据模型进行优化(结构、规范化)。,库表结构设计,应用程序设计 (库表逻辑结构) (系统处理逻辑结构),转化,转换,优化,上海市高校精品课程国家十三五规
16、划项目,规范化,表结构,ER图基本表(二维),货物,企业,运送,生产储存,销售,课堂练习,上海市高校精品课程国家十三五规划项目,10.2.3 逻辑结构设计,2.初始化关系模式设计(1)转换原则1)一个实体转换为一个关系模式(表结构)。2)一个m:n联系(各实体/联系)转换为一个关系模式。3)一个1:n联系(各实体)转换为一个关系模式.4)一个1:1联系(各实体)转换为一个独立关系模式。5)三个或以上实体间的一个多元联系转换为一个关系模式.(2)具体做法1)将一个实体转换为一个关系.先分析实体属性,从中确定主键,然后再将其转换为关系模式;2)把每个联系转换成关系模式;3)三个或以上实体间的一个多
17、元联系在转换为一个关系模式时,与该多元联系相连的各实体的主键及联系本身的属性均转换成为关系的属性,转换后所有得到的关系的主键为各实体键的组合。,3.关系模式的规范化关系模型优化常以规范化理论为基础。方法:1.确定数据依赖,按需求分析阶段所得的要求,分别写出每个关系模式内部各属性之间的数据依赖,以及不同关系模式属性之间数据依赖。如 企业-产品,产品-价格2.优化处理。对于各关系模式之间数据依赖进行极小化处理,消除冗余的联系。3.确定范式。按数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式。如 企业-价格4.合并分解。按需求分
18、析的各种应用对数据处理的要求,分析对此应用环境模式是否合适,确定是否要进行合并或分解。8.按需求分析的各种应用对数据处理的要求,对关系模式进行必要分解或合并,以提高数据操作效率和存储空间利用率.,上海市高校精品课程国家十三五规划项目,10.2.3 逻辑结构设计,【案例10-4】职工管理系统全局ER模型进行关系模型的转化,上海市高校精品课程国家十三五规划项目,10.2.3 逻辑结构设计,4.关系模式的评价与改进(1)模式的评价 模式评价包括设计质量评价和性能评价两个方面。(2)数据模式的改进1)分解关系模式的分解一般分为水平分解和垂直分解两种.2)合并具有相同主键的关系模式,且这些关系模式的处理
19、主要常为多关系的查询操作,对这些关系模式,可按照组合频率合并。,上海市高校精品课程国家十三五规划项目,10.2.3 逻辑结构设计,二维表,10.2.4 数据库物理设计,物理设计任务是为数据库逻辑模式(结构)选择适合应用环境的物理结构,即确定有效地实现逻辑模式的数据库存储模式,确定在物理设备上所采用的存储结构、方法和运行环境,然后对该存储模式进行性能评价、修改设计。 1.确定物理结构 数据库物理设计内容包括记录存储模式、结构、方法、路径的设计,及记录索引等设计。(1)记录存储结构的设计:设计存储记录结构形式,涉及不定长数据项表示。(2)关系模式的存取方法选择 DBMS常用存取方法:B+树索引方法
20、,聚簇方法,HASH方法。,B+树中节点表示一组有序元素和指针,(后面),上海市高校精品课程国家十三五规划项目,1)索引方法索引存取方法主要内容:对哪些属性列建立索引,建立组合(复合)索引或唯一索引。2)聚集(集簇)索引为了提高某属性(组)查询速度,将其属性(称为聚簇码)上具有相同值的元组(记录)集中存放在连续的物理块称为聚簇。聚簇用途极大提高按聚簇属性进行查询的效率。*3)Hash方法 属性出现等值连接/相等比较选择条件;关系大小预知不变/提供动态Hash存取法。2.评价物理结构 在确定了数据库物理结构后,要进行评价,重点是时间和空间的效率。如果评价结果满足设计要求,则可进行数据库实施,实际
21、上常需要经过反复测试才能优化物理设计。,物以类聚,上海市高校精品课程国家十三五规划项目,10.2.4 数据库物理设计,10.2.5 数据库实施,数据库实施(实现)是指根据逻辑设计和物理设计的结果,在计算机上建立实际的数据库(含表-视图)结构及应用程序,装入数据,进行测试和试运行的过程。 数据库实施的内容:用DDL定义数据库及表结构,组织数据输入,编制与调试应用程序,数据库试运行。 1.建立数据库及表结构(索引)2.输入数据(+视图)3.编制与调试应用程序(Ch6)4.数据库试运行8.整理文档(2个报告:需求分析10.2.1、BD设计书10.3),上海市高校精品课程国家十三五规划项目,顺序结构选
22、择结构循环结构,10.2.6 数据库运行和维护,数据库试运行符合设计目标后,数据库就可真正投入运行。数据库投入运行标志着开发任务基本完成和维护工作的开始,对数据库设计进行评价、调整、修改与完善等维护工作是一个长期的任务,也是新应用系统设计工作的基础和升级提高过程。1.数据库的功能、性能、安全可靠性2.监视并改善数据库性能及完整性3.数据库的重组织和重构造,上海市高校精品课程国家十三五规划项目,10.3 数据库设计文档,数据库设计文档即数据库设计说明书,根据GB8567-88软件规范标准 1、引言(1)编写目的(2)背景(3)定义(4)参考资料2、外部设计(1)标识符和状态(2)使用它的程序(3
23、)约定(4)专门指导(5)支持软件3、结构设计(1)概念结构设计(2)逻辑结构设计(3)物理结构设计4、运用设计(1)数据字典设计(2)安全保密设计,上海市高校精品课程国家十三五规划项目,10.4数据库应用系统设计案例,数据库应用系统设计案例 通过高校教材征订管理系统的具体案例,按照数据库应用系统开发步骤进行系统需求分析、数据库概念结构设计、逻辑结构设计、物理结构设计,使学生掌握数据库应用软件的开发流程,SQL语句的使用和存储过程的使用。 10.4.1 系统需求分析 用户及其有关信息 本系统是针对高校的教材管理管理,因此该系统的用户包括系统管理员、教师和学生。主要涉及班级信息、任课教师信息、教
24、材几基本信息、征订基本信息、统计信息等多种数据信息。,上海市高校精品课程国家十三五规划项目,引言,10.4.1 系统需求分析,1. 信息需求教师基本信息:使用本系统的教师的信息,包括教师工号、用户名、密码、联系方式、提交状态等。教材基本信息:教材的基本信息,包括教材名称、教材作者、教材ISBN、教材定价、出版社、版次等信息。教材征订信息:根据每学期教学计划,确定教师需要订购的课程教材,包括教材相关信息,教材使用班级等信息。统计报表信息:对教师教材征订的信息进行汇总、统计等。 2. 功能分析 用户对系统的功能需求功能结构图如下图所示,上海市高校精品课程国家十三五规划项目,(1)教材库管理对教材信
25、息进行维护,包括增加、删除、修改现有教材信息。可根据教材名、ISBN、出版社等字段查询现有教材及库存信息。(2)出版社管理对出版社信息进行维护,包括增加、删除、修改现有出版社信息。查询现有出版社信息。(3)教材征订管理实现各个学院独立申请购买教材的功能。对教材征订的信息进行统计管理。查询现有教材征订信息。(4)系统管理对教材征订周期、征订状态进行管理。添加、删除、修改管理员及普通用户。通知公告管理、系统维护等。,10.4.1 系统需求分析,上海市高校精品课程国家十三五规划项目,10.4.2 数据库设计,2. 逻辑结构设计将概念结构设计阶段设计好的基本E-R图转换为关系模型3. 物理结构设计1确
26、定数据库的存储结构2存取方法和优化方法3功能实现4. 实施运行和维护1数据库的实施2数据的载入3数据库的调试4数据库的运行和维护,1. 概念结构设计概念结构设计是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成独立于具体DBMS的概念模型。,本章小结,本章讲述了数据库应用设计(开发)过程,共分6个阶段:需求分析、概念设计、逻辑设计、物理设计、数据库实施和运行与维护。 可以通过跟班作业、开会、调查、专人介绍、用户填表、查阅记录等方法调研用户需求、通过编制组织机构图、业务关系图、数据流图和数据字典等方法来描述和分析用户需求。 (1)概念设计是数据库设计的核心环节,是在用户需求描述与分
27、析的基础上对现实世界(业务)的抽象和模拟,形成概念模型E-R图。 (2)逻辑设计是在概念设计的基础上,将概念模型转换成所选用的具体的DBMS支持的数据模型的逻辑模式(库表结构+处理逻辑)。 (3)物理设计的任务是确定有效实现逻辑模式的存储模式,确定在物理设备上采用的存储结构和存取方法,然后进行功能性能可靠性的评价,修改完善,经过多次反复,最后得到一个性能较好的存储模式。 数据库的实施过程包括数据载入、应用程序编写与调试、数据库试运行等步骤。 数据库运行与维护阶段主要工作:数据库功能性能及安全和完整性控制,DB转储和恢复,DB性能监控分析与改进,DB的重组和重构等.,上海市高校精品课程国家十三五规划项目,诚挚谢意!,数据库原理及应用与实践,基于SQL Server2016(第3版),国家“十三五”重点出版规划项目上海高校优秀教材奖获得者主编,上海市高校精品课程上海高校优质在线课程,