(精品)SQL.Server.设计、命名、编码规范

上传人:汽*** 文档编号:497274425 上传时间:2022-11-25 格式:DOC 页数:41 大小:264.51KB
返回 下载 相关 举报
(精品)SQL.Server.设计、命名、编码规范_第1页
第1页 / 共41页
(精品)SQL.Server.设计、命名、编码规范_第2页
第2页 / 共41页
(精品)SQL.Server.设计、命名、编码规范_第3页
第3页 / 共41页
(精品)SQL.Server.设计、命名、编码规范_第4页
第4页 / 共41页
(精品)SQL.Server.设计、命名、编码规范_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《(精品)SQL.Server.设计、命名、编码规范》由会员分享,可在线阅读,更多相关《(精品)SQL.Server.设计、命名、编码规范(41页珍藏版)》请在金锄头文库上搜索。

1、SQL Server 设计、命名、编码规范 SQL Server Database Design, Code and Development Standards 1.更改42.简介43.开发环境53.1数据库模型53.2 Diagrams53.3版本控制53.4 源码目录结构54.物理数据库模型&字典64.1 物理数据模型64.2 IDEF1X 方法74.3 物理数据库数据字典74.4 性能设计75命名协定85.1 数据库命名原则及版本控制85.1.1数据库命名原则85.1.2 数据库版本控制85.2 Server/命名实例的命名85.3 数据库命名95.4 数据库对象表,视图,列名,约束,规

2、则,默认值115.5 缩写规范125.6 列名125.7 存储过程命名145.8 游标命名145.9 触发器命名155.10 索引命名155.11 主键和外键命名155.12 Check约束命名165.13 源文件命名165.14 Job的命名165.15 用户自定义函数命名175.16 用户自定义数据类型命名175.17 复制命名176.SQL Server代码规范176.1 对象创建脚本176.2 数据库更改脚本196.3 综合开发实践226.4 文本文件格式236.5 使用Return326.6 错误处理336.6.1 在存储过程和触发器中使用RAISEERROR346.7 Print

3、语句346.8 参照完整性356.8.1 主键356.8.2 外键356.9 触发器356.10 游标366.11 用户自定义函数376.12 局部变量命名标准386.13 返回最后插入的标识值387.安全398.事务处理408.1 编写高效的事务处理代码408.2 批处理40附录A:最常见的不应该出现的问题411.更改 Change Name Date 命名原则:表意性原则(增加) DavidDong Jan/05 数据库命名 DavidDong Jan/05 表命名 DavidDong Jan/05 Server/Instance命名 DavidDong Jan/05 JOB,复制命名 D

4、avidDong Jan/05 2.简介 数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求 数据库设计和开发标准是使Newegg Support Center的数据库系统的设计和开发正式化的标准。通过此标准,来规范数据库设计。 通过一致的系统解决方案,能给我们的系统带来以下优点: 开发出高可管理性的高质量系统 能够快速的进行开发 减少维护代码的时间 非常容易的把代码从一个项目拷贝至另一个项目 节省把游标,错误处理信息从一个项目中拷贝到另一个项目中的时间 使程序逻辑简单化 不用花费时间在常规的事情上,比如对象名称转换等,

5、并可允许多次设计,编程和对复杂事件的测试工作 在代码出错时大大节省时间 只要在第一次是有个良好的设计 3.开发环境 3.1数据库模型 CA公司的ERwin/SQL是数据建模的一个首选工具. 在开发经常改变的项目时,使用ERwin来生成表(创建/删除),索引,规则,数据类型等数据库对象的脚本,在对项目文件进行修改之前,请确认已经对这些脚本进行过备份. 任何数据库的改变,不管是在开发中还是在产品服务器中,都要用ERwinDiagram中进行相应的修改.如果产品服务器上做出了更改,则一定要对主脚本和ERwin diagram进行相应更新. 3.2 Diagrams 使用Visio进行数据diagra

6、m,流程图,服务器拓朴和其它diagrams进行设计.文档化系统或者处理流程可以大大有利于团队间的协作. 3.3版本控制 推荐使用Visual SourceSafe(VSS)对NESE数据库对象进行管理. 在任何项目中,都应该有很好的代码更改控制,初始版本文件应该放到VSS中并被注释.所有对这些文件的后继更改都应该放到VSS中管理. 3.4 源码目录结构 在项目刚开始时,找到一个所有Team成员都能够访问的共享.按照以下结构初始化VSS目录和数据库子目录: CMD 包括全系统脚本的脚本文件,如果是一个多数据库的系统,应该有一个可能创建所有数据库的命令文件. DBName 在系统中的每个数据库应

7、该有自己的目录结构,如下: CMD:用来创建此数据库的脚本文件,并且来更改数据库构架. DAT:用来刷新此数据库的数据文件. SP:用来存储存储过程的脚本 TBL:除了下面子目录,这个目录应该包括表的定义脚本,每个表应该有它自己的脚本,此脚本应该包括经表的删除,创建语句,索引,触发器,完整性参照,Check约束,默认值约束等,每个表创建语句应该包括在不同的脚本中,并被把归类到类似于下面的相应的子目录中.注意:本目录中的脚本和以下子目录的脚本应该命名为它所影响的表名,比如:表名.sql: Check:为每个表创建独立的Check约束定义脚本,Check约束应该使用alter table add

