当前位置:文档之家› MYSQL开发规范最新版

MYSQL开发规范最新版

MYSQL开发规范最新版
MYSQL开发规范最新版

MYSQL开发规范

修订历史记录

目录

MYSQL开发规范 (1)

1. 引言 (3)

1.1背景及目的 (3)

1.2适用范围 (3)

2. 数据库对象命名规范 (3)

2.1原则 (3)

2.2命名规范 (3)

3.数据库对象设计规范 (7)

3.1 存储引擎的选择 (7)

3.2 字符集的选择 (7)

3.3 数据库设计规范 (7)

3.4 表设计规范 (7)

3.5 字段设计规范 (8)

3.6 索引设计规范 (9)

3.7 约束设计规范 (10)

4. SQL编写规范 (10)

4.1 数据类型转换规范 (10)

4.2 SELECT * 使用规范 (11)

4.3 字段上使用函数使用规范 (12)

4.4 表连接规范 (12)

4.5 分页查询规范 (13)

4.6 从库多SQL线程复制规范 (13)

4.7 随机取数规范 (14)

4.8 其他规范 (14)

5. 高效的设计模型 (15)

5.1 设计原则说明 (15)

5.2正则化与非正则化的选择 (17)

5.3表容量设计和数据切分 (18)

5.4索引设计 (21)

6.SQL优化指导 (32)

6.1select子句优化方法 (32)

6.2join联接的优化方法 (39)

6.3数据更新语句优化 (40)

6.4子查询优化 (42)

6.5优化器相关explain以及常用hint介绍 (45)

7.常用函数 (51)

7.1字符串函数 (51)

7.2日期函数 (51)

7.3类型转换函数 (52)

第一条1. 引言

1.1背景及目的

随着漫道金服业务的发展,使用MySQL数据库的系统和应用数量不断扩大,为了提高数据库效率,实现标准化开发及便于数据库的统一管理,制定本规范。

1.2适用范围

本规范适用于漫道金服所有与MySQL相关的开发人员、数据库管理员与运营人员。第二条2. 数据库对象命名规范

命名规范是指数据库对象如数据库(SCHEMA)、表(TABLE)、索引(INDEX)、约束(CONSTRAINTS)等的命名约定。

2.1原则

?命名使用具有意义的英文词汇,词汇中间以下划线分隔。

?命名只能使用英文字母、数字、下划线。

?避免用MySQL的保留字如:call、group等。

?所有数据库对象使用小写字母。

2.2命名规范

2.2.1 数据库命名规范

?数据库名不能超过30个字符。

?数据库命名必须为项目英文名称或有意义的简写。

?数据库创建时必须添加默认字符集和校对规则子句。默认字符集为UTF8。

示例见设计规范。

?命名应使用小写。

2.2.2 表命名规范

?同一个模块的表尽可能使用相同的前缀,表名称尽可能表达含义。

?多个单词以下划线(_)分隔。

?表名不能超过30个字符。

?普通表名以t_开头,表示为table,命名规则为t_模块名(或有意义的

简写)_+table_name。

?临时表(运营、开发或数据库人员临时用作临时进行数据采集用的中间表)

命名规则:加上tmp前缀和8位时间后缀(tmp_test_user_20130501)。

?备份表(运营、开发或数据库人员备份用作保存历史数据的中间表)命名

规则:加上bak前缀和8位时间后缀(bak_test_user_20130501)。

?命名应使用小写。

2.2.3 字段命名规范

?字段命名需要表示其实际含义的英文单词或简写,单词之间用下划线(_)

进行连接。

?各表之间相同意义的字段必须同名。

?字段名不能超过30个字符。

?常用约定:

序号列字段:以id后缀,如:user_id表示用户编号。

编码字段:以code后缀,如:cust_code表示客户编码。

时间字段:

1)精确到日的字段,以_date作为后缀。如:open_date表示开户日期。

2)精确到秒或毫秒的,以_time作为后缀。如:register_time表示注册时间。

布尔值字段:命名以“is_”前缀+字段描述。如member表上表示为enabled 的会员的列命名为is_enabled。

?命名应使用小写。

2.2.4 视图命名规范

?视图名以v_模块名开头,表示view。

?视图由几个表关联产生就用下划线(_)连接几个表名,视图名不能超过

30个字符。如超过30个字符则取简写。

?如无特殊需要,严禁开发人员创建视图。

?命名应使用小写。

2.2.5 存储过程命名规范

?存储过程名以proc_开头,表示procedure。之后多个单词以下划线(_)

进行连接。存储过程命名中应体现其功能。存储过程名不能超过30个字

符。

?存储过程中的输入参数以i_开头,输出参数以o_开头。

?命名应使用小写。

2.2.6 函数命名规范

?函数名以func_开头,表示function。之后多个单词以下划线(_)进行

连接,函数命名中应体现其功能。函数名不能超过30个字符。

?函数中输入参数以i_开头,输出参数以o_开头。

?命名应使用小写。

2.2.7 触发器命名规范

?触发器以tri_开头,表示trigger。

?基本部分,描述触发器所加的表,触发器名不能超过30个字符。

?后缀(_i,_u,_d),表示触发条件的触发方式(insert,update或delete)。

?如无特殊需要,严禁开发人员使用触发器。

?命名应使用小写。

2.2.8 索引命名规范

?二级(辅助)索引以idx_开头,唯一索引以uidx_开头。后面紧跟索引所

在的字段名。如要在id列上添加二级索引,则应为idx_id。

?多单词组成的列名,取尽可能代表意义的缩写,如test_contact表

