1、2023年4月29日星期六数据库系统原理1主讲:张中军主讲:张中军河南周口师范学院计算机科学系河南周口师范学院计算机科学系 第七章第七章 数据库设计数据库设计数据库系统概论数据库系统概论An Introduction to Database System2023年4月29日星期六数据库系统原理2第七章第七章 数据库设计数据库设计7.1 数据库设计概述数据库设计概述7.2 需求分析需求分析7.3 概念结构设计概念结构设计7.4 逻辑结构设计逻辑结构设计7.5 数据库的物理设计数据库的物理设计7.6 数据库实施和维护数据库实施和维护2023年4月29日星期六数据库系统原理37.1 数据库设计概述数
2、据库设计概述7.1.1 数据库设计的特点数据库设计的特点7.1.2 数据库设计方法数据库设计方法7.1.3 数据库设计的基本步骤数据库设计的基本步骤7.1.4 数据库设计过程中的各级模式数据库设计过程中的各级模式2023年4月29日星期六数据库系统原理4数据库设计概述数据库设计概述n数据库数据库是长期存储在计算机内的有组织、可共享的数据集是长期存储在计算机内的有组织、可共享的数据集合,是现代信息系统等计算机应用系统的核心和基础。合,是现代信息系统等计算机应用系统的核心和基础。n数据库应用系统数据库应用系统是根据是根据DBMS所支持的数据模型将数据组织所支持的数据模型将数据组织起来,为用户提供数
3、据存储、维护、检索的功能,并能使起来,为用户提供数据存储、维护、检索的功能,并能使用户方便、及时、准确地从数据库获得所需要的数据和信用户方便、及时、准确地从数据库获得所需要的数据和信息,息,n数据库设计的好坏则直接影响着整个数据库系统的效率和数据库设计的好坏则直接影响着整个数据库系统的效率和质量质量。2023年4月29日星期六数据库系统原理5数据库设计概述数据库设计概述(续续)n什么是数据库设计什么是数据库设计n数据库设计数据库设计:指对于一个给定的应用环境,构造(设计)指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及优化的数据库逻辑模式和物理结构,并据
4、此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。用户的应用需求,包括信息管理要求和数据操作要求。n信息需求信息需求:表示用户所需要的数据及其结构,包括实体、表示用户所需要的数据及其结构,包括实体、属性、数据之间的联系,是静态要求;属性、数据之间的联系,是静态要求;n处理需求处理需求:表示用户经常需要进行的数据处理表示用户经常需要进行的数据处理(含对数据含对数据库将要进行的数据处理,操作的优先次序、操作执行库将要进行的数据处理,操作的优先次序、操作执行的频率和场合,操作与数据之间的联
5、系等,如报表生的频率和场合,操作与数据之间的联系等,如报表生成、月汇总等成、月汇总等),是动态要求。,是动态要求。2023年4月29日星期六数据库系统原理6数据库设计概述数据库设计概述(续续)n数据库设计的成果包括两个方面数据库设计的成果包括两个方面n数据模式数据模式n以数据库为基础的典型应用程序以数据库为基础的典型应用程序n最基本的成果是数据模式。数据模式的设计必须反映数最基本的成果是数据模式。数据模式的设计必须反映数据处理的需求,以保证常用的、大多数据处理的需求,以保证常用的、大多数的数据处理能使的数据处理能使用方便,性能满意用方便,性能满意n数据库设计的数据库设计的目标目标n为用户和各种
6、应用系统提供一个信息基础设施和高效的为用户和各种应用系统提供一个信息基础设施和高效的运行环境运行环境.(即即存取效率存取效率高、存储空间的高、存储空间的利用率利用率高高,数据库数据库系统系统运行管理效率运行管理效率高高)2023年4月29日星期六数据库系统原理7数据库设计概述数据库设计概述(续续)n为什么说数据库设计在应用系统开发中起着重要的作用?为什么说数据库设计在应用系统开发中起着重要的作用?n不合适数据库设计,检索某些类型的信息是困难的或可不合适数据库设计,检索某些类型的信息是困难的或可能得到不正确的检索信息。能得到不正确的检索信息。n不合适的数据库设计导致不正确的信息,不正确的信息不合
7、适的数据库设计导致不正确的信息,不正确的信息会影响一个单位正常的使用这些数据会影响一个单位正常的使用这些数据 n数据库中的数据应该具有数据库中的数据应该具有一致性一致性、完整性完整性和和正确性正确性2023年4月29日星期六数据库系统原理8数据库设计概述数据库设计概述(续续)n数据库设计与应用程序设计不同:数据库设计与应用程序设计不同:n数据库设计是程序设计的基础,数据库设计的好坏直接数据库设计是程序设计的基础,数据库设计的好坏直接影响着应用程序的性能影响着应用程序的性能n应用程序设计是针对某一特定的数据库应用进行设计的,应用程序设计是针对某一特定的数据库应用进行设计的,其基本任务是明确数据的
8、组织、绘制数据流程图、设计其基本任务是明确数据的组织、绘制数据流程图、设计用户界面以及应用程序的测试与审查等用户界面以及应用程序的测试与审查等n从事数据库设计的专业人员应该具备的技术和知识从事数据库设计的专业人员应该具备的技术和知识:n计算机科学基础知识和程序设计技术计算机科学基础知识和程序设计技术n数据库的基本知识和数据库设计技术数据库的基本知识和数据库设计技术n软件工程的原理和方法软件工程的原理和方法n应用领域的知识应用领域的知识2023年4月29日星期六数据库系统原理9数据库设计的特点数据库设计的特点n数据库设计的数据库设计的特点特点n反复性反复性n数据库的设计是一个反复数据库的设计是一
9、个反复推敲推敲、修改修改、逐步、逐步完善完善的过程的过程n通常,数据库设计分为多个阶段,前一阶段的设计是后通常,数据库设计分为多个阶段,前一阶段的设计是后一阶段设计的起点,而后一阶段设计也会要求修改前一一阶段设计的起点,而后一阶段设计也会要求修改前一阶段的设计,使设计趋于更加合理。阶段的设计,使设计趋于更加合理。n试探性试探性n受到用户需求、软硬件环境等方面的制约,不同的设计受到用户需求、软硬件环境等方面的制约,不同的设计人员对各种需求的重视程度不同,导致不同的设计结果人员对各种需求的重视程度不同,导致不同的设计结果n数据库设计的结果不是惟一的,哪一种设计能更好地满数据库设计的结果不是惟一的,
10、哪一种设计能更好地满足用户的需求,取决于设计人员的经验和试探的结果足用户的需求,取决于设计人员的经验和试探的结果2023年4月29日星期六数据库系统原理10数据库设计的特点数据库设计的特点(续续)n多阶段性多阶段性n数据库的设计常常由不同的人员分阶段完成数据库的设计常常由不同的人员分阶段完成n这样做的目的有两个这样做的目的有两个n一是技术上分工的需要一是技术上分工的需要n二是分阶段把关、逐级审查,保证设计质量和进度。二是分阶段把关、逐级审查,保证设计质量和进度。n多技术性多技术性n数据库的设计要充分考虑硬件、软件环境和用户需求数据库的设计要充分考虑硬件、软件环境和用户需求n数据库的设计也要和应
11、用系统的设计相结合,整个设计数据库的设计也要和应用系统的设计相结合,整个设计过程中要把过程中要把结构结构(数据)设计和(数据)设计和行为行为(处理)设计密切(处理)设计密切结合起来结合起来2023年4月29日星期六数据库系统原理11数据库设计的特点数据库设计的特点(续续)数据库建设的基本规律之一数据库建设的基本规律之一三分技术,七分管理,十二分基础数据三分技术,七分管理,十二分基础数据管理内容:数据库建设的项目管理、企业的业务管理管理内容:数据库建设的项目管理、企业的业务管理数据库建设的基本规律之二数据库建设的基本规律之二数据库结构设计和数据处理设计密切结合数据库结构设计和数据处理设计密切结合
12、基础数据:基础数据:(1)系统初始状态数据的收集和入库)系统初始状态数据的收集和入库(2)系统运行过程中数据更新的维护)系统运行过程中数据更新的维护2023年4月29日星期六数据库系统原理12数据库设计的特点数据库设计的特点(续续)现实世界现实世界概念模型设计概念模型设计子模式设计子模式设计物理数据库设计物理数据库设计逻辑数据库设计逻辑数据库设计建立数据库建立数据库数据分析数据分析功能分析功能分析功能模型功能模型功能说明功能说明事务设计事务设计程序说明程序说明应用程序设计应用程序设计程序编码调试程序编码调试结构和行为分离结构和行为分离的设计模式的设计模式2023年4月29日星期六数据库系统原理
13、13数据库设计方法(续)数据库设计方法(续)n新奥尔良(新奥尔良(New Orleans)方法)方法将数据库设计分为若干阶段和步骤将数据库设计分为若干阶段和步骤 n基于基于E-R模型的数据库设计方法模型的数据库设计方法概念设计阶段广泛采用概念设计阶段广泛采用n3NF(第三范式)的设计方法(第三范式)的设计方法逻辑阶段可采用的有效方法逻辑阶段可采用的有效方法 nODL(Object Definition Language)方法)方法面向对象的数据库设计方法面向对象的数据库设计方法2023年4月29日星期六数据库系统原理14数据库设计方法(续)数据库设计方法(续)n计算机辅助设计计算机辅助设计nO
14、RACLE Designer 2000nSYBASE PowerDesigner2023年4月29日星期六数据库系统原理157.1 数据库设计概述数据库设计概述7.1.1 数据库设计的特点数据库设计的特点7.1.2 数据库设计方法数据库设计方法7.1.3 数据库设计的基本步骤数据库设计的基本步骤7.1.4 数据库设计过程中的各级模式数据库设计过程中的各级模式2023年4月29日星期六数据库系统原理167.1.3 数据库设计的基本步骤数据库设计的基本步骤n数据库设计分数据库设计分6个阶段个阶段n需求分析需求分析n概念结构设计概念结构设计n逻辑结构设计逻辑结构设计n物理结构设计物理结构设计n数据库
15、实施数据库实施n数据库运行和维护数据库运行和维护 n需求分析和概念设计独立于任何数据库管理系统需求分析和概念设计独立于任何数据库管理系统 n逻辑设计和物理设计与选用的逻辑设计和物理设计与选用的DBMS密切相关密切相关2023年4月29日星期六数据库系统原理17数据库设计的基本步骤(续)数据库设计的基本步骤(续)一、数据库设计的准备工作:一、数据库设计的准备工作:选定参加设计的人选定参加设计的人1.系统分析人员、数据库设计人员系统分析人员、数据库设计人员 n自始至终参与数据库设计自始至终参与数据库设计2.用户和数据库管理员用户和数据库管理员 n主要参加需求分析和数据库的运行维护主要参加需求分析和
16、数据库的运行维护3.应用开发人员(程序员和操作员)应用开发人员(程序员和操作员)n在系统实施阶段参与进来,负责编制程序和准备软硬件在系统实施阶段参与进来,负责编制程序和准备软硬件环境环境 2023年4月29日星期六数据库系统原理18数据库设计的步骤数据库设计的步骤n可行性分析可行性分析设计之前的工作设计之前的工作n是数据库设计的起点,它规定了数据库系统的功能、可是数据库设计的起点,它规定了数据库系统的功能、可以使用的软硬件资源等数据库设计的具体要求以使用的软硬件资源等数据库设计的具体要求 n可行性分析完成后,应写出详细的可行性分析报告,其可行性分析完成后,应写出详细的可行性分析报告,其内容包括
17、:信息范围、信息来源、人力资源、软硬件环内容包括:信息范围、信息来源、人力资源、软硬件环境、开发成本估算、开发进度计划、现行系统向新系统境、开发成本估算、开发进度计划、现行系统向新系统转换计划等转换计划等n可行性分析报告完成后,应送交决策部门的领导,由他可行性分析报告完成后,应送交决策部门的领导,由他们组织召开由数据库技术人员、信息部门负责人、应用们组织召开由数据库技术人员、信息部门负责人、应用部门负责人和技术人员以及行政领导参加的评审会,对部门负责人和技术人员以及行政领导参加的评审会,对可行性报告进行评价可行性报告进行评价2023年4月29日星期六数据库系统原理19数据库设计的步骤数据库设计
18、的步骤(续续)n需求分析阶段需求分析阶段n收集分析用户对系统的信息需求和处理需求,得到设计收集分析用户对系统的信息需求和处理需求,得到设计系统所必须系统所必须需求信息需求信息,建立系统说明文档,建立系统说明文档n需求分析是数据库设计过程中比较费时、困难、复杂的需求分析是数据库设计过程中比较费时、困难、复杂的一步,当然也是非常重要的一步一步,当然也是非常重要的一步n需求分析的好坏直接影响整个数据库的设计工作。需求分析的好坏直接影响整个数据库的设计工作。n概念结构设计概念结构设计n根据系统需求,用概念数据模型表示数据及数据之间的根据系统需求,用概念数据模型表示数据及数据之间的联系联系n这一过程中建
19、立的概念结构这一过程中建立的概念结构独立于具体独立于具体DBMS和计算机和计算机硬件,它应该完全表达用户的需求硬件,它应该完全表达用户的需求,面向现实世界且易,面向现实世界且易于用户理解的数据模型。一般使用于用户理解的数据模型。一般使用E-R图表示图表示2023年4月29日星期六数据库系统原理20数据库设计的步骤数据库设计的步骤(续续)n逻辑结构设计逻辑结构设计n在概念结构设计的基础上,按照一定原则将概念模式转在概念结构设计的基础上,按照一定原则将概念模式转换为某个具体换为某个具体DBMS支持的逻辑结构。支持的逻辑结构。n物理设计物理设计n物理设计的任务是根据逻辑设计出的逻辑模式、物理设计的任
20、务是根据逻辑设计出的逻辑模式、DBMS及计算机系统所提供的手段和施加的限制,设计数据库及计算机系统所提供的手段和施加的限制,设计数据库的内模式,即文件结构、各种存取路径、存储空间分配、的内模式,即文件结构、各种存取路径、存储空间分配、记录的存储格式等,为逻辑数据结构选取一个最适合应记录的存储格式等,为逻辑数据结构选取一个最适合应用环境的物理结构用环境的物理结构2023年4月29日星期六数据库系统原理21数据库设计的步骤数据库设计的步骤(续续)n数据库的实施数据库的实施n数据库设计完成后,设计人员要用数据库设计完成后,设计人员要用DBMS提供的数据提供的数据定义语言(定义语言(DDL)及宿主语言
21、及宿主语言和其他的实用程序将数和其他的实用程序将数据库逻辑结构设计和物理结构设计的结果描述出来,据库逻辑结构设计和物理结构设计的结果描述出来,成为成为DBMS可以接受的源代码,再经过调试产生目标可以接受的源代码,再经过调试产生目标模式,最后将数据装入数据库模式,最后将数据装入数据库建立数据库建立数据库编制与调试应用程序编制与调试应用程序组织数据入库组织数据入库进行试运行进行试运行2023年4月29日星期六数据库系统原理22数据库设计的基本步骤(续)数据库设计的基本步骤(续)数据库运行和维护阶段数据库运行和维护阶段n数据库应用系统经过试运行后即可投入数据库应用系统经过试运行后即可投入正式运行正式
22、运行n经过上面经过上面5个阶段之后,进入运行和维护时期。在这一时个阶段之后,进入运行和维护时期。在这一时期,根据数据库运行的情况对数据库的期,根据数据库运行的情况对数据库的性能进行评价性能进行评价,在保持数据库完整性的前提下,有效地在保持数据库完整性的前提下,有效地处理数据故障处理数据故障和和进行进行数据库恢复数据库恢复,并,并改善数据库系统的性能改善数据库系统的性能,必要时,必要时,可以对数据库进行可以对数据库进行重组和重构重组和重构。2023年4月29日星期六数据库系统原理23数据库设计的步骤数据库设计的步骤(续续)n说明:说明:n目前很多目前很多DBMS和一些独立的开发商都提供了一些辅助
23、和一些独立的开发商都提供了一些辅助工具(工具(CASE工具),用于数据库设计的各个阶段。工具),用于数据库设计的各个阶段。n例如,例如,ORACLE DESIGNER 2000可以帮助设计者绘可以帮助设计者绘制制E-R图,将图,将E-R图转换为关系数据模型,生成数据图转换为关系数据模型,生成数据库结构库结构n为加快数据库设计速度,设计人员可根据需要选用这为加快数据库设计速度,设计人员可根据需要选用这些些CASE工具。但是,利用工具。但是,利用CASE工具生成的仅仅是工具生成的仅仅是数据库应用系统比较粗糙,需要进一步修改、完善数据库应用系统比较粗糙,需要进一步修改、完善2023年4月29日星期六
24、数据库系统原理24数据库设计的基本步骤(续)数据库设计的基本步骤(续)设计一个完善的数据库应用系统往往是上述六个阶段的不断设计一个完善的数据库应用系统往往是上述六个阶段的不断反复反复(P202图图7.2)n把数据库设计和对数据库中数据处理的设计紧密结合起来把数据库设计和对数据库中数据处理的设计紧密结合起来n将这两个方面的需求分析、抽象、设计、实现在各个阶段将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计同时进行,相互参照,相互补充,以完善两方面的设计2023年4月29日星期六数据库系统原理25数据库设计各个阶段的设计描述2023年4月29日星期
25、六数据库系统原理267.1 数据库设计概述数据库设计概述7.1.1 数据库设计的特点数据库设计的特点7.1.2 数据库设计方法数据库设计方法7.1.3 数据库设计的基本步骤数据库设计的基本步骤7.1.4 数据库设计过程中的各级模式数据库设计过程中的各级模式2023年4月29日星期六数据库系统原理277.1.4数据库设计过程中的各级模式数据库设计过程中的各级模式数据库设计不同阶段形成的数据库各级模式数据库设计不同阶段形成的数据库各级模式数据库的各级模式 2023年4月29日星期六数据库系统原理28第七章第七章 数据库设计数据库设计7.1 数据库设计概述数据库设计概述7.2 需求分析需求分析7.3
26、 概念结构设计概念结构设计7.4 逻辑结构设计逻辑结构设计7.5 数据库的物理设计数据库的物理设计7.6 数据库实施和维护数据库实施和维护7.7 小结小结2023年4月29日星期六数据库系统原理297.2 需求分析需求分析7.2.1 需求分析的任务需求分析的任务7.2.2 需求分析的方法需求分析的方法7.2.3 数据字典数据字典2023年4月29日星期六数据库系统原理307.2.1 需求分析的任务需求分析的任务v需求分析的任务需求分析的任务v需求分析的重点需求分析的重点v需求分析的难点需求分析的难点2023年4月29日星期六数据库系统原理31需求分析的任务需求分析的任务n详细调查现实世界要处理
27、的对象(组织、部门、企业等)详细调查现实世界要处理的对象(组织、部门、企业等)n充分了解原系统(手工系统或计算机系统)充分了解原系统(手工系统或计算机系统)n明确用户的各种需求明确用户的各种需求n确定新系统的功能确定新系统的功能n充分考虑今后可能的扩充和改变充分考虑今后可能的扩充和改变2023年4月29日星期六数据库系统原理32需求分析的重点需求分析的重点n调查的重点是调查的重点是“数据数据”和和“处理处理”,获得用户对数据库要,获得用户对数据库要求求n 信息要求信息要求n处理要求处理要求n安全性与完整性要求安全性与完整性要求2023年4月29日星期六数据库系统原理33需求分析难点需求分析难点
28、n需求分析困难的原因需求分析困难的原因:n用户对数据库设计方面的用户对数据库设计方面的专业知识缺乏专业知识缺乏,很难一次表达,很难一次表达完整的需求或很难说清楚某部分工作的功能与处理过程完整的需求或很难说清楚某部分工作的功能与处理过程n设计人员设计人员缺少用户的专业知识缺少用户的专业知识n应用系统本身的需求是应用系统本身的需求是不断变化不断变化的,随着理解的深入,的,随着理解的深入,用户不断提出新需求用户不断提出新需求n工作人员配合问题:因为需求分析可能影响他们工作或工作人员配合问题:因为需求分析可能影响他们工作或者系统的建立会改变他们的工作方式,迫使他们重新学者系统的建立会改变他们的工作方式
29、,迫使他们重新学习新的系统而增加负担等原因。习新的系统而增加负担等原因。n在需求分析阶段,数据库设计人员要处理好与具体工作人在需求分析阶段,数据库设计人员要处理好与具体工作人员的关系,充分调动用户的积极性。员的关系,充分调动用户的积极性。2023年4月29日星期六数据库系统原理347.2 需求分析需求分析7.2.1 需求分析的任务需求分析的任务7.2.2 需求分析的方法需求分析的方法7.2.3 数据字典数据字典2023年4月29日星期六数据库系统原理357.2.2 需求分析的步骤需求分析的步骤n调查需求调查需求n达成共识达成共识n分析表达需求分析表达需求2023年4月29日星期六数据库系统原理
30、36需求分析的步骤需求分析的步骤n1.1.需求调查需求调查n目的是了解单位中各个部门的职能、工作目标、职责目的是了解单位中各个部门的职能、工作目标、职责范围,主要业务活动及工作流程,获得各个组织机构范围,主要业务活动及工作流程,获得各个组织机构的业务数据及其相互联系的信息。的业务数据及其相互联系的信息。n需求分析需要了解以下信息需求分析需要了解以下信息n调查给定单位的组织结构,列出各职能部门及相互调查给定单位的组织结构,列出各职能部门及相互关系关系2023年4月29日星期六数据库系统原理37需求分析的步骤需求分析的步骤(续续)n调查每个职能部门的业务现状,包括各个部门使用那调查每个职能部门的业
31、务现状,包括各个部门使用那些数据、这些数据的来源、数据的格式、处理之后的些数据、这些数据的来源、数据的格式、处理之后的数据的格式及流向等信息数据的格式及流向等信息n这个阶段应该注意现有系统中使用的各种数据资这个阶段应该注意现有系统中使用的各种数据资料,如文档、报表、各种单据等,从而确定数据料,如文档、报表、各种单据等,从而确定数据库中存储哪些数据库中存储哪些数据n调查数据的使用频度、处理数据的时间要求、安全性调查数据的使用频度、处理数据的时间要求、安全性及完整性方面的要求及完整性方面的要求n预测现行系统的未来的功能和处理要求预测现行系统的未来的功能和处理要求2023年4月29日星期六数据库系统
32、原理38需求分析的步骤需求分析的步骤(续续)n需求调查方式需求调查方式:n个别交谈个别交谈:得到完成各种职能的过程、方法和所需信得到完成各种职能的过程、方法和所需信息、各部门的长远规划和未来发展的需求和政策息、各部门的长远规划和未来发展的需求和政策n座谈会座谈会:获得不同业务之间的联系信息、依赖关系和:获得不同业务之间的联系信息、依赖关系和各种信息流向、信息加工的过程、数据处理的要求等各种信息流向、信息加工的过程、数据处理的要求等n发放调查表发放调查表:获得设计人员关心的用户需求,适合对:获得设计人员关心的用户需求,适合对部门负责人和基层人员的调查部门负责人和基层人员的调查n查看现行系统的业务
33、记录、报表等数据记录查看现行系统的业务记录、报表等数据记录:更好地:更好地了解每项工作的数据来源、加工过程、数据处理要求了解每项工作的数据来源、加工过程、数据处理要求和数据加工中的条件限制、数据的流向等需求和数据加工中的条件限制、数据的流向等需求n亲自参加业务活动亲自参加业务活动:可获得准确详细的需求信息,但:可获得准确详细的需求信息,但比较费时比较费时2023年4月29日星期六数据库系统原理39需求分析的步骤需求分析的步骤(续续)n2.需求调查结果的分析与整理需求调查结果的分析与整理n对收集到的信息分析,抽象出数据流图对收集到的信息分析,抽象出数据流图 n数据流图只描述了数据与处理关系及数据
34、流动的方数据流图只描述了数据与处理关系及数据流动的方向,无法描述数据流中的数据项等细节方面的信息向,无法描述数据流中的数据项等细节方面的信息n除了数据流图之外,还要列出下列信息除了数据流图之外,还要列出下列信息:n业务活动清单业务活动清单:列出每一个部门的基本任务和功能:列出每一个部门的基本任务和功能 n需求清单需求清单:包括完整性、一致性、安全性要求等;:包括完整性、一致性、安全性要求等;n未来要求未来要求:目前尚未被数据库系统支持的应用、将目前尚未被数据库系统支持的应用、将来可能扩充、减少、和改变的功能等。来可能扩充、减少、和改变的功能等。n数据字典数据字典:列出所有数据项、数据结构、数据
35、流、:列出所有数据项、数据结构、数据流、数据存储和数据处理的定义细节数据存储和数据处理的定义细节。2023年4月29日星期六数据库系统原理40需求分析的步骤需求分析的步骤(续续)n3.书写需求分析说明书书写需求分析说明书n在需求调查分析和整理的基础上,依据一定的规范编在需求调查分析和整理的基础上,依据一定的规范编写出需求分析说明书。写出需求分析说明书。n4.评审评审 n为了保证设计为了保证设计质量质量,避免重大的,避免重大的疏漏和错误疏漏和错误,要对需,要对需求分析阶段的任务是否完成进行求分析阶段的任务是否完成进行评审评审。通过评审的需。通过评审的需求分析说明书标志着求分析说明书标志着需求分析
36、阶段的结束需求分析阶段的结束和和设计阶段设计阶段的开始的开始,也可以作为项目验收和鉴定的依据。,也可以作为项目验收和鉴定的依据。n对需求分析结果的评审可能导致对需求分析的重大修对需求分析结果的评审可能导致对需求分析的重大修改甚至重复调查,然后再进行评审,直到达到预期目改甚至重复调查,然后再进行评审,直到达到预期目标为止标为止2023年4月29日星期六数据库系统原理417.2 需求分析需求分析7.2.1 需求分析的任务需求分析的任务7.2.2 需求分析的方法需求分析的方法7.2.3 数据字典数据字典2023年4月29日星期六数据库系统原理42数据字典数据字典n数据字典数据字典是关于数据库中数据性
37、质的描述,即元数据,而是关于数据库中数据性质的描述,即元数据,而不是数据本身。不是数据本身。n数据字典是数据内容的详细描述、需求分析的主要结果;数据字典是数据内容的详细描述、需求分析的主要结果;n数据字典应该具备查询方便、没有数据冗余、易于修改和数据字典应该具备查询方便、没有数据冗余、易于修改和更新等特点。更新等特点。n数据字典是需求分析阶段取得的主要成果之一,为设计人数据字典是需求分析阶段取得的主要成果之一,为设计人员提供了数据的详细描述信息,是下一步概念结构设计的员提供了数据的详细描述信息,是下一步概念结构设计的输入,它和数据流图一起完整地描述了系统的需求信息。输入,它和数据流图一起完整地
38、描述了系统的需求信息。n数据字典弥补了数据流图的不足;数据字典弥补了数据流图的不足;n数据字典通常包含数据字典通常包含数据项、数据结构、数据流、数据存储数据项、数据结构、数据流、数据存储和和数据处理数据处理五个部分五个部分2023年4月29日星期六数据库系统原理43 数据项数据项n 数据项是不可再分的数据单位,数据项是不可再分的数据单位,是数据的基本单元或最小是数据的基本单元或最小单位。单位。n 对数据项的描述对数据项的描述 数据项描述数据项描述 数据项名,数据项含义说明,别名,数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,数据类型,长度,取值范围,取值含义,与其他数据项
39、的逻辑关系,数据项之间的联系与其他数据项的逻辑关系,数据项之间的联系 n说明说明n别名别名是数据项名称的其它叫法是数据项名称的其它叫法n取值范围取值范围规定了数据项取值区间或其值所在的集合;规定了数据项取值区间或其值所在的集合;n与其它数据项的逻辑关系与其它数据项的逻辑关系说明了数据完整性约束条件,说明了数据完整性约束条件,如学生总成绩是各门成绩之和等如学生总成绩是各门成绩之和等 2023年4月29日星期六数据库系统原理44 数据结构数据结构n数据结构数据结构反映了数据之间的组合关系。反映了数据之间的组合关系。n 一个数据结构可以由若干个数据项组成,也可以由若干个一个数据结构可以由若干个数据项
40、组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。数据结构组成,或由若干个数据项和数据结构混合组成。n 对数据结构的描述对数据结构的描述 数据结构描述数据结构名,含义说明,数据结构描述数据结构名,含义说明,组成组成:数据项或数据结构数据项或数据结构2023年4月29日星期六数据库系统原理45 数据流数据流n 数据流数据流是数据结构在系统内传输的路径,是数据结构在系统内传输的路径,它是数据由一个处它是数据由一个处理传到另一个处理理传到另一个处理。n 对数据流的描述对数据流的描述 数据流描述数据流描述 数据流名,说明,数据流来源,数据流名,说明,数据流来源,数据流去向,组成数据
41、流去向,组成:数据结构,数据结构,平均流量,高峰期流量平均流量,高峰期流量n数据流来源数据流来源说明该数据流来自哪个处理过程说明该数据流来自哪个处理过程n数据流去向数据流去向说明该数据流将传送给哪个处理过程说明该数据流将传送给哪个处理过程n平均流量平均流量指的是单位时间的数据传输量指的是单位时间的数据传输量n高峰流量高峰流量指出指出高峰时期的数据传输量高峰时期的数据传输量2023年4月29日星期六数据库系统原理46 数据存储数据存储n数据存储数据存储是数据处理过程需要保存的数据集合,也是数据流是数据处理过程需要保存的数据集合,也是数据流的来源和去向之一,它可以是手工凭证、手工文档,也可以的来源
42、和去向之一,它可以是手工凭证、手工文档,也可以是计算机文件等是计算机文件等。n对数据存储的描述对数据存储的描述 数据存储描述数据存储名,说明,编号,数据存储描述数据存储名,说明,编号,输入的数据流输入的数据流,输出的数据流,输出的数据流,组成组成:数据结构,数据量,存取频度,数据结构,数据量,存取频度,存取方式存取方式2023年4月29日星期六数据库系统原理47 处理过程处理过程n处理过程处理过程也称加工过程,是指数据库应用程序模块也称加工过程,是指数据库应用程序模块n其具体处理逻辑一般用判定表或判定树来描述,也可以用其具体处理逻辑一般用判定表或判定树来描述,也可以用程序流程图来描述,但在数据
43、字典中只描述处理过程的说程序流程图来描述,但在数据字典中只描述处理过程的说明性信息。明性信息。n处理过程说明性信息的描述处理过程说明性信息的描述处理过程描述处理过程名,说明,输入处理过程描述处理过程名,说明,输入:数据流,数据流,输出输出:数据流,处理数据流,处理:简要说明简要说明n说明说明n简要说明简要说明主要说明该处理过程的主要说明该处理过程的功能功能及及处理要求处理要求,这里,这里n功能功能是指该处理过程用来做什么(而不是怎么做)是指该处理过程用来做什么(而不是怎么做)n处理要求处理要求包括处理的频率要求,如单位时间里处理多包括处理的频率要求,如单位时间里处理多少事务、多少数据量,响应时
44、间要求等少事务、多少数据量,响应时间要求等n处理要求处理要求是物理是物理设计的输入及性能评价的标准设计的输入及性能评价的标准2023年4月29日星期六数据库系统原理48数据字典举例数据字典举例例:学生学籍管理子系统的数据字典。例:学生学籍管理子系统的数据字典。数据项,以数据项,以“学号学号”为例:为例:数据项数据项:学号:学号 含义说明含义说明:唯一标识每个学生:唯一标识每个学生别名别名:学生编号:学生编号 类型类型:字符型:字符型 长度长度:8 取值范围取值范围:00000000至至99999999取值含义取值含义:前两位标别该学生所在年级,:前两位标别该学生所在年级,后六位按顺序编号后六位
45、按顺序编号与其他数据项的逻辑关系与其他数据项的逻辑关系:2023年4月29日星期六数据库系统原理49处理过程(续处理过程(续)数据结构,数据结构,以以“学生学生”为例为例“学生学生”是该系统中的一个核心数据结构:是该系统中的一个核心数据结构:数据结构数据结构:学生:学生 含义说明含义说明:是学籍管理子系统的主体数据结构,:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息定义了一个学生的有关信息 组成组成:学号,姓名,性别,年龄,所在系,年级:学号,姓名,性别,年龄,所在系,年级2023年4月29日星期六数据库系统原理50处理过程(续)处理过程(续)数据流,数据流,“体检结果体检结果”可
46、如下描述:可如下描述:数据流数据流:体检结果:体检结果 说明说明:学生参加体格检查的最终结果:学生参加体格检查的最终结果 数据流来源数据流来源:体检:体检 数据流去向数据流去向:批准:批准 组成组成:平均流量平均流量:高峰期流量高峰期流量:2023年4月29日星期六数据库系统原理51处理过程(续)处理过程(续)数据存储,数据存储,“学生登记表学生登记表”可如下描述:可如下描述:数据存储数据存储:学生登记表:学生登记表 说明说明:记录学生的基本情况:记录学生的基本情况流入数据流流入数据流:流出数据流流出数据流:组成组成:数据量数据量:每年:每年3000张张 存取方式存取方式:随机存取:随机存取
47、2023年4月29日星期六数据库系统原理52处理过程(续)处理过程(续)处理过程处理过程“分配宿舍分配宿舍”可如下描述:可如下描述:处理过程处理过程:分配宿舍:分配宿舍说明说明:为所有新生分配学生宿舍:为所有新生分配学生宿舍输入输入:学生,宿舍:学生,宿舍输出输出:宿舍安排:宿舍安排处理处理:在新生报到后,为所有新生分配学生宿舍。:在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排同一性别的学生,要求同一间宿舍只能安排同一性别的学生,同一个学生只能安排在一个宿舍中。同一个学生只能安排在一个宿舍中。每个学生的居住面积不小于每个学生的居住面积不小于3平方米。平方米。安排新生宿舍其处理时间
48、应不超过安排新生宿舍其处理时间应不超过15分钟。分钟。2023年4月29日星期六数据库系统原理53数据字典数据字典n数据字典数据字典是关于数据库中数据的描述,是是关于数据库中数据的描述,是元数据元数据,而不是数,而不是数据本身据本身n数据字典在数据字典在需求分析需求分析阶段建立,在数据库设计过程中不断修阶段建立,在数据库设计过程中不断修改、充实、完善改、充实、完善 2023年4月29日星期六数据库系统原理54需求分析小结需求分析小结n设计人员应充分考虑到可能的设计人员应充分考虑到可能的扩充扩充和和改变改变,使设计,使设计易于更改,系统易于扩充易于更改,系统易于扩充 n必须必须强调用户的参与强调
49、用户的参与2023年4月29日星期六数据库系统原理55第七章第七章 数据库设计数据库设计7.1 数据库设计概述数据库设计概述7.2 需求分析需求分析7.3 概念结构设计概念结构设计7.4 逻辑结构设计逻辑结构设计7.5 数据库的物理设计数据库的物理设计7.6 数据库实施和维护数据库实施和维护7.7 小结小结2023年4月29日星期六数据库系统原理567.3 概念结构设计概念结构设计7.3.1 概念结构概念结构7.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤7.3.3 数据抽象与局部视图设计数据抽象与局部视图设计7.3.4 视图的集成视图的集成2023年4月29日星期六数据库系统原理
50、57什么是概念结构设计什么是概念结构设计n概念结构设计概念结构设计n是将需求分析阶段所得到的应用需求应该首先抽象为信是将需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构的过程息世界的结构的过程.n概念结构设计是整个数据库设计的关键概念结构设计是整个数据库设计的关键现实世界现实世界机器世界机器世界信息世界信息世界需求分析需求分析概念结构设计概念结构设计2023年4月29日星期六数据库系统原理58概念结构设计概念结构设计(续续)n概念模型的主要特点是:概念模型的主要特点是:n(1)(1)能真实、充分地反映现实世界能真实、充分地反映现实世界,包括事物和事物之间,包括事物和事物之间的联系,能满