虎克的博客

Enthusiasm Biogeography-Biodiversity Informatics-Data Sciences

数据库设计方法简述

| Comments

2009-10-22_215039

数据库设计方法目前可分为四类:直观设计法、规范设计法、计算机辅助设计法和自动化设计法。

直观设计法也叫手工试凑法,它是最早使用的数据库设计方法。这种方法依赖于设计者的经验和技巧,缺乏科学理论和工程原则的支持,设计的质量很难保证,常常是数据库运行一段时间后又发现各种问题,这样再重新进行修改,增加了系统维护的代价。因此这种方法越来越不适应信息管理发展的需要。

    为了改变这种情况,1978年10月,来自三十多个国家的数据库专家在美国新奥尔良(New Orleans)市专门讨论了数据库设计问题,他们运用软件工程的思想和方法,提出了数据库设计的规范,这就是著名的新奥尔良法 ,它是目前公认的比较完整和权威的一种规范设计法。新奥尔良法将数据库设计分成需求分析(分析用户需求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。目前,常用的规范设计方法大多起源于新奥尔良法,并在设计的每一阶段采用一些辅助方法来具体实现。

    下面简单介绍几种常用的规范设计方法。

1.基于E-R模型的数据库设计方法

基于E-R模型的数据库设计方法是由P.P.S.chen于1976年提出的数据库设计方法,其基本思想是在需求分析的基础上,用E-R(实体—联系)图构造一个反映现实世界实体之间联系的企业模式,然后再将此企业模式转换成基于某一特定的DBMS的概念模式。

2.基于3NF的数据库设计方法

基于3NF的数据库设计方法 是由S·Atre提出的结构化设计方法,其基本思想是在需求分析的基础上,确定数据库模式中的全部属性和属性间的依赖关系,将它们组织在一个单一的关系模式中,然后再分析模式中不符合3NF的约束条件,将其进行投影分解,规范成若干个3NF关系模式的集合。

    其具体设计步骤分为五个阶段:

    (1)设计企业模式,利用规范化得到的3NF关系模式画出企业模式;

    (2)设计数据库的概念模式,把企业模式转换成DBMS所能接受的概念模式,并根据概念模式导出各个应用的外模式;

    (3)设计数据库的物理模式(存储模式);

    (4)对物理模式进行评价;

    (5) 实现数据库。

3.基于视图的数据库设计方法

    此方法先从分析各个应用的数据着手,其基本思想是为每个应用建立自己的视图,然后再把这些视图汇总起来合并成整个数据库的概念模式。合并过程中要解决以下问题:

    (1) 消除命名冲突;

    (2) 消除冗余的实体和联系;

    (3)进行模式重构,在消除了命名冲突和冗余后,需要对整个汇总模式进行调整,使其满足全部完整性约束条件。

    除了以上三种方法外,规范化设计方法还有实体分析法、属性分析法和基于抽象语义的设计方法等,这里不再详细介绍。

规范设计法从本质上来说仍然是手工设计方法,其基本思想是过程迭代和逐步求精。

计算机辅助设计法是指在数据库设计的某些过程中模拟某一规范化设计的方法,并以人的知识或经验为主导,通过人机交互方式实现设计中的某些部分。

    目前许多计算机辅助软件工程(Computer Aided Software Engineering,CASE)工具可以自动或辅助设计人员完成数据库设计过程中的很多任务.比如SYSBASE公司的PowerDesigner和Oracle公司的Design 2000。

原文地址:http://www.itpmp.org/html/DatabaseProject/DbDesign/20080324/877.html

   original link:
   <a href='http://Apiaceae.github.io/blog/2009/10/23/%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1%E6%96%B9%E6%B3%95%E7%AE%80%E8%BF%B0/'>http://Apiaceae.github.io/blog/2009/10/23/%E6%95%B0%E6%8D%AE%E5%BA%93%E8%AE%BE%E8%AE%A1%E6%96%B9%E6%B3%95%E7%AE%80%E8%BF%B0/</a><br/>
   &nbsp;written by <a href='http://Apiaceae.github.io'>Hooker</a>
   &nbsp;posted at <a href='http://Apiaceae.github.io'>http://Apiaceae.github.io</a>
   </p>

Comments