member_id和friend_id上的组合索引:idx_mid_fid。

?组合索引命名应注意字段顺序。如在字段member和字段userid上创建组

合索引,则可以命名为idx_userid_member(‘userid’,‘member’)

?命名应使用小写。

MySQL数据库开发规范1.3

平安金融科技数据库(MySQL)开发规范 作者: 简朝阳 Last Updated: 25/02/14 19:30:18 历史修订记录: 版本修订人修订时间修订内容 1.0 1.1 李海军2013-03-11 增加部分说明及修改 1.2 李海军2013-07-29 增加连接池使用说明和memory引擎的控制 1.3 李海军2014-02-25 增加了char类型,修改了timestamp的使用场合。 说明 ?本规范包含平安金融科技使用MySQL 数据库时所需要遵循的所有对象设计(数据库,表,字段),所需要遵循的命名,对象设计,SQL 编写等的规范约定。 ?所有内容都为必须严格执行的项目,执行过程中有任何疑问,请联系DBA Team 取得帮助。 概述 ?禁止明文传播数据库帐号和密码。 ?禁止开发工程师通过应用帐号登录生产数据库。 ?禁止应用在服务器安装MySQL客户端(可以安装开发包)。 ?禁止开发人员在SQL中添加Hint,Hint只能由DBA审核后添加。 ?禁止使用悲观锁定,即读锁select … for update。 ?禁止在开发代码中使用DDL语句,比如truncate,alter table … 等。 ?禁止DML语句的where条件中包含恒真条件(如:1=1)。

1. 命名规范 总则 ?数据库对象名仅可包含小写英文字母、数字、下划线(_)三类字符,并以英文字母开头。 ?数据库对象命名禁止使用MySQL保留字。 ?多个单词之间用下划线(_)分隔。 ?对象名称长度若超过限制,则使用简写/缩写命名。 1.1. 数据库命名 ?数据库以"db_"前缀+ "站点名_"前缀及其所服务的应用名称命名。 1.2. 表命名 ?所属同一模块的表必须以模块名作为前缀命名。 ?历史数据表在原表基础上增加"_his"后缀命名。 1.3. 字段命名 ?布尔意义的字段以"_flag"作为后缀,前接动词。如:表示逻辑删除意义的字段可命名为delete_flag。 ?各表间相同意义的字段(如:作为连接关系的引用字段)使用相同的字段名。 1.4. 索引命名 ?唯一索引以uk_tablename_columnnames 方式命名 ?普通索引以idx_tablename_columnnames 方式命名 ?组合索引以idx_tablename_column1_column2... 方式命名 示例 ?站点名:maymay ?模块名:order ; ?数据表:item; ?字段组成:order_item_id,add_time,raw_update_time,c1,c2,c3,c4,c5 ?标准数据库名:db_maymay_order; ?标准数据表名:order_item; ?历史数据表名:order_item_his;

MYSQL开发规范

MySQL DB规范

目录 简介 (3) 目的 (3) 适用范围 (3) 数据库设计 (3) 引擎及版本选择 (3) 基础规范 (3) 命名规范 (5) 库表设计规范 (5) 字段设计 (6) 常用数据类型: (6) 数据类型使用建议: (6) 索引规范 (8) 索引准则 (8) 索引禁忌 (8) 不使用外键 (9) SQL设计 (10)

简介 介绍在使用mysql中各种注意事项和优化细节 目的 供开发人员参考,合理利用MySQL特性,开发出更高效的代码减少后端数据库压力,让整个系统高效稳定运行适用范围 业务数据库使用的是MySQL的数据库。 数据库设计 实现目标:业务功能实现、数据的扩展性、普遍性适用性 业务中80%+的性能优化是来自架构设计的优化 引擎及版本选择 根据业务特性选择合适的存储引擎,默认选择InnoDB存储引擎,原因如下(MyISAM与InnoDB比较): 基础规范 所有库表默认使用INNODB存储引擎,MyISAM适用场景非常少

●库表字符集使用UTF8,原因如下: 使用utf8字符集,如果是汉字,占3个字节,但ASCII码字符还是1个字节;统一不会有转换产生乱码风险;其他地区的用户(美国、印度、台湾)无需安装简体中文支持,就能正常看您的文字,并且不会出现乱码。 UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。 UTF-8的编码规则很简单,只有二条: 1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。 2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。 ●所有表和字段都需要添加注释,以方便其它开发及dba了解 ●单表数据量纯int型建议控制在1000w以内,含char型的建议500w以内,行平均长度控制在16KB以内, 单表20GB以内 ●不在数据库中存储图片、文件等大数据.原因如下: 1、对数据库的读写速度永远赶不上文件系统的处理速度 2、数据库备份会变的很臃肿,备份很耗时间 3、对文件的访问需要通过你的应用和数据库 ●临时短命数据尽量不要存到数据库中,建议存放于前端的memcache、redis等nosql中,减少后端数据库压 力 ●禁止在线上做压力测试 ●禁止从测试、开发环境直接连接线上数据库 ●用数据库来持久化存储以及保证事务一致性,不是运算器,在应用层实现计算 ●读写分离,主库只写和少量实时读取请求,使用从库来查询。 ●采用队列方式合并多次写请求,持续写入避免瞬间压力 ●超长text/blob进行垂直拆分,并先行压缩 ●冷热数据进行水平拆分(如6个月前后数据),LRU原则 ●快速更新频繁和大数据表禁止直接运行count(*)统计 ●压力分散,在线表和归档表(日志表)分开存储;不重要的非实时查询日志不要存数据库,以文件方式 在应用端统计分析。 ●禁止明文存储机密数据,需至少两次加密(部分数据可逆运算)