8、constraint 来创建,并且每个alter table 语句只能包括一个contraint。 DEFAULT:为每个表创建单独的Default约束定义脚本。注意这些是Default Constraints,而不是在创建表时的Default。 FK:为每个表创建单独的外键约束定义脚本。 Index:为每个表创建一个索引定义脚本,并把对应索引定义脚本放进去. PK:为每个表创建单独的主键定义脚本 TRG:为每个表创建单独的触发器定义脚本,并把应用到此表上的触发器放进此脚本文件中。 UDF:用户自定义函数。 View:视图定义脚本。 DCL: 数据控制语句脚本主要包括控制所有的数据库对象的Gr

9、ant 和 Revoke语句。 MISC:这儿用于存放各式各样的其它脚本,例如alter table脚本或者一次更改的脚本,注意,不要放此目录看成是一个包罗各种脚本的容器,只应包括需要放到VSS中,但是又不属于上面所列目录的脚本。 4.物理数据库模型&字典 E-R 图表和数据字典可以让任何使用数据库的人都明确的知道如何从数据库中获得数据。E-R图对表明表之间关系很有用,而数据字典则说明了每个字段的用途以及任何可能存在的别名 4.1 物理数据模型 物理模型图形化的展现数据库的实现,它由逻辑数据模型及底层关系型数据库管理系统来决定,由逻辑模型转变为物理模型包括以下的任务: 为实体和属性创建合理的数

10、据库名字 为每个属性设计数据类型和是否允许为空 定义主键,外键和索引 定义规则和默认值 为优化性能,尽可能使数据库设计规范化,比如遵循1NF(第一范式),2NF(第二范式) 和3NF(第三范式) 为加快数据库设计速度,目前有很多数据库辅助工具(CASE工具),如Rational公司的Rational Rose,CA公司的Erwin, Sybase公司的Power Designer以及Oracle公司的Oracle Designer等。 ERwin主要用来建立数据库的概念模型和物理模型。它能用图形化的方式,描述出实体、联系及实体的属性。ERwin支持IDEF1X方法。通过使用ERwin建模工具自

11、动生成、更改和分析IDEF1X模型,不仅能得到优秀的业务功能和数据需求模型,而且可以实现从IDEF1X模型到数据库物理设计的转变。ERwin工具绘制的模型对应于逻辑模型和物理模型两种。在逻辑模型中,IDEF1X工具箱可以方便地用图形化的方式构建和绘制实体联系及实体的属性。在物理模型中,ERwin可以定义对应的表、列,并可针对各种数据库管理系统自动转换为适当的类型。 设计人员可根据需要选用相应的数据库设计建模工具。例如需求分析完成之后,设计人员可以使用Erwin画ER图,将ER图转换为关系数据模型,生成数据库结构;画数据流图,生成应用程序。 ERwin是现在被广泛使用的数据模型设计软件,IDEF

12、1X用来建立信息模型的标准。物理模型基于逻辑模型,ERwin同时支持逻辑模型和物理模型视图的设计。同时,ERwin可以产生所有的用来创建数据库的DDL脚本. 4.2 IDEF1X 方法 下面的关系图描述最常用的IDEF1X表达式协定: 4.3 物理数据库数据字典 使用ERwin来对物理数据库数据字典进行维护。在属性定义编辑器中输入属性定义 。然后你就可以从ERwin中生成报表,把它们放到word 文档中,在属性报表中,将包括属性名字,数据类型,Null/Not Null和主/外键选项。把实体和属性定义放到一个一个文档中是很困难的,所以在不同的报表中创建它们. 4.4 性能设计 作为一个常规的规

13、则,在一个具有标识列(identity property)的列上定义一个主键。这使与之存在关系的表有一个窄的行宽,从而使同一数据页中能被存储更多的数据行,因此相同条件下将会有更少的描描操作。 定义聚集主键,这将会使二级索引占用较少空间。 在外键上创建索引。 不要使用过多的索引,要确认你知道哪个索引将被使用。 确认对应表存在统计信息。同时在数据库中打开Auto Generate Stats 和 Auto create stats 选项。在一个只读的数据库中,我们可能需要手动的创建统计信息. 在一个只读的数据库或者是很少被更改的数据库中使用100%的索引填充率。 SELECT语句中,在非事务和特别

14、的完整性要求的上下文中,要使用Table HintsWITH NOLOCK 5命名协定 5.1 数据库命名原则及版本控制 5.1.1数据库命名原则 数据库命名要遵从以下命名原则: 表意性原则:数据库命名本着表意性原则,即命名应尽量反映存储/action/view/column的数据内容。 长名原则:很少使用或者不使用缩写,适用于DB命名之外的任一对象 数目最少化原则:数据库对象应该尽量满足数据最小化原则,也就是数据库数目,存储过程,视图等数量最小化。 5.1.2 数据库版本控制 当由于多个版本的应用系统同时存在或者是其它特殊原因而使用完成相似的功能的对象存在同时存在时,使用版本控制:版本号在对象名的后面加上_v1 如: Up_IM_DailyUsageStatsUpdate_v2 Up_IM_CustomerGetUsingLastName_v2 5.2 Server/命名实例的命名 基于Domain命名, DOMAIN 的粒度,可分为三级 ,分别是Server级别,Database级别和表的前缀级别。此为第一级

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号