搜档网
当前位置:搜档网 › 配管数据库常用字段

配管数据库常用字段

名称解释

MEAS_UNITS本字段设置单位类型;“IM”是英制,“ME”是公制,“MM”是混合制,“DN”是DIN。(混合制等级库即公称直径为英制,其它长度数据是公制,DIN规格是公称直径为毫米,其它尺寸都是米。) 由SpecGen生成的元件库和等级库的子目录

(英制,公制,混合制,DIN)须与meas_units字段对应

MAIN_SIZE不能置空。本字段通常就是等径元件的公称直径,但通常是异径元件的大口径端,或是三通的头口径端

RUN_SIZE通常是异径元件的小口径端的公称直径(该字段并不会在所有的Spec里出现)

BRAN_SIZE通常是三通或者四通元件的分支端的公称直径(该字段并不会在所有的Spec里出现)

GTYPE不能置空。部件的总类型名称,英文即是“General Type”。

STYPE部件的子类型名称,英文即是“Sub Type”。例如,阀门的子类有闸阀、控制阀、球阀、旋塞阀等。

RED_1部件代表性地名义上的尺寸。在SpecGen下拉菜单中选择一个适当的英制或公制尺寸,也可以设置为空。T(RED_1字段不会出现在所有的SpecGen表里)

RED_2部件代表性地名义上的异径分枝的尺寸,可设置为空或在SpecGen下拉菜单中选择一个适当的英制或公制尺寸(RED_2字段不会出现在所有的SpecGen表里)

END_COND_1部件端面1的连接形式。设置为空或在SpecGen下拉的END_COND.DBF表里选择一个适当的值。如法兰使用“FL”,其它部件分别使用“SCF”代表螺纹连接,“SWF”代表承插焊,“FL”代表法兰连接是和“BW”代表焊接等

END_COND_2部件端面2的连接形式

END_COND_3部件端面3的连接形式

FACING_1只用于法兰或法兰连接的部件,使用查找表格分配适当的密封面类型。

FACING_2如为空值,AutoPLANT会自动使用FACING_1字段的值来设置部件剩余端或第二端的密封面类型

FACING_3与FACING_2相同

TRIM_1Use this field to input the valve trim information.

TRIM_2If this field is empty then AutoPLANT will use the TRIM_1 field to set the trim type of the second port and the remaining component ports, if any.

TRIM_3See TRIM _2 above.

SCHEDULE管表壁厚号。法兰时设置为空值或在SpecGen下拉菜单SCHEULE表中选择一个适当的值。通常只用于AutoPLANT生成材料报表。

RATING通常只用于法兰和阀门等需要设定压力等级的部件,除了一些小口径的部件。可设置为空值或在SpecGen下拉菜单RATING 表中选择适当的值。

MATERIAL部件的材料,但注意本字段只能填入三个英文字符

MANU_FACT包括三个部件产商的缩写字符

OPTIONCODE SpecGen字段,用于指定部件的默认等级库。可以为空或1。数字1是默认等级库的标记。用户在部件属性对话框中选择默认的等级库标记,AutoPLANT在之后放置部件时会自动寻找默认等级库。

LONG_DESC SpecGen中部件长描述字段,长80字节。用户可以为每个部件输入适当的描述。

SHORT_DESC SpecGen中部件短描述字段,长20字节。用户可以为每个部件输入适当的描述。

WEIGHT_DRY部件重量

REV当前默认设置为“0.0”

SYS_ID不能为空。SpecGen中建立部件时分配的唯一标识,不要修改这个字段。

SORT_CODE材料报表排序号。

SHOP_FLD SpecGen中GEN_COMP表设置为-1.00。FLGJOINT, GASKET, MTUBE, SPACER, STRAINER, VALVBW, VALVFL, VALVSCSW, VLVCNTFL, 和VLVCNTSC表中设置为2.00。其它的表设置为1.00。

PIECE_MARK材料编号。在每个表中使用不同的FoxPro用户函数来自动组成这个值,例如使用GTYPE, STYPE, MAIN_SIZE, and RED_1字段的值。这个函数用户不能自行控制。

ALT_P_MARK备用材料编号。在等级库表中一般为空

CATALOG标准号或者厂商名称

TAG常用于输入元件的数字编号以编译成部件数据库

PIPE_OD_M部件的主管端外径(MAIN)

PIPE_OD_R部件的变径端外径(RUN)

PIPE_OD_B部件的支管端外径(BRANCH)

THD_ENG_M螺纹深度。如果END_COND_1是“SCF”或者“SCM”,则基于部件大小或类型等输入适当的值,或者为空。

(THD_END_M字段不会在所有SpecGen表中出现。)

SKT_DPTH_M承插深度。如果END_COND_1是“SWF”或者“SWM”,则基于部件大小或类型等输入适当的值,或者为空。

(SKT_DTPH_M字段不会在所有SpecGen表中出现。)

