建立表结构——《数据库设计凡人入门》第七章整理

来源:互联网 发布:2016淘宝出售假冒商品 编辑:程序博客网 时间:2024/06/05 00:23

一、定义初始表结构

i. 从检查初始字段列表开始,找出隐藏说明的主题,这时要摒弃对调研过程中熟悉的主题的偏爱,客观地观察。分辨字段说明了哪些特定的主题(有可能就是隐藏的主题)。识别尽量多的主题,形成一个初始表列表

ii. 与主题列表对比,处理重复项目;处理代表同一主题的不同项目(往往是取名 问题);合并两张表中的项目。

iii. 使用任务目标,用来判断前面的过程是否遗漏了说明主题。使用主题识别技术,通过对有下划线的项目名称它的内涵的理解来判断是否已经出现在初始表列表里面。

        

二、定义最终表结构

a) 最终表多了两个项目:表类型与描述。表类型有:数据表,连接表,子集表,验证表表描述对该表所代表的主题给出了一个清晰的定义,并说明了它对于单位的重要性。

b) 表名求精

i. 要对单位有意义的、唯一的、描述性的名字

ii. 能够准确、清晰、无二义性的标识该表主题的名字(避免使用“杂项”)

iii. 用最少的字

iv. 不要使用表达物理特征的词。比如说“文件”,“表”(可以拆分为更多的主题)

v. 不用缩写

vi. 不要使用不恰当的专有名词。可能会限制,影响以后的发展(如“西南地区雇员”)

vii. 不要使用隐式或显式地标识多个主题的名字("\""&"

viii. 使用复数形式

c) 描写表描述

包含精确定义该表的语句;解释重要性;清晰、简洁;不要描述表的使用方法;不 要依赖另一张表的描述;不要使用例子

三、为每个表确定字段、字段求精

a) 拿出一张纸,将最终表的每个表名写上,将初始字段表的字段分配到每个表。

b) 字段名求精

i. 大部分与表名求精类似,但:使用单数形式,可以使用表名前缀来区别通用字段名问题(如“雇员地址”,“顾客地址”)

ii. 使用理想字段解决异常。理想字段要素:

1. 代表了表主题的显著特征

2. 只包含单个值(区别于多值字段,多值字段可以另建新表来解决,新表会有冗余,但却是可以接受的)

3. 不能被拆分为更小的部分(区别于多成分字段,多成分字段可以分成多个字段来解决)

4. 不包含计算值或连接值。不能依赖与另一字段的值。

5. 在整个数据库结构中是唯一的,重复字段仅出现在那些建立表联系的地方

四、表结构求精

a) 关于冗余数据:它是关联两个表的结果,或者是某字段或表异常的结果。前者可以接受,后者不可接受。

b) 用理想表对表结构求精

i. 它代表单个主题

ii. 有一个主码

iii. 不包含多成分或多值字段

iv. 不包含计算字段

v. 不包含不必要的重复字段

c) 建立子集表

类似于父类与子类的关系。从表的字段中发现相同的地方,抽取出来形成父表,消 除冗余;或从表字段中找出代表不同主题的地方,生成子表,也是为了消除冗余, 同时清晰了表结构(可以减少空白,因为有些在原先表里面的字段可能属于一个子 主题而不属于另一个子主题因而导致这个字段的某些实例为空白)


原创粉丝点击