数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。
数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模 型),用E-R图来描述。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全 性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。在物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引, 形成数据库内模式。
1. 需求分析阶段
需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。
需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。
需求分析的方法:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。
常用的调查方法有: 跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。
分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下的结构化分析方法(Structured Analysis,简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。
数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。
数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(至少应该包含每个字段的数据类型和在每个表内的主外键)。
数据项描述={数据项名,数据项含义说明,别名,数据类型,长度,
         取值范围,取值含义,与其他数据项的逻辑关系}
数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}}
数据流描述={数据流名,说明,数据流来源,数据流去向,
         组成:{数据结构},平均流量,高峰期流量}
数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流,   
        组成:{数据结构},数据量,存取方式}
处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},
          处理:{简要说明}}
2. 概念结构设计阶段
通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。
概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一DBMS支持的特定数据模型。
概念模型特点:
(1) 具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。
(2) 应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。
概念模型设计的一种常用方法为IDEF1X方法,它就是把实体-联系方法应用到语义数据模型中的一种语义模型化技术,用于建立系统信息模型。
使用IDEF1X方法创建E-R模型的步骤如下所示:
2.1 第零步——初始化工程
这个阶段的任务是从目的描述和范围描述开始,确定建模目标,开发建模计划,组织建模队伍,收集源材料,制定约束和规范。收集源材料是这阶段的重点。通过调查和观察结果,业务流程,原有系统的输入输出,各种报表,收集原始数据,形成了基本数据资料表。
2.2 第一步——定义实体
实体集成员都有一个共同的特征和属性集,可以从收集的源材料——基本数据资料表中直接或间接标识出大部分实体。根据源材料名字表中表示物的术语以及具有 “代码”结尾的术语,如客户代码、代理商代码、产品代码等将其名词部分代表的实体标识出来,从而初步找出潜在的实体,形成初步实体表。
2.3 第二步——定义联系
IDEF1X 模型中只允许二元联系,n元联系必须定义为n个二元联系。根据实际的业务需求和规则,使用实体联系矩阵来标识实体间的二元关系,然后根据实际情况确定出连 接关系的势、关系名和说明,确定关系类型,是标识关系、非标识关系(强制的或可选的)还是非确定关系、分类关系。如果子实体的每个实例都需要通过和父实体 的关系来标识,则为标识关系,否则为非标识关系。非标识关系中,如果每个子实体的实例都与而且只与一个父实体关联,则为强制的,否则为非强制的。如果父实 体与子实体代表的是同一现实对象,那么它们为分类关系。
2.4 第三步——定义码
通过引入交叉实体除去上一阶段产生的非 确定关系,然后从非交叉实体和独立实体开始标识侯选码属性,以便唯一识别每个实体的实例,再从侯选码中确定主码。为了确定主码和关系的有效性,通过非空规 则和非多值规则来保证,即一个实体实例的一个属性不能是空值,也不能在同一个时刻有一个以上的值。找出误认的确定关系,将实体进一步分解,最后构造出 IDEF1X模型的键基视图(KB图)。
2.5 第四步——定义属性
从源数据表中抽取说明性的名词开发出属性表,确定属 性的所有者。定义非主码属性,检查属性的非空及非多值规则。此外,还要检查完全依赖函数规则和非传递依赖规则,保证一个非主码属性必须依赖于主码、整个主 码、仅仅是主码。以此得到了至少符合关系理论第三范式的改进的IDEF1X模型的全属性视图。
2.6 第五步——定义其他对象和规则
定义属性的数据类型、长度、精度、非空、缺省值、约束规则等。定义触发器、存储过程、视图、角色、同义词、序列等对象信息。
3. 逻辑结构设计阶段
将概念结构转换为某个DBMS所支持的数据模型(例如关系模型),并对其进行优化。设计逻辑结构应该选择最适于描述与表达相应概念结构的数据模型,然后选择最合适的DBMS。
将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转化为关系模式,这种转换一般遵循如下原则:
1)一个实体型转换为一个关系模式。实体的属性就是关系的属性。实体的码就是关系的码。
2)一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。
3)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
4)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
5)三个或三个以上实体间的一个多元联系转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性。而关系的码为各实体码的组合。
6)同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理。
7)具有相同码的关系模式可合并。
为了进一步提高数据库应用系统的性能,通常以规范化理论为指导,还应该适当地修改、调整数据模型的结构,这就是数据模型的优化。确定数据依赖。消除冗余的 联系。确定各关系模式分别属于第几范式。确定是否要对它们进行合并或分解。一般来说将关系分解为3NF的标准,即:
表内的每一个值都只能被表达一次。
表内的每一行都应该被唯一的标识(有唯一键)。
表内不应该存储依赖于其他键的非键信息。
4. 数据库物理设计阶段
为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。
5. 数据库实施阶段
运用DBMS提供的数据语言(例如SQL)及其宿主语言(例如C),根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行 试运行。 数据库实施主要包括以下工作:用DDL定义数据库结构、组织数据入库 、编制与调试应用程序、数据库试运行
6. 数据库运行和维护阶段
数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。包括:数据库的转储和恢复、数据库的安全性、完整性控制、数据库性能的监督、分析和改进、数据库的重组织和重构造。
建模工具的使用
为加快数据库设计速度,目前有很多数据库辅助工具(CASE工具),如Rational公司的Rational Rose,CA公司的Erwin和Bpwin,Sybase公司的PowerDesigner以及Oracle公司的Oracle Designer等。
ERwin 主要用来建立数据库的概念模型和物理模型。它能用图形化的方式,描述出实体、联系及实体的属性。ERwin支持IDEF1X方法。通过使用ERwin建模 工具自动生成、更改和分析IDEF1X模型,不仅能得到优秀的业务功能和数据需求模型,而且可以实现从IDEF1X模型到数据库物理设计的转变。 ERwin工具绘制的模型对应于逻辑模型和物理模型两种。在逻辑模型中,IDEF1X工具箱可以方便地用图形化的方式构建和绘制实体联系及实体的属性。在 物理模型中,ERwin可以定义对应的表、列,并可针对各种数据库管理系统自动转换为适当的类型。
设计人员可根据需要选用相应的数据库设计建模工具。例如需求分析完成之后,设计人员可以使用Erwin画ER图,将ER图转换为关系数据模型,生成数据库结构;画数据流图,生成应用程序。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/77580/viewspace-212704/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/77580/viewspace-212704/