THD_ENG_R承插深度。如果END_COND_2是“SWF”或者“SWM”,则基于部件大小或类型等输入适当的值,或者为空。

(SKT_DTPH_M字段不会在所有SpecGen表中出现。)

SKT_DPTH_R承插深度。如果END_COND_2是“SWF”或者“SWM”,则基于部件大小或类型等输入适当的值,或者为空。

(SKT_DTPH_M字段不会在所有SpecGen表中出现。)

OFF_SET偏心距离

COMP_INDX部件的ID用于区分部件。这个值在连接以下字段的值时产生:

Catalog =

GTYPE;STYPE;MAIN_SIZE;RUN_SIZE;BRAN_SIZE;END_COND_1;END_COND_2;END_COND_3;FACING_1;FACING_2;FACING_3;TRIM_1

;TRIM_2;TRIM_3;SCHEDULE;RATING;MATERIAL;MANU_FACT;"

Spec = "GTYPE;STYPE;MAIN_SIZE;RUN_SIZE;BRAN_SIZE;END_COND_1;END_COND_2;END_COND_3;MATERIAL;OPTIONCODE;" MAT_GRADE材料等级字段。Material字段指定部件材料的等级,Mat_Grade字段指定等级的材料

AUDIT当元件库增加一个新的记录时为0,表明该部件没有经过检测。该部件通过测试部门检测后为1。

MODULE_NAME指定部件属于的模块。

CLASS_NAME指定部件属于的类名。由SpecGen基于部件的GTYPE和STYPE生成。

NOTES一般为空。用户可以使用这个字段做部件的注释

数据库设计规范范本

数据库设计规范

1概述 1.1目的 软件研发数据库设计规范作为数据库设计的操作规范,详细描述了数据库设计过程及结果,用于指导系统设计人员正确理解和开展数据库设计。 1.2适用范围 1.3术语定义 DBMS:数据库管理系统,常见的商业DBMS有Oracle, SQL Server, DB2等。 数据库设计:数据库设计是在给定的应用场景下,构造适用的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。 概念数据模型:概念数据模型以实体-关系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库概念级别的设计,独立于机器和各DBMS产品。能够用Sybase PowerDesigner工具来建立概念数据模型(CDM)。 逻辑数据模型:将概念数据模型转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。能够用Sybase PowerDesigner工具直接建立逻辑数据模型(LDM),或

者经过CDM转换得到。 物理数据模型:在逻辑数据模型基础上,根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。能够用Sybase PowerDesigner工具直接建立物理数据模型(PDM),或者经过CDM / LDM转换得到。 2数据库设计原则 按阶段实施并形成该阶段的成果物 一般符合3NF范式要求;兼顾规范与效率 使用公司规定的数据库设计软件工具 命名符合公司标准和项目标准 3数据库设计目标 规范性:一般符合3NF范式要求,减少冗余数据。 高效率:兼顾规范与效率,适当进行反范式化,满足应用系统的性能要求。 紧凑性:例如能用char(10)的就不要用char(20),提高存储的利用率和系统性能,但同时也要兼顾扩展性和可移植性。 易用性:数据库设计清晰易用,用户和开发人员均能容易地理解。

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

数据库设计规范、技巧与命名规范 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。 数据库设计是指:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据, 满足用户信息要求和处理要求。 数据库设计的各阶段: 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模型的步骤如下所示:

数据库表字段命名规范

数据库表字段命名规范 摘要:当前研发工作中经常出现因数据库表、数据库表字段格式不规则而影响开发进度的问题,在后续开发使用原来数据库表时,也会因为数据库表的可读性不够高,表字段规则不统一,造成数据查询,数据使用效率低的问题,所以有必要整理出一套合适的数据库表字段命名规范来解决优化这些问题。 本文是一篇包含了数据库命名、数据库表命名、数据库表字段命名及SQL语言编码的规范文档,针对研发中易产生的问题和常见错误做了一个整理和修改,为日后涉及到数据库相关的研发工作做好准备。 一、数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词用下划线'_'分隔,一个项目一个数据库,多个项目慎用同一个数据库 二、数据库表命名规范 2.1数据表命名规范 (1)采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词用下划线'_'分隔 (2)全部小写命名,禁止出现大写 (3)禁止使用数据库关键字,如:name,time ,datetime,password等(4)表名称不应该取得太长(一般不超过三个英文单词)

(5)表的名称一般使用名词或者动宾短语 (6)用单数形式表示名称,例如,使用employee,而不是employees 明细表的名称为:主表的名称+字符dtl(detail缩写) 例如:采购定单的名称为:po_order,则采购定单的明细表为:po_orderdtl (7)表必须填写描述信息(使用SQL语句建表时) 2.2命名规范 ①模块_+功能点示例:alllive_log alllive_category ②功能点示例:live message ③通用表示例:all_user 2.3待优化命名示例 ①冗余: 错误示例:yy_alllive_video_recomment yy_alllive_open_close_log 说明:去除项目名,简化表名长度,去”yy_” ②相同类别表命名存在差异,管理性差 错误示例:yy_all_live_category yy_alllive_comment_user 说明:去除项目名,统一命名规则,均为”yy_alllive_”开头即可 ③命名格式存在差异 错误示例:yy_showfriend yy_user_getpoints yy_live_program_get

