`

数据库设计总结-3

 
阅读更多
1.提高数据库运行效率的办法 
   
      在给定的系统硬件和系统软件条件下,提高数据库系统的运行效率的办法是: 
       (1) 在数据库物理设计时,降低范式,增加冗余, 少用触发器, 多用存储过程。 
       
       (2) 当计算非常复杂、而且记录条数非常巨大时(例如一千万条),复杂计算要先在数据库外面,以文件系统方式用C++语言计算处理完成之后,最后才入库追加到表中去。这是电信计费系统设计的经验。 
   
       (3) 发现某个表的记录太多,例如超过一千万条,则要对该表进行水平分割。水平分割的做法是,以该表主键PK的某个值为界线,将该表的记录水平分割为两个表。若发现某个表的字段太多,例如超过八十个,则垂直分割该表,将原来的一个表分解为两个表。 
   
       (4) 对数据库管理系统DBMS进行系统优化,即优化各种系统参数,如缓冲区个数。 
   
       (5) 在使用面向数据的SQL语言进行程序设计时,尽量采取优化算法。 
  
      总之,要提高数据库的运行效率,必须从数据库系统级优化、数据库设计级优化、程序实现级优化,这三个层次上同时下功夫。

2.要善于识别与正确处理多对多的关系 
       
      若两个实体之间存在多对多的关系,则应消除这种关系。消除的办法是,在两者之间增加第三个实体。这样,原来一个多对多的关系,现在变为两个一对多的关系。要将原来两个实体的属性合理地分配到三个实体中去。这里的第三个实体,实质上是一个较复杂的关系,它对应一张基本表。一般来讲,数据库设计工具不能识别多对多的关系,但能处理多对多的关系。

〖例〗:在“图书馆信息系统”中,“图书”是一个实体,“读者”也是一个实体。这两个实体之间的关系,是一个典型的多对多关系:一本图书在不同时间可以被多个读者借阅,一个读者又可以借多本图书。为此,要在二者之间增加第三个实体,该实体取名为“借还书”,它的属性为:借还时间、借还标志(0表示借书,1表示还书),另外,它还应该有两个外键(“图书”的主键,“读者”的主键),使它能与“图书”和“读者”连接。 

3.范式标准 
  
      基本表及其字段之间的关系, 应尽量满足第三范式。但是,满足第三范式的数据库设计,往往不是最好的设计。为了提高数据库的运行效率,常常需要降低范式标准:适当增加冗余,达到以空间换时间的目的。 

      〖例2〗:有一张存放商品的基本表,如表1所示。“金额”这个字段的存在,表明该表的设计不满足第三范式,因为“金额”可以由“单价”乘以“数量”得到,说明“金额”是冗余字段。但是,增加“金额”这个冗余字段,可以提高查询统计的速度,这就是以空间换时间的作法。 
   
      在Rose 2002中,规定列有两种类型:数据列和计算列。“金额”这样的列被称为“计算列”,而“单价”和“数量”这样的列被称为“数据列”。

4.基本表的性质 
   
  基本表与中间表、临时表不同,因为它具有如下四个特性: 
    
        (1) 原子性。基本表中的字段是不可再分解的。 
      (2) 原始性。基本表中的记录是原始数据(基础数据)的记录。 
      (3) 演绎性。由基本表与代码表中的数据,可以派生出所有的输出数据。 
      (4) 稳定性。基本表的结构是相对稳定的,表中的记录是要长期保存的。 

  理解基本表的性质后,在设计数据库时,就能将基本表与中间表、临时表区分开来。

5.主键PK的取值方法 
    
      PK是供程序员使用的表间连接工具,可以是一无物理意义的数字串, 由程序自动加1来实现。也可以是有物理意义的字段名或字段名的组合。不过前者比后者好。当PK是字段名的组合时,建议字段的个数不要太多,多了不但索引占用空间大,而且速度也慢。 


6.一对一、一对多、多对多

关联映射:一对多/多对一
存在最普遍的映射关系,简单来讲就如球员与球队的关系;
一对多:从球队角度来说一个球队拥有多个球员 即为一对多
多对一:从球员角度来说多个球员属于一个球队 即为多对一数据表间一对多关系如下图:



关联映射:一对一
一对一关系就如球队与球队所在地址之间的关系,一支球队仅有一个地址,而一个地址区也仅有一支球队。
数据表间一对一关系的表现有两种,一种是外键关联,一种是主键关联。

一对一外键关联,图示如下:



关联映射:多对多
多对多关系也很常见,例如学生与选修课之间的关系,一个学生可以选择多门选修课,而每个选修课又可以被多名学生选择。
数据库中的多对多关联关系一般需采用中间表的方式处理,将多对多转化为两个一对多。
数据表间多对多关系如下图:



7.E--R图没有标准答案 
   
      信息系统的E--R图没有标准答案,因为它的设计与画法不是惟一的,只要它覆盖了系统需求的业务范围和功能内容,就是可行的。反之要修改E--R图。尽管它没有惟一的标准答案,并不意味着可以随意设计。好的E?R图的标准是:结构清晰、关联简洁、实体个数适中、属性分配合理、没有低级冗余。 

8. 视图技术在数据库设计中很有用 
   
      与基本表、代码表、中间表不同,视图是一种虚表,它依赖数据源的实表而存在。视图是供程序员使用数据库的一个窗口,是基表数据综合的一种形式, 是数据处理的一种方法,是用户数据保密的一种手段。为了进行复杂处理、提高运算速度和节省存储空间, 视图的定义深度一般不得超过三层。 若三层视图仍不够用, 则应在视图上定义临时表, 在临时表上再定义视图。这样反复交迭定义, 视图的深度就不受限制了。 

      对于某些与国家政治、经济、技术、军事和安全利益有关的信息系统,视图的作用更加重要。这些系统的基本表完成物理设计之后,立即在基本表上建立第一层视图,这层视图的个数和结构,与基本表的个数和结构是完全相同。并且规定,所有的程序员,一律只准在视图上操作。只有数据库管理员,带着多个人员共同掌握的“安全钥匙”,才能直接在基本表上操作。请读者想想:这是为什么? 









 
  • 大小: 36.5 KB
  • 大小: 35.1 KB
  • 大小: 48.7 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    数据库设计漫谈-多年的经验总结

    ### 数据库设计漫谈——多年的经验总结 #### 一、什么是数据库 在开始讨论数据库设计之前,首先要明确“什么是数据库”。通常来说,数据库是指一种组织化的数据集合,这些数据通过特定的方式进行存储、管理和访问...

    数据库学习总结-总集

    【数据库学习总结-总集】 在信息技术领域,数据库是存储和管理数据的核心工具,它扮演着数据仓库的角色,为各种应用程序提供数据支持。本总结旨在深入探讨数据库的基础知识、主要类型、设计原则以及最佳实践,帮助...

    数据库课程设计---工资管理系统(程序+源码+文档)

    总结起来,"数据库课程设计---工资管理系统"是一个涵盖数据库设计、Java编程、GUI开发和文档撰写等多方面知识的综合性实践项目。参与者将通过此项目深化对数据库理论、SQL语言、Java Swing和软件工程的理解,同时...

    数据库课程设计--宾馆系统

    【数据库课程设计--宾馆系统】是一项综合性的学习任务,旨在让学生掌握数据库系统设计的基本流程,包括系统需求分析、概念设计、逻辑设计以及数据库的创建和使用。以下是详细的知识点解析: 1. **系统需求分析**: ...

    数据库技术设计--CFT商机管理系统

    总结来说,CFT商机管理系统的数据库设计是一个全面的过程,涵盖了从规划到实现的各个层面,通过规范的命名、合理的逻辑和物理设计、严谨的安全措施以及有效的优化手段,构建了一个高效、安全、易于维护的数据存储...

    数据库课程设计-------图书管理系统

    1. **掌握数据库设计方法**:熟悉数据库设计的整体流程,包括需求分析、概念结构设计、逻辑结构设计、物理结构设计等关键步骤。 2. **提高实际操作能力**:通过使用SQL Server 2000/2005等工具创建数据库,并进行...

    数据库课程设计----学生信息管理系统

    4. **数据库设计**:设计一个有效的数据库结构是关键。在这个系统中,可能包括“学生”、“课程”、“教师”等表,并需要考虑如何通过外键连接这些表,以确保数据的一致性和完整性。 5. **安全性与权限**:角色添加...

    数据库考试总结--你懂得.doc

    本文将从数据库的基本概念、数据模型、数据库管理系统、数据库系统的特点、数据库操作、完整性约束、数据库安全、数据库设计过程以及事务处理等方面进行深入阐述。 首先,数据是数据库中存储的基本对象,它描述了...

    数据库课程设计--仓库管理系统.doc

    设计过程中需遵循科学、规范和合理的原则,确保数据库设计符合实际情况和需求。 在数据库设计方面,重点关注以下几点: 1. 数据库设计应是对现实世界的抽象,要求设计科学、规范,满足业务需求。 2. 数据表设计必须...

    数据库课程设计--图书管理系统

    总结,图书管理系统的数据库设计涵盖了需求理解、模型构建、逻辑转换、物理设计和实际部署等多个环节,每个环节都是确保系统高效、稳定和易用的重要步骤。通过这样的课程设计,学生能够深入理解数据库系统的全貌,为...

    数据库课程设计-大三期末

    一、数据库设计 * 数据库系统是高校教育管理现代化的基础和关键 * 高校教学管理部门的任务将越来越重,需要有效利用现有的校园办公资源,构建高质量、高效率、多功能、智能化的高校教务管理系统 二、系统架构 * ...

    数据库课程设计-计算机工程系党务信息管理系统.doc

    数据库设计是党务信息管理系统的关键部分,需要遵循数据库设计的基本原则,包括需求分析、概念结构设计、逻辑结构设计、物理设计等方面。 需求分析 -------- 需求分析是数据库设计的第一步,需要分析党务信息管理...

    数据库学习资料-PPT课件.ppt

    数据库学习资料-PPT课件是对数据库学习的系统性总结,涵盖了数据库的基本概念、数据库管理系统、SQL Server 2000的安装和配置、数据库的设计和实现、Transact-SQL的使用等方面的内容。 数据库学习的重要性不言而喻...

    数据库-豆瓣读书数据库反向设计-学习

    5. **PPT汇报**:“数据库汇报.pptx”可能是项目组对整个数据库设计和实施的总结汇报,通常会包含项目目标、设计思路、关键技术点、实施结果和未来改进方向等内容。通过PPT,我们可以了解到项目的整体框架和重点。 ...

    保险-数据库课程设计---副本.doc

    文档应包含封面、系统开发目的、系统概述、数据模型设计、数据库设计、数据库实现、调试运行说明、总结和个人成绩评定表等部分,详述设计过程和成果,同时体现个人学习的反思和体会。 【考核与成绩评定】 课程设计...

    数据库课程设计-课程介绍与目标、数据库基础知识、数据库设计方法与步骤、数据库实现技术与实践、数据库安全与性能优化策略、课程

    数据库课程设计---包括:课程介绍与目标、数据库基础知识、数据库设计方法与步骤、数据库实现技术与实践、数据库安全与性能优化策略、课程总结与展望

    数据库课程设计--超市收银管理.docx

    3. **数据库设计**:设计目标是简化商品管理,收银员通过扫描条形码获取商品信息。系统支持会员卡积分、多种支付方式,并要求数据的安全性和完整性。 **三、概念设计** 1. **实体**:包括员工、顾客、商品和订单四...

    数据库设计开发规范-阿里.pdf

    以上内容总结了《数据库设计开发规范-阿里.pdf》的主要知识点,包括了数据库的整体设计规范、数据库对象设计规范以及SQL开发规范等方面的内容。这些规范对于提升数据库的性能、安全性和可维护性都非常重要,值得深入...

    数据库课程设计-销售管理

    包含数据库源程序和脚本,以及小组成员分工和课程设计总结,提供详细的技术实现细节和项目回顾。 这个课程设计项目不仅锻炼了学生的编程技能,更让他们深入了解了数据库设计与管理的实际应用,为未来进入IT行业...

    数据库课程设计--仓库管理系统4.docx

    ### 数据库课程设计——仓库管理系统知识点解析 #### 一、仓库管理系统的重要性与挑战 - **重要性**: 仓库管理在企业的供应链中扮演着至关重要的角色。有效的仓库管理能够确保进货、库存控制和发货的准确性,从而...

Global site tag (gtag.js) - Google Analytics