数据库设计方法与规范 数据库设计过程相关推荐

  1. 数据库设计方法、规范与技巧(推荐)

    数据库设计方法.规范与技巧(推荐) 一.数据库设计过程 数据库技术是信息资源管理最有效的手段.数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户 ...

  2. 实战小课 | 深入剖析 「事件设计方法与规范」,夯实数据分析基础!

    神策数据立足于"重构中国互联网数据根基",凭借已有的 1000 + 家付费企业的服务和成功实践经验,开辟线下活动"神策数据实战学堂",以数据驱动为主题聚焦不同热 ...

  3. VLSI 半定制设计方法 与 全定制设计方法【VLSI】

    VLSI 半定制设计方法 与 全定制设计方法[VLSI] VLSI 半定制设计方法 1. standard cell 设计方法 Standard Cell library 设计方法与步骤 特点 2. ...

  4. php把路由放在数据库,PHP导入Excel到数据库的方法 PHP把数据库数据导出到方法

    PHP导入Excel到数据库的方法 PHP把数据库数据导出到方法 本文实例讲述了PHP将Excel导入数据库及数据库数据导出至Excel的方法.分享给大家供大家参考.具体实现方法如下: 一.导入 导入 ...

  5. 数据库系统概论 第七章 数据库设计(1)特点,概述,设计方法,规范设计方法,新奥尔良方法,用户和数据库管理员,模式,外模式,概念模式,逻辑模式,内模式,需求分析,数据项,数据流,数据存储,处理过程

    关注公众号凡花花的小窝,收获更多的考研计算机专业编程相关的资料 7.1数据库设计概述 广义的讲,是数据库及其应用系统的设计,即设计整个数据库应用系统 狭义的将,是设计数据库本身,即设计数据库的各级模式 ...

  6. 数据库设计方法、规范与技巧

    本文链接: http://www.openphp.cn/index.php/art.../100/index.html 一.数据库设计过程 数据库技术是信息资源管理最有效的手段.数据库设计是指对于一个 ...

  7. 多租户数据库设计方法:独立数据库

    目前基于多租户的数据库设计方案通常有如下三种: 独立数据库 共享数据库.独立 Schema 共享数据库.共享数据表 独立数据库 独立数据库:每个租户一个数据库. 优点:为不同的租户提供独立的数据库,有 ...

  8. 软件工程:结构化软件设计方法 VS 面向对象软件设计方法

    一.基本概念 1.结构化方法 结构化方法是一种传统的软件开发方法,它是由结构化分析.结构化设计和结构化程序设计三部分有机组合而成的. 基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向 ...

  9. 测试用例设计方法_黑盒测试——测试用例设计方法

    黑盒测试 也称为功能测试或数据驱动测试.通过软件的外部表现来发现其缺陷和错误.在测试时,把被测程序视为一个不能打开的盒子,在完全不考虑程序内部逻辑结构和内部特性的情况下进行.它是在已知产品所应具有的功 ...

最新文章

  1. 060_Unicode字符编码
  2. c语言异或加密函数,用异或算法实现文件的简单加密
  3. 方案接口服务器问题记录
  4. 编程技巧:使用异或操作符(XOR)交换两数值
  5. lisp scheme 果壳_走出Lisp(Scheme)困境
  6. oracle排序后第一条,Oracle排序取第一条数据
  7. 软考信息系统项目管理师_信息系统综合测试与管理---软考高级之信息系统项目管理师027
  8. JZOJ 1035. 【SCOI2009】粉刷匠
  9. sql语句 取搜索列表的前几条
  10. 1-5Badboy添加检查点和参数化
  11. inDesign教程,如何制作个性化的感谢卡?
  12. Hadoop可视化与交互式工具:Zeppelin和Hue
  13. 快手短视频广告投放一年需要多少钱 快手信息流广告怎么样收费模式
  14. 工具栏的打印图标不见了_XP操作系统工具栏右边的打印机图标不见了
  15. windows 性能监控--Perfmon主要指标
  16. macbook清理磁盘空间
  17. 小程序使用本地图片报错问题 Failed to load local image resource
  18. SQLSERVER2000--验证码一直不能通过验证
  19. matlab 牛顿 科特斯的代码,SIMP算法和BESO算法的关键技术研究
  20. 网络规模推荐系统的图卷积神经网络

热门文章

  1. 开启python之旅——蝴蝶结
  2. 面试官问自身不足之处时要怎么回答呢?
  3. 啤酒瓶啤酒盖换啤酒_像啤酒中的免费一样导致心脏出血(甚至更多)
  4. 【机器学习】带你轻松理解什么是强化学习中的状态动作函数 ?
  5. 计算机需要学大学物理吗,计算机系要学大学物理吗?
  6. 【无标题】int64_t 与 uint64_t
  7. 天猫店群模式,什么是精细化运营?精细化运营怎么操作?
  8. 岁月的剪影【四月Moving in the Air】
  9. 美团外卖2017红包问题点评
  10. 【Java 数据结构 算法】宁可累死自己, 也要卷死别人 8 环形链表