`
a3mao
  • 浏览: 562982 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java数据库设计中的14个技巧

    博客分类:
  • Work
阅读更多
在网上闲逛,无意间发现这篇文章写的不错,特意摘录下来。地址是:http://www.bitscn.com/wap.php?action=article&id=148425

java数据库设计中的14个技巧
时间:08-07-22 00:00:00 点击:6



下述十四个技巧,是许多人在大量的数据库分析与设计实践中,逐步总结出来的。对于这些经验的运用,读者不能生帮硬套,死记硬背,而要消化理解,实事求是,灵活掌握。并逐步做到:在应用中发展,在发展中应用。
1. 原始单据与实体之间的关系   可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系后,对我们设计录入界面大有好处。 〖例1〗:一份员工履历资料,在人力资源信息系统中,就对应三个基本表:员工基本情况表、社会关系表、工作简历表。这就是“一张原始单证对应多个实体”的典型例子。
2. 主键与外键   一般而言,一个实体不能既无主键又无外键。在E?R 图中, 处于叶子部位的实体, 可以定义主键,也可以不定义主键(因为它无子孙), 但必须要有外键(因为它有父亲)。   主键与外键的设计,在全局数据库的设计中,占有重要地位。当全局数据库的设计完成以后,有个美国数据库设计专家说:“键,到处都是键,除了键之外,什么也没有”,这就是他的数据库设计经验之谈,也反映了他对信息系统核心(数据模型)的高度抽象思想。因为:主键是实体的高度抽象,主键与外键的配对,表示实体之间的连接。
3. 基本表的性质   基本表与中间表、临时表不同,因为它具有如下四个特性:  
  (1) 原子性。基本表中的字段是不可再分解的。  
  (2) 原始性。基本表中的记录是原始数据(基础数据)的记录。  
  (3) 演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。  
  (4) 稳定性。基本表的结构是相对稳定的,表中的记录是要长期保存的。 理解基本表的性质后,在设计数据库时,就能将基本表与中间表、临时表区分开来。
4. 范式标准  基本表及其字段之间的关系, 应尽量满足第三范式。但是,满足第三范式的数据库设计,往往不是最好的设计。为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。 〖例2〗:有一张存放商品的基本表,如表1所示。“金额”这个字段的存在,表明该表的设计不满足第三范式,因为“金额”可以由“单价”乘以“数量”得到,说明“金额”是冗余字段。但是,增加“金额”这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的作法。    在Rose 2002中,规定列有两种类型:数据列和计算列。“金额”这样的列被称为“计算列”,而“单价”和“数量”这样的列被称为“数据列”。   表1 商品表的表结构   商品名称 商品型号 单价 数量 金额   电视机 29 2,500 40 100,000  
5. 通俗地理解三个范式   通俗地理解三个范式,对于数据库设计大有好处。在数据库设计中,为了更好地应用三个范式,就必须通俗地理解三个范式(通俗地理解是够用的理解,并不是最科学最准确的理解):   第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;   第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;   第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余.    没有冗余的数据库设计可以做到。但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是:在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余。
6. 要善于识别与正确处理多对多的关系 若两个实体之间存在多对多的关系,则应消除这种关系。消除的办法是,在两者之间增加第三个实体。这样,原来一个多对多的关系,现在变为两个一对多的关系。要将原来两个实体的属性合理地分配到三个实体中去。这里的第三个实体,实质上是一个较复杂的关系,它对应一张基本表。一般来讲,数据库设计工具不能识别多对多的关系,但能处理多对多的关系。


分享到:
评论

相关推荐

    Java数据库设计中的14个技巧

    ### Java数据库设计中的14个技巧 在Java应用程序开发中,高效、合理的数据库设计是确保系统性能和可维护性的关键。下面将详细介绍标题与描述中提及的14个技巧,帮助开发者更好地理解和应用这些原则。 #### 1. 原始...

    JAVA数据库设计14个技巧

    以下是从标题“JAVA数据库设计14个技巧”及其描述、部分文本中提炼出的关键知识点,旨在提升数据库性能与管理效率。 ### 1. 理解实体间的一对一、一对多和多对多关系 在数据库设计中,实体间的关联是一大核心概念...

    JAVA高级关于数据库设计中的14个技巧

    在Java高级开发中,数据库设计是一项至关重要的任务,它直接影响着系统的性能和可维护性。以下是一些关于数据库设计的关键技巧: 1. **原始单据与实体的关系**:设计数据库时,要考虑到原始数据(如业务单据)与...

    java数据库设计技巧

    ### Java数据库设计技巧 在Java应用开发中,数据库设计的重要性不言而喻。良好的数据库设计不仅可以提高系统的性能,还能简化应用程序的复杂度,确保数据的一致性和完整性。要提高数据库的运行效率,必须从数据库...

    java课程设计数据库连接

    在Java课程设计中,数据库连接是至关重要的环节,它涉及到如何与存储数据的服务器进行通信,获取并操作数据。在本项目中,我们将探讨如何实现合法登录数据库,并通过JSP(JavaServer Pages)来对数据库中的内容进行...

    java数据库应用程序编程指南

    14. **性能优化**:了解索引、查询优化、事务粒度调整、连接池配置等技巧,可以显著提升Java数据库应用程序的性能。 以上就是“Java数据库应用程序编程指南”中可能涵盖的主要知识点,学习和熟练掌握这些内容,对于...

    java数据库开发技巧

    在Java数据库开发中,掌握一些高效且实用的技巧至关重要,这不仅能提高开发效率,还能确保应用程序的稳定性和性能。以下是一些关键知识点的详细说明: 1. **JDBC(Java Database Connectivity)**: JDBC是Java中...

    java数据库连接、设计以及备份技巧集锦

    在实际应用中,我们还会遇到一些设计和优化方面的技巧: 1. **使用连接池**:为了提高性能和资源利用率,通常会使用连接池(如C3P0、HikariCP、Apache DBCP等),预先创建并管理一定数量的数据库连接,避免频繁的...

    java数据库课程设计zip

    这个Java数据库课程设计项目涵盖了Java编程基础、数据库管理与SQL、以及GUI界面设计等多个重要领域,对于初学者来说,通过此项目不仅可以提升编程能力,还能加深对数据库原理的理解,同时掌握用户界面的开发技巧,是...

    java数据库开发案例精选

    5. **数据库设计**:在Java数据库开发中,理解数据库设计原则如ER模型、范式理论等非常重要。一个良好的数据库设计可以提高数据一致性、减少冗余,提升系统的整体性能。 6. **SQL优化**:对于性能敏感的应用,SQL...

    JDBC与Java数据库程序设计.rar

    本资料"JDBC与Java数据库程序设计.rar"显然是关于如何利用JDBC进行数据库编程的详细教程。 1. **JDBC基础知识**: - JDBC API包含了一组Java接口和类,如`java.sql.DriverManager`,`Connection`,`Statement`,`...

    java数据库编程技巧

    根据给定的信息,我们可以深入探讨Java数据库编程中的关键技巧与最佳实践。这段代码展示了如何在Java中进行数据库操作,并强调了资源管理和异常处理的重要性。接下来,我们将详细分析这些概念。 ### 1. 资源管理与...

    Java数据库编程宝典

    书中涵盖了索引的创建和使用、查询优化技巧、批处理优化以及数据库设计原则,帮助读者在实际开发中实现高效的数据访问。 此外,本书还可能涉及了数据库安全、错误处理和异常处理、JPA(Java Persistence API)和ORM...

    数据库课程设计 java oracle

    在本次的数据库课程设计中,我们重点探讨了Java与Oracle数据库的结合应用,这是一门深入实践、理论并重的课程。Oracle数据库是全球广泛使用的大型关系型数据库管理系统,而Java作为多平台支持的编程语言,是开发...

    JDBC与Java数据库编程.pdf

    总之,《JDBC与Java数据库编程》涵盖了JDBC的理论知识和实践技巧,对于希望利用Java进行数据库开发的程序员来说,是一本不可或缺的指南。通过对JDBC概念、体系结构、API和编程实践的深入了解,开发者可以更加高效地...

    数据库课程设计:高校教务管理系统(Java代码、SQL代码、报告)

    文档部分,zzdx.doc可能包含了系统的设计报告,包括需求分析、系统架构设计、数据库设计(ER图、关系模式等)、功能模块的描述、流程图、测试计划及结果等内容。这部分文档是系统设计的重要组成部分,它有助于团队...

    一个看上去不错的java毕业设计作品,是一个公司员工管理系统,使用了mssql2000数据库

    在这个员工管理系统中,Java可能被用来实现业务逻辑处理、用户界面交互以及与数据库的连接和数据交换。这可能涉及到Java的JDBC(Java Database Connectivity)接口,用于与MSSQL2000进行通信,以及Servlet和JSP...

    java 数据库高级编程代码

    通过深入学习上述知识点,并结合“Java数据库高级教程”中的示例和实践,你将能够掌握Java数据库高级编程技巧,无论是在企业级应用开发还是数据分析项目中,都能游刃有余。不断练习和实践,是提升技能的关键。

    java程序设计(连接数据库)

    在Java程序设计中,连接数据库是一项基础且重要的技能,尤其对于开发涉及数据存储和操作的应用程序来说至关重要。在这个实训项目中,我们将深入学习如何使用Java与各种类型的数据库进行交互,如MySQL、Oracle或...

Global site tag (gtag.js) - Google Analytics