
数据库是整个软件应用的根基,是软件设计的起点,它起着决定性的质变作用,因此我们必须对数据库设计高度重视起来,培养设计良好数据库的习惯,是一个优秀的软件设计师所必须具备的基本素质条件! 那么我们要做到什么程度才是对的呢?下面就说说数据库设计的原则: (1)、数据库设计最起码要占用整个项目开发的40%以上的时间
数据库是需求的直观反应和表现,因此设计时必须要切实符合用户的需求,要多次与用户沟通交流来细化需求,将需求中的要求和每一次的变化都要一一体现在数据库的设计当中。如果需求不明确,就要分析不确定的因素,设计表时就要事先预留出可变通的字段,正所谓“有备无患”。 (2)、数据库设计不仅仅停留于页面demo的表面 页面内容所需要的字段,在数据库设计中只是一部分,还有系统运转、模块交互、中转数据、表之间的联系等等所需要的字段,因此数据库设计绝对不是简单的基本数据存储,还有逻辑数据存储。 (3)、数据库设计完成后,项目80%的设计开发在你脑海中就已经完成了 每个字段的设计都是有他必要的意义的,你在设计每一个字段的同时,就应该已经想清楚程序中如何去运用这些字段,多张表的联系在程序中是如何体现的。换句话说,你完成数据库设计后,程序中所有的实现思路和实现方式在你的脑海中就已经考虑过了。如果达不到这种程度,那当进入编码阶段后,才发现要运用的技术或实现的方式数据库无法支持,这时再改动数据库就会很麻烦,会造成一系列不可预测的问题。 (4)、数据库设计时就要考虑到效率和优化问题 一开始就要分析哪些表会存储较多的数据量,对于数据量较大的表的设计往往是粗粒度的,也会冗余一些必要的字段,已达到尽量用最少的表、最弱的表关系去存储海量的数据。并且在设计表时,一般都会对主键建立聚集索引,含有大数据量的表更是要建立索引以提供查询性能。对于含有计算、数据交互、统计这类需求时,还要考虑是否有必要采用存储过程。 (5)、添加必要的(冗余)字段 像“创建时间”、“修改时间”、“备注”、“ *** 作用户IP”和一些用于其他需求(如统计)的字段等,在每张表中必须都要有,不是说只有系统中用到的数据才会存到数据库中,一些冗余字段是为了便于日后维护、分析、拓展而添加的,这点是非常重要的,比如黑客攻击,篡改了数据,我们便就可以根据修改时间和 *** 作用户IP来查找定位。 (6)、设计合理的表关联 若多张表之间的关系复杂,建议采用第三张映射表来关联维护两张表之间的关系,以降低表之间的直接耦合度。若多张表涉及到大数据量的问题,表结构尽量简单,关联也要尽可能避免。 (7)、设计表时不加主外键等约束性关联,系统编码阶段完成后再添加约束性关联 这样做的目的是有利于团队并行开发,减少编码时所遇到的问题,表之间的关系靠程序来控制。编码完成后再加关联并进行测试。不过也有一些公司的做法是干脆就不加表关联。 (8)、选择合适的主键生成策略
1、需求分析:了解用户的数据需求、处理需求、安全性及完整性要求;
2、概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型;
3、逻辑结构设计:设计系统的模式和外模式,对于关系模型主要是基本表和视图;
4、物理结构设计:设计数据的存储结构和存取方法,如索引的设计;
5、系统实施:组织数据入库、编制应用程序、试运行;
6、运行维护:系统投入运行,长期的维护工作。设计时应注意的问题1、规范命名。所有的库名、表名、域名必须遵循统一的命名规则,并进行必要说明,以方便设计、维护、查询。 2.控制字段的引用。在设计时,可以选择适当的数据库设计管理工具,以方便开发人员的分布式设计和数据小组的集中审核管理。
概念设计:对用户要求描述的现实世界(可能是一个工厂、一个商场或者一个学校等),通过对其中住处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。以扩充的实体—(E-R模型)联系模型方法为例,第一步先明确现实世界各部门所含的各种实体及其属性、实体间的联系以及对信息的制约条件等,从而给出各部门内所用信息的局部描述(在数据库中称为用户的局部视图)。第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。
逻辑设计:主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。这一步设计的结果就是所谓“逻辑数据库”。
物理设计:根据特定数据库管理系统所提供的多种存储结构和存取方法等依赖于具体计算机结构的各项物理设计措施,对具体的应用任务选定最合适的物理存储结构(包括文件类型、索引结构和数据的存放次序与位逻辑等)、存取方法和存取路径等。这一步设计的结果就是所谓“物理数据库”。
以开发数据库为例吧, 做网络工程 还有其他原理都一样
41 数据库应用系统的开发步骤
60年代末提出了软件工程的思想。软件工程是开发、运行、维护和修正软件的一种系统方法,其目标是提高软件质量和开发效率,降低开发成本。
数据库应用系统的开发是一项软件工程。一般可分为以下几个阶段:
1) 规划
2) 需求分析
3) 概念模型设计
4) 逻辑设计
5) 物理设计
6) 程序编制及调试
7) 运行及维护。
这些阶段的划分目前尚无统一的标准,各阶段间相互联接,而且常常需要回溯修正。
在数据库应用系统的开发过程中,每个阶段的工作成果就是写出相应的文档。每个阶段都是在上一阶段工作成果的基础上继续进行,整个开发工程是有依据、有组织、有计划、有条不紊地展开工作。
411 规划
规划的主要任务就是作必要性及可行性分析。
在收集整理有关资料的基础上,要确定将建立的数据库应用系统与周边的关系,要对应用系统定位,其规模的大小、所处的地位、应起的作用均须作全面的分析和论证。
明确应用系统的基本功能,划分数据库支持的范围。分析数据来源、数据采集的方式和范围,研究数据结构的特点,估算数据量的大小,确立数据处理的基本要求和业务的规范标准。
规划人力资源调配。对参与研制和以后维护系统运作的管理人员、技术人员的技术业务水平提出要求,对最终用户、 *** 作员的素质作出评估。
拟定设备配置方案。论证计算机、网络和其他设备在时间、空间两方面的处理能力,要有足够的内外存容量,系统的响应速度、网络传输和输入输出能力应满足应用需求并留有余量。要选择合适的OS,DBMS和其它软件。设备配置方案要在使用要求、系统性能、购置成本和维护代价各方面综合权衡。
对系统的开发、运行、维护的成本作出估算。预测系统效益的期望值。
拟定开发进度计划,还要对现行工作模式如何向新系统过渡作出具体安排。
规划阶段的工作成果是写出详尽的可行性分析报告和数据库应用系统规划书。内容应包括:系统的定位及其功能、数据资源及数据处理能力、人力资源调配、设备配置方案、开发成本估算、开发进度计划等。
可行性分析报告和数据库应用系统规划书经审定立项后,成为后续开发工作的总纲。
412 需求分析
需求分析大致可分成三步来完成。
(1) 需求信息的收集, 需求信息的收集一般以机构设置和业务活动为主干线,从高层中层到低层逐步展开
(2) 需求信息的分析整理, 对收集到的信息要做分析整理工作。数据流图(DFD, data flow diagram)是业务流程及业务中数据联系的形式描述。图41是一个简单的DFD 示例。
数据字典(DD, data dictionary)详细描述系统中的全部数据。
数据字典包含以下几个部分。
· 数据项:是数据的原子单位。
· 数据组项:由若干数据项组成。
· 数据流:表示某一数据加工过程的输入/输出数据。
· 数据存储:是处理过程中要存取的数据。
· 数据加工过程 数据加工过程的描述包括:数据加工过程名、说明、输入、输出、加工处理工作摘要、加工处理频度、加工处理的数据量、响应时间要求等。
表41给出了数据字典中描述数据流的一个例子。
数据流图既是需求分析的工具,也是需求分析的成果之一。数据字典是进行数据收集和数据分析的主要成果。
(3) 需求信息的评审 开发过程中的每一个阶段都要经过评审,确认任务是否全部完成,避免或纠正工作中出现的错误和疏漏。聘请项目外的专家参与评审,可保证评审的质量和客观性。
评审可能导致开发过程回溯,甚至会反复多次。但是,一定要使全部的预期目标都达到才能让需求分析阶段的工作暂告一个段落
需求分析阶段的工作成果是写出一份既切合实际又具有预见的需求说明书,并且附以一整套详尽的数据流图和数据字典。
413 概念模型设计
概念模型不依赖于具体的计算机系统,他是纯粹反映信息需求的概念结构。
建模是在需求分析结果的基础上展开,常常要对数据进行抽象处理。常用的数据抽象方法是‘聚集’和‘概括’。
ER方法是设计概念模型时常用的方法。用设计好的ER图再附以相应的说明书可作为阶段成果
概念模型设计可分三步完成。
(1) 设计局部概念模型
① 确定局部概念模型的范围
② 定义实体
③ 定义联系
④ 确定属性
⑤ 逐一画出所有的局部ER图,并附以相应的说明文件
(2) 设计全局概念模型
建立全局ER图的步骤如下:
① 确定公共实体类型
② 合并局部ER图
③ 消除不一致因素
④ 优化全局ER图
⑤ 画出全局ER图,并附以相应的说明文件。
(3) 概念模型的评审
概念模型的评审分两部分进行
第一部分是用户评审。
第二部分是开发人员评审。
414 逻辑设计
逻辑设计阶段的主要目标是把概念模型转换为具体计算机上DBMS所支持的结构数据模型。
逻辑设计的输入要素包括:概念模式、用户需求、约束条件、选用的DBMS的特性。
逻辑设计的输出信息包括:DBMS可处理的模式和子模式、应用程序设计指南、物理设计指南。
(1) 设计模式与子模式
关系数据库的模式设计可分四步完成。
① 建立初始关系模式
② 规范化处理
③ 模式评价
④ 修正模式
经过多次的模式评价和模式修正,确定最终的模式和子模式。
写出逻辑数据库结构说明书。
(2) 编写应用程序设计指南
根据设计好的模式和应用需求,规划应用程序的架构,设计应用程序的草图,指定每个应用程序的数据存取功能和数据处理功能梗概,提供程序上的逻辑接口。
编写出应用程序设计指南。
(3) 编写物理设计指南。
根据设计好的模式和应用需求,整理出物理设计阶段所需的一些重要数据和文档。例如,数据库的数据容量、各个关系(文件)的数据容量、应用处理频率、 *** 作顺序、响应速度、各个应用的LRA和TV、程序访问路径建议,等等。这些数据和要求将直接用于物理数据库的设计。
编写出物理设计指南。
415 物理设计
物理设计是对给定的逻辑数据模型配置一个最适合应用环境的物理结构。
物理设计的输入要素包括:模式和子模式、物理设计指南、硬件特性、OS和DBMS的约束、运行要求等。
物理设计的输出信息主要是物理数据库结构说明书。其内容包括物理数据库结构、存储记录格式、存储记录位置分配及访问方法等。
物理设计的步骤如下:
(1) 存储记录结构
设计综合分析数据存储要求和应用需求,设计存储记录格式。
(2) 存储空间分配
存储空间分配有两个原则:
①存取频度高的数据尽量安排在快速、随机设备上,存取频度低的数据则安排在速度较慢的设备上。
②相互依赖性强的数据尽量存储在同一台设备上,且尽量安排在邻近的存储空间上。
从提高系统性能方面考虑,应将设计好的存储记录作为一个整体合理地分配物理存储区域。尽可能充分利用物理顺序特点,把不同类型的存储记录指派到不同的物理群中。
(3) 访问方法的设计
一个访问方法包括存储结构和检索机构两部分。存储结构限定了访问存储记录时可以使用的访问路径;检索机构定义了每个应用实际使用的访问路径。
(4) 物理设计的性能评价
① 查询响应时间
从查询开始到有结果显示之间所经历的时间称为查询响应时间。查询响应时间可进一步细分为服务时间、等待时间和延迟时间。
在物理设计过程中,要对系统的性能进行评价。性能评价包括时间、空间、效率、开销等各个方面。
⊙ CPU服务时间和I/O服务时间的长短取决于应用程序设计。
⊙ CPU队列等待时间和I/O队列等待时间的长短受计算机系统作业的影响。
⊙ 设计者可以有限度地控制分布式数据库系统的通信延迟时间。
② 存储空间
存储空间存放程序和数据。程序包括运行的应用程序、DBMS子程序、OS子程序等。数据包括用户工作区、DBMS工作区、OS工作区、索引缓冲区、数据缓冲区等。
存储空间分为主存空间和辅存空间。设计者只能有限度地控制主存空间,例如可指定缓冲区的分配等。但设计者能够有效地控制辅存空间。
③ 开销与效率
设计中还要考虑以下各种开销,开销增大,系统效率将下降。
⊙ 事务开销指从事务开始到事务结束所耗用的时间。更新事务要修改索引、重写物理块、进行写校验等 *** 作,增加了额外的开销。更新频度应列为设计的考虑因素。
⊙ 报告生成开销指从数据输入到有结果输出这段时间。报告生成占用CPU及I/O的服务时间较长。设计中要进行筛选,除去不必要的报告生成。
⊙ 对数据库的重组也是一项大的开销。设计中应考虑数据量和处理频度这两个因数,做到避免或尽量减少重组数据库。
在物理设计阶段,设计、评价、修改这个过程可能要反复多次,最终得到较为完善的物理数据库结构说明书。
建立数据库时,DBA依据物理数据库结构说明书,使用DBMS提供的工具可以进行数据库配置。
在数据库运行时,DBA监察数据库的各项性能,根据依据物理数据库结构说明书的准则,及时进行修正和优化 *** 作,保证数据库系统能够保持高效率地运行。
416 程序编制及调试
在逻辑数据库结构确定以后,应用程序设计的编制就可以和物理设计并行地展开
程序模块代码通常先在模拟的环境下通过初步调试,然后再进行联合调试。联合调试的工作主要有以下几点:
(1) 建立数据库结构
根据逻辑设计和物理设计的结果,用DBMS提供的数据语言(DDL)编写出数据库的源模式,经编译得到目标模式,执行目标模式即可建立实际的数据库结构。
(2) 调试运行
数据库结构建立后,装入试验数据,使数据库进入调试运行阶段。运行应用程序,测试
(3) 装入实际的初始数据
在数据库正式投入运行之前,还要做好以下几项工作:
(1) 制定数据库重新组织的可行方案。
(2) 制定故障恢复规范
(3) 制定系统的安全规范
417 运行和维护
数据库正式投入运行后,运行维护阶段的主要工作是:
(1) 维护数据库的安全性与完整性。
按照制定的安全规范和故障恢复规范,在系统的安全出现问题时,及时调整授权和更改密码。及时发现系统运行时出现的错误,迅速修改,确保系统正常运行。把数据库的备份和转储作为日常的工作,一旦发生故障,立即使用数据库的最新备份予以恢复。
(2) 监察系统的性能。
运用DBMS提供的性能监察与分析工具,不断地监控着系统的运行情况。当数据库的存储空间或响应时间等性能下降时,立即进行分析研究找出原因,并及时采取措施改进。例如,可通修改某些参数、整理碎片、调整存储结构或重新组织数据库等方法,使数据库系统保持高效率地正常运作。
(3) 扩充系统的功能
在维持原有系统功能和性能的基础上,适应环境和需求的变化,采纳用户的合理意见,对原有系统进行扩充,增加新的功能。
以上就是关于说明在设计数据库表时你是如何考虑的全部的内容,包括:说明在设计数据库表时你是如何考虑的、数据库设计步骤及其设计过程中的注意事项是什么谢谢!、急,有关数据库的设计问题,在线等。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)