软件工程-数据库设计规范与命名规则

数据库设计规范、技巧与命名规范 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。 数据库设计是指:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据, 满足用户信息要求和处理要求。 数据库设计的各阶段: A、需求分析阶段:综合各个用户的应用需求(现实世界的需求)。 B、在概念设计阶段:形成独立于机器和各DBMS产品的概念模式(信息世界模型),用E-R图来描述。 C、在逻辑设计阶段:将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。 然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。 D、在物理设计阶段:根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 1. 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 需求分析的重点:调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。 需求分析的方法:调查组织机构情况、各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。 常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。 分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下的结构化分析方法(Structured Analysis, 简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。 数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。 2. 概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。 概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一 DBMS 支持的特定数据模型。 概念模型特点: (1) 具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。 (2) 应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。 概念模型设计的一种常用方法为IDEF1X方法,它就是把实体-联系方法应用到语义数据模型中的一种语义模型化技术, 用于建立系统信息模型。 使用IDEF1X方法创建E-R模型的步骤如下所示:

MySQL数据库教案

任务引入[5分钟] 课程介绍[20分钟] 认识数据库 提问:按自己的理解,说说数据库是什么? 展示各类网站 商城网站页面是大家在熟悉不过的了,商城网站上的商品琳琅满目, 让人流连忘返。但是在大家欣赏自己喜爱的商品之余,是否想过商城网站 上的文字信息、图片信息等存放在哪里呢?当大家在商城网站上进行注册 用户时,自己的信息又存在哪里呢?当客户在商城网站上留言的时候,留 言信息又放在哪里了呢?这就是本门课程——《WEB数据库应用》要解决 的问题。 主要让学生明确以下几个问题: 1.明确课程定位与作用 专业基础课,与《程序设计基础》一起,为《网站建设》奠定基础。 同时兼顾计算机二级考试相关内容。通过任务引领型和项目活动形式,掌 握简单的数据库设计、数据管理和维护方法,能进行web服务器的设置, 具备使用web数据库与高级程序设计语言或动态网页结合完成简单程序 开发的基本职业能力。 2.明确课程内容 内容的确定遵循两个原则:一是满足后续课程的基本需求,二是为学 生进一步的学习提供必要的准备。通过对学生就业岗位和用人单位对本专 业毕业生设置的招聘岗位等分析,课程内容应基本包括数据库系统概述、 关系理论、关系数据库查询语言SQL、数据库设计与关系规范化理论、MySQL 数据中管理系统与高级程序设计语言或动态网页技术结合的简单应用。 3.强调学习方法 (1)与以往《计算机基础》、《办公软件应用》在学习方法上不同, 知识与操作的连续性更强,在学习上要坚持一贯,持之以恒。 提问 展示 展示课程 标准、课程 体系图 与教材配 合

新知识[45分钟] (2)课程难度加大,要求大家认真听、认真做,尤其要认真思考。逐渐养成举一反三的习惯、锻炼独立进行逻辑思维的能力。 (3)要学会自学。 (4)要善于和老师沟通。 (5)要学会团队协作。 4.明确考核方式 (1)日常评价 由三个部分组成:出勒(20%)、学习积极主动性(40%)、任务完成情况(40%) (2)终结评价 平时:20% 期中:20% 期末:40% 一、数据库基本概念 请学生回忆从小学——初中——高中——大学,每个期末处理成绩的过程,大部分都有帮助老师统计分数的经历。提问: 1.你用过哪些方式协助老师统计分数? 2.在这个过程中你发现了什么变化?为什么产生这样的变化? 经过充分的讨论发言之后,让学生总结为什么产生数据库技术,并简单说明其发展阶段: 第一代:网状、层次数据库系统 第二代:关系型数据库系统 第三代:以面向对象模型为主要特征的数据库系统 二、数据库基本概念 1.数据 数据是存储在数据库中的基本对象,包括数字、文字、图形、图像和声音等。 2.数据库 数据库简单地说就是存放数据的仓库。这些数据是按照一定的格式存放在计算的存储设备上。

数据库设计和编码规范

数据库设计和编码规范 Version

目录

简介 读者对象 此文档说明书供开发部全体成员阅读。 目的 一个合理的数据库结构设计是保证系统性能的基础。一个好的规范让新手容易进入状态且少犯错,保持团队支持顺畅,系统长久使用后不至于紊乱,让管理者易于在众多对象中,获取所需或理清问题。 同时,定义标准程序也需要团队合作,讨论出大家愿意遵循的规范。随着时间演进,还需要逐步校订与修改规范,让团队运行更为顺畅。 数据库命名规范 团队开发与管理信息系统讲究默契,而制定服务器、数据库对象、变量等命名规则是建立默契的基本。 命名规则是让所有的数据库用户,如数据库管理员、程序设计人员和程序开发人员,可以直观地辨识对象用途。而命名规则大都约定俗成,可以依照公司文化、团队习惯修改并落实。 规范总体要求 1.避免使用系统产品本身的惯例,让用户混淆自定义对象和系统对象或关键词。 例如,存储过程不要以sp_或xp_开头,因为SQL SERVER的系统存储过程以 sp_开头,扩展存储过程以xp_开头。 2.不要使用空白符号、运算符号、中文字、关键词来命名对象。 3.名称不宜过于简略,要让对象的用途直观易懂,但也不宜过长,造成使用不方 便。 4.不用为数据表内字段名称加上数据类型的缩写。 5.名称中最好不要包括中划线。

6.禁止使用[拼音]+[英语]的方式来命名数据库对象或变量。 数据库对象命名规范 我们约定,数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。对象名字由前缀和实际名字组成,长度不超过30。避免中文和保留关键字,做到简洁又有意义。前缀就是要求每种对象有固定的开头字符串,而开头字符串宜短且字数统一。可以讨论一下对各种对象的命名规范,通过后严格按照要求实施。例如:

数据库设计方法、规范与技巧

数据库设计方法、规范与技巧 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。 数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个DBMS产品的概念模式(信息世界模型),用E-R图来描述。在逻辑设计阶段将E-R图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(VIEW)形成数据的外模式。在物理设计阶段根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 1. 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。 需求分析的方法:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。 常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。 分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下的结构化分析方法(Structured Analysis,简称SA方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。 数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。 数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(至少应该包含每个字段的数据类型和在每个表内的主外键)。 数据项描述={数据项名,数据项含义说明,别名,数据类型,长度, 取值范围,取值含义,与其他数据项的逻辑关系} 数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}} 数据流描述={数据流名,说明,数据流来源,数据流去向, 组成:{数据结构},平均流量,高峰期流量} 数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流, 组成:{数据结构},数据量,存取方式} 处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流}, 处理:{简要说明}} 2. 概念结构设计阶段 通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,可以用E-R图表示。概念模型用于信息世界的建模。概念模型不依赖于某一个DBMS支持的数据模型。概念模型可以转换为计算机上某一DBMS支持的特定数据模型。 概念模型特点: (1) 具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识。 (2) 应该简单、清晰、易于用户理解,是用户与数据库设计人员之间进行交流的语言。 概念模型设计的一种常用方法为IDEF1X方法,它就是把实体-联系方法应用到语义数据模型中的一种语义模型化技术,用于建立系统信息模型。 使用IDEF1X方法创建E-R模型的步骤如下所示: 2.1 第零步——初始化工程