数据库设计方法及

数据库设计方法及命名规范

- - 2 数据库设计方法、规范与技巧 (5) 一、数据库设计过程 (5) 1. 需求分析阶段 (6) 2. 概念结构设计阶段 (9) 2.1 第零步——初始化工程 (10) 2.2 第一步——定义实体 (10) 2.3 第二步——定义联系 (11) 2.4 第三步——定义码 (11) 2.5 第四步——定义属性 (12) 2.6 第五步——定义其他对象和规则 (12) 3. 逻辑结构设计阶段 (13) 4. 数据库物理设计阶段 (15) 5. 数据库实施阶段 (15) 6. 数据库运行和维护阶段 (16) 7.建模工具的使用 (16) 二、数据库设计技巧 (18) 1. 设计数据库之前(需求分析阶段) (18) 2. 表和字段的设计(数据库逻辑设计) (19) 1) 标准化和规范化 (19) 2) 数据驱动 (20)

- - 3 3) 考虑各种变化 (21) 4) 对地址和电话采用多个字段 (22) 5) 使用角色实体定义属于某类别的列 (22) 6) 选择数字类型和文本类型尽量充足 (23) 7) 增加删除标记字段 (24) 3. 选择键和索引(数据库逻辑设计) (24) 4. 数据完整性设计(数据库逻辑设计) (27) 1) 完整性实现机制: (27) 2) 用约束而非商务规则强制数据完整性 (27) 3) 强制指示完整性 (28) 4) 使用查找控制数据完整性 (28) 5) 采用视图 (28) 5. 其他设计技巧 (29) 1) 避免使用触发器 (29) 2) 使用常用英语(或者其他任何语言)而不 要使用编码 (29) 3) 保存常用信息 (29) 4) 包含版本机制 (30) 5) 编制文档 (30) 6) 测试、测试、反复测试 (31) 7) 检查设计 (31) 三、数据库命名规范 (31) 1. 实体(表)的命名 (31) 2. 属性(列)的命名 (34)

MySQL数据库高级查询和多表查询二

机试测试试卷 (MySQL数据库应用与开发) 注意:考试结束试卷必须交Array 回,不交回试卷者成绩无效题目:MySQL 数据库高级查询和多表查询 一、语言和环境 A、实现技术 SQL 语句练习 B、环境要求 Mysql5.7+Navicat 二、实验要求 1、创建名为 s_t 的数据库,参数全部使用 UTF-8 实验目的: 通过上机实验验证数据库的多表的高级查询操作。 实验内容:

1、将s_t数据库还原。 2、在s_t数据库中,完成以下多表连接查询的操作。 (1)查询计算机系学生的修课情况,要求列出学生的名字、所修课的课程号和成绩。 (2)查询“信息管理系”修了“计算机文化学”的学生姓名和成绩。 (3)查询所有选修了Java课程的学生情况,列出学生姓名和所在系。 (4)统计每个系的学生的考试平均成绩。 (5)统计计算机系学生每门课程的选课人数、平均成绩、最高成绩和最低成绩。 (6)查询与刘晨在同一个系学习的学生的姓名和所在的系。 (7)查询与“数据结构”在同一个学期开设的课程的课程名和开课学期。 (8)查询至少被两个学生选的课程的课程号。 (9)查询全体学生的选课情况,包括选修了课程的学生和没有选修课程的学生。 (10)查询没人选的课程的课程名。 (11)查询计算机系没有选课的学生,列出学生姓名和性别。 (12)统计计算机系每个学生的选课门数,包括没有选课的学生。 (13)查询信息管理系选课门数少于3门的学生的学号和选课门数,包括没有选课的学生。查询结果按选课门数递增排序。 (14)查询考试成绩最高的三个成绩,列出学号、课程号和成绩。 (15) 查询Java考试成绩最高的前三名的学生的姓名、所在系和VB考试成绩。 (16)查询选课人数最少的两门课程(不包括没有人选的课程),列出课程号和选课人数。 (17)查询计算机系选课门数超过2门的学生中,考试平均成绩最高的前2名(包括并列的情况)学生的学号、选课门数和平均成绩。 (18)将计算机系的学生信息保存到#ComputerStudent局部临时表中。 (19)将选了Java课程的学生的学号及成绩存入永久表Java_Grade中。 (20)统计每个学期开设的课程总门数,将结果保存到永久表Cno_Count表中 (21)利用例19题生成的新表,查询第2学期开设的课程名、学分和课程总门数。 3、在s_t数据库中,完成以下多表的高级查询操作。 (1)查询选了Java课程的学生的学号、姓名、所在系和成绩,并对所在系进行如下处理:“计算机系”:显示“CS”;“信息管理系”:显示“IM”;“通信工程系”:显示“COM”。(2)查询“C001”课程的考试情况,列出学号和成绩,对成绩进行如下处理:如果成绩大于等于90,则在查询结果中显示“优”;如果成绩在80到89分之间,则在查询结果中显示“良”;如果成绩在70到79分之间,则在查询结果中显示“中”;如果成绩在60到69分之间,则在查询结果中显示“及格”;如果成绩小于60分,则在查询结果中显示“不及格”。 (3)统计每个学生的考试平均成绩,列出学号、考试平均成绩和考试情况,其中考

