代码改变世界

数据库设计Step by Step (10)——范式化

2011-09-04 17:42 by 知行思新, 13693 阅读, 21 推荐, 收藏, 编辑
摘要:引言:前文(数据库设计Step by Step (9)——ER-to-SQL转化)讨论了如何把ER图转化为关系表结构。本文将介绍数据库范式并讨论如何范式化候选表。我们先来看一下此刻处在数据库生命周期中的位置(如下图所示)。 前几篇博文中我们详细的讨论了ER建模的方法。精心设计的ER模型将帮助我们直接得到范式化的表或只需稍许修改即为范式化的表,设计、绘制ER图的重要性也体现在这里。概念数据建模(ER... 阅读全文

数据库设计Step by Step (9)——ER-to-SQL转化

2011-07-25 21:06 by 知行思新, 20356 阅读, 19 推荐, 收藏, 编辑
摘要:引言:前文(数据库设计 Step by Step (8)——视图集成)讨论了如何把局部ER图集成为全局ER图。有了全局ER图后,我们就可以把ER图转化为关系数据库中的SQL表了。俯瞰整个数据库生命周期(如下图所示),找到我们的“坐标”。 把ER图转化为关系数据库中的表结构是一个非常自然的过程。许多ER建模工具除了辅助绘制ER图外,还能自动地把ER图转化为SQL表。   从ER模型到SQL表 从... 阅读全文

数据库设计 Step by Step (8)——视图集成

2011-07-09 16:05 by 知行思新, 11473 阅读, 13 推荐, 收藏, 编辑
摘要:引言:在前文(数据库设计Step by Step (7)——概念数据建模)最后的案例中,我们通过集成多个局部的实体关系(ER)模型最终得到了全局ER图。在现实项目中视图集成可能并不会那么容易。 俯瞰整个数据库生命周期(如下图所示)。在前面的内容中,我们已完成了“确定需求”和“数据模型”(图中以灰色标出),本小节我们将详细讨论“视图集成”(图中以红色标出) 把基于不同用户视角的局部ER图集成为一个统... 阅读全文

数据库设计Step by Step (7)——概念数据建模

2011-06-26 11:29 by 知行思新, 12006 阅读, 14 推荐, 收藏, 编辑
摘要:引言:在前两篇博文(数据库设计 Step by Step (5)和数据库设计 Step by Step (6) —— 提取业务规则)中,我们进行了数据库需求分析,着重讨论了两个主题:1.理解用户需求;2.提取业务规则。当需求分析完成后,我们就要进入到概念数据建模环节。本篇文章将使用之前介绍过的“基本实体关系模型构件”和“高级实体关系模型构件”作为建模的基本元素,大家可以回顾数据库设计 Step b... 阅读全文

数据库设计 Step by Step (6) —— 提取业务规则

2011-06-08 22:57 by 知行思新, 12105 阅读, 18 推荐, 收藏, 编辑
摘要:引言:数据库设计 Step by Step (5)中我们通过多种方法来理解客户的需求并撰写了需求文档。本文我们将回答三个问题。1. 为什么业务规则非常重要。2. 怎样识别业务规则。3. 如何修改关系模型并隔离出业务规则。   什么是业务规则 业务规则描述了业务过程中重要的且值得记录的对象、关系和活动。其中包括业务操作中的流程、规范与策略。业务规则保证了业务能满足其目标和义务。 生活中的一些业... 阅读全文

数据库设计 Step by Step (5)——理解用户需求

2011-05-28 21:49 by 知行思新, 14356 阅读, 31 推荐, 收藏, 编辑
摘要:引言:数据库设计 Step by Step (4)中我们讨论了泛化关系、聚合关系、三元关系等高级实体关系模型构件及其语义。从本次讲座开始我将引领大家开始数据库设计之旅,我们将从需求分析开始,途中将经过概念数据建模、多视图集成、ER模型转化为SQL、范式化等过程,最终得到完整、可用的SQL表。需求分析在数据库生命周期中至关重要,通常也是涉及人员最多的步骤。数据库设计师在这个阶段必须走访最终用户,与他... 阅读全文

数据库设计 Step by Step (4)——高级ER模型构件

2011-05-07 11:44 by 知行思新, 14490 阅读, 22 推荐, 收藏, 编辑
摘要:引言:数据库设计 Step by Step (3)中我们讨论了基本实体关系模型构件及其语义。这些概念非常重要,是今天这一讲的基础,在开始本文内容之前建议大家可以再回顾一下上一篇的内容。今天我们将讨论高级实体关系模型构件,与上一篇一起涵盖了ER模型构图的大部分内容。三元关系是今天这一讲的难点,大家可以重点关注。泛化(Generalization):超类型与子类型原始的ER模型已经能描述基本的数据和关... 阅读全文

数据库设计 Step by Step (3)——基本ER模型构件

2011-04-24 11:46 by 知行思新, 32554 阅读, 26 推荐, 收藏, 编辑
摘要:引言:数据库设计 Step by Step (2)在园子里发表之后,收到了一些邮件,还有朋友直接电话我询问为什么不包含数据库物理设计方面的内容。我在这里解释一下,数据库物理设计与数据库产品是密切相关的,本系列的专注点是较为通用的数据库设计理念与方法,这也是国内软件项目中容易被忽视的一块。今天我们将学习实体关系(ER)模型构件及其语义,这是数据库逻辑设计的基础。内容可能有些枯燥,但却非常重要和有用。... 阅读全文

数据库设计 Step by Step (2)——数据库生命周期

2011-04-09 22:51 by 知行思新, 22765 阅读, 35 推荐, 收藏, 编辑
摘要:引言:数据库设计 Step by Step (1)得到这么多朋友的关注着实出乎了我的意外。这也坚定了我把这一系列的博文写好的决心。近来工作上的事务比较繁重,加之我期望这个系列的文章能尽可能的系统、完整,需要花很多时间整理、思考数据库设计的各种资料,所以文章的更新速度可能会慢一些,也希望大家能够谅解。系列的第二讲我们将站在高处俯瞰一下数据库的生命周期,了解数据库设计的整体流程数据库生命周期大家对软件... 阅读全文

数据库设计 Step by Step (1)——扬帆启航

2011-03-27 00:47 by 知行思新, 34313 阅读, 99 推荐, 收藏, 编辑
摘要:引言:一直在从事数据库开发和设计工作,也看了一些书籍,算是略有心得。很久之前就想针对关系数据库设计进行整理、总结,但因为种种原因迟迟没有动手,主要还是惰性使然。今天也算是痛下决心开始这项卓绝又令我兴奋的工作。这将是一个系列的文章,我将以讲座式的口吻展开讨论(个人偷懒,这里的总结直接拿去公司培训新人用)。系列的第一讲我们先来回答下面几个问题数据库是大楼的根基大多数程序员都很急切,在了解基本需求之后希... 阅读全文