数据库设计原则最终草案

2023-11-05 1464阅读

例如数据库名称是公司和系统中主数据库的缩写; 为了防止分析和破解,表名建议使用子系统的缩写+功能词首字母,如子系统中:,表的字段名保留五到十个字段用于扩展。自定义字段应统一命名。因此,在软件系统开发中,数据库设计应遵循必要的数据库范式理论,减少冗余,保证数据的完整性和正确性。由于数据库设计者不一定是用户,因此在系统设计中不可能充分考虑数据元素。数据库设计完成后,往往很难找到需要的数据库表。因此,在大型数据库的设计中,只有合理的索引字段选择才能有效提高整个数据库的运行效率。

这一页

【文章简介】 1、命名应简洁,体现其用途或功能。 例如数据库名称是公司和系统中主数据库的缩写; 为了防止分析和破解,表名建议使用子系统的缩写+功能词首字母,如子系统中:,表的字段名保留五到十个字段用于扩展。 对于常用的表,需要定义十多个自定义字段,供客户定制。 自定义字段应统一命名。

数据库设计原则最终草案

数据库设计原则最终草案

【文本】

1、命名应简洁并反映其用途或功能。 例如库名是BxxCRM,Bxx是公司缩写,CRM是Crm系统中的主数据库; 为了防止分析和破解,表名建议使用子系统缩写+功能词首字母,如BOM子系统中:BOMMD,表的字段名为MD001、MD002MD022以及五到十个字段保留用于扩展。 常用的表要定义十多个自定义字段,供客户定制。 自定义字段统一命名为UDF01...UD99。 数据字典中的表和字段应该标准化。 在实际开发过程中,使用向导从数据字典中生成特定的应用程序数据绑定窗口和控件。 2、与第一项相关,在开发应用程序之前,首先要进入数据字典。 这是血泪的教训(我以前的SB老板,我制定了一些标准,但是SB没有执行,没有重视,现在公司快要倒闭了!这是题外话)。

数据库设计原则最终草案

没有字典,维护和表共享都是问题,直接影响开发效率! 而且开发框架一般都是和数据字典集成的! 3、数据字典中必须注明有嵌套关系的数据表,并注明关键字段。 注意,这里的嵌套不一定是主从表。 例如,工单表中,一张成品对应一张工单。 成品由N个半成品组成,是N个工单。 N个半成品可以细分为多层半成品。 一般这样的数据是用两张表来表示的,单表和单表。 也可以使用一张桌子。 4、数据字典的设计中,表和视图必须记录在字典中; 其相应的触发器和存储过程也必须在相应的表中注明; 表和视图必须按照模块分类进行管理。 5.严格控制存储过程的使用。 这是血与泪的教训。 我们公司HR有600多个存储过程,三四个人分两批、三批维护、修正了十个月,还是无法彻底修复。

这就是开发时不小心,图修改方便造成的后果。 别人开发的HR在我看来就是垃圾,我不会碰。 建议除非处理大量数据,否则不需要存储过程! 业务逻辑被封装到程序业务类中,或者SQL语句放在配置文件或数据库中动态加载和执行。 6、尽量少用自增字段。 有人不同意,认为表数据量很大时自增字段快。 但不稳定,特别是在D7中的支持不是很好,处理起来比较麻烦。 更何况它的更新存在问题,当需要读写这个字段的值时就更麻烦了,所以建议不要使用。 遇到大数据表的时候,多设计几个关键字段和索引应该问题不大! 【注意:在Oracle数据库中,根本不需要自增字段,因为它的每个表都有辅助列! ] 7、表格设置,即实际应用中一些单号(流水号)的表格。

例如,在订单中,订单号由单据性质和序列号组成。 建议:创建一个单据设置表,统一保存这些表的表单设置和最大订单数,这样也方便用户设置订单数和生成订单号(可以使用保存在其中的设置和最大订单数值)设置表为存储过程生成最大订单号(不冲突)。 8、将每个应用系统可以使用的表放入另一个数据库中,通常是系统配置表,例如数据库名称SysDB。 如果应用系统还包含一些大容量的图片等多媒体数据表,则应该放在第三个库DocDB中,这样可以提高数据库的性能。 文章来源:

大型数据库的设计原理和开发技术详解当前,计算机技术已广泛应用于国民经济各个领域。 在计算机硬件不断小型化的同时,应用系统也逐渐向复杂化、大规模化的方向发展。 数据库是整个系统的核心,其设计直接关系到系统执行的效率和系统的稳定性。 因此,在软件系统开发中,数据库设计应遵循必要的数据库范式理论,减少冗余,保证数据的完整性和正确性。 只有在合适的数据库产品上设计合理的数据库模型,才能降低整个系统的编程和维护难度,提高系统的实际运行效率。 虽然对于中小型项目,开发人员可以很容易地利用范式理论设计出符合要求的数据库,但对于包含大型数据库的软件项目来说,需要一套完整的设计原则和技术。 1、组建数据团队。 大型数据库的数据元素较多,因此在设计上需要成立专门的数据团队。 由于数据库设计者不一定是用户,因此在系统设计中不可能充分考虑数据元素。 数据库设计完成后,往往很难找到需要的数据库表。 因此,数据团队最好由熟悉业务的项目骨干组成。 数据团队的职能不是设计数据库,而是通过需求分析并参考其他类似系统提取系统的基本数据元素,并负责审核数据库。 审核内容包括审核新的数据库元素是否完整,是否能够满足所有业务需求; 旧数据库的分析和数据转换(如果存在旧系统); 数据库设计的审查、控制和必要的调整。