数据库设计和编码规范

数据库设计和编码规范 Version

目录

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

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

数据库表及字段命名、设计规范

数据库表及字段命名、设计规范1、命名规范 1.1数据表的命名规范: 1)表的前缀应该用系统或模块的英文名的缩写(全部大写或首字母大写)。如果系统功能简单,没有划分为模块,则可以以系统英文名称的缩写作为前缀,否则以各模块的英文名称缩写作为前缀。例如:如果有一个模块叫做BBS(缩写为BBS),那么你的数据库中的所有对象的名称都要加上这个前缀:BBS_ + 数据库对象名称,BBS_CustomerInfo标示论坛模块中的客户信息表。 2)表的名称必须易于理解,使用能表达表功能的英文单词或缩写英文单词,无论是完整英文单词还是缩写英文单词,单词首字母必须大写。如果当前表可用一个英文单词表示的,请用完整的英文单词来表示;例如:系统资料中的客户表的表名可命名为:SYS_Customer。如果当前表需用两个或两个以上的单词来表示时,尽量以完整形式书写,如太长可采用两个英文单词的缩写形式;例如:系统资料中的客户物料表可命名为:SYS_CustItem。 3)表的名称一般使用名词或者动宾短语 4)表名称不应该取得太长(一般不超过三个英文单词)。 5)在命名表时,用单数形式表示名称。例如,使用Employee,而不是Employees。 6)对于有主明细的表来说。明细表的名称为:主表的名称+ 字符Dts。例如:采购定单的名称为:PO_Order,则采购定单的明细表为:PO_OrderDts 对于有主明细的表来说,明细表必须包含两个字段:主表关键字、SN,SN字段的类型为int 型,目的为与主表关键字联合组成明细表的关键字,以及标示明细记录的先后顺序,如1,2,3……。 7)表必须填写描述信息

数据库表设计的几条准则

数据库表设计的几条准则 前言:数据库设计在平时的工作是必不可少的,良好的表设计可以让我们查询效率更高,加快网站访问速度,提升用户体验,并且方便于我们查询数据。本篇博客就来聚焦一下,如何设计出高可复用,优良的表结构,从而在实际的工作中使我们写出更好的代码。 数据库表设计的几条黄金准则: 一:字段的原子性 解释:保证每列的原子性,不可分解,意思表达要清楚,不能含糊,高度概括字段的含义,能用一个字段表达清楚的绝不使用第二个字段,可以用两个字段表达清楚的绝不使用一个 字段 二:主键设计 解释:主键不要与业务逻辑有所关联,最好是毫无意义的一串独立不重复的数字,常见的比如UUID或者将主键设置为Auto_increment; 三:字段使用次数 解释:对于频繁修改的字段(一般是指状态类字段)最好用独立的数字或者单个字母去表示,不用使用汉字或者英文 四:字段长度 解释:建表的时候,字段长度尽量要比实际业务的字段大3-5个字段左右(考虑到合理性和伸缩性),最好是2的n次方幂值。不能建比实际业务太大的字段长度,这是因为如果字段长度过大,在进行查询的时候索引在B- Tree树上遍历会越耗费时间,从而查询的时间会越久;但是绝对不能建小,否则mysql数据会报错,程序会抛出异常; 五:关于外键 解释:尽量不要建立外键,保证每个表的独立性。如果非得保持一定的关系,最好是通过id 进行关联 六:动静分离 解释:最好做好静态表和动态表的分离。这里解释一下静态表和动态表的含义,静态表:存储着一些固定不变的资源,比如城市/地区名/国家。动态表:一些频繁修改的表 七:关于code值 解释:使用数字码或者字母去代替实际的名字,也就是尽量把name转换为code,因为name 可能会变(万一变化就会查询处多条数据,从而抛出错误),但是code一般是不会变化的.另一方面,code值存储的字符较少,也能减少数据库的压力 八:关于Null值 解释:不要有null值,有null值的话,数据库在进行索引的时候查询的时间更久,从而浪费更多的时间!

SQLServer数据库的高级操作

