数据库规范化设计的五个原则

一:表中应该避免可为空的列;

二:表不应该有重复的值或者列;

三: 表中记录应该有一个唯一的标识符 
  在数据库表设计的时候,数据库管理员应该养成一个好习惯,用一个ID号来 唯一的标识行记录,而不要通过名字、编号等字段来对纪录进行区分。每个表都应该有一个ID列,任何两个记录都不可以共享同一个ID值。另外,这个ID值最 好有数据库来进行自动管理,而不要把这个任务给前台应用程序。否则的话,很容易产生ID值不统一的情况。
  另外,在数据库设计的时候,最好还能 够加入行号。如在销售订单管理中,ID号是用户不能够维护的。但是,行号用户就可以维护。如在销售订单的行中,用户可以通过调整行号的大小来对订单行进行 排序。通常情况下,ID列是以1为单位递进的。但是,行号就要以10为单位累进。如此,正常情况下,行号就以10、20、30依次扩展下去。若此时用户需 要把行号为30的纪录调到第一行显示。此时,用户在不能够更改ID列的情况下,可以更改行号来实现。如可以把行号改为1,在排序时就可以按行号来进行排 序。如此的话,原来行号为30的纪录现在行号变为了1,就可以在第一行中显示。这是在实际应用程序设计中对ID列的一个有效补充。这个内容在教科书上是没 有的。需要在实际应用程序设计中,才会掌握到这个技巧。

四:数据库对象要有统一的前缀名 
  一个比较复杂的应用系统,其对应的数据库表往往以千计。若让数据库管理员看到对象名就了解这个数据库对象所起的作用,恐怕会比较困难。而且在数据库对象引用的时候,数据库管理员也会为不能迅速找到所需要的数据库对象而头疼。
   为此,笔者建立,在开发数据库之前,最好能够花一定的时间,去制定一个数据库对象的前缀命名规范。如笔者在数据库设计时,喜欢跟前台应用程序协商,确定 合理的命名规范。笔者最常用的是根据前台应用程序的模块来定义后台数据库对象前缀名。如跟物料管理模块相关的表可以用M为前缀;而以订单管理相关的,则可 以利用C作为前缀。具体采用什么前缀可以以用户的爱好而定义。但是,需要注意的是,这个命名规范应该在数据库管理员与前台应用程序开发者之间达成共识,并 且严格按照这个命名规范来定义对象名。
  其次,表、视图、函数等最好也有统一的前缀。如视图可以用V为前缀,而函数则可以利用F为前缀。如此数据库管理员无论是在日常管理还是对象引用的时候,都能够在最短的时间内找到自己所需要的对象。