全国计算机等级考试二级MySQL数据库程序设计

全国计算机等级考试二级MySQL数据库程序设计考试大纲(2013年版) 基本要求: 1. 初步掌握数据库技术的基本概念、原理、方法和技术; 2. 熟练掌握MySQL 的安装及配置技能; 3. 熟练使用MySQL 平台下的SQL 语言实现数据库的交互操作; 4. 熟悉一种MySQL 平台下的一个应用系统开发的主语言(C/ Perl/ PHP),并初步具备利用该语言进行简单应用系统的开发能力; 5. 掌握MySQL 平台下的数据库管理与维护技术。 考试内容: 一、基本概念与方法 1. DBS 三级(模式、外模式、内模式)结构; 2. DBS 的运行与应用结构(C/ S、B/ S); 3. 关系规范化的基本方法。 二、数据库设计 1. 概念设计; 2. 逻辑设计; 3. 物理设计。 三、SQL 交互操作 利用MySQL 进行数据库表、数据及索引的创建、使用和维护。 四、MySQL 的日常管理 1. MySQL 安装与配置技能; 2. MySQL 的使用及数据访问的安全控制机制; 3. MySQL 数据库的备份和恢复方法; 4. 性能调优技术。 五、MySQL 的应用编程 1. 触发器、事件及存储过程的使用方法; 2. MySQL 平台下的C 语言(或Perl/ PHP)的应用程序编制。 考试方式: 上机考试120 分钟,满分100 分。 上机考试题型及分值: 单项选择题40 分(含公共基础知识部分10 分)、操作题60 分(包括基本操作题、简单应用题及综合应用 题)。

上机考试内容: 1. 考试环境: 数据库管理系统:MySQL 编程语言:C/ Perl/ PHP 2. 在上述环境下完成如下操作: 创建和管理数据库;数据查询;安全管理;数据库备份与恢复;数据导入与导出。 3. 在上述环境下开发C/ S 或B/ S 结构下的一个简单应用系统。

Oracle数据库开发规范

项目编号:××× xxx Oracle数据库开发规范 Oracle DB Development Standardization <部门名称> **年**月**日 文档信息: 文档名称: 文档编号: 文档版本日期: 起草人: 起草日期: 复审人: 复审日期: 版本历史: 版本 日期 作者 更改参考 说明

审批信息: 签字/日期 审核 审批 目录 1 概述 4 1.1 编写目的 4 1.2 文档约定 4 1.3 预期的读者和阅读建议 4 1.4 参考文献 5 2 数据库对象命名 6 2.1 命名总体原则 6 2.2 表名 6 2.3 视图 6 2.4 同义词 6 2.5 序列7 2.6 索引7 2.7 存储过程7 2.8 存储函数8 2.9 存储程序包8 2.10 触发器8 2.11 字段8 2.12 其他9 3 设计规范9 3.1 范围9 3.2 表空间9 3.3 字符集10 3.4 主外键约束10 3.5 分区表10 3.6 RAC下的序列设计10 3.7 字段10 3.8 表结构设计11 3.9 索引设计11 3.10 临时表11 4 SQL编写规范 12 4.1 书写规范12 4.2 SQL语句的索引使用13 4.3 SQL语句降低系统负荷 15 5 PL/SQL编程规范18