(1)批处理 (2) (2)变量 (3) (3)逻辑控制 (5) (4)函数 (7) (4.1)系统函数 (7) (4.2)自定义函数 (13) (5)高级查询 (23) (6)存储过程 (35) (7)游标 (36) (8)触发器 (50) SQL Server 数据库的高级操作 (1) 批处理 (2) 变量 (3) 逻辑控制 (4) 函数 (5) 高级查询 */ (1)批处理 将多条SQL语句作为一个整体去编译,生成一个执行计划,然后,执行! 理解批处理的关键在于"编译",对于由多条语句组成的一个批处理, 如果在编译时,其中,有一条出现语法错误,将会导致编译失败! create table t ( a int,

)

-- 如果多行注释中包含了批处理的标识符go -- 在编译的过程中代码将会被go分割成多个部分来分批编译-- 多行注释的标记将会被分隔而导致编译出错 -- 以下几条语句是三个非常经典的批处理 -- 你猜一下会添加几条记录! /* insert into t values (1,1) go */ insert into t values (2,2) go /* insert into t values (3,3) */ go -- 查询看添加了几条记录 select * from t

truncate table t (2)变量 -- 全局变量 SQL Server中全局变量由系统定义、系统维护,用户一般仅可对其进行读取!-- 查看SQL Server版本 print @@version -- 服务器名称 print @@servername -- 系统错误编号 insert into t values ('a','a') print @@error insert into t values ('a','a') if @@error = 245 print 'Error' -- SQL Server 版本的语言信息 print @@LANGUAGE -- 一周的第一天从星期几算起 print @@datefirst

11-个重要的数据库设计规则

11-个重要的数据库设计规则

?简介 在您开始阅读这篇文章之前,我得明确地告诉您,我并不是一个数据库设计领域的大师。以下列出的11点是我对自己在平时项目实践和阅读中学习到的经验总结出来的个人见解。我个人认为它们对我的数据库设计提供了很大的帮助。实属一家之言,欢迎拍砖: ) 我之所以写下这篇这么完整的文章是因为,很多开发者一参与到数据库设计,就会很自然地把“三范式”当作银弹一样来使用。他们往往认为遵循这个规范就是数据库设计的唯一标准。由于这种心态,他们往往尽管一路碰壁也会坚持把项目做下去。 如果你对“三范式”不清楚,请点击这里(FQ)一步一步的了解什么是“三范式”。 大家都说标准规范是重要的指导方针并且也这么做着,但是把它当作石头上的一块标记来记着(死记硬背)还是会带来麻烦的。以下11点是我在数据库设计时最优先考虑的规则。 ?规则1:弄清楚将要开发的应用程序是什么性质的(OLTP 还是OPAP)?

当你要开始设计一个数据库的时候,你应该首先要分析出你为之设计的应用程序是什么类型的,它是“事务处理型”(Transactional)的还是“分析型”(Analytical)的?你会发现许多开发人员采用标准化做法去设计数据库,而不考虑目标程序是什么类型的,这样做出来的程序很快就会陷入性能、客户定制化的问题当中。正如前面所说的,这里有两种应用程序类型,“基于事务处理”和“基于分析”,下面让我们来了解一下这两种类型究竟说的是什么意思。 事务处理型:这种类型的应用程序,你的最终用户更关注数据的增查改删(CRUD,Creating/Reading/Updating/Deleting)。这种类型更加官方的叫法是“OLTP”。 分析型:这种类型的应用程序,你的最终用户更关注数据分析、报表、趋势预测等等功能。这一类的数据库的“插入”和“更新”操作相对来说是比较少的。它们主要的目的是更加快速地查询、分析数据。这种类型更加官方的叫法是“OLAP”。 那么换句话说,如果你认为插入、更新、删除数据这些操作在你的程序中更为突出的话,那就设计一个规范化的表否则的话就去创建一个扁平的、不规范化的数据库结构。

规范化-数据库设计原则

