看完了《C语言编程规范》,代是雄接着看《数据库编程规范》。之前赖科长和邹总都说过,本项目组开发主要涉及到的技术就是C语言和数据库,既然有了C语言的编程规范,那么就会有对应的数据库的编程规范。顺便说一下,在很多项目组中,大家都将数据库文件称之为脚本文件。
遥想自己的在校生活,代是雄在本科的时候根本没有接触过数据库,只是听人说过有SQL这样一种编程语言存在;在研究生阶段,代是雄选修过一门叫做“高级数据库技术”的课程,但这门课只是涉及到数据库相关的理论知识,几乎没有具体的程序编写相关的内容。这下看到了数据库的编程规范文档,代是雄反而觉得有点莫名的紧张了。
不管如何,“箭在弦上,不得不发”,既然以后要用这个技术了,那么摆在眼前的就只有一条路,那就是学习。打开文档之后,代是雄发现这个规范文档也有40余页,共8章内容,包括:基本原则、文件命名及脚本内容、脚本中代码布局、注释、命名规则、DDL语句基本规范、DML语句基本规范和数据库的维护规则。
第一章“基本原则”涉及到数据库编程的一些基本原则和指导思想。同C语言编程一样,数据库编程仍然要遵循一定的规则,这些规则主要包括:1)首先是为人编写数据库程序,其次才是计算机;2)保持代码的简明清晰,避免过分的编程技巧;3)数据库编程时必须重点考虑效率;4)尽可能复用和修正老的代码;5)尽量减少同样的错误的出现次数;6)坚持零缺陷的开发思想,杜绝脚本文件中出现低级错误。正所谓“大道至简”,上述这些原则虽然看起来比较的简单,也似乎是一些常识性的东西,但却为数据库开发提供了参照。
第二章“文件命名及脚本内容”涉及到脚本文件的命名及脚本内容的规范。脚本文件的合理命名增加了脚本文件的可读性和可维护性,脚本内容的正确编译执行是数据库编程的基础,各脚本文件的内容规范是项目产品稳定的基础。具体而言,项目产品中各模块的脚本命名和内容要统一规划,防止定义的数据库对象冲突。也就是说,在编写具体的脚本内容之前,我们要明白脚本文件该怎样命名,内容该如何规划和布局。
第三章“脚本中代码布局”涉及到具体的数据库代码的布局规则。规范脚本文件的代码布局的目的是使得脚本具备良好的逻辑结构,以提高脚本的准确性、连续性、可读性和可维护性,更重要的在于提高产品的开发质量和效率,降低开发成本。同时,对于每个开发人员来讲,养成良好的脚本编写习惯有助于提高自己的数据库脚本编程水平,提高脚本编程效率。因此,统一的、良好的脚本代码布局和风格不仅仅是个人主观美学或形式上的问题,而且影响到产品的质量,更涉及到个人脚本编程能力的提高。本章的主要内容包括:文件布局、内容基本格式、对齐、空行空格和断行等。
第四章“注释”涉及到脚本文件中注释的书写规则。脚本中的注释有助于理解代码,有效的注释是指在代码的功能、意图层次上进行注释,提供有用的、额外的信息,而不是代码表面意义的简单重复。一些有用的注释的书写规则包括:1)脚本文件头部必须进行注释;2)每段完成一定功能的脚本前(如创建数据表、存储过程、任务、插入缺省记录等),均应有注释说明;3)创建数据表中每个字段后应有注释(说明字段含义);4)保证代码和注释的一致性,修改代码的同时要修改相应的注释,过期的注释要删除;5)注释应与其描述的代码相近,对代码的注释应放在其上方或右方相邻的位置;6)注释与所描述的代码进行同样的缩排;7)尽量避免在注释中使用缩写,特别是不常用的缩写。
第五章“命名规则”涉及到脚本中所有对象的命名规则。命名规则的目的是增加数据库脚本的可读性和可维护性,需要对数据库脚本中的所有对象(包括数据库、表、视图、字段、索引、函数、存储过程、触发器、存储过程中间变量等)的命名做出规范化的约定。一些有用的命名规则包括:1)标识符由26个英文字符、10个数字和下划线组成,不能使用连续的下划线以及在标识符头或结尾使用下划线;2)标识符的命名应当符合“max-information”原则;3)标识符不能使用各种数据库关键字;4)建议存储过程的出参统一用out_开头,而入参统一用in_开头。
第六章“DDL语句基本规范”涉及到DDL(Data Definition Language,数据定义语言)的书写规范。本章对数据库脚本中的常用基本对象表、视图、索引、存储过程、触发器等的定义语法和原则做出了规范。一些有用的规范包括:1)数据类型采用基本数据类型,尽量不要使用某数据库特有的类型;2)建表时,每个创建字段的语句必须单独位于一行,不允许换行或一行多个字段;3)表的主键和外键应建立在业务无关的字段上;4)索引建在选择效率高的字段上,复合索引中选择效率越高的字段越在前面;5)在建表脚本中,当每个表及其索引创建完成之后,要打印语句标识本表已创建完成。
第七章“DML语句基本规范”涉及到DML(Data Manipulation Language,数据操纵语言)的书写规范。DML是指SELECT、UPDATE、INSERT、DELETE四类操作。一些有用的规范包括:1)INSERT语句必须列出字段名;2)DELETE、UPDATE语句必须带WHERE条件;3)除测试语句之外,在正式的脚本中不能使用SELECT * FROM语句,必须列出所要查找的字段,即使是返回所有字段;4)在大批量插入、更新和删除数据时,要分批提交;5)在脚本中要谨慎使用DROP TABLE命令。
第八章“数据库的维护规则”为数据库的日常维护提供了指导和建议。为了保证数据库的平稳运行,在日常工作中必须为数据库做一些基本的维护工作。一些有用的维护规则包括:1)对数据库必须定期进行全量备份;2)对数据库定期进行数据清理,清理前必须完成备份操作;3)定期巡检数据库任务的运行结果日志和数据库最大可用空间。
看完了这个《数据库编程规范》文档,代是雄的收获同样有三:1)数据库编程语言(SQL)同普通的编程语言(如:C语言、JAVA等)一样,也有自己的编写规范;2)对于数据库编程,开发人员不只是要了解相关的编程语言,还要了解数据库的运行原理,还要了解数据库的维护规则,也还要对数据库硬件有所了解;3)由于很多产品相关的重要数据都是放在数据库中的,因此在对数据进行操作的时候要格外小心,不要随意更新或删除一些重要表中的数据。