5.1 书写规范18 5.2 常用数据库操作语句编码规范19 5.3 常用过程控制结构20 5.4 Condition 21 5.5 Cursor 22 5.6 变量定义与赋值22 5.7 过程与函数调用23 5.8 例外处理(Exception) 23 5.9 例外处理的错误消息24 5.10 注释(Comment) 25 5.11 应用调试控制27 5.12 并发控制27 5.13 代码测试、维护29 1 概述 1.1 编写目的 为规范软件开发人员的Oracle数据库开发提供参考依据和统一标准。 1.2 文档约定 说明本文档中所用到的专用术语定义或解释,缩略词定义。 1.3 预期的读者和阅读建议 本文档适用于所有开发员。 1.4 参考文献 列出有关的参考文件,如: a.属于本项目的其他已发表文件; b.本文件中各处引用的文档资料。 列出这些文件的标题、作者,说明能够得到这些文件资料的来源。 2 数据库对象命名 2.1 命名总体原则 本规范所涉及数据库对象主要是指表、视图、同义词、索引、序列、存储过程、函数、触发器等; 命名应使用富有意义的英文词汇,尽量避免使用缩写,多个单词组成的,中间以下划线分割;避免使用Oracle的保留字或关键字,如LEVEL和TYPE; 各表之间相关列名尽量同名; 除数据库模式对象名称长度为1-8个字符,其余对象名称均要求不超过30个字符; 命名只能使用大写英文字母,数字和下划线,且以英文字母开头。 2.2 表名 规则:XXX_MMM_DDDD 说明:XXX代表子系统或模块名称(2-3个字母构成); MMM代表子模块名称(2-3个字母构成,根据实际情况可以没有); DDDD为表的简称含义,使用英文单词或词组构成,可包括下划线,但不得使用汉语拼音。 示例:PO_HEADERS_ALL 2.3 视图 规则:XXX_MMM_DDDD_V 说明:XXX代表子系统或模块名称(2-3个字母构成);

数据库设计规范

- 茶马古道电子商务有限公司 数据库设计规范 V 1.0 版权所有

文档信息 作者: 创建日期(yyyy-mm-dd): 审核者: 审核日期(yyyy-mm-dd): 最后修订者: 最后修订日期(yyyy-mm-dd): 文档类型: 文档修订历史 版本号修订日期修订者修订内容1.0.0 2011.9.20 金洋初始化

数据库约定 对应于XXXX MYSQL数据库环境的数据库类型定义如下表:1 Development Database 开发环境使用 开发环境数据库 2 Quality Assurance Database 质保环境使用 质保环境数据库 3 Production Database 生产环境使用 生产环境数据库 4 Training Database 培训环境使用 培训环境数据库 5 SIT Database 集成测试环境使用集成测试环境数据库 数据库字符集选择UTF8字符集 (建库时确定) 1. 数据库元素命名规范 长度约定:字段名,表名,视图名称等长度不能超过25个字符1.1. 表命名规范 数据类型数据类型(英文)前缀 主数据Master Data Table TM 业务事务处理数据Transaction Data Table TT 关系表Relationship Table TR 代码列表Code List Table TC 接口表Interface Table TI 系统管理表System administration Table TS 日志表Log Table TL 历史表History Table TH 中间临时表Temparory table TE 汇总表Aggregation Table TA 归档表Archivie Table TZ

Greenplum数据库设计开发规范

G r e e n p l u m数据库设 计开发规范 集团企业公司编码:(LL3698-KKI1269-TM2483-LUI12689-ITT289-

目录

第一章前言 1.1文档目的 随着Greenplum数据库的正式上线使用。为了保证Greenplum 数据仓库系统平台的平稳运行,保证系统的可靠性、稳定性、可维护性和高性能。特制定本开发规范,以规范基于Greenplum数据库平台的相关应用开发,提高开发质量。 1.2预期读者 Greenplum数据仓库平台应用的设计与开发人员; Greenplum 数据仓库平台的系统管理人员和数据库管理员; Greenplum 数据仓库平台的运行维护人员; 1.3参考资料 参考Greenplum4.3.x版本官方指引: 《GPDB43AdminGuide.pdf》 《GPDB43RefGuide.pdf》 《GPDB43UtilityGuide.pdf》

第二章设计规范 2.1数据库对象数量 数据库对象类型包括数据表、视图、函数、序列、索引等等,在Greenplum数据库中,系统元数据同时保存在Master 服务器和Segment 服务器上,过多的数据库对象会造成系统元数据的膨胀,而过多的系统元数据造成系统运行逐步变慢;同时,类似数据库的备份、恢复、扩容等较大型的操作都导致效率变慢。因此,依据GreenplumDB产品的最佳时间,单个数据库的对象数量,应控制在10万以内。 GP数据库的对象包括:表、视图、索引、分区子表、外部表等。 如果数据表的数量太多,建议按应用域进行分库,尽量将单个数据库的表数量控制在10万以内,可以在一个集群中创建多个数据库。 【备注】:在Greenplum数据库中,一张分区表,在数据库中存储为一张父表、每张分区子表都是一张独立的库表;例如:一张按月进行分区的存储一年数据的表,如果含默认分区,共14张表。 2.2表创建规范 为了避免数据库表数量太多,避免单个数据表的数据量过大,给系统的运行和使用带来困难,在Greenplum数据库中需遵循如下的表创建规范: 1、GP系统表中保存的表名称都是以小写保存。通常SQL语句中表名对大小写不敏感。但不允许在建表语句中使用双引号(“”)包括表

数据库设计格式规范

1) 标准化和规范化 数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但Third Normal Form(3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,遵守3NF 标准的数据库的表设计原则是: “One Fact in One Place”即某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。表之间的关系通过外键相连接。它具有以下特点:有一组表专门存放通过键连接起来的关联数据。 举例:某个存放客户及其有关定单的3NF 数据库就可能有两个表:Customer和Order。Order表不包含定单关联客户的任何信息,但表内会存放一个键值,该键指向Customer表里包含该客户信息的那一行。 事实上,为了效率的缘故,对表不进行标准化有时也是必要的。 2) 数据驱动 采用数据驱动而非硬编码的方式,许多策略变更和维护都会方便得多,大大增强系统的灵活性和扩展性。 举例,假如用户界面要访问外部数据源(文件、XML 文档、其他数据库等),不妨把相应的连接和路径信息存储在用户界面支持表里。还有,如果用户界面执行工作流之类的任务(发送邮件、打印信笺、修改记录状态等),那么产生工作流的数据也可以存放在数据库里。角色权限管理也可以通过数据驱动来完成。事实上,如果过程是数据驱动的,你就可以把相当大的责任推给用户,由用户来维护自己的工作流过程。 3) 考虑各种变化 在设计数据库的时候考虑到哪些数据字段将来可能会发生变更。 举例,姓氏就是如此(注意是西方人的姓氏,比如女性结婚后从夫姓等)。所以,在建立系统存储客户信息时,在单独的一个数据表里存储姓氏字段,而且还附加起始日和终止日等字段,这样就可以跟踪这一数据条目的变化。 2.数据库涉及字符规范 采用26个英文字母(区分大小写)和0-9这十个自然数,加上下划线'_'组成,共63个字符.不能出现其他字符(注释除外). 注意事项: 1) 以上MYSQL数据库命名都不得超过30个字符的系统限制.变量名的长度限制为 29(不包括标识字符@). 2) 数据对象、变量的命名都采用英文字符,禁止使用中文命名.绝对不要在对象名的字符之间留空格. 3) 小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突 5) 保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性.假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了.