规范化-数据库设计原则 关系数据库设计的核心问题是关系模型的设计。本文将结合具体的实例,介绍数据库设计规范化的流程。摘要 关系型数据库是当前广泛使用的数据库类型,关系数据库设计是对数据进行组织化和结构化的过程,核心问题是关系模型的设计。对于数据库规模较小的情况,我们可以比较轻松的处理数据库中的表结构。然而,随着项目规模的不断增长,相应的数据库也变得更加复杂,关系模型表结构更为庞杂,这时我们往往会发现我们写出来的SQL语句的是很笨拙并且效率低下的。更糟糕的是,由于表结构定义的不合理,会导致在更新数据时造成数据的不完整。因此,就有必要学习和掌握数据库的规范化流程,以指导我们更好的设计数据库的表结构,减少冗余的数据,借此可以提高数据库的存储效率,数据完整性和可扩展性。本文将结合具体的实例,介绍数据库规范化的流程。 序言 本文的目的就是通过详细的实例来阐述规范化的数据库设计原则。在DB2中,简洁、结构明晰的表结构对数据库的设计是相当重要的。规范化的表结构设计,在以后的数据维护中,不会发生插入(insert)、删除(delete)和更新(update)时的异常。反之,数据库表结构设计不合理,不仅会给数据库的使用和维护带来各种各样的问题,而且可能存储了大量不需要的冗余信息,浪费系统资源。 要设计规范化的数据库,就要求我们根据数据库设计范式――也就是数据库设计的规范原则来做。但是一些相关材料上提到的范式设计,往往是给出一大堆的公式,这给设计者的理解和运用造成了一定的困难。因此,本文将结合具体形象的例子,尽可能通俗化地描述三个范式,以及如何在实际工程中加以优化使用。规范化 在设计和操作维护数据库时,关键的步骤就是要确保数据正确地分布到数据库的表中。使用正确的数据结构,不仅便于对数据库进行相应的存取操作,而且可以极大地简化使用程序的其他内容(查询、窗体、报表、代码等)。正确进行表设计的正式名称就是"数据库规范化"。后面我们将通过实例来说明具体的规范化的工程。关于什么是范式的定义,请参考附录文章1. 数据冗余 数据应该尽可能少地冗余,这意味着重复数据应该减少到最少。比如说,一个部门雇员的电话不应该被存储在不同的表中,因为这里的电话号码是雇员的一个属性。如果存在过多的冗余数据,这就意味着要占用了更多的物理空间,同时也对数据的维护和一致性检查带来了问题,当这个员工的电话号码变化时,冗余数据会导致对多个表的更新动作,如果有一个表不幸被忽略了,那么就可能导致数据的不一致性。 规范化实例 为了说明方便,我们在本文中将使用一个SAMPLE数据表,来一步一步分析规范化的过程。 首先,我们先来生成一个的最初始的表。 CREATE TABLE "SAMPLE" ( "PRJNUM" INTEGER NOT NULL, "PRJNAME" VARCHAR(200), "EMYNUM" INTEGER NOT NULL, "EMYNAME" VARCHAR(200), "SALCATEGORY" CHAR(1), "SALPACKAGE" INTEGER)

数据库设计规范

数据库设计规范 V 1.0 2007-8-28

目录 1) 目的 (3) 2) 范围 (3) 3) 术语 (3) 4) 设计概要 (3) 5) 命名规范(逻辑对象) (4) 6) 数据库对象命名 (6) 7) 脚本注释 (8) 8) 数据库操作原则 (9) 9) 常用字段命名(参考) (9)

1) 目的 为了统一公司软件开发的设计过程中关于数据库设计时的命名规范和具体工作时的编程规范,便于交流和维护,特制定此规范。 2) 范围 本规范适用于开发组全体人员,作用于软件项目开发的数据库设计、维护阶段。 3) 术语 数据库对象:在数据库软件开发中,数据库服务器端涉及的对象包括物理结构和逻辑结构的对象。 物理结构对象:是指设备管理元素,包括数据文件和事务日志文件的名称、大小、目录规划、所在的服务器计算极名称、镜像等,应该有具体的配置规划。一般对数据库服务器物理设备的管理规程,在整个项目/产品的概要设计阶段予以规划。 逻辑结构对象:是指数据库对象的管理元素,包括数据库名称、表空间、表、字段/域、视图、索引、触发器、存储过程、函数、数据类型、数据库安全性相关的设计、数据库配置有关的设计以及数据库中其他特性处理相关的设计等。 4) 设计概要 ?设计环境 数据库:ORACLE 9i 、MS SQL SERVER 2000 等 操作系统:LINUX 7.1以上版本,显示图形操作界面; RedHat 9 以上版本 WINDOWS 2000 SERVER 以上 ?设计使用工具 使用PowerDesigner 做为数据库的设计工具,要求为主要字段做详尽说 明。对于SQL Server 尽量使用企业管理器对数据库进行设计,并且要求 对表,字段编写详细的说明(这些将作为扩展属性存入SQL Server中) 通过PowerDesigner 定制word格式报表,并导出word文档,作为数据 字典保存。(PowerDesigner v10 才具有定制导出word格式报表的功能)。

数据库设计规范

