在JAVA开发中数据库的学习也是我们需要了解的,截下来几篇文章都是关于数据库的设计和应用,那么java课程培训机构废话不多说开始学习吧!
数据库的设计
数据库设计是基础,数据库优化是建立在设计基础之上的。好的数据库一定拥有好的设计。
数据库设计的目标是为用户和各种应用系统提供一个信息基础设施和高效的运行环境。
数据库的三大范式
第一范式1NF:所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。
第二范式2Nf:第二范式在第一范式的基础之上更进一层。第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
第三范式3Nf:所有字段必须与主键直接相关,而不是间接相关。也可以理解为字段不要和其他非主键字段相关
注意:这三个范式尽可能去遵守,不是一定要墨守成规这只是让我们设计的表的时候,越靠近这些范式,可以使字段尽量的减小冗余但是有时候也可以根据实际需要小小的违背一下但是第三范式违反一下还可以接受,但是第一范式别违反
数据库设计的步骤
需求分析阶段
准确了解与分析用户需求(包括数据与处理)。是整个设计过程的基础,是最困难、最耗费时间的一步。
概念结构设计阶段
是整个数据库设计的关键--设计数据库的E-R模型图,确认需求信息的正确和完整
Entity_Relationship---实体之间的关系
一对一
一对多
多对一
项目中有的表多达70多个字段。是比较吃力了。应该是设计不合理或业务抽象的粒度不够。 追问: 数据库是公司的权威设计的,提建议也没办法,是不合适。俾人感觉数据库最好不超过20个字段能推荐几个net框架吗?除了framWork 回答: 我不是搞net的,也不好推荐不了啥框架了。只能说适合最好了。有可能自己写的一个小工具更方便。主要是思想。数据库最好不超过 20字段,在企业级应用中很难做到,因为业务比较复杂。往往一张业务单据需要的业务数据就有可能已经超过20列。我们这边是JAVA做的,一般的业务单据表差不多是20~40多列吧。不排除有些个别多一点,但是在查询时,要求列表展现18列以内,提高性能的各种手段吧。慢慢体会。再多的东西也提供不了你了,只能说说自己的认识。 追问: 呵呵,搞JAVA是我最初的打算,我还是比较喜欢java的,喜欢java的框架,开发过几个项目;现在公司用NET,最大的问题就是公司数据库设计的不合理,看起来连二范式都不符合刚刚工作,也不了解到底企业数据库是怎么设计的,是不是一定符合三范式?数据库是开发的基础,感觉软件行业也太缺这方面人才了,设计的不好,只能害我们这些程序员对了,谢谢你这么详细的指导,能交个朋友吗? 回答: 企业数据库,特别是ERP不一定要符合三范式的。有些情况,有些字段是根据业务的特性故意冗余存储的。
1
理解您的数据在设计表之前,应明确您打算如何处理数据,还要了解随着时间的推移数据会发生什么样的变化
您所做的假设将会影响最终的设计
2
您需要什么样的数据设计应用程序时,关键要了解设计的最终结果,以便确保您准备好所有必需的数据并知道其来源
例如,报表的外观、每个数据的来源以及所需的所有数据是否都存在
对项目损失最大的莫过于在项目后期发现重要报表缺少数据
3
明确所需数据的类型和来源知道需要什么样的数据后,就必须确定数据的来源
数据是否从其他数据源中导入?数据是否需要清理或验证?用户是否需要输入数据?明确所需数据的类型和来源是数据库设计的第一步
4
您打算如何处理这些数据?用户是否需要编辑这些数据?如果需要,应如何显示数据以便于用户理解和编辑?有没有验证规则和相关的查找表?要求对编辑和删除保留备份的数据输入有没有相关联的审核问题?需要为用户显示哪些摘要信息?是否需要生成导出文件?了解这些信息后,就可以想象字段之间是如何相互关联的了
5数据之间如何相互关联?将数据分组放入相关字段(例如与客户相关的信息、与发票相关的信息等),每个字段组都代表要建立的表
然后考虑如何将这些表相互关联
例如,哪些表具有一对多关系(例如,一个客户可能持有多张发票)?哪些表具有一对一关系(这种情况下,通常会考虑将其组合到一个表中)?6
随着时间的推移数据会发生什么样的变化?设计表之后,常常会由于没有考虑时间的影响而导致以后出现严重问题
许多表设计在当时使用时效果非常好,但是,常常会因为用户修改数据、添加数据以及随时间的推移而崩溃
开发人员经常会发现需要重新设计表的结构来适应这些变化
表的结构发生变化时,所有相关的内容(查询、窗体、报表、代码等)也必须随之更新
理解并预测数据会随时间推移发生哪些变化,可以实现更好的设计,减少问题的发生
7
学习如何使用查询了解如何分析和管理数据同样很重要
您应该深刻理解查询的工作原理,理解如何使用查询在多个表之间链接数据,如何使用查询对数据进行分组和汇总,以及如何在不需要以规范化格式显示数据时使用交叉表查询
好的数据设计的最终目标就是要平衡两个需要:既要随着时间的推移有效地存储数据,又要轻松地检索和分析数据
理解查询的功能对正确设计表很有帮助
以上就是关于Mysql数据库的设计和优化全部的内容,包括:Mysql数据库的设计和优化、企业级开发数据库设计一般字段有多少最合适、网站制作数据库中的友情链接表如何设计,其中都应该有哪些字段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)