MySQL数据库开发规范精编WORD版

M y S Q L数据库开发规 范精编W O R D版 IBM system office room 【A0816H-A0912AAAHH-GX8Q8-GNTHHJ8】

平安金融科技数据库(MySQL)开发规范 作者: 简朝阳 Last Updated: 25/02/14 19:30:18 历史修订记录: 修订时间修订内容 版本修订人 1.0 1.1李海军2013-03-11增加部分说明及修改 1.2李海军2013-07-29增加连接池使用说明和memory引擎的控制 增加了char类型,修改了timestamp的使用 1.3李海军2014-02-25 场合。 说明 本规范包含平安金融科技使用 MySQL 数据库时所需要遵循的所有对象设计(数据库,表,字段),所需要遵循的命名,对象设计,SQL 编写等的规范约定。 所有内容都为必须严格执行的项目,执行过程中有任何疑问,请联系 DBA Team 取得帮助。

概述 禁止明文传播数据库帐号和密码。 禁止开发工程师通过应用帐号登录生产数据库。 禁止应用在服务器安装MySQL客户端(可以安装开发包)。 禁止开发人员在SQL中添加 Hint,Hint只能由DBA审核后添加。 禁止使用悲观锁定,即读锁select … for update。 禁止在开发代码中使用DDL语句,比如 truncate,alter table … 等。 禁止DML语句的where条件中包含恒真条件(如:1=1)。 1. 命名规范 总则 数据库对象名仅可包含小写英文字母、数字、下划线(_)三类字符,并以英文字母开头。 数据库对象命名禁止使用MySQL保留字。 多个单词之间用下划线(_)分隔。 对象名称长度若超过限制,则使用简写/缩写命名。 1.1. 数据库命名 数据库以"db_"前缀 + "站点名_"前缀及其所服务的应用名称命名。

数据库设计规范

保密级别:□绝密□机密□秘密■内部公开 数据库设计规范

变更记录

目录 1 编写目的 (1) 2 数据库策略 (1) 2.1 数据库对象长度策略 (1) 2.2 数据完整性策略 (1) 2.3 规范化设计与性能之间的权衡策略 (1) 2.4 字段类型的定义与使用策略 (1) 3 命名规范 (3) 3.1 数据库命名规则 (3) 3.2 数据库对象命名的一般原则 (4) 3.3 表空间(Tablespace)命名规则 (4) 3.4 表(Table)命名规则 (4) 3.5 字段命名规则 (5) 3.6 视图(View)命名规则 (5) 3.7 序列(Sequence)命名规则 (5) 3.8 存储过程(Procedure)的命名规则 (5) 3.9 函数(Function)的命名规则 (5) 3.10 索引(Index) 命名规范 (5) 3.11 约束(Constraint) 命名规范 (5) 4 数据模型产出物规范 (5) 附录A:xml文件使用说明 (7) 附录B:保留关键字 (8)

可编辑 1编写目的 本文的目的是提出针对Oracle数据库的设计规范,使利用Oracle数据库进行设计开发的系统严格遵守本规范的相关约定,建立统一规范、稳定、优化的数据模型。 参照以下原则进行数据库设计: 1)方便业务功能实现、业务功能扩展; 2)方便设计开发、增强系统的稳定性和可维护性; 3)保证数据完整性和准确性; 4)提高数据存储效率,在满足业务需求的前提下,使时间开销和空间开销达到优化平衡。 2数据库策略 1)数据模型全局单一,所有公共的数据模型得到共享。 2)数据库建模要基于统一的元数据管理机制。 3)数据库设计遵循关系数据库的规范化理论。 4)OLTP与OLAP分开设计。 2.1数据库对象长度策略 数据库字段的长度要考虑业务对象的类型、数据库所用字符集、时间格式来设定出相对准确的长度,满足业务需要,同时保证数据库的高效,避免不必要的开销。 2.2数据完整性策略 1)必须遵循数据库设计的第二范式,根据业务需要尽量满足第三范式。 2)数据完整性尽量通过业务逻辑实现,数据库设计应尽量避免使用大量的外键约束,避免使用触发 器。 2.3规范化设计与性能之间的权衡策略 数据的标准化有助于消除数据库中的数据冗余。如果数据冗余低,数据的一致性容易得到保证,如无特殊理由,OLTP系统的设计应当遵循第三范式,对于OLAP系统,为了减少表间连接查询的操作,提高系统的响应时间,合理的数据冗余是必要的。 2.4字段类型的定义与使用策略 1)数据类型的选用原则 精品

