第六章 数据库设计.ppt
《第六章 数据库设计.ppt》由会员分享,可在线阅读,更多相关《第六章 数据库设计.ppt(128页珍藏版)》请在麦多课文档分享上搜索。
1、第六章 数据库设计,主要章节,6.1 概述 6.2 需求分析 6.3 概念结构设计 6.4 逻辑结构设计 6.5 物理结构设计 6.6 数据库的实现 6.7 数据库的运行与维护,本章重要概念,(1)数据库设计的两种方法:生命周期法和快速原型法。 (2)概念设计的重要性、主要步骤。逻辑设计阶段的主要步骤。 (3)ER模型的基本元素,属性的分类,联系的元数、连通词、基数。采用ER方法的概念设计步骤。 (4)ER模型到关系模型的转换规则。采用ER方法的逻辑设计步骤。 (5)ER模型的扩充:弱实体,超类和子类。,6.1概述,6.1概述,主要内容 数据库设计目标和方法 数据库设计的基本步骤,数据库设计目
2、标和方法,数据库设计 数据库设计是指对于给定的软、硬件环境,针对现实问题,设计一个较优的数据模型,建立相应的数据库结构和数据库应用系统。,数据库设计目标和方法,数据库设计目标 最大限度地满足用户的应用功能需求。主要是指用户可以将当前与可预知的将来应用所需要的数据及其联系,全部准确地存放在数据库中。 获得良好的数据库性能。即要求数据库设计保持良好的数据特性以及对数据的高效率存取和资源的合理使用,并使建成的数据库具有良好的数据共享性、独立性、完整性及安全性等。(对于关系数据库) 对现实世界模拟的精确度要高。 数据库设计应充分利用和发挥现有DBMS的功能和性能。 符合软件工程设计要求,因为应用程序设
3、计本身就是数据库设计任务的一部分。,数据库设计目标和方法,对于关系数据库: 数据要达到一定的规范化程度,避免数据重复存储和异常操作。 保持实体之间连接的完整性,避免数据库的不一致性。 满足对事务响应时间的要求。 尽可能减少数据的存储量和内外存间数据的传输量。 便于数据库的扩充和移植,使系统有更好的适应性。,数据库设计目标和方法,数据库设计方法 生命周期法 生命周期(Life cycle)法就是将整个数据库应用系统的开发过程分解成若干个阶段,并对每个阶段的目标、任务、方法作出规定,使整个数据库应用系统的开发过程具有合理的组织和科学的秩序。 阶段划分:系统分析、系统设计、系统实施、系统运行与维护。
4、 主要遵循的原则: 用户参与的原则。 先逻辑、后物理的原则。 自顶向下的原则。 工作成果描述标准化原则。,需求分析,系统设计,系统实施,运行维护,生命周期法,确定开发的总目标,计划开发的软件系统功能、性能、可靠性及接口等方面的设想。并提供一个可做为设计基础的系统规格说明书,包括对软、硬件环境的需求和一整套完整的数据流图。,把需求分析阶段所确定的功能细化。主要工作是设计模块结构图和系统的数据结构。,以某一个或几种特定的程序设计语言表达上一阶段确定的各模块控制流程。编制时应遵循结构化程序设计。并对已编制好的程序进行单元调试(分调),整体调试(联调)和系统测试(验收)。,是整个生存期中时间最长的阶段
5、,重点是将系统付诸使用,同时解决开发过程中遗留问题,改正和改善性能.,数据库设计目标和方法,数据库设计目标和方法, 快速原型法 快速原型(Rapid Prototyping)法的基本思想是在初步了解用户的基本要求后,开发人员先建立一个他们认为符合用户要求的模式系统交付用户检验,由于模型是可以执行的,所以为用户提供了获得感性认识的机会。 优点: 用户可以测试具体实例,直接观察一个实际系统 。 有利于准确地定义出用户需求,降低系统开发风险。 适用于中小规模系统的开发。 缺点: 具有为用户需求快速生成软件的工具和环境。,数据库设计目标和方法, 面向对象法 面向对象(Object Oriented,简
6、称OO)法是针对面向过程提出的,是区别于传统的结构化方法的一种新方法、新思路,是一种基于数据抽象的类的组合的自底向上的开发方法。 基本步骤: 标识对象和定义类; 组织类间关系; 在类层中构造框架; 建立可复用的类库和系统总框架。,数据库设计目标和方法,面向对象法主要有以下四个特征: (1) 对象是有关数据和操作的封装体,突破了传统的将数据与操作分离的模式,较好地实现了数据抽象。 (2) 面向对象法的继承性体现了概念分离抽象。在对象继承结构上,下层对象继承上层对象的特征(属性和操作),因而便于软件系统的演化和功能扩充。 (3) 面向对象法用消息将对象动态连接在一起。与结构化方法中的模块调用不同,
7、面向对象法采用了灵活的消息传递方式,便于在概念上体现并行和分布式结构。 (4) 面向对象法具有封装性。对象将其实现细节封装在它的内部,因此无论是对象功能的完善扩充还是对象实现的修改,影响仅限于该对象内部而不会对外界产生影响,这就保证了软件系统的可复用性和可维护性。,数据库设计的基本步骤,对用户提出的各种要求加以分析,对各种原始数据加以综合、整理,是形成最终设计目标的首要阶段,也是整个数据库设计过程中最困难的阶段。,概念结构设计是对用户需求进行进一步抽象、归纳,并形成独立于DBMS和有关软、硬件的概念数据模型的设计过程,这是对现实世界中具体数据的首次抽象,实现了从现实世界到信息世界的转化过程。,
8、逻辑结构设计是将概念结构转化为某个DBMS所支持的数据模型,并进行优化的设计过程。由于逻辑结构设计是一个基于具体DBMS的实现过程,所以选择什么样的数据模型尤为重要,其次是数据模型的优化。,物理结构设计是将逻辑结构设计阶段所产生的逻辑数据模型,转换为某一计算机系统所支持的数据库物理结构的实现过程。,数据库实施阶段,即数据库调试、试运行阶段。一旦数据库物理结构形成,就可以用已选定的DBMS来定义、描述相应的数据库结构,装入相应的数据,以生成完整的数据库。,数据库实施阶段结束,标志着数据库系统投入正常运行工作的开始。数据库运行及维护的过程,是一个调整、修改和不断完善的运行过程。,6.2 需求分析,
9、6.2 需求分析,主要内容 需求分析的任务 需求分析的步骤,需求分析的任务,需求分析阶段任务是对系统的整个应用情况作全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,并把这些要求写成用户和数据库设计者都能够接受的文档。 需求分析中调查分析的方法很多,通常的办法是对不同层次的企业管理人员进行个人访问,内容包括业务处理和企业组织中的各种数据。访问的结果应该包括数据的流程、过程之间的接口以及访问者和职员两方面对流程和接口语义上的核对说明和结论。对于某些特殊的目标和数据库的要求,可以从企业组织中的最高层机构得到。 设计人员还应该了解系统将来要
10、发生的变化,收集未来应用所涉及的数据,充分考虑到系统可能的扩充和变动,使系统设计更符合未来发展的趋向,并且易于改动,以减少系统维护的代价。,这一阶段的任务如图总体信息需求定义了未来系统用到的所有信息,描述了数据之间本质上和概念上的联系,描述了实体、属性、组合及联系的性质。 这一阶段的结果是“需求说明书”,其主要内容是系统的数据流图和数据字典。需求说明书应是一份既切合实际,又具有远见的文档,是一个描述新系统的轮廓图。,需求分析的任务,需求分析的步骤, 分析用户活动,产生用户活动图。这一步主要了解用户当前的业务活动和职能,搞清其处理流程(即业务流程)。如果一个处理流程比较复杂,就要把这个处理流程分
11、解成若干个子处理流程,使每个处理流程功能明确、界面清楚,分析之后画出用户活动图(即用户的业务流程图)。 确定系统范围,产生系统范围图。这一步是确定系统的边界。在和用户经过充分讨论的基础上,确定计算机所能进行数据处理的范围,确定哪些工作由人工完成,哪些工作由计算机系统完成,即确定人机界面。 分析用户活动所涉及的数据,产生数据流图。深入分析用户的业务处理,以数据流图形式表示出数据的流向和对数据所进行的加工。,需求分析的步骤,数据流图(Data Flow Diagram,简记为DFD):是从“数据”和“对数据的加工”两方面表达数据处理系统工作过程的一种图形表示法。 特点具有直观、易于被用户和软件人员
12、双方都能理解的一种表达系统功能的描述方式。 DFD有四个基本成分: 数据流(用箭头表示) 加工或处理(用圆圈表示) 文件(用双线段表示) 外部实体(数据流的源点或终点,用方框表示),需求分析的步骤,DFD可作为自顶向下逐步细化时描述对象的工具。顶层的每一个圆圈(加工处理)都可以进一步细化为第二层;第二层的每一个圆圈又可以进一步细化为第三层;直到最底层的每一个圆圈已表示一个最基本的处理动作为止。 DFD可以形象地表示数据流与各业务活动的关系,它是需求分析的工具和分析结果的描述手段。 例6.1 在选课业务的处理流程中,假设开发人员收集到以下数据:学生基本信息表、课程表、选课单、选课情况一览表、成绩
13、单等。 通过分析,确认学生基本信息表、课程表、选课单是输入选课系统的原始数据,而选课情况一览表以及成绩单等是选课系统最终需要输出的数据,如下图所示。,需求分析的步骤,学生选课系统是如何对系统的原始数据进行处理最后得到系统的输出数据呢?下面图给出了学生选课系统的整个数据流图,它是前面图的进一步分解和细化。数据流图是一种从数据的角度描述数据作为输入进入系统,经受若干加工处理,或者合并,或者分解,或者存储,最后输出的整个过程。,需求分析的步骤,学生信 息录入,选课信 息录入,成绩录入,查询个人所有课程成绩,课程信息录入,查询课程的 选课情况,查询某 门课程的所 有成绩,学生选课系统的0层数据流图,需
14、求分析的步骤, 分析系统数据,产生数据字典。数据字典提供了对数据库数据描述的集中管理,它的功能是存储和检索各种数据描述(称为元数据Metadata),如叙述性的数据定义等,并且为DBA提供有关的报告。 数据字典中通常包括 : 数据项 数据结构 数据流 数据存储 加工过程,例6.2 在上图中有一个数据流查询个人所有课程成绩,每个人的成绩单有一个数据项为学生的学号SNO。在数据字典中对此数据项如下描述。,数据项名:SNO 说 明:标识一名学生 类 型:CHAR(9) 长 度:9 别 名:学生学号 取值范围:000000000999999999,需求分析的步骤, 数据项 数据项是数据的最小单位,对数
15、据项的描述,通常包括数据项名、含义、别名、类型、长度、取值范围以及与其他数据项的逻辑关系。,需求分析的步骤, 数据结构 数据结构反映了数据之间的组合关系。 一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合而成。 它包括数据结构名、含义及组成该数据结构的数据项名或数据结构名。,需求分析的步骤,数据流名:个人成绩查询 说 明:学生可以根据所学专业、班级号、学生姓名、课程名称来查询个人成绩 来 源:学生选课信息 去 向:输出到个人成绩单 数据结构:个人成绩查询所学专业班级号学生姓名课程名称, 数据流 数据流可以是数据项,也可以是数据结构,表示某一加工处理
16、过程的输入或输出数据。对数据流的描述应包括数据流名、说明、流出的加工名、流入的加工名以及组成该数据流的数据结构或数据项。 例6.3 在上图中成绩查询是一个数据流,在数据字典中可作如下描述。,需求分析的步骤,数据存储名:课程 说 明:对每门课程的名称、学分、先行课程号和摘要的描述 输出数据流:课程介绍 数 据 描 述:课程号、课程名、学分数、先行课程号、摘要 数 量:每年328种 存 取 方 式:随机存取, 数据存储 数据存储是处理过程中要存储的数据,它可以是手工凭证、手工文档或计算机文档。对数据存储的描述应包括:数据存储名、说明、输入数据流、输出数据流、数据量(每次存取多少数据)、存取频度(单
17、位时间内存取次数)和存取方式(是批处理,还是联机处理;是检索,还是更新;是顺序存取,还是随机存取)。 例6.4 上图中课程是个数据存储,在数据字典中可对其作如下描述。,需求分析的步骤,处理过程:确定选课名单 说 明:对选某门课程的每一个学生,根据已选修课程确定其是否可 选该课程。再根据学生选课的人数选择适当的教室,制定选课单。 输 入:学生选课、可选课程、已选课程 输 出:选课单程序提要:a对所选课程在选课表中查找其是否已选此课程;b若未选过此课程,则在选课表中查找是否已选此课程的先行课程; c若a、b都满足,则在选课表中增加一条选课记录;d处理完全部学生的选课后,形成选课单。, 加工过程 对
18、加工处理的描述包括加工过程名、说明、输入数据流、输出数据流,并简要说明处理工作、频度要求、数据量及响应时间等。,6.3 概念设计,6.3 概念设计,主要内容 概念结构设计任务和ER模型的特点 概念结构设计的基本方法 概念结构设计的主要步骤 局部ER模型的设计 全局ER模型的设计 概念结构设计实例,概念结构设计任务和ER模型的特点,数据库的概念结构设计是整个数据库设计的关键阶段,其主要任务是通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模式。 实体-联系(Entity Rela-tionship,ER)模型具有以下特点: 能真实、充分地反映现实世界,包括事物和事物之间的联系
19、,并能满足用户对数据的处理要求; 易于理解。可以利用它在设计人员、编程人员以及最终用户之间进行交流,使得用户能够积极参与,保证数据库设计的成功; 易于更改。当应用环境和应用要求发生改变时,容易对模式进行修改和扩充; 易于向关系、网状、层次等各种数据模型转换。,概念结构设计的基本方法, 自底向上的设计方法: 也称为属性综合法。这种方法的基本点是将前面需求分析中收集到的数据元素作为基本输入,通过对这些元素的分析,把它们综合成相应的实体或联系。 适合范围 较小单位的、较为简单的设计对象 不适合于中等规模以上的设计对象,概念结构设计的基本方法, 自顶向下的设计方法: 从分析组织的事务活动开始,按下面步
20、骤进行: 首先识别用户所关心的实体及实体间的联系,建立一个初步的数据模型框架; 然后再以逐步求精的方式加上必需的描述属性形成一个完整的局部ER模型; 最后再将这些局部ER模型集成为一个统一的全局ER模型。,概念结构设计的主要步骤, 进行数据抽象,设计局部概念模式局部用户的信息需求是构造全局概念模式的基础。在建立局部概念结构时,常常要对需求分析的结果进行细化、补充和修改,如有的数据项要分为若干子项,有的数据定义要重新核实等。 将局部概念模式综合成全局概念模式 综合各局部概念结构就可得到反映所有用户需求的全局概念结构。在综合过程中,主要处理各局部模式对各种对象定义的不一致问题,包括同名异义、异名同
21、义和同一事物在不同模式中被抽象为不同类型的对象(例如,有的作为实体,有的又作为属性)等问题。把各个局部结构合并,还会产生冗余问题,或导致对信息需求的再调整与分析,以确定确切的含义。 评审 消除了所有冲突后,就可把全局结构提交评审。评审分为用户评审与DBA及应用开发人员评审两部分。,局部ER模型的设计,1. 确定局部结构范围 设计局部ER模型时,首先需要根据系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图,让这组图中每一部分对应一个局部应用,然后以这一层次的数据流图为出发点,设计局部ER图。 在确定局部ER模型的设计范围时,有两条原则可供参考: 把那些关系最密切的若干功能所涉及到的数
22、据尽可能地包含在一个局部ER模型内; 一个局部ER模型中所包含的实体数不能太多,以免过于复杂,不便理解和管理。,局部ER模型设 计的流程图如下:,局部ER模型的设计,局部ER模型的设计,下面以学校的教务管理信息系统为例来说明局部概念结构设计范围的确定。教务管理信息系统的顶层数据流图如下图所示。,局部ER模型的设计,下面图给出了教务管理信息系统的0层数据流图,该图描述了教务管理信息系统的组成部分以及各部分的输入和输出数据。,局部ER模型的设计,局部ER模型的设计,2. 确定实体及实体的主键 确定实体 实体(Entity)是一个数据对象,指应用中可以区别的客观存在的事物,如人、部门、表格、物体、项
23、目等。同一类实体构成实体集(Entity Set)。ER模型中的实体往往是指实体集。 学生选课子系统局部应用中,学生是一个实体,学生张平、李玲是学生实体中的两个实例。课程是一个实体,操作系统、数据库原理及应用是课程实体中的两个实例。 课程管理子系统的局部应用中,课程是一个实体,每门课程是课程实体中的一个实例。上课的教师是一个实体,每位上课的教师都是教师实体中的一个实例。 成绩管理子系统的局部应用中,学生是一个实体。一个学生,选修一门课程并参加了考试,就会有这门课程的成绩。因此,可以把成绩视为选课联系的一个属性。,局部ER模型的设计, 确定实体的主键 主键是确定实体的唯一标志。 学生实体的主键是
24、学号; 课程实体的主键是课程号; 教师实体的主键是教师号;,局部ER模型的设计, 区分实体与属性的一般原则: 实体一般需要描述信息,而属性不需要。例如,学生需要描述属性(学号、姓名、性别、出生年月等),所以学生是实体。而性别不需要描述属性,所以性别是属性。 多值的属性可考虑作为实体。例如,教师的职务是一个多值的属性,即一个教师可能担任多个职务。此时职务可考虑作为一个独立的实体,否则数据库表中就会出现大量空值。,局部ER模型的设计, 实体与属性是相对而言的。 同一事物,在一种应用环境中作为“属性”,在另一种应用环境中就必须作为“实体”。 例如,学校中的系,在某种应用环境中,它只是作为“学生”实体
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六 数据库 设计 PPT