五:尽量只存储单一实体类型的数据 
  这里将的实体类型跟数据类型不是一回事,要注意区分。这里讲的实体类型 是指所需要描述对象的本身。笔者举一个例子,估计大家就可以明白其中的内容了。如现在有一个图书馆里系统,有图书基本信息、作者信息两个实体对象。若用户 要把这两个实体对象信息放在同一张表中也是可以的。如可以把表设计成图书名字、图书作者等等。可是如此设计的话,会给后续的维护带来不少的麻烦。
   如当后续有图书出版时,则需要为每次出版的图书增加作者信息,这无疑会增加额外的存储空间,也会增加记录的长度。而且若作者的情况有所改变,如住址改变 了以后,则还需要去更改每本书的记录。若这个作者的图书从数据库中全部删除之后,这个作者的信息也就荡然无存了。很明显,这不符合数据库设计规范化的需 求。
  遇到这种情况时,笔者建议可以把上面这张表分解成三种独立的表,分别为图书基本信息表、作者基本信息表、图书与作者对应表等等。如此设计以后,以上遇到的所有问题就都引刃而解了。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库设计方案全文共8页,当前为第1页。数据库设计方案全文共8页,当前为第1页。 数据库设计方案全文共8页,当前为第1页。 数据库设计方案全文共8页,当前为第1页。 数据库设计方案 二〇二〇年六月 数据库设计方案全文共8页,当前为第2页。数据库设计方案全文共8页,当前为第2页。数据库设计原则 数据库设计方案全文共8页,当前为第2页。 数据库设计方案全文共8页,当前为第2页。 数据设计原则包括统一原则、标准化原则、规范性原则、保护性原则、完整性原则,并发性原则,安全性原则、备份性原则、数据关联性原则、适应性原则、可靠性与完整性原则、快速访问原则。 统一原则 数据库统一标准化处理,统一建设,实现信息资源标准化和开放共享。 标准化原则 并遵从各项技术规定,做好数据库的标准化设计与建设。各配套设备的性能和技术要求稳定可靠,所有的数据库设计符合国家标准和行业规范。 规范性原则 数据处理及数据建库实行规范化设计与建设,为业务系统提供支撑。 保护性原则 项目建设要充分考虑易维护性原则,软件建设做好售后服务,为后期建设提供良好基础。 完整性原则 在系统设计中,我们选用产品和系统时,应充分考虑系统的升级、扩展、维护问题,设计应全面、周到,注意预留到位并留有充分余量,以适应未来发展需要。 并发性原则 项目建设过程中具有一定的抗干扰性,提高稳定性。 安全性原则 系统的数据库必须分层次和级别、保证数据库在各种级别保密程度上的查询访问,防止信息被任意查询和破坏,对各种各样的计算机病毒,系统都应具有高度的免疫力。 备份性原则 系统的设计和设备配置必须保证信息的安全,有较好的数据安全措施,有较强的数据备份和系统恢复功能。 数据关联性原则 考虑数据与数据之间关联性问题,实现数据间的共享开放。 数据库设计方案全文共8页,当前为第3页。数据库设计方案全文共8页,当前为第3页。适应性原则 数据库设计方案全文共8页,当前为第3页。 数据库设计方案全文共8页,当前为第3页。 系统设计应符合统一规划、阶段性实施的原则,充分考虑未来技术发展所带来的系统扩充的需求,预留足够的接口空间,可满足以后的软件升级及设备扩容。 可靠性与完整性原则 即系统的设计能充分考虑系统的发展需要,能充分适应科技的快速进步,对系统的扩展性预留可持续发展的接口和技术空间。 快速访问原则 系统安全可靠,运行稳定,能够快速进行访问。 数据库逻辑设计 数据库逻辑设计包括数据库逻辑划分、矢量数据逻辑设计、栅格数据逻辑设计。 1、数据库逻辑上是由一个或多个表空间组成的,表空间物理上是由一个或多个数据文件组成的;而在逻辑上表空间又是由一个或多个段组成的。在数据库中,通过为每种不同的数据对象分配不同的段,来保存数据。在数据库中,段是由一个或多个区组成的,而区又是由连续存储的数据块所 组成的。块则是数据库的I/O 最小的单位。本项目的数据库逻辑划分包括空间数据库和非空间数据库。 2、矢量数据逻辑设计包含了公共基础数据、林业信息资源中的矢量数据,综合对黑龙江林业数据源和功能进行分析,将矢量数据按照数据类型分为公共基础数据库、林业基础矢量数据库、林业专题矢量数据库,每一个数据库需按照数据内容和数据特点组织成不同的图层。 矢量数据主要是指大比例尺地形图。此项目中矢量数据主要为点、线、面形状矢量数据以及不同种类业务的矢量数据,合理的分层便于进行叠加分析、图形的无逢拼接以实现系统图形的大范围漫游。矢量数据一般通过记录坐标的方式来尽可能将地理实体的空间位置表现的准确无误,显示的图形一般为矢量图。 矢量数据是计算机中以矢量结构存贮的内部数据。是跟踪式数字化位的直接产物。在矢量数据结构中,点数据可直接用坐标描述;线数据可用均匀或不均匀间隔的顺序坐标链来描述;面状数据(或多边形数据)可用边界线来描述。矢量数据的组织形式较为复杂,以弧段为基本逻辑单元,而每一弧段以两个或两个以上相交结点所限制,并为两个相邻多边形属性所猫述。 数据库设计方案全文共8页,当前为第4页。数据库设计方案全文共8页,当前为第4页。3、栅格数据逻辑设计包括影像数据、DEM高程数据等。 数据库设计方案全文共8页,当前为第4页。 数据库设计方案全文共8页,当前为第4页。 栅格数据是按网格单元的行与列排列、具有不同灰度或颜色的阵列数据。每一个单元(象素)的位置由它的行列号定义,所表示的实体位置隐含在格行列位置中,数据组织中的每个数据表示地物或现象的非几问属性或指向其属性的针。一个优秀的压缩数据编码方是:在最大限度减少计算机运算时间的基点上进行最大幅底的压缩。栅格结构是大小相等分布均匀、紧密相连的像元(网格单元)阵列来表示空闻地物或现象分布的数据组织,是最简单、最直观的空间数据结构,它将地球表面划分为大小、均匀、紧密相邻的网格阵列每一个单元(象素)的位置由它的行列号定义

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值