数据库设计文档

DR-RD-020(V1.1) Xxx系统 数据库设计说明书 (内部资料请勿外传) 编写:日期: 检查:日期: 审核:日期: 批准:日期: XX公司 版权所有不得复制

XXX系统 (1) 数据库设计说明书 (1) 1引言 (2) 1.1编写目的 (2) 1.2术语表 (2) 1.3参考资料 (3) 2数据库环境说明 (3) 3数据库的命名规则 (4) 4逻辑设计 (4) 5物理设计 (5) 5.1表汇总 (5) 5.2表[X]:[XXX表] (5) 5.3视图的设计 (7) 5.4存储过程、函数及触发器的设计 (7) 6安全性设计 (7) 6.1防止用户直接操作数据库的方法 (7) 6.2用户帐号密码的加密方法 (8) 6.3角色与权限 (8) 7优化 (8) 8数据库管理与维护说明 (8) 一、引言 1.1 编写目的 例如:本文档是xx系统概要设计文档的组成部分,编写数据库设计文档的目的是:明确数据库的表名、字段名等数据信息,用来指导后期的数据库脚本的开发,本文档遵循《xx 数据库设计和开发规范》。本文档的读者对象是需求人员、系统设计人员、开发人员、测试人员。 1.2 术语表

1.3 参考资料 列出有关资料的名称、作者、文件编号或版本等。参考资料包括:a.需求说明书、架构设计说明书等; b.本项目的其他已发表的文件; 二、需求规约 提示:本部分完成此数据库系统业务描述和需求分析 2.1 业务描述 提示:本部分完成此数据库系统的业务描述,例如: (1)数据库系统创建的背景 (2)数据库系统要解决的问题 (3)数据库系统要完成的业务流程及工作内容 (4)揭示该数据库的资源需求和设计约束 2.2 需求分析 提示:本部分完成此数据库系统的需求分析,例如: (1)分析该业务流程的内在联系 (2)业务流程各个节点的依赖关系在数据上的反映 (3)揭示创建此数据库系统的目的、目标、已知条件 (4)将业务流程节点抽象成数据库对象

MYSQL数据库命名及设计规范

MYSQL数据库命名及设计规范 1.设计原则 1)标准化和规范化 数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但Third Normal Form(3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。简单来说,遵守3NF标准的数据库的表设计原则是:“One Fact in One Place”即某个表只包括其本身基本的属性,当不是它们本身所具有的属性时需进行分解。表之间的关系通过外键相连接。它具有以下特点:有一组表专门存放通过键连接起来的关联数据。 举例:某个存放客户及其有关定单的3NF数据库就可能有两个表:Customer和Order。Order表不包含定单关联客户的任何信息,但表内会存放一个键值,该键指向Customer表里包含该客户信息的那一行。 事实上,为了效率的缘故,对表不进行标准化有时也是必要的。 2)数据驱动 采用数据驱动而非硬编码的方式,许多策略变更和维护都会方便得多,大大增强系统的灵活性和扩展性。 举例,假如用户界面要访问外部数据源(文件、XML文档、其他数据库等),不妨把相应的连接和路径信息存储在用户界面支持表里。还有,如果用户界面执行工作流之类的任务(发送邮件、打印信笺、修改记录状态等),那么产生工作流的数据也可以存放在数据库里。角色权限管理也可以通过数据驱动来完成。事实上,如果过程是数据驱动的,你就可以把相当大的责任推给用户,由用户来维护自己的工作流过程。 3)考虑各种变化 在设计数据库的时候考虑到哪些数据字段将来可能会发生变更。 举例,姓氏就是如此(注意是西方人的姓氏,比如女性结婚后从夫姓等)。所以,在建立系统存储客户信息时,在单独的一个数据表里存储姓氏字段,而且还附加起始日和终止日等字段,这样就可以跟踪这一数据条目的变化。 2.数据库涉及字符规范 采用26个英文字母(区分大小写)和0-9这十个自然数,加上下划线'_'组成,共63个字符.不能出现其他字符(注释除外). 注意事项: 1)以上命名都不得超过30个字符的系统限制.变量名的长度限制为29(不包括标识字符@). 2)数据对象、变量的命名都采用英文字符,禁止使用中文命名.绝对不要在对象名的字符之间留空格. 3)小心保留词,要保证你的字段名没有和保留词、数据库系统或者常用访问方法冲突 5)保持字段名和类型的一致性,在命名字段并为其指定数据类型的时候一定要保证一致性.假如数据类型在一个表里是整数,那在另一个表里可就别变成字符

SQLserver数据库设计及开发规范

LMS项目数据库设计 及使用规

