数据库设计规范编码规范
数据库编码规范1 目的?
为了统一公司软件开发的设计过程中关于数据库设计时的命名规范和具体工作时的编程规范,便于交流和维护,特制定此规范。?
2 范围?
本规范适用于全体开发人员,作用于软件项目开发的数据库设计、维护阶段。?
3 术语?
数据库对象:在数据库软件开发中,数据库服务器端涉及的对象包括物理结构和逻辑结构的对象。?
物理结构对象:是指设备管理元素,包括数据文件和事务日志文件的名称、大小、目录规划、所在的服务器计算极名称、镜像等,应该有具体的配置规划。一般对数据库服务器物理设备的管理规程,在整个项目/产品的概要设计阶段予以规划。?
逻辑结构对象:是指数据库对象的管理元素,包括数据库名称、表空间、表、字段/域、视图、索引、触发器、存储过程、函数、数据类型、数据库安全性相关的设计、数据库配置有关的设计以及数据库中其他特性处理相关的设计等。?
4 设计概要?
设计环境?
a) ORACLE 11G R2
数据库?
ORACLE 11G R2
?
操作系统?
LINUX 6以上版本,显示图形操作界面
b) MS SQL SERVER 2005?
数据库?
SQL SERVER 2005 企业版?
打sp3以上补丁和安全补丁?
?
操作系统?
WINDOWS 2008 SERVER
设计使用工具?
a)使用PowerDesigner 做为数据库的设计工具,要求为主要字段做详尽说明。对于SQL Server 尽量使用企业管理器对数据库进行设计,并且要求对表,字段编写详细的说明(这些将作为扩展属性存入SQL Server中)?
b)通过PowerDesigner 定制word格式报表,并导出word文档,作为数据字典保存,格式。(PowerDesigner v10 才具有定制导出word格式报表的功能)。对于SQL Server 一旦在企业管理器进行数据库设计时加入扩展属性,就可以通过编写简单的工具将数据字典导出。?
c) 编写数据库建数据库、建数据库对象、初始化数据脚本文件?
设计原则?
a) 采用多数据文件?
b) 禁止使用过大的数据文件,unix系统不大于2GB,window系统不超过500MB?
c) oracle数据库中必须将索引建立在索引表空间里。?
d) 基本信息表在建立时就分配足够的存储空间,禁止其自动扩展功能?
e) 大文本字列、blob列要独立出一张表,此表只有id和blob(或大文本)列?
f) 为每一个数据库创建独立的管理员用户,使用该用户进行设计,尽量不要使用sa或者系统管理员身份进行数据库设计。?
设计的更新?
a) 在设计阶段,由数据库管理员或指定的项目组其一成员进行维护。?
b) 运行阶段,由数据库管理员进行维护。?
c) 如对表结构进行修改,应先在数据字典文档进行修改,最后在数据库中进行修改。如果修改的是数据库字典表,必须由数据库管理员进行。?
d) 编写更新的SQL代码,如果使用PowerDesigner,禁止由PowerDesigner 直接连数据库进行数据库操作(如果是更改表或者字段的说明性文字可以通过数据库管理器图形界面进行修改)?
e) 修改数据库要通过SQL,禁止其它方式对数据进行修改?
f) 修改数据库的SQL要添加说明后保存备查?
5 命名总体原则?
设定的前缀一律用小写字母?
标识名称命名全部小写?
整个命名的全长不得超过30个字母?
全部使用字母和下划线‘_’,不能使用中文和其他字符,有特别情况允许使用末尾数字编号。例如:t_Finace1, t_Finace2...?
命名名称来自于业务,全部采用英文单词?
英文单词过长可以采用通用的缩写,尽量表达出业务的含义?
如需要两个以上的英文单词做标识名称,单词之间要用下划线‘_’连接?
名称全是由名词组成的,名词由大范围到小范围排序取名?
完成某功能的名称,如函数和过程,以动宾形式取名?
6 命名规范(逻辑对象)?
数据库结构命名?
a) 数据库命名?
数据库的命名要求使用与数据库意义相关联的英文字母,即<业务系统名称>。?
例如:china care 数据库的命名为ccnet;?
客户资料数据库的命名为Customer_Info。?
b) 数据库日志设计命名?
数据库日志的的命名以<数据库名>_<日志名>.log格式命名。其中,<日志名>为有意义的数据库日志名称。?
例如:?
c) 数据库配置设计命名?
数据库配置设计方案是以文件形式保存的,其内容是关于特定数据库的配置项目的具体值。?
数据库配置文件的命名以:<数据库类型简写〉_<应用系统标志>格式命名。?
其中,数据库类型简写见附件2《数据库类型简写》,cfq表示该文件是数据库配置文件。?
例如:ORA_ ?
d) 数据库复制与存储设计命名?
数据库复制与存储设计方案是以文件形式保存的,其内容是关于特定数据库之间的复制策略的具体细节。?
数据库复制与存储设计文件的命名以:<数据库类型简写>_<应用系统标志>格式命名。?
其中,数据库类型简写见附件2《数据库类型简写》,rep表示该文件是数据库复制与存储文件。?
e) 数据库连接设计命名?
数据库连接设计方案是以文件形式保存的,其内容是关于特定分布式数据库之间的连接设计的具体细节。?
数据库连接设计文件的命名以:<数据库类型简写>_<应用系统标志>_dbl. sql格式命名。其中,数据库类型简写见附件2《数据库类型简写》,dbl 表示该文件是数据库连接设计文件。?
f) 表空间、数据文件命名(主要针对Oracle)?
索引表空间:?
表空间命名格式:ts<系统标识>_i?
数据库文件命名格式:ts<系统标识>_i[n].dbf?
临时表空间:?
表空间命名格式:ts<系统标识>_t?
数据库文件命名格式:ts<系统标识>_t[n].dbf?
回滚表空间:?
表空间命名格式:ts<系统标识>_r?
数据库文件命名格式:ts<系统标识>_r[n].dbf?
数据表空间:?
表空间命名格式:ts<系统标识>_d?
数据库文件命名格式:ts<系统标识>_d[n].dbf?
注:表空间名不超过8位,n 可取00-99或0-9,根据系统数据量确定。?
数据库对象命名?
a) 表?
表的命名必须以“t_”(Table缩写)开头,格式为:t_[系统标识]_<数据表类型标识>_<表标识>。?
其中,[ ]表示可选项,依据实际情况而增加;<表标识> 要求与表意义相关联的英文字母,例如:t_Customers。?
数据表大致分为:业务数据表、基本编码表、辅助编码表、系统信息表、累计数据表、结算数据表、决策数据表;
基本编码表用base标志?
累计数据表用count标志?
系统信息表用info标志 ...?
例如:t_trade_base_trade_code,t_trade_info_help ...?
b) 字段/域?
根据业务要求进行命名,不需设定固定的前缀。?
c) 索引?
针对数据库表中一个或多个字段建立的索引的命名格式应以“idx_”开头,索引列名间用_隔开,即为idx_ColumnName1_ColumnName2_…?
其中,ColumnName1是数据库表中(第一个)索引字段的名称或名称简写;ColumnName2是数据库表中(第二个)索引字段的名称或名称简写;索引名的总长必需符合数据库的规定。?
例:idx_cert_number (表示在字段cert_number上创建索引)?
为了避免重名索引出现,可选命名方式为 idx_<表名>_<递增号> 作为索引的命名,但是要求在数据字典中进行详细说明?
d) 视图?
视图的命名必须以“v_”(View 缩写)开头,格式为: v_<视图类型>_[系统标识] _<视图标识>。?
其中,视图类型参见“表的分类说明”;[系统标识_]是可选项,依据情况而增加;<视图标识> 应与视图意义相关联的英文字母。?
例:v_user_detail_info?
e) 存储过程?
存储过程的命名必须符合sp_[系统标识]_<存储过程标识>格式。?
其中,sp表示是存储过程;[系统标识]为可选项,依据情况而增加;<存储过程标识>是与存储过程意义相关联的英文字母,例如:
USP_Query_Write_to_Disk。?
例:sp_check_user_auth(以动宾方式取名)?
f) 触发器?
触发器的的命名必须符合tr_<表名>_ 格式。?
其中,tr表示是触发器;是与触发器意义相关联的英文字母。?
例:tr_user_info_iu (表示对user_info表进行插入、更新的触发器)?
g) 函数?
函数的命名必须符合fn_[系统标识]_<函数标识>格式。?
其中,fn表示是函数,[系统标识]为可选项,依情况而定;<函数标识>是与函数意义相关联的英文字母。?
例:fn_create_id(以动宾方式取名)?
h) 自定义数据类型?
自定义数据类型的命名格式为:ud_<自定义数据类型标识>_<数据类型>?
i) Default(缺省)?
Default(缺省)的命名格式一般为:df_
if exists (select * from sysobjects where type = 'D' and name = 'df_begin_date')?
drop default ?
go?
go?
j) Check、Constraint(约束)?
约束的命名格式一般为:ck_<表名>_
例:ck_flag 参见第点实例,约束字段flag只能取字符‘0’到‘9’:?
constraint ck_flag CHECK (flag between '0’ and '9’ )?
k) Rule(规则)?
规则的命名格式一般为:rl_
例:rl_not_zero (定义一个不等于0的规则)?
if exists (select * from sysobjects where type = 'R' and name = 'rl_not_zero')?
drop rule ?
go?
create rule rl_not_zero as @i <> 0?
go?
l) 主键?
主键的命名格式为pk_<表名>_<主键标识>。?
例:pk_user_info_userid (表user_info以字段userid创建主键)?
m) 外键?
外键的命名格式为fk_<表名>_<主表名>_<外键标识>。?
可选命名方式为 fk_<表名>_<递增号> 作为索引的命名,但是要求在数据字典中进行详细说明?
例:fk_user_info_department_deptid (在表user_info的字段department_id上创建外键,参照主表department)
n) 同义词(ORACLE)?
同义词的命名格式为:sy_<同义词标识>?
例:sy_user_info (为所有权属于ben的表user_info的公共同义词)?
7 脚本注释?
存储过程或触发器?
a) 每一个存储过程或触发器都要在最前面写注释,注释如下?
/*?
writer:?
create date:?
ver:?
Depiction:?
remark:?
*/?
另外,过程中声明的重要变量要有注释,例如:?
@iActionFlag int = 0 /* 0 => Checkout, 1 => GetLatest, 2 => UndoCheckOut */?
b) 如果只对存储过程或触发器进行部分修改时须添加以下注释:?
/*rewriter: add(rewriter): date:<格式:YYYY-MM-DD> start1:?修改描述:?
*/?
/* 原代码内容*/(修改时)?
/*rewriter: date:<格式:YYYY-MM-DD> end1: */?
/*rewriter: add(rewriter): date:<格式:YYYY-MM-DD> start2: */?新代码内容?
/*rewriter: date:<格式:YYYY-MM-DD> end2: */?
c) 如果对存储过程或触发器有较大的修改,可增加修改内容的注释。?
/*Log Id:
rewriter:?
rewrite date:<格式:YYYY-MM-DD>?
Depiction:?
*/?
自定义函数?
a) 每一个自定义函数都要在其前面写注释,注释如下?/*?
function name:xxxx?
Depiction:<对此函数的描述>?
数据仓库模型的设计
2.5数据仓库模型的设计 数据仓库模型的设计大体上可以分为以下三个层面的设计151: .概念模型设计; .逻辑模型设计; .物理模型设计; 下面就从这三个层面分别介绍数据仓库模型的设计。 2.5.1概念模型设计 进行概念模型设计所要完成的工作是: <1>界定系统边界 <2>确定主要的主题域及其内容 概念模型设计的成果是,在原有的数据库的基础上建立了一个较为稳固的概念模型。因为数据仓库是对原有数据库系统中的数据进行集成和重组而形成的数据集合,所以数据仓库的概念模型设计,首先要对原有数据库系统加以分析理解,看在原有的数据库系统中“有什么”、“怎样组织的”和“如何分布的”等,然后再来考虑应当如何建立数据仓库系统的概念模型。一方面,通过原有的数据库的设计文档以及在数据字典中的数据库关系模式,可以对企业现有的数据库中的内容有一个完整而清晰的认识;另一方面,数据仓库的概念模型是面向企业全局建立的,它为集成来自各个面向应用的数据库的数据提供了统一的概念视图。 概念模型的设计是在较高的抽象层次上的设计,因此建立概念模型时不用考虑具体技术条件的限制。 1.界定系统的边界 数据仓库是面向决策分析的数据库,我们无法在数据仓库设计的最初就得到详细而明确的需求,但是一些基本的方向性的需求还是摆在了设计人员的面前: . 要做的决策类型有哪些? . 决策者感兴趣的是什么问题? . 这些问题需要什么样的信息? . 要得到这些信息需要包含原有数据库系统的哪些部分的数据? 这样,我们可以划定一个当前的大致的系统边界,集中精力进行最需要的部分的开发。因而,从某种意义上讲,界定系统边界的工作也可以看作是数据仓库系统设计的需求分析,因为它将决策者的数据分析的需求用系统边界的定义形式反映出来。 2,确定主要的主题域 在这一步中,要确定系统所包含的主题域,然后对每个主题域的内
数据库设计规范范本
数据库设计规范
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),提高存储的利用率和系统性能,但同时也要兼顾扩展性和可移植性。 易用性:数据库设计清晰易用,用户和开发人员均能容易地理解。
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;
标准规范体系建设方案设计
标准规范体系建设方案设计 1.1需求分析 1.1.1采购范围与基本要求 收集智慧园区建设涉及的国家标准、行业标准、管理规范、技术标准和信息标准,编写XX高新区开发区智慧园区的接口规范、信息交换标准、元数据标准等。1.1.2建设内容要求 (1)编写 《XX高新区开发区智慧园区元数据信息标准》 《XX高新区开发区智慧园区数据代码规范目录》 《XX高新区开发区智慧园区数据交换方式》 《XX高新区开发区智慧园区数据交换内容标准》 《XX高新区开发区智慧园区数据接口标准》 《XX高新区开发区智慧园区数据采集规范》 《XX高新区开发区智慧园区数据处理规范》 《XX高新区开发区智慧园区数据质量规范》 《XX高新区开发区智慧园区数据管理制度》 《XX高新区开发区智慧园区系统运维管理规范》 《XX高新区开发区智慧园区文档管理制度》 《XX高新区开发区智慧园区运营管理标准》 (2)收集 (住建部智慧城市文件(2013年4月) 《智慧城市公共信息平台建设指南(试行)》 《智慧城市评价模型及基础评价指标体系》(全国通信标准化技术委员会) 《基于云计算的电子政务公共平台顶层设计指南》(工信部,2013年4月) 《政务信息资源目录体系》(GB/T21063-2007) 《政务信息资源交换体系》(GB/T21062-2007) 《信息技术大数据术语》(20141191-T-469) 《信息技术大数据参考架构》(20141191-T-469)
《关系数据管理系统技术要求》(GB/T28821-1012) 《城市基础地理信息系统技术规范》 《关于促进智慧城市健康发展的指导意见》 《关于积极推进“互联网+”行动的指导意见》 《促进大数据发展行动纲要》 《国家信息化发展战略纲要》 《国家电子政务工程建设项目管理暂行办法》 《国家信息化领导小组关于我国电子政务建设指导意见》 《国家电子政务总体框架》 《城市地下管线工程档案管理办法》(住建部2005年) 《城市地下空间开法利用管理规定》(建设部59号、第108号) 《电信建设管理办法》(国发委第20号) 《2006—2020年国家信息化发展战略》 1.2设计方案 XX高新区智慧园区是一个大规模的建设工程。该工程以业务系统的相关数据为业务处理核心,以其它相关部门为信息交换对象,实现跨机构的大型综合与分布式的信息化系统。 面对这样一个大型的信息系统,XX高新区智慧园区建设首先必须建立完善的标准体系和相关制度。保障XX高新区智慧园区生态XX高新区智慧园区建设标准的可持续发展能力,实现真正意义上的互联互通。 1.2.1标准在系统建设中的作用 XX高新区智慧园区建设与标准规范建设是相辅相成的。一方面,生态XX高新区智慧园区各项内容的建设必须遵循标准和规范,其设计、开发和实施等需要标准和规范进行指导;另一方面,标准和规范的制订和维护离不开生态XX高新区智慧园区的建设实践,标准和规范必需符合实际需求,随着生态XX高新区智慧园区建设的不断建设和推广,标准和规范也要根据生态XX高新区智慧园区建设的进展不断完善。 没有规矩不成方圆,生态XX高新区智慧园区及其配套体系的建设需要相应的标准和规范进行指导。标准和规范具有以下指导作用:
数据库与数据仓库的区别是什么
数据库与数据仓库的区别是什么 简而言之,数据库是面向事务的设计,数据仓库是面向主题设计的。 数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。 数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。 数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID。 单从概念上讲,有些晦涩。任何技术都是为应用服务的,结合应用可以很容易地理解。以银行业务为例。数据库是事务系统的数据平台,客户在银行做的每笔交易都会写入数据库,被记录下来,这里,可以简单地理解为用数据库记帐。数据仓库是分析系统的数据平台,它从事务系统获取数据,并做汇总、加工,为决策者提供决策的依据。比如,某银行某分行一个月发生多少交易,该分行当前存款余额是多少。如果存款又多,消费交易又多,那么该地区就有必要设立ATM了。 显然,银行的交易量是巨大的,通常以百万甚至千万次来计算。事务系统是实时的,这就要求时效性,客户存一笔钱需要几十秒是无法忍受的,这就要求数据库只能存储很短一段时间的数据。而分析系统是事后的,它要提供关注时间段内所有的有效数据。这些数据是海量的,汇总计算起来也要慢一些,但是,只要能够提供有效的分析数据就达到目的了。 数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源、为了决策需要而产生的,它决不是所谓的“大型数据库”。那么,数据仓库与传统数据库比较,有哪些不同呢?让我们先看看W.H.Inmon关于数据仓库的定义:面向主题的、集成的、与时间相关且不可修改的数据集合。 “面向主题的”:传统数据库主要是为应用程序进行数据处理,未必按照同一主题存储数据;数据仓库侧重于数据分析工作,是按照主题存储的。这一点,类似于传统农贸市场与超市的区别—市场里面,白菜、萝卜、香菜会在一个摊位上,如果它们是一个小贩卖的;而超市里,白菜、萝卜、香菜则各自一块。也就是说,市场里的菜(数据)是按照小贩(应用程序)归堆(存储)的,超市里面则是按照菜的类型(同主题)归堆的。 “与时间相关”:数据库保存信息的时候,并不强调一定有时间信息。数据仓库则不同,出于决策的需要,数据仓库中的数据都要标明时间属性。决策中,时间属性很重要。同样都是累计购买过九车产品的顾客,一位是最近三个月购买九车,一位是最近一年从未买过,这对于决策者意义是不同的。 “不可修改”:数据仓库中的数据并不是最新的,而是来源于其它数据源。数据仓库反映的是历史信息,并不是很多数据库处理的那种日常事务数据(有的数据库例如电信计费数据库
软件工程-数据库设计规范与命名规则
数据库设计规范、技巧与命名规范 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。 数据库设计是指:对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据, 满足用户信息要求和处理要求。 数据库设计的各阶段: 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开发规范
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(*)统计 ●压力分散,在线表和归档表(日志表)分开存储;不重要的非实时查询日志不要存数据库,以文件方式 在应用端统计分析。 ●禁止明文存储机密数据,需至少两次加密(部分数据可逆运算)
数据仓库设计指南
数据仓库设计指南 在一般的数据仓库应用系统中,根据系统体系结构的不同,数据仓库设计的内容和范围不尽相同,并且设计方法也不尽相同,下面的两幅图示分别表示带有ODS的数据仓库应用系统体系结构和不带ODS的数据仓库应用系统体系结构。本文将说明两个体系结构上的差异以及这种差异造成的设计方法的不同,并且重点介绍带有ODS的体系结构中数据仓库的设计方法。GV1 =p}` 在数据仓库的设计指导思想中,数据仓库的概念定义是非常重要的,数据仓库概念规定了数据仓库所具有的几个基本特性,这些特性也正是对数据仓库设计结果进行检验的重要依据。M)_m= }d 根据Bill.Inmon的定义,“数据仓库是面向主题的、集成的、稳定的、随时间变化的,主要用于决策支持的数据库系统”。_R)tJ Ro ODS(Operational Data Store)是数据仓库体系结构中的一个可选部分,ODS具备数据仓库的部分特征和OLTP系统的部分特征,它是“面向主题的、集成的、当前或接近当前的、不断变化的”数据。4\&P~kI 一般在带有ODS的系统体系结构中,ODS都设计为如下几个作用:#:1< R\H6m 1)在业务系统和数据仓库之间形成一个隔离层。[t"C/;S! 一般的数据仓库应用系统都具有非常复杂的数据来源,这些数据存放在不同的地理位置、不同的数据库、不同的应用之中,从这些业务系统对数据进行抽取并不是一件容易的事。因此,ODS用于存放从业务系统直接抽取出来的数据,这些数据从数据结构、数据之间的逻辑关系上都与业务系统基本保持一致,因此在抽取过程中极大降低了数据转化的复杂性,而主要关注数据抽取的接口、数据量大小、抽取方式等方面的问题。,8mPV{U KU 2)转移一部分业务系统细节查询的功能 Cr 数据库设计和编码规范 Version 目录 简介 读者对象 此文档说明书供开发部全体成员阅读。 目的 一个合理的数据库结构设计是保证系统性能的基础。一个好的规范让新手容易进入状态且少犯错,保持团队支持顺畅,系统长久使用后不至于紊乱,让管理者易于在众多对象中,获取所需或理清问题。 同时,定义标准程序也需要团队合作,讨论出大家愿意遵循的规范。随着时间演进,还需要逐步校订与修改规范,让团队运行更为顺畅。 数据库命名规范 团队开发与管理信息系统讲究默契,而制定服务器、数据库对象、变量等命名规则是建立默契的基本。 命名规则是让所有的数据库用户,如数据库管理员、程序设计人员和程序开发人员,可以直观地辨识对象用途。而命名规则大都约定俗成,可以依照公司文化、团队习惯修改并落实。 规范总体要求 1.避免使用系统产品本身的惯例,让用户混淆自定义对象和系统对象或关键词。 例如,存储过程不要以sp_或xp_开头,因为SQL SERVER的系统存储过程以 sp_开头,扩展存储过程以xp_开头。 2.不要使用空白符号、运算符号、中文字、关键词来命名对象。 3.名称不宜过于简略,要让对象的用途直观易懂,但也不宜过长,造成使用不方 便。 4.不用为数据表内字段名称加上数据类型的缩写。 5.名称中最好不要包括中划线。 6.禁止使用[拼音]+[英语]的方式来命名数据库对象或变量。 数据库对象命名规范 我们约定,数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。对象名字由前缀和实际名字组成,长度不超过30。避免中文和保留关键字,做到简洁又有意义。前缀就是要求每种对象有固定的开头字符串,而开头字符串宜短且字数统一。可以讨论一下对各种对象的命名规范,通过后严格按照要求实施。例如: 任务引入[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.数据库 数据库简单地说就是存放数据的仓库。这些数据是按照一定的格式存放在计算的存储设备上。 未经允许,不可全部或部分发表、复制、使用于任何目的 文档修订摘要 1引言 编写目的 编写《数据仓库开发规范(dbsql系统)(1.0)》的目的是: dbsql封装了访问db2,oracle,greenplum,Sybase 和Teradata数据库的方法,形成了一套访问db2,oracle,greenplum,sybase和Teradata数据库的统一接口。dbsql不仅提供了对db2,oracle,greenplum,sybase和Teradata访问方法的统一,而且提供了一些方法屏蔽5个数据库之间sql语言的差别。这样对于应用程序,只需要编写一套代码,就可以操纵db2,oraclee,greenplum,sybase和Teradata数据库,对开发工程师而言,只用熟悉sql92的标准sql和此文档sql函数就 本文档供以下相关人员阅览: ◆参于数据仓库设计评审的专家人员; ◆参与数据仓库软件开发的软件部人员; ◆参与数据分析系统测试人员。 1.1 背景介绍 ◆开发的软件系统的名称:数据仓库编程规范 ◆开发单位:数据分析部 ◆系统使用单位: ◆该软件系统是数据仓库底层开发跨平台异构数据仓库的基础平台 1.2 术语定义 1.3 参考资料 参考资料共包括: ◆《Tcl/Tk 编程权威指南》 ◆《Expert One on One: Oracle》 ◆《Oracle 数据库DBA专题技术精粹》 2DBsql环境配置 2.1 目录设置 2.2 环境变量 主要环境变量设置包括: $DBSQL:程序安装点,开发时设置为个人目录。 $AGENTLOGDIR:Scehdule Server日志采集目录,通常设置为$DBSQL/log $AGENTTRACEDIR:日志及TRACE文件目录。(Schedule Server不采集,可用于存放调试信息) $TOOLS:存放tcl运行环境包及异构数据库编译的动态包安装目录。 用户可以在用户目录下创建.profile文件,例如: 数据库设计规范 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.一号对应一对象。 以病人为例,病人可能在各分院及本院都注册建档,因此同一病人可能在各分院都有不同的ID号,但数据采集到本院,与本院数据合并后,进行标准化处理,应保证此病人具有新的唯一ID号。同时需保留病人曾经的各分院及本院ID号,便于其他分院数据的关联(如分院的病人缴费数据需要关联原始分院号码,之后以标准化后唯一ID号,进入本院系统)。 2.事实数据标明数据来源。 如病人缴费信息,因为缴费事实产生的位置不同,需要进行来源标注,分清本院及各分院,便于数据理解及之后的查询和统计。 在构建DW时的数据标准化处理流程上,可以考虑通过以下方式来完成。 标准化准备 在标准化处理之前,需要对DW表格结构进行一些处理,使得标准化过程易于实施,也保证标准化的结果更易于理解。 对于不同的表格上,所需新增的字段也不尽相同。下面分类进行说明: 维表 比如病人信息,科室信息,员工信息,设备信息等,新加字段如下: 事实表 如病人缴费,医生处方,手术记录等,新加字段如下: 数据标准化处理 在数据标准化的处理过程中,也应分为两步进行处理,先进行维表的代码(如ID号)标准化,然后将事实表中的记录以标准化后的代码配合原来的事实信息(如缴费)及数据来源标记(哪个分院)采集到DW 标准事实表中。 维表标准化 1.维表标准化以病人维表为例进行说明 2.将本院及各分院的维表数据采集到DW标准库的缓冲区(可将本院及各分院数据放置于缓冲区的不同用户 下) 数据仓库数据库设计的心得总结 数据仓库是企业商业智能分析环境的核心,它是建立决策支持系统的基础。一个良好的数据仓库设计应该是构建商业智能和数据挖掘系统不懈的追求。下面把数据仓库数据库设计的心得做一小结。 一透彻理解数据仓库设计过程 商业智能和数据挖掘归根到底是“从实践中来,到实践中去”。也就是说现实需求决定系统需求,业务数据决定系统构架,最终使用的时候又必须作用于现实需求,同时通过决策的行为影响业务。那么可以把数据仓库的设计看做是前一部分,即“从实践中来”,数据仓库的应用可以看做是“到实践中去”。把“从实践中来”这个过程进行抽象,数据仓库的设计就是“客观世界→主观世界→关系世界”的过程。 在前面几节完成了6个任务:选择被建模主题的商业过程、确定事实表的粒度、区分每一个事实表的维和层、区分事实表的度量、确定每一个维表的属性、在D BMS中创建和管理数据仓库。实际上这些任务都可以归结到从客观世界到关系世界的过程。那么把这个过程再进行归纳,可以得到如图3-61所示的综合了模型、方法和过程的示意图。 图3-61 数据仓库设计过程的模型和方法示意图 二把握设计的关键环节 如果将时间、精力、金钱和人事优先花在前面的20%,那么这20%会创造出80% 的价值。这就是有名的2/8原则。下面将介绍在数据仓库设计中,哪些因素是属于这20%的范围。 1.需求 需求分析在任何如见项目中都是最为重要的因素之一。企业模型是从企业的各个视点对企业数据需求及数据间关系的抽象。通过将企业模型映射到数据库系统,可以很快地了解现有数据库系统完成了企业模型中的哪些部分,还缺少哪些部分。然后再将企业模型映射到数据仓库系统,发现企业需要的(或可以构造的)主题。通过这样的过程完成对企业数据需求和现有数据的了解,达到明了原有系统和需要建设的主题域间共性的目的。 2.关键性能指标(KPI) 一般而言,一个决策支持系统最重要的就是要呈现决策数据。而KPI就是决策过程中要显示的数据结果的部分,如销售数量、销售金额、毛利和运费等数值部分的数据。这些KPI是通过与相关的维表进行连接而映射出来的。在分析星形模式时,往往要首先确定KPI。 3.信息对象 信息对象是指在每个分析过程中那些会影响到决策的因素。以销售分析为例,时间、产品、员工与客户就是影响决策的大因子,而每个因子又可以分离出多个分层结构,如时间可分为年、季度、月、周和日等,员工可分为年龄层、年龄、年薪层、年薪和员工所在城市等,也就是影响决策的详细因子。这些都是信息对象。从这里我们可以看出,每个大因子如时间、产品、员工与客户等就可以构成如时间维表、产品维表、员工维表与客户维表等。而时间维表又可分为年、季度和日等字段。在分析和设计这些信息对象组成的维度时,需要注意维的唯一性和公用性,千万不要在不同的主题中定义多个表示同一内容的维,如果有可能,一个维表要尽量被多个主题共享。 4.数据粒度 在数据仓库的每个主题中,都必须考虑事实数据的粒度。粒度的具体划分将直接影响到数据仓库中的数据量及查询质量。在数据仓库开始进行分析时。就需要建立合适的数据粒度模型,指导数据仓库设计和其他问题的解决。如果数据粒度定义不当,将会影响数据仓库的使用效果,使数据仓库达不到设计数据仓库的目的。 5.数据之间的联系 在数据仓库中,不同主题的数据之间的物理约束或许不再存在,但无论这些数据如何变化,要知道必须有一些“键”在逻辑上保持着不同数据之间的联系,这样 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),提高存储的利用率和系统性能,但同时也要兼顾扩展性和可移植性。 易用性:数据库设计清晰易用,用户和开发人员均能容 全国计算机等级考试二级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 结构下的一个简单应用系统。 第1章数据仓库建设 1.1数据仓库总体架构 专家系统接收增购项目车辆TCMS或其他子系统通过车地通信传输的实时或离线数据,经过一系列综合诊断分析,以各种报表图形或信息推送的形式向用户展示分析结果。针对诊断出的车辆故障将给出专家建议处理措施,为车辆的故障根因修复提供必要的支持。 根据专家系统数据仓库建设目标,结合系统数据业务规范,包括数据采集频率、数据采集量等相关因素,设计专家系统数据仓库架构如下: 数据仓库架构从层次结构上分为数据采集、数据存、数据分析、数据服务等几个方面的内容: 数据采集:负责从各业务自系统中汇集信息数据,系统支撑Kafka、Storm、Flume 及传统的ETL采集工具。 数据存储:本系统提供Hdfs、Hbase及RDBMS相结合的存储模式,支持海量数据的分布式存储。 数据分析:数据仓库体系支持传统的OLAP分析及基于Spark常规机器学习算法。 数据服务总线:数据系统提供数据服务总线服务,实现对数据资源的统一管理和调度,并对外提供数据服务。 1.2数据采集 专家系统数据仓库数据采集包括两个部分内容:外部数据汇集、内部各层数据的提取与加载。外部数据汇集是指从TCMS、车载子系统等外部信息系统汇集数据到专家数据仓库的操作型存储层(ODS);内部各层数据的提取与加载是指数据仓库各存储层间的数据提取、转换与加载。 1.2.1外部数据汇集 专家数据仓库数据源包括列车监控与检测系统(TCMS)、车载子系统等相关子系统,数据采集的内容分为实时数据采集和定时数据采集两大类,实时数据采集主要对于各项检测指标数据;非实时采集包括日检修数据等。 根据项目信息汇集要求,列车指标信息采集具有采集数据量大,采集频率高的特点,考虑到系统后期的扩展,因此在数据数据采集方面,要求采集体系支持高吞吐量、高频率、海量数据采集,同时系统应该灵活可配置,可根据业务的需要进行灵活配置横向扩展。 本方案在数据采集架构采用Flume+Kafka+Storm的组合架构,采用Flume和ETL 工具作为Kafka的Producer,采用Storm作为Kafka的Consumer,Storm可实现对海量数据的实时处理,及时对问题指标进行预警。具体采集系统技术结构图如下: 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语句中表名对大小写不敏感。但不允许在建表语句中使用双引号(“”)包括表数据库设计和编码规范
MySQL数据库教案
数据仓库编程规范
数据库设计规范
数据仓库的数据标准化思路.docx
数据仓库数据库设计的心得总结
数据库设计规范
全国计算机等级考试二级MySQL数据库程序设计
大数据仓库建设方案设计
Greenplum数据库设计开发规范