1概述 1.1目的 软件研发数据库设计规范作为数据库设计的操作规范,详细描述了数据库设计过程及结果,用于指导系统设计人员正确理解和开展数据库设计。 1.2适用范围 1.3术语定义 DBMS:数据库管理系统,常用的商业DBMS有Oracle, SQL Server, DB2等。 数据库设计:数据库设计是在给定的应用场景下,构造适用的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。 概念数据模型:概念数据模型以实体-关系 (Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库概念级别的设计,独立于机器和各DBMS产品。可以用Sybase PowerDesigner工具来建立概念数据模型(CDM)。 逻辑数据模型:将概念数据模型转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式。可

以用Sybase PowerDesigner工具直接建立逻辑数据模型(LDM),或者通过CDM转换得到。 物理数据模型:在逻辑数据模型基础上,根据DBMS特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。可以用Sybase PowerDesigner工具直接建立物理数据模型(PDM),或者通过CDM / LDM转换得到。 2数据库设计原则 按阶段实施并形成该阶段的成果物 一般符合3NF范式要求;兼顾规范与效率 使用公司规定的数据库设计软件工具 命名符合公司标准和项目标准 3数据库设计目标 规范性:一般符合3NF范式要求,减少冗余数据。 高效率:兼顾规范与效率,适当进行反范式化,满足应用系统的性能要求。 紧凑性:例如能用char(10)的就不要用char(20),提高存储的利用率和系统性能,但同时也要兼顾扩展性和可移植性。 易用性:数据库设计清晰易用,用户和开发人员均能容

数据库设计规范

数据库设计规范 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。 数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个dbms产品的概念模式(信息世界模型),用e-r图来描述。在逻辑设计阶段将e-r图转换成具体的数据库产品支持的数据模型如关系模型,形成数据库逻辑模式。然后根据用户处理的要求,安全性的考虑,在基本表的基础上再建立必要的视图(view)形成数据的外模式。在物理设计阶段根据dbms特点和处理的需要,进行物理存储安排,设计索引,形成数据库内模式。 1. 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。 需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。 需求分析的方法:调查组织机构情况、调查各部门的业务活动情况、协助用户明确对新系统的各种要求、确定新系统的边界。 常用的调查方法有:跟班作业、开调查会、请专人介绍、询问、设计调查表请用户填写、查阅记录。 分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。自顶向下的结构化分析方法(structured analysis,简称sa方法)从最上层的系统组织机构入手,采用逐层分解的方式分析系统,并把每一层用数据流图和数据字典描述。 数据流图表达了数据和处理过程的关系。系统中的数据则借助数据字典(data dictionary,简称dd)来描述。 数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,而不是数据本身。数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(至少应该包含每个字段的数据类型和在每个表内的主外键)。 数据项描述={数据项名,数据项含义说明,别名,数据类型,长度, 取值范围,取值含义,与其他数据项的逻辑关系} 数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}} 数据流描述={数据流名,说明,数据流来源,数据流去向, 组成:{数据结构},平均流量,高峰期流量} 数据存储描述={数据存储名,说明,编号,流入的数据流,流出的数据流, 组成:{数据结构},数据量,存取方式} 处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流}, 处理:{简要说明}}

数据表的设计原则

根据建立的领域模型进行数据库表的映射,此时应参考数据库设计第二范式:一个表中的所有非关键字属性都依赖于整个关键字。应针对所有表的主键和外键建立索引,有针对性的(针对一些大数据量和常用检索方式)建立组合属性的索引,提高检索效率。 (1)不应针对整个系统进行数据库设计,而应该根据系统架构中的组件划分,针对每个组件所处理的业务进行组件单元的数据库设计;不同组件间所对应的数据库表之间的关联应尽可能减少,如果不同组件间的表需要外键关联也尽量不要创建外键关联,而只是记录关联表的一个主键,确保组件对应的表之间的独立性,为系统或表结构的重构提供可能性。 (2)采用领域模型驱动的方式和自顶向下的思路进行数据库设计,首先分析系统业务,根据职责定义对象。对象要符合封装的特性,确保与职责相关的数据项被定义在一个对象之内,这些数据项能够完整描述该职责,不会出现职责描述缺失。并且一个对象有且只有一项职责,如果一个对象要负责两个或两个以上的职责,应进行分拆。 (3)根据建立的领域模型进行数据库表的映射,此时应参考数据库设计第二范式:一个表中的所有非关键字属性都依赖于整个关键字。关键字可以是一个属性,也可以是多个属性的集合,不论那种方式,都应确保关键字能够保证唯一性。在确定关键字时,应保证关键字不会参与业务且不会出现更新异常,这时,最优解决方案为采用一个自增数值型属性或一个随机字符串作为表的关键字。 (4)由于第一点所述的领域模型驱动的方式设计数据库表结构,领域模型中的每一个对象只有一项职责,所以对象中的数据项不存在传递依赖,所以,这种思路的数据库表结构设计从一开始即满足第三范式:一个表应满足第二范式,且属性间不存在传递依赖。 (5)同样,由于对象职责的单一性以及对象之间的关系反映的是业务逻辑之间的关系,所以在领域模型中的对象存在主对象和从对象之分,从对象是从1-N或N-N的角度进一步主对象的业务逻辑,所以从对象及对象关系映射为的表及表关联关系不存在删除和插入异常。 (6)在映射后得出的数据库表结构中,应再根据第四范式进行进一步修改,确保不存在多值依赖。这时,应根据反向工程的思路反馈给领域模型。如果表结构中存在多值依赖,则证明领域模型中的对象具有至少两个以上的职责,应根据第一条进行设计修正。第四范式:一个表如果满足BCNF,不应存在多值依赖。 (7)在经过分析后确认所有的表都满足二、三、四范式的情况下,表和表之间的关联尽量采用弱关联以便于对表字段和表结构的调整和重构。并且,我认为数据库中的表是用来持久化一个对象实例在特定时间及特定条件下的状态的,只是一个存储介质,所以,表和表之间也不应用强关联来表述业务(数据间的一致性),这一职责应由系统的逻辑层来保证,这种方式也确保了系统对于不正确数据(脏数据)的兼容性。当然,从整个系统的角度来说我们还是要尽最大努力确保系统不会产生脏数据,单从另一个角度来说,脏数据的产生在一定程度上也是不可避免的,我们也要保证系统对这种情况的容错性。这是一个折中的方案。 (8)应针对所有表的主键和外键建立索引,有针对性的(针对一些大数据量和常用检索方式)建立组合属性的索引,提高检索效率。虽然建立索引会消耗部分系统资源,但比较起在检索时搜索

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 编写目的 (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)数据类型的选用原则 精品

