数据库设计与开发规范(SQL Server篇).pdf

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库设计与开发规范(SQL Server篇)

数据库设计与开发规范 (SQL Server篇) 高彩会 (Tony.Gao) 1 Agenda 1 表设计规范 2 物理设计规范 3 索引设计规范 4 命名规范 5 SQL编写规范 2 表设计规范-1NF  第一范式(Paradigm) 1NF是最基本的范式,用以确保保持每列原子性,如数据库表中的 所有字段值都是不可分解的原子值,就说明该数据库表满足了第一范式。  下图不满足第一范式: 下图的用户信息表将“地址”这个属性拆分成“省份”、“城市”、“详细地址”,这样 就满足了第一范式,同时基于对“城市”的查询性能也相应提升。 3 表设计规范-2NF  第二范式2NF需要确保表中的每一列都和主键相关,而不能只与主键的某一部分相关。 也即在一个表中只能保存一种数据,不可以把多种数据保存在一张表中。 下图的订单信息表中即存在商品信息,又有订单信息,因此存在数据冗余,不符合2NF 下图是拆分成符合2NF后的表结构: 4 表设计规范-3NF  第三范式3NF需要确保表中的每一列数据都和主键直接相关,而不能间接相关。 比如在设计一个订单数据表的时候,可以将客户编号作为一个外键和订单表建立相应的关系, 而不可以在订单表中添加关于客户其它信息(比如姓名、所属公司等)的字段。 下图这两个表所示的设计就是一个满足第三范式的数据库表,这样在查询订单信息的时候,就 可以使用客户编号来引用客户信息表中的记录,从而不必在订单信息表中多次输入客户信息的内 容,减少了数据冗余。 5 反规范化表设计 1. 为何要反规范化设计 数据库规范化设计目前占数据库设计主导地位,规范化设计达到了数据存储空间最佳利用和控 制数据冗余,但是也带来了查询性能的降低,因此在适当的条件下,对数据库进行反规范化设 计也是很有必要的。 2. 反规范化设计的目的 反规范化设计通过增加数据冗余,数据分片等策略来改进原有规范设计,以达到改善数据库性 能的目的,也即以空间换性能。 需要注意的是:数据库设计没有一层不变的规范,也没有百分百完美的模式,因此要结合实际 的应用需要统一考量设计,未来的发展方向将会是多种设计规范的混搭模式,即数据库中即有 规范化设计又有反规范化设计。 6 反规范化表设计-遵循原则 全面了解系统 确信对系统的逻辑设计有全面的了解,当改变 全面了解系统 数据库时,会对其它模块带来哪些影响。 采取索引、数据存储等技术提升性能 提升性能 分析系统的数据量,对于数据量不大,响应时间 不高的尽量通过数据库本身技术来提升性能。 数据完整性维护 数据完整 使用反规范化带来的最大问题是数据完整性问 性维护 题,在程序设计中要充分考虑到数据库事务的 处理,增删改查保证数据库操作一致性;完整 性约束还可以通过批处理及触发器实现(尽量少 用触发器)。 7 反规范化表设计方法

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档