在本项目中,数据库的设计和使用必须遵循以下原则: 1命名原则 1.1约定: Pascal Casing命名方式: 1.每一个单词的第一个字母大写,例如:B ank N ame。 2.常用单词缩写三个字母以下字母都大写,例如:SP、PG 3.常用单词缩写三个字母以上第一个字母大写,例如:Xml 1.2表名和字段 规则如下: ?使用英文单词或词组作为表名,不得使用汉语拼音,建立一个中英文对照字典。 ?用名词和名词短语作表名 ?不使用复数,除非与数据库保留字冲突 ?用Pascal 命名规则 ?尽量谨慎地使用缩写 ?尽量不要和关键字重合 ?不要用任何名前缀(例如U,B) ?数据库对象名称不使用下划线 正确的命名,例如: Users Order Product 1.3存储过程 规则如下: 命名规则为up_xxx_StoredProcedureName,up表示User Procedure,用来区分它和系统存储过程,xxx表示子系统的名称,由三个字母构成,各个子系统参见下表,StoredProcedureName为存储过程含义 StoredProcedureName规则如下: ?用动词或动词短语来命名,并带有宾语 ?需要符合用Pascal 命名规则。 ?尽量谨慎地使用缩写 ?尽量不要和关键字重合

?不要用任何名前缀(例如U,B) ?StoredProcedureName不使用下划线 ?当操作依赖条件时,一般结尾使用By+条件 存储过程正确的命名,例如: Up_Usr_InsertUser Up_Usr_SearchUserByUserID Up_Usr_DeleteUserByUserID 各个子系统的缩写如下: 1.4视图 规则如下: ?视图的命名采用vw ViewName的格式,其中vw前缀表示视图,ViewName部分表示视图的含义。 ViewName规则如下: ?用名词和名词短语, ?不使用复数 ?用Pascal 命名规则 ?尽量谨慎地使用缩写 ?尽量不要和关键字重合 ?不要用任何名前缀(例如U,B) ?ViewName中不使用下划线 视图正确的命名,例如: vwUser vwUserOrder vwTranscation 视图错误的命名,例如: UserView vw_Transcation_View

研发部门数据库管理规范标准[详]

版/次:2015.11.19 数据库管理规 编制:钱凌杰 审核: 批准: 分发号: XXX信息科技 2015年11月

目录 一、总则 (4) 二、适用围 (4) 三、数据库管理员主要职责 (4) 四、数据库的日常管理工作 (4) 4.1每日的管理工作 (4) 4.2数据库管理的每月工作 (5) 4.3数据库管理的每年工作 (5) 五、数据库的安全管理 (6) 5.1数据库环境安全 (6) 5.2数据库系统安装、启动与更新时的安全规定 (6) 5.3安全和口令策略 (7) 5.4访问控制 (9) 5.5紧急事故的处理 (9) 5.6数据库文件管理 (10) 5.7数据库安全管理 (10) 六、备份与恢复 (10) 6.1备份方式及策略 (11) 6.2备份要求 (11) 6.3恢复的管理 (12) 6.4对长期保存的备份进行校验 (13) 6.5异地容灾备份 (13) 七、日志及监控审计 (13) 7.1审计围 (13) 7.2日志保存 (13) 7.3日志访问 (14) 7.4安全审计 (14) 八、数据存放、归档管理 (14) 九、附则 (15)

一、总则 为规XXX信息科技(以下简称“公司”)信息系统的数据库管理和配置方法,保障信息系统稳定安全地运行,特制订本办法。 二、适用围 本规中所定义的数据管理容,特指存放在信息系统数据库中的数据,对于存放在其他介质的数据管理,参照相关管理办法执行。 三、数据库管理员主要职责 1、负责对数据库系统进行合理配置、测试、调整,最大限度地发挥设备资源优势。负责数据库的安全运行。 2、负责定期对所管辖的数据库系统的配置进行可用性,可靠性,性能以及安全检查。 3、负责定期对所管辖的数据库系统的可用性,可靠性,性能以及安全的配置方法进行修订和完善。 4、负责对所管辖的数据库系统运行过程中出现的问题及时处理解决。 5、负责对所管辖数据库系统的数据一致性和完整性,并协助应用开发人员、使用操作等相关人员做好相关的配置、检查等工作。 6、负责做好数据库系统及数据的备份和恢复工作。

数据库设计规范范文

数据库设计规范

MySQL数据库设计规范

目录 1.规范背景与目的 (4) 2.设计规范 (4) 3.1 数据库设计 (4) 3.2.1 库名 (4) 3.2.2 表结构 (5) 3.2.3列数据类型优化 (7) 3.2.4 索引设计 (10) 3.2.5 分库分表、分区表 (10) 3.2.6 字符集 (11) 3.2.7程序DAO层设计建议 (12) 3.2.8一个规范的建表语句示例 (13) 3.2 SQL编写 (14) 3.2.1 DML语句 (14) 3.2.2 多表连接 (17) 3.2.3 事务 (17) 3.2.4 排序和分组 (18) 3.2.5 线上禁止使用的SQL语句 (19)

1.规范背景与目的 MySQL数据库与oracle、sqlserver等数据库相比,有其内核上的优势与劣势。我们在使用MySQL数据库的时候需要遵循一定规范,扬长避短。本规范旨在帮助或指导RD、QA、OP等技术人员做出适合线上业务的数据库设计。在数据库变更和处理流程、数据库表设计、SQL编写等方面予以规范,从而为公司业务系统稳定、健康地运行提供保障。 2.设计规范 3.1 数据库设计 以下所有规范会按照【高危】、【强制】、【建议】三个级别进行标注,遵守优先级从高到低。 对于不满足【高危】和【强制】两个级别的设计,DBA会强制打回要求修改。 3.2.1 库名 1. 【强制】库的名称必须控制在32个字符以内,相关模块的表名与表名之间尽量提现join的关系,如user表和user_login 表。 2. 【强制】库的名称格式:业务系统名称_子系统名,同一模块

相关主题
文本预览
相关文档 最新文档