设计 Flashcards
数据库设计
广义地讲,是数据库及其应用系统的设计,即设计整个的数据库应用系统。狭义地讲,是设计数据库本身,即设计数据库的各级模式并建立数据库,这是数据库应用系统设计的一部分。
(本书重点是讲狭义的数据库设计。)
设计一个好的数据库与设计一个好的数据库应用系统是密不可分的。一个好的数据库结构是应用系统的基础。特别在实际的系统开发项目中两者更是密切相关、并行进行的。
数据库应用系统
使用数据库的各类信息系统。
数据库设计的定义
对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。
信息管理要求是指在数据库中应该存储和管理哪些数据对象;数据操作要求是指对数据对象需要进行哪些操作,如查询、增、删、改、统计等操作。
数据库设计的目标
为用户和各种应用系统提供一个信息基础设施和高效率的运行环境。
高效率的运行环境包括:数据库数据的存取效率、数据库存储空间的利用率、数据库系统运行管理的效率等都是高的。
数据库建设
数据库应用系统从设计、实施到运行与维护的全过程。
数据库建设的基本规律
数据库建设和一般的软件系统的设计、开发和运行与维护有许多相同之处,更有其自身的一些特点。
1。数据库建设的基本规律。"三分技术,七分管理,十二分基础数据"。数据库建设是硬件、软件和干件(技术与管理的界面)的结合。
在数据库建设中不仅涉及技术,还涉及管理。要建设好一个数据库应用系统,开发技术固然重要,但是相比之下则管理更加重要。这里的管理不仅包括数据库建设作为一个大型的工程项目本身的项目管理,而且包括该企业(即应用部门)的业务管理。
企业的业务管理更加复杂,也更重要,对数据库结构的设计有直接影响。因为数据库结构(即数据库模式)是对企业中业务部门的数据以及各个业务部门之间数据联系的描述和抽象。业务部门的数据以及各个业务部门之间数据联系是和各个部门的职能、整个企业的管理模式密切相关的。
一个企业数据库建设的过程是企业管理模式的改革和提高的过程。只有把企业的管理创新做好,才能实现技术创新,才能建设好一个数据库应用系统。
十二分基础数据则强调了数据的收集、整理、组织和不断更新是数据库建设中的重要环节。
基础数据的收集、入库是数据库建立初期工作量最大、最烦琐、最细致的工作。在以后数据库运行过程中更需要不断地把新的数据加到数据库中,使数据库成为一个"活库",否则就成了"死库"。数据库一旦成了"死库",系统也就失去了应用价值,原来的投资也就失败了。
2。从软件设计的角度来看,数据库设计应和应用系统设计相结合。也就是说,整个设计过程中要把数据库结构(数据)设计和行为(对数据的处理)设计密切结合起来。
数据库设计方法
大型数据库设计是涉及多学科的综合性技术,又是一项庞大的工程项目。它要求从事数据库设计的专业人员具备多方面的技术和知识。主要包括: 计算机的基础知识; 软件工程的原理和方法; 程序设计的方法和技巧; 数据库的基本知识; 数据库设计技术; 应用领域的知识。
数据库设计方法
早期数据库设计主要采用手工加经验相结合的方法。设计的质量往往与设计人员的经验与水平有直接的关系。数据库设计是一种技艺,缺乏科学理论和工程方法的支持,设计质量难以保证。常常是数据库运行一段时间后又不同程度地发现各种问题,需要进行修改甚至重新设计,增加了系统维护的代价。
为此,人们努力探索,提出了各种数据库设计方法。例如:
1。新奥尔良方法。把数据库设计分为若干阶段和步骤,并采用一些辅助手段实现每一过程。运用软件工程的思想,按一定的设计规程用工程化方法设计数据库。属于规范设计法。
规范设计法从本质上看仍然是手工设计方法,其基本思想是过程迭代和逐步求精。
2。基于E-R模型的数据库设计方法。用E-R模型来设计数据库的概念模型,是数据库概念设计阶段广泛采用的方法。
3。3NF(第三范式)的设计方法。用关系数据理论为指导来设计数据库的逻辑模型,是设计关系数据库时在逻辑阶段可以采用的一种有效方法。
4。ODL(Object Definition Language)方法。面向对象的数据库设计方法。用面向对象的概念和术语来说明数据库结构。可以描述面向对象数据库结构设计,可以直接转换为面向对象的数据库。
数据库设计工具
数据库设计工具已经实用化和产品化。
例如:Designer2000和PowerDesigner分别是ORACLE公司和SYBASE公司推出的数据库设计工具软件,这些工具软件可以辅助设计人员完成数据库设计过程中的很多任务,已经普遍地用于大型数据库设计之中。
数据库设计的阶段
需求分析;
概念结构设计;
逻辑结构设计;
物理结构设计;
数据库实施;
数据库运行和维护。
在数据库设计过程中,需求分析和概念设计可以独立于任何数据库管理系统进行。逻辑设计和物理设计与选用的DBMS密切相关。
数据库设计开始之前,首先必须选定参加设计的人员,包括系统分析人员、数据库设计人员、应用开发人员、数据库管理员和用户代表。系统分析和数据库设计人员是数据库设计的核心人员,他们将自始至终参与数据库设计,他们的水平决定了数据库系统的质量。用户和数据库管理员在数据库设计中也是举足轻重的,他们主要参加需求分析和数据库的运行和维护,他们的积极参与(不仅仅是配合)不但能加速数据库设计,而且也是决定数据库设计质量的重要因素。应用开发人员(包括程序员和操作员)分别负责编制程序和准备软硬件环境,他们在系统实施阶段参与进来。
如果所设计的数据库应用系统比较复杂,还应该考虑是否使用数据库设计工具以及选用何种工具,以提高数据库设计质量并减少设计工作量。
设计一个完善的数据库应用系统是不可能一蹴而就的,它往往是上述6个阶段的不断往复。
这个设计步骤既是数据库设计的过程,也包括了数据库应用系统的设计过程。在设计过程中把数据库的设计和对数据库中数据处理的设计紧密结合起来,将这两个方面的需求分析、抽象、设计、实现在各个阶段同时进行,相互参照,相互补充,以完善两方面的设计。
需求分析阶段
进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)。
需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。需求分析是否做得充分与准确,决定了在其上构建数据库的速度与质量。需求分析做得不好,甚至会导致整个数据库设计返工重做。
简单地说就是分析用户的要求。是设计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。
概念结构设计阶段
是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
逻辑结构设计阶段
将概念结构转换为某个DBMS所支持的数据模型,并对其进行优化。
物理结构设计阶段
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。
数据库实施阶段
设计人员运用DBMS提供的数据库语言(如SQL)、工具及其宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行客观的评价、调整与修改。
数据库设计过程中的各级模式
数据库设计的不同阶段形成数据库的各级模式。需求分析阶段,综合各个用户的应用需求。
在概念设计阶段形成独立于机器特点,独立于各个DBMS产品的概念模式,在本篇中就是E-R图。
在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图,形成数据的外模式。
在物理设计阶段,根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。
需求分析的任务(设计目标)
通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。
需求分析阶段所调查的内容
调查的重点是"数据"和"处理",通过调查、收集与分析,获得用户对数据库如下要求:
1。信息要求。指用户需要从数据库中获得信息的内容与性质。由信息要求可以导出数据要求,即在数据库中需要存储哪些数据。
2。处理要求。指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是联机处理。
3。安全性与完整性要求。
确定用户的最终需求是一件很困难的事,这是因为一方面用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此往往不能准确地表达自己的需求,所提出的需求往往不断地变化。另一方面,设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求。因此设计人员必须不断深入地与用户交流,才能逐步确定用户的实际需求。
需求分析的方法
进行需求分析首先是调查清楚用户的实际要求,与用户达成共识,然后分析与表达这些需求。
调查用户需求的步骤
1。调查组织机构情况。包括了解该组织的部门组成情况、各部门的职责等,为分析信息流程做准备。
2。调查各部门的业务活动情况。包括了解各个部门输入和使用什么数据,如何加工处理这些数据,输出什么信息,输出到什么部门,输出结果的格式是什么,这是调查的重点。
3。在熟悉了业务活动的基础上,协助用户明确对新系统的各种要求,包括信息要求、处理要求、安全性与完整性要求,这是调查的又一个重点。
4。确定新系统的边界。对前面调查的结果进行初步分析,确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。由计算机完成的功能就是新系统应该实现的功能。
调查方法
1。跟班作业。通过亲身参加业务工作来了解业务活动的情况。
2。开调查会。通过与用户座谈来了解业务活动的情况及用户需求。
3。请专人介绍。
4。询问。对某些调查中的问题,可以找专人询问。
5。设计调查表请用户填写。如果调查表设计得合理,这种方法是很有效的。
6。查阅记录。查阅与原系统有关的数据记录。
做需求调查时,往往需要同时采用上述多种方法。但无论使用何种调查方法,都必须有用户的积极参与和配合。
调查了解了用户需求以后,还需要进一步分析和表达用户的需求。在众多的分析方法中,结构化分析(SA)是一种简单实用的方法。SA方法从最上层的系统组织机构入手,采用自顶向下、逐层分解的方式分析系统。SA方法把任何一个系统都抽象为(数据来源-(数据流)>处理-(数据流)>数据输出,处理数据存储)的形式。要反映更详细的内容,可将处理功能分解为若干子功能,每个子功能还可以继续分解,直到把系统工作过程表示清楚为止。在处理功能逐步分解的同时,它们所用的数据也逐级分解,形成若干层次的数据流图。
数据流图表达了数据和处理过程的关系。在SA方法中,处理过程的处理逻辑常常借助判定表或判定树来描述。系统中的数据则借助数据字典(DD)来描述。
对用户需求进行分析与表达后,必须提交给用户,征得用户的认可。
数据字典的内容
数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。
其中数据项是数据的最小组成单位,若干个数据项可以组成一个数据结构,数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。
数据字典
数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行详细的数据收集和数据分析所获得的主要成果。数据字典在数据库设计中占有很重要的地位。