数据库命名规范(表、字段名)

数据库命名规范(表、字段名) 一. 实体和属性的命名 1常用单词已经进行了缩写,在命名过程当中,根据语义拼凑缩写即可。注意,由于ORCAL 数据库会将字段名称统一成大写或者小写中的一种,所以要求加上下划线 举例: 定义的缩写Sales: Sal 销售; Order: Ord 订单; Detail: Dtl 明细; 则销售订单名细表命名为:Sal_Ord_Dtl; 2.如果表或者是字段的名称仅有一个单词,那么建议不使用缩写,而是用完整的单词。举例: 定义的缩写Material Ma 物品; 物品表名为:Material, 而不是Ma. 但是字段物品编码则是:Ma_ID;而不是Material」。 3.所有的存储值列表的表前面加上前缀Z 目的是将这些值列表类排序在数据库最后。 4.所有的冗余类的命名(主要是累计表)前面加上前缀X 冗余类是为了提高数据库效率,非规范化数据库的时候加入的字段。或者表 5.关联类通过用下划线连接两个基本类之后,再加前缀R的方式命名,后面按照字母顺序罗列两个表名或者表名的缩写。 关联表用于保存多对多关系。 如果被关联的表名大于10个字母,必须将原来的表名的进行缩写。如果没有其他原因,建 议都使用缩写。 举例:表Object与自身存在多对多的关系,则保存多对多关系的表命名为:R_Object ; 表Depart和Employee;存在多对多的关系;则关联表命名为R_Dept_Emp 6.每一个表都将有一个自动ID作为主健,逻辑上的主健作为第一组候选主健来定义,如果是数据库自动生成的编码,统一命名为:ID;如果是自定义的逻辑上的编码则用缩写加“ID” 的方法命名。 举例:销售订单的编号字段命名:Sal_Ord」D ;如果还存在一个数据库生成的自动编号,则 命名为:ID。

数据库设计和编码规范

数据库设计和编码规范 Version 1.0

目录 1简介 .................................................................................................. 1.1读者对象 ............................................................................................................................ 1.2目的.................................................................................................................................... 2数据库命名规范 .............................................................................. 2.1规范总体要求 .................................................................................................................... 2.2数据库对象命名规范 ........................................................................................................ 2.3变量命名规范 .................................................................................................................... 3数据库设计规范 .............................................................................. 3.1选择有效的设计工具 ........................................................................................................ 3.2表的设计 ............................................................................................................................ 3.2.1遵守范式要求 .................................................................................................... 3.2.2字段设计 ............................................................................................................ 3.2.3适当的合理的冗余 ............................................................................................ 3.2.4注意大类型的字段设计 .................................................................................... 3.3表关系和约束设计 ............................................................................................................ 3.3.1主键设计 ............................................................................................................ 3.3.2 外键设计 .................................................................................................................. 3.3.3 检查约束 .................................................................................................................. 3.4索引的设计 ........................................................................................................................ 3.4.1聚集索引和非聚集索引 .................................................................................... 3.4.2索引的初始创建原则 ........................................................................................ 3.4.3索引的注意事项 ................................................................................................ 3.4.4索引的后期维护工作 ........................................................................................ 3.5物理存储设计 .................................................................................................................... 3.5.1日志文件另外存放 ............................................................................................ 3.5.2存储空间的设计 ................................................................................................ 4T-SQL编码规范 ............................................................................. 4.1书写基本规范 .................................................................................................................... 4.2使用可搜索参数(WHERE使用原则)............................................................................ 4.3少用触发器和禁用游标 .................................................................................................... 4.4联合查询尽可能使用UNION ALL.................................................................................. 4.5尽可能避免的地方 ............................................................................................................ 4.6避免返回和使用多余的数据 ............................................................................................ 4.7操作符优化 ........................................................................................................................ 4.8数据库事务处理原则 ........................................................................................................ 4.9最少次数的访问表 ............................................................................................................ 4.10避免隐含的数据类型转换 ........................................................................................

相关主题