二、设计原则 1、规范命名。 所有的库名、表名、域名必须遵循统一的命名规则,并提供必要的解释,以便于设计、维护和查询。 2. 对控制字段的引用。 设计时,可以选择合适的数据库设计管理工具,方便开发人员分布式设计和数据团队集中评审管理。 采用统一命名规则。 如果设计的字段已经存在,可以直接引用; 否则,应重新设计它们。 3.库表重复控制。 在设计过程中,如果发现大部分字段已经存在,那么开发人员就应该怀疑设计的库表是否已经存在。 通过查询该字段所在的库表和对应的设计器,可以确认该库表是否确实重复。 4、并发控制。 设计时应实现并发控制,即同一时间只有一个人对同一个数据库表有控制权,其他人只能查询。 5.必要的讨论。 数据库设计完成后,数据团队应与相关人员讨论,通过讨论熟悉数据库,从而控制设计中的问题或获取数据库设计所需的信息。 6. 数据团队审核。 数据库表的最终版本和修改最终必须通过数据团队的审核,以确保满足必要的要求。 7.头文件处理。 每次数据修改后,数据团队都要修改相应的头文件(可由管理软件自动完成)并通知相关开发人员,以便进行相应的程序修改。 三、设计技巧 1、对数据量大的表进行分类和拆分。 对于经常使用的表(如一些参数表或代码对照表),由于使用频率较高,应尽可能减少表中的记录数。

数据库设计原则最终草案

例如,银行的家庭账户表最初被设计为表格。 虽然可以方便程序的设计和维护,但经过分析发现,由于数据量较大,会影响数据的快速定位。 如果将家庭账户表设计为活期家庭账户、定期家庭账户、公共家庭账户等,则可以大大提高查询效率。 2、指标设计。 对于大型数据库表来说,合理的索引可以提高整个数据库的运行效率。 索引设计时,应选择重复值较少的索引字段; 在检索具有复合索引的字段时,需要注意复合索引字段的创建顺序。 例如,如果在一个按日期和序号顺序记录超过5万条记录的序列表上创建复合索引,由于表中日期的重复值接近整个表的记录数,使用序列号查询时间将接近3秒; 如果使用序号作为索引字段创建索引并执行相同的查询,花费的时间不到1秒。 因此,在大型数据库的设计中,只有合理的索引字段选择才能有效提高整个数据库的运行效率。 3、数据运营优化。 在大型数据库中,如何提高数据操作效率值得关注。 例如,每次向数据库流水线表中添加一个业务,都必须从流水线控制表中取出流水号,并且流水号值必须加1。 一般情况下,单个操作的响应速度是正常的,但是当用于批量业务处理时,速度会明显变慢。 经过分析发现,每次管道控制表中的序号值递增时,都要对该表进行锁定。 但这张表是整个系统运行的核心,在运行过程中可能会被其他进程锁定,从而减慢整个事务运行的速度。 减速。

数据库设计原则最终草案

解决这个问题的方法是根据批量操作总数批量申请流水号,并更新一次流水线控制表,这样可以提高批量业务处理的速度。 另一个例子是插值表的优化。 对于大规模业务处理,如果在向数据库表插入时使用普通的Insert语句,速度会很慢。 原因是每次插入表时都会进行一次I/O操作,耗时较长。 改进后,可以使用Put语句等缓冲形式等待页面满后再进行I/O操作,从而提高效率。 删除大型数据库表时,一般直接使用Delete语句。 虽然这个语句可以对小表进行操作,但是对于大表来说,删除速度会很慢,甚至会因为事务量大而失败。 解决方案是移除事务,但更有效的方法是先执行 Drop 操作,然后重建。 4、数据库参数调整。 数据库参数的调整是一个不断积累经验的过程,应该由有经验的系统管理员来完成。 以Informix数据库为例,记录锁太少会导致锁表失败; 逻辑日志文件太少会导致大表插入失败等,这些问题要根据实际情况进行必要的调整。 5、必要的工具。 在整个数据库开发设计过程中,可以先开发一些小的应用工具,比如库表的自动生成头文件、插入数据的初始化、数据插入的功能封装、错误跟踪或者自动显示等,以便提高数据库设计和开发效率。

6. 避免长时间交易。 对单个大表进行删除或插入操作会导致大事务。 解决办法是在插入时调整参数或者分割文件。 对于由一系列小交易顺序操作组成的长交易(如银行交易系统的日终交易),可以通过一系列操作完成整个交易,但缺点是整个交易可能无法完成,因为它太大。 或者,由于意外而需要很长时间才能重做交易。 更好的解决方案是将整个事务分解为几个更小的事务,然后让应用程序控制整个系统的流程。 这样,如果其中一笔交易不成功,您只需重做该笔交易,从而节省时间并避免长时间交易。 7、适当提前。 随着计算机技术的飞速发展,数据库设计必须具有前瞻性。 既要满足当前的应用需求,又要考虑未来的业务发展。 还必须有利于扩展或增加应用系统的处理功能。 与小型数据库相比,大型数据库的设计和开发要复杂得多。 因此,在设计和开发过程中,除了遵循数据库范式理论,增加系统的一致性和完整性外,还必须根据具体情况统筹决策。 进行分布式设计,牢牢掌握集中控制、统一审查的基本原则,确保数据库设计结构紧凑、分布均衡、快速定位。 在数据库操作方面,应采用一定的技术来提高整个应用系统的执行效率,并注意提前适应应用和系统开发不断变化的需求。

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]