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