文档库 最新最全的文档下载
当前位置:文档库 › 数据库编码标准

数据库编码标准

数据库编码标准
数据库编码标准

MIS系统课程设计规范(草案)

1.开发环境规范

使用windows 操作系统

使用SQL Server 或ACCESS数据库

2.开发语言规范

使用团队熟悉的一种开发语言,如:VB,Delphi,ASP,JSP,Java……

3.开发文档的规范

需求文档规范

设计文档规范

程序编码标准

附录:

数据库编码标准

9.1大小写规则

1.关键字采用大写。

2.系统定义的对象及数据类型采用小写。

3.引用变量、参数、列名,以及表、过程和视图之类的对象名时,使用混合的大小写

9.2缩进与空白

1.选择

a.一般缩进为两个英文字符的宽度,但SELECT语句的折行显示应字段对齐,例如:SELECT CustomerID,Companyname,ContactName,ContactTitle,Address,City,

Region,PostalCode,Country,Phone,Fax,

FROM Northwind.dbo.customers

b.没有理由将一个短的SELECT语句拆为多行。例如:

IF EXISTS(SELEC * FROM Northwind.dbo.Customers)

c.对于比较长的SELECT语句,通常将每个主要子句放置在单独的一行中,并且让它们左对齐。通常将列紧挨SELECT保留字之右放置。如果存在许多列而无法放置在同一行中,则只要在下一行中继续给出此列表,通常对位于第二行和后续行中的列缩进排列,以便它们与第一行中的列对齐。例如:

SELECT CustomerID,Companyname,ContactName,ContactTitle,Address,City,

Region,PostalCode,Country,Phone,Fax,

FROM Northwind.dbo.customers

WHERE City IN('London','Madred')

2.字句与谓词

a.构成主要子句的较小子句让它们相互对齐, 如果将一个复合句的组成部分放置在同一行中,则通常用圆括号分隔它们。例如:

SELECT CustomerID,CompanyName,ContactName,ContactTitle,Address,City,

Region,PostalCode,Phone,Fax,

FROM Northwind.dbo.Customers

WHERE City = 'China'

OR City = 'London'

OR City = 'Madrid'

3.表达式

如果一个CASE表达式比较简单,则我通常将其嵌入单一的代码行。如果它比较复杂,则将其拆为多行。对于函数及其他类型表达式也如此,例如:

SELECT CustomedD,CompanyName,ContactName,ContactTitle,

Phone,CASE WHEN Fax Is NULL THEN ’N’ELSE ’Y’END AS[Fax]FROM Northwind.dbo.Customers

WHERE City = 'London'

较复杂的CASE表达式通常占用多行

SELECT CASE Region

WHEN 'WA' THEN 'Phil'

WHEN 'SP' THEN 'Xavier'

WHEN 'BC' THENJ 'Jean-Marc'

ELSE 'Unknown'

END AS Salesman,

CustomerID,CompanyName,ContactName,

FROM Northwind.dbo.Customers

ORDER BY Salesman

9.3BEGIN/END

规则参照DELPHI编码标准2.3。

9.4圆括号

规则参照DELPHI编码标准3.1。

9.5水平间隔

规则参照DELPHI编码标准2.5。

9.6列与表的别名

对于列与表的别名通常使用的是 ColumnName As Label, 建议表的别名用一个或两个缩写字符。在SELECT列表中的列名前应用各自的表别名作为列引用的前缀,其理由有两个。第一,它增加了代码的可读性。不必猜测一个列是源自哪里。第二,它增强了代码的健壮性。如果您在此后向查询中增加一个表,该表恰巧包含一个与未限定的列同名的列,则将得到令人讨厌的“不确定的列名”错误消息。

9.7缩写与可选关键字

1.关键字

对于可选关键字。一般应在自己的代码中省略它们。这种代码决不会产生语法错误,决不会中断,决不会通过对工具的修改而变得失效,而且不占用宝贵的屏幕资源。其中的例外就是与INSERT命令一起的INTO关键字不要省略,因为在ORACLE数据库中必须这样,以及与DELETE命令一起的FROM关键字要省略。

2. 常见单词的缩写

当您在自己创建的对象名中缩写常见单词时,请尽量保持一致。如果在一个名称中将number缩写为“ Num”,则在所有对象中都做类似的缩写。不要在一个表中缩写为“ No”(如,CustNo),而在另一个表中又缩写为“ Number”(如,InvoiceNumber)。请保持一致。

9.8 名称选择

当命名一个对象时,要避免表、视图、UDF、过程、触发器、默认值和规则对象之间的命名冲突,因为它们的命名必须唯一。例如,不能让一个存储过程和一个表拥有相同的名称。如前所述,尽量保持命名的描述性,而不放任自流。

1.表

对于表,通常应使用单个单词的单数形式的实体类型名称(如,Customer)。如果表与其它表有关联,应尽量建立主键与外键。

2.视图

对于视图,通常应使用V_开头,加上有意义的描述性单词(如,V_Customer)。

3.索引

索引命名应据用描述性,见名知意,如果一个索引是建立在表Customer的CompanyName 和ContractName列之上,则好的命名应为CompanyNameContractName或类似的名称,因为索引不必在整个数据库中唯一,这样只看一下名称就可以知道该索引的主键是什么。

4.触发器

对于触发器,使用这样一种命名规则,它表示激发触发器的动作和该触发器所关联的表名(如,DeleteCustomer或InsertUpdateOrder)。如果触发器拥有特别的特性(如,它是一个INSTEADOF触发器),则通常通过一个名称的前缀来表明这一点(如,InsteadOfDeleteCustomer)。建议:除非别无它法,否则应尽可能避免使用触发器。

5.变量

参照DELPHI编码标准3.4。

6.过程和函数

过程与函数应以基于动词的形式命名,如PostPurchases或BuildHistory。

7.约束

约束的命名应能区分是哪一各类型的约束,并能根据名称知道该约束是干什么的,通常主键前加前缀PK_,外部键加前缀FK_,唯一键加前缀UK_,检查约束加前缀CK_,如:PK_EmployeeID,CK_Amount must not equal 0。建议:如果表中的某列或多列不可以出现重复记录,应尽可能地在这此列上建立唯一约束。

9.9编码约定

1.脚本建议

(1)对象删除

试图删除一个对象之前应检查其存在性。不这样做会不必要地生成错误消息,甚至当DROP命令被分割在其自己的T-SQL批处理之中。错误消息应该是一种会引起您注意的内

容,而不是一种可以经常被忽略的内容。应避免生成不必要的错误消息,以免变得对它们熟视无睹。

(2)注释

通过平衡澄清含糊与不确定的编码元素的需求与让代码免于噪声和不必要干扰的需求,来确定在自己的代码中“注释”什么。过分的注释与注释不足同样不可取。过分注释一个脚本将给您带来大量的工作,还不能真正改善代码的可读性。

当处理某些从编码的角度来看不是显而易见的,并且那些继续处理此编码的人应该知道的内容时,才应注释它。任何有意义的存储过程都应该在其开始处包含一个代码块,用来描述该过程以及该过程做什么。如同对待任何源代码过程,跟踪诸如谁修改了代码和修改代码的时间等事项也可以是非常方便的

注释应尽量用斜线-星号(/*…..*/),而少用双斜线(//)

(3)脚本文件

一般而言在一个单独的脚本文件中保存自己所创建的每个数据库对象的源代码。对于重新创建或修改对象而言,这样做提供了最大的灵活性。

(4)脚本段

如果脚本包含多个没有共享局部变量的不同段,那么通常用GO来分隔各个段,以便模块化所要执行的操作。按照这种方式,如果在其中一个段出现错误,则可以防止它引起紧跟其后的段出错。相反地,如果希望脚本段只在其前一个脚本段不出错的条件下执行,则可以去掉GO并将两块代码合并为一块。如果在前面的块中出现较严重的错误,则位于后面的块中的命令永远都不会执行。

(5)USE

如果一个脚本必须从给定数据库中运行,那么在脚本中尽可能地包含合适的USE命令。

2.存储过程与函数

(1)变量声明

如果可能,应集中地在一个位置声明存储过程或函数将使用的变量,最好在过程或函数的开始处。尽管语法上允许在代码的任何位置声明变量,但为查找一个变量声明而不得不搜索一个例程将浪费时间并导致代码更难于理解。

(2)存储过程的返回值与参数

在存储过程中对于过程的返回值应检查其正确性并做出适当的处理,通常,值0表示成功,非零值表示已出现了错误,对于存储过程的参数,应尽早检查参数的正确性,并且当提供的值不对时应返回一个错误,这样防止无效值或操作影响数据的正确性。

(3)默认参数值

给存储过和或UDF的参数提供默认值是一种不错的做法,这让它们更易于使用、更灵活和更不易出错。

(4)错误

健壮代码的标志在于全面的错误检查,应在关键操作和相应响应之后进行错误检查。通常在可能导致一个错误条件的语句这后立即检查@@ERROR,并且当一个语句没有影响任何构成错误的行时,检查@@ROWCOUNT。

(5)模块性

较之于单一且非常长的存储过程,一组较小且逻辑简单的例程更易于处理和理解。在可能的情况下,应将复杂例程拆分为较小的例程。

3.表与视图

(1)临时表

在可能的情况下,应尽量过分使用临时表。两个理由:第一,它们可以导致吞吐量问题,

因为位于tempdb的资源争用。第二,与永久表相比,对于保持对临时表的更新统计,SQL Server更为主动。这会引起性能问题和未预料的存储过程的重编译。避免临时表的一种策略是使用table变量,当它超出作用域时,会被自动删除。

(2)资源清除

在使用监临时表时,应在不再需要时删除它们。对于游标也是如此:当使用完它们,应关闭并释放它们。

(3)系统表

除非别无它法,应力求避免直接查询系统表,SQL SERVER提供一组属性函数(如,DA TABASEPROPERTY()、COLUMNPROPERTY()、OBJECTPROPERTY()等)以及大量视图与系统存储过程供您使用,直接查询系统表有两点不足。第一,系统表在不同版本之间会有变化。第二,与等价的属性可无数据函数相比,通过直接引用系统表获得的系统级信息通常欠缺可读性。

4.Trabsact-Sql

(1)特殊了一SQL

在可能的情况下,应避免通过EXEC()函数执行特殊T-SQL。有两个理由。第一,由特殊T-SQL生成的执行计划不能像存储过程的执行计划那样得以重用。第二,特殊T-SQL 非常难于调试。

因此,如果可能,应将代码放置在正常的存储过程和函数等对象之中,然后调用这些对象。这几乎总是优于任何动态T-SQL途径。如果必须执行在运行时生成的T-SQL,则我力求使用扩展过程sp_executesql。它通常明显快于EXEC(),而且服务于sp_executesql的执行计划被插入缓存并可被复用。

(2)COMPUTE与PRINT

COMPUTE是一个坏消息,因为它实际上导致多结果集被创建。您必须对它们全部做迭代,以便获得由一个COMPUTE查询所返回的所有行。ROLLUP和CUBE运算符更好,因为它们可以完成COMPUTE所完成的全部操作,甚至更多,但是,它们这样做时不需要额外的结果集。

PRINT也欠理想,ADO不能正确地返回报告消息,除非还正好产生一个包含大于10的严重级的消息。换言之,当使用ADO运行查询时,将永远不会看到PAINT消息,除非还产生了此查询的真正错误消息。

数据仓库模型的设计

2.5数据仓库模型的设计 数据仓库模型的设计大体上可以分为以下三个层面的设计151: .概念模型设计; .逻辑模型设计; .物理模型设计; 下面就从这三个层面分别介绍数据仓库模型的设计。 2.5.1概念模型设计 进行概念模型设计所要完成的工作是: <1>界定系统边界 <2>确定主要的主题域及其内容 概念模型设计的成果是,在原有的数据库的基础上建立了一个较为稳固的概念模型。因为数据仓库是对原有数据库系统中的数据进行集成和重组而形成的数据集合,所以数据仓库的概念模型设计,首先要对原有数据库系统加以分析理解,看在原有的数据库系统中“有什么”、“怎样组织的”和“如何分布的”等,然后再来考虑应当如何建立数据仓库系统的概念模型。一方面,通过原有的数据库的设计文档以及在数据字典中的数据库关系模式,可以对企业现有的数据库中的内容有一个完整而清晰的认识;另一方面,数据仓库的概念模型是面向企业全局建立的,它为集成来自各个面向应用的数据库的数据提供了统一的概念视图。 概念模型的设计是在较高的抽象层次上的设计,因此建立概念模型时不用考虑具体技术条件的限制。 1.界定系统的边界 数据仓库是面向决策分析的数据库,我们无法在数据仓库设计的最初就得到详细而明确的需求,但是一些基本的方向性的需求还是摆在了设计人员的面前: . 要做的决策类型有哪些? . 决策者感兴趣的是什么问题? . 这些问题需要什么样的信息? . 要得到这些信息需要包含原有数据库系统的哪些部分的数据? 这样,我们可以划定一个当前的大致的系统边界,集中精力进行最需要的部分的开发。因而,从某种意义上讲,界定系统边界的工作也可以看作是数据仓库系统设计的需求分析,因为它将决策者的数据分析的需求用系统边界的定义形式反映出来。 2,确定主要的主题域 在这一步中,要确定系统所包含的主题域,然后对每个主题域的内

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

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

数据库设计和编码规范

数据库设计和编码规范 Version

目录

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

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

标准规范体系建设方案设计

标准规范体系建设方案设计 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高新区智慧园区及其配套体系的建设需要相应的标准和规范进行指导。标准和规范具有以下指导作用:

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

数据库表及字段命名、设计规范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)表必须填写描述信息

代码规范率

竭诚为您提供优质文档/双击可除 代码规范率 篇一:数据库设计编码规范 sqlserve数据库设计规范 一、数据库命名规范: 对象前缀命名:前缀命名一般用小写 表的前缀:业务模块组名前缀 数据列的前缀:一般采用列的数据类型做前缀 存储过程前缀:udp,系统存储过程(sp) 自定义函数前缀:udf(userdefinefunction) 视图前缀:udv(userdefineView)表示用户自定义视图自定义规则前缀:udr(userdefinerule)用户自定义规则 自定义约束前缀:uck(userchecker)用户自定义约束 索引前缀:idx(index)表示索引 主键前缀:pk(primarykeys)表示主键 数据列的前缀示例: 二、数据库设计规范: 1、每个表中都可以考虑添加的的几个有用的字段

Recoredid,记录唯一编号,不建议采用业务数据作为记录的唯一编号 creationdate,在sqlserver下默认为getdate() Recordcreator,在sqlserver下默认为notnulldeFaultuseR RecordVersion,记录的版本标记;有助于准确说明记录中出现null数据或者丢失数据的原因 2、数据类型: 字符类型 一般不建议采用char而采用varchar数据类型,除非当这列数据的长度特别固定时可以考虑用char。 数值类型 如果表示金额货币建议用money型数据, 如果表示科学记数建议用numeric数据类型 记录标识 一般采用int类型标识唯一一行记录。 自增or非自增 3、索引: 所有的表都应该有一个主键索引,这对提高数据库的性能很有帮助 根据使用频率决定哪些字段需要建立索引,选择经常作为连接条件、筛选条件、聚合查询、排序的字段作为索引的

数据仓库设计指南

数据仓库设计指南 在一般的数据仓库应用系统中,根据系统体系结构的不同,数据仓库设计的内容和范围不尽相同,并且设计方法也不尽相同,下面的两幅图示分别表示带有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

数据库表字段命名规范

数据库表字段命名规范 摘要:当前研发工作中经常出现因数据库表、数据库表字段格式不规则而影响开发进度 的问题,在后续开发使用原来数据库表时,也会因为数据库表的可读性不够高,表字段规则 不统一,造成数据查询,数据使用效率低的问题,所以有必要整理出一套合适的数据库表字 段命名规范来解决优化这些问题。 本文是一篇包含了数据库命名、数据库表命名、数据库表字段命名及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 说明:去除项目名,统一命名规则,动宾短语分离且动宾逻辑顺序统一 三、数据库字段命名规范 3.1字段命名规范 (1)采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成,命名简洁明确,多个单词用下划线'_'分隔 (2)全部小写命名,禁止出现大写 (3)字段必须填写描述信息 (4)禁止使用数据库关键字,如:name,time ,datetime password 等(5)字段名称一般采用名词或动宾短语 (6)采用字段的名称必须是易于理解,一般不超过三个英文单词 (7)在命名表的列时,不要重复表的名称

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

数据库设计方法、规范与技巧 一、数据库设计过程 数据库技术是信息资源管理最有效的手段。数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。 数据库设计中需求分析阶段综合各个用户的应用需求(现实世界的需求),在概念设计阶段形成独立于机器特点、独立于各个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 第零步——初始化工程

数据仓库编程规范

未经允许,不可全部或部分发表、复制、使用于任何目的

文档修订摘要

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文件,例如:

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

数据库命名规范(表、字段名) 一. 实体和属性的命名 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。

数据库设计编码规范

SQL Serve数据库设计规范 一、数据库命名规范: 对象前缀命名:前缀命名一般用小写 表的前缀:业务模块组名前缀 数据列的前缀:一般采用列的数据类型做前缀 存储过程前缀:udp ,系统存储过程(sp) 自定义函数前缀:udf(User define function) 视图前缀:udv(User Define View)表示用户自定义视图 自定义规则前缀:udr(User Define rule)用户自定义规则 自定义约束前缀:uck(User Checker)用户自定义约束 索引前缀:idx(Index)表示索引 主键前缀:pk(primary keys)表示主键 数据列的前缀示例: 编号 1 2 3 4 5 6 7 数据类型char varchar int smallint datetime money numeric 前缀 c vc i si dt m n 编号8 9 10 11 12 13 数据类型decimal float bit binary image text 前缀 d f b b img tx 二、数据库设计规范: 1、每个表中都可以考虑添加的的几个有用的字段 RecoredID,记录唯一编号,不建议采用业务数据作为记录的唯一编号 CreationDate,在SQL Server 下默认为GETDATE() RecordCreator,在SQL Server下默认为NOT NULL DEFAULT USER

RecordVersion,记录的版本标记;有助于准确说明记录中出现null 数据或者丢失数据的原因 2、数据类型: 字符类型 一般不建议采用char而采用varchar数据类型,除非当这列数据的长度特别固定 时可以考虑用char。 数值类型 如果表示金额货币建议用money型数据, 如果表示科学记数建议用numeric数据类型 记录标识 一般采用int类型标识唯一一行记录。 自增or 非自增 3、索引: 所有的表都应该有一个主键索引,这对提高数据库的性能很有帮助 根据使用频率决定哪些字段需要建立索引,选择经常作为连接条件、筛选条件、聚合查询、排序的字段作为索引的候选字段。 把经常一起出现的字段组合在一起,组成组合索引,组合索引的字段顺序与主键一样,也需要把最常用的字段放在前面,把重复率低的字段放在前面。 一个表不要加太多索引,因为索引影响插入和更新的速度。 4、保证数据的一致性和完整性: 主外键关联 SQL SERVER的主键同时是一个唯一索引 外键是最高效的一致性维护方法,数据库的一致性要求,依次可以用外键CHECK 约束、规则约束、触发器、客户端程序,一般认为,离数据越近的方法效率越高。 谨慎使用级联删除和级联更新 5、建立约束实现数据有效性检测 A、可以为某一列特别重要的值建立好约束。 例如:需要凭数据库里面的SaleKind列数据判定销售类别,0值为门店销售,1为网上销售。系统只有这两种销售渠道,就应该为它建立约束,它的值只能在0和1之间。即SaleKind>0 and SaleKind<3 B、设置默认值 适当的设置默认值。 4、视图 数据的安全性还可以用视图来控制。 视图可以把用户关心的那部分数据显示给用户,而把无关的数据隐藏起来。 5、安全性: 操作数据库不建议用SA用户,因为SA用户权限过大。具体的应用应该创建相应的数

数据库设计规范 编码规范

数据库编码规范 目的1 为了统一公司软件开发的设计过程中关于数据库设计时的命名规范和具体工作时的编程规范,便于交流和维护,特制定此规范。 2 范围 本规范适用于全体开发人员,作用于软件项目开发的数据库设计、维护阶段。 术语3 数据库对象:在数据库软件开发中,数据库服务器端涉及的对象包括物理结构和逻? 辑结构的对象。 物理结构对象:是指设备管理元素,包括数据文件和事务日志文件的名称、大小、? 目录规划、所在的服务器计算极名称、镜像等,应该有具体的配置规划。一般对数据库服产品的概要设计阶段予以规划。务器物理设备的管理规程,在整个项目/ 逻辑结构对象:是指数据库对象的管理元素,包括数据库名称、表空间、表、字段? 域、视图、索引、触发器、存储过程、函数、数据类型、数据库安全性相关的设计、数据/ 库配置有关的设计以及数据库中其他特性处理相关的设计等。 4 设计概要 4.1 设计环境R2 ORACLE 11G a) 数据库ORACLE 11G R2 操作系统 LINUX 6以上版本,显示图形操作界面 b) MS SQL SERVER 2005 数据库企业版 SQL SERVER 2005 以上补丁和安全补丁打sp3 操作系统 WINDOWS 2008 SERVER 4.2 设计使用工具做为数据库的设计工具,要求为主要字段做详尽说明。对于PowerDesigner a) 使用尽量使用企业管理器对数据库进行设计,并且要求对表,字段编写详细的说SQL Server

明(这些将作为扩展属性存入SQL Server中) 文档,作为数据字典保存,PowerDesigner b) 通过定制wordword格式报表,并导出SQL Server PowerDesigner v10 格式。(才具有定制导出word格式报表的功能)。对于一旦在企业管理器进行数据库设计时加入扩展属性,就可以通过编写简单的工具将数据字典导出。 编写数据库建数据库、建数据库对象、初始化数据脚本文件c) 设计原则4.3 采用多数据文件a) 500MB 2GB,windowb) 禁止使用过大的数据文件,系统不超过unix系统不大于数据库中必须将索引建立在索引表空间里。c) oracle 基本信息表在建立时就分配足够的存储空间,禁止其自动扩展功能d) blob(或大文本列)和大文本字列、e) blob列要独立出一张表,此表只有id 或saf) 为每一个数据库创建独立的管理员用户,使用该用户进行设计,尽量不要使用者系统管理员身份进行数据库设计。 4.4 设计的更新 a) 在设计阶段,由数据库管理员或指定的项目组其一成员进行维护。 b) 运行阶段,由数据库管理员进行维护。 c) 如对表结构进行修改,应先在数据字典文档进行修改,最后在数据库中进行修改。如果修改的是数据库字典表,必须由数据库管理员进行。 直接连代码,如果使用PowerDesigner,禁止由PowerDesignerd) 编写更新的SQL数据库进行数据库操作(如果是更改表或者字段的说明性文字可以通过数据库管理器图形界面进行修改) e) 修改数据库要通过SQL,禁止其它方式对数据进行修改 要添加说明后保存备查修改数据库的SQLf) 命名总体原则5 设定的前缀一律用小写字母? ? 标识名称命名全部小写 整个命名的全长不得超过30个字母? ,不能使用中文和其他字符,有特别情况允许使用末尾数‘_'? 全部使用字母和下划线t_Finace1, t_Finace2... 字编号。例如: ? 命名名称来自于业务,全部采用英文单词 英文单词过长可以采用通用的缩写,尽量表达出业务的含义? 如需要两个以上的英文单词做标识名称,单词之间要用下划线‘_'? 连接 ? 名称全是由名词组成的,名词由大范围到小范围排序取名

数据仓库的数据标准化思路.docx

数据仓库的数据标准化思路 数据标准化 对于大型公司而言,各个下层子公司都使用自己本地的业务系统,当这些子公司数据往上汇总到总公司时,常常出现代码不一致,数据歧义等等各种各样的问题,在这种情况下,数据标准化就变得不得不行了。 典型的例子,比如医院,大型医院往往包含多个分院,而分院都是用自己的业务系统。业务数据采集汇总后,发现数据结构及数据本身出现歧义,无法直接使用。因此,就不得不对本院及分院的业务数据进行标准化处理,避免歧义,使数据更真实可用,简单易理解。 数据标准化处理应当注意两个关键点: 1.一号对应一对象。 以病人为例,病人可能在各分院及本院都注册建档,因此同一病人可能在各分院都有不同的ID号,但数据采集到本院,与本院数据合并后,进行标准化处理,应保证此病人具有新的唯一ID号。同时需保留病人曾经的各分院及本院ID号,便于其他分院数据的关联(如分院的病人缴费数据需要关联原始分院号码,之后以标准化后唯一ID号,进入本院系统)。 2.事实数据标明数据来源。 如病人缴费信息,因为缴费事实产生的位置不同,需要进行来源标注,分清本院及各分院,便于数据理解及之后的查询和统计。 在构建DW时的数据标准化处理流程上,可以考虑通过以下方式来完成。 标准化准备 在标准化处理之前,需要对DW表格结构进行一些处理,使得标准化过程易于实施,也保证标准化的结果更易于理解。 对于不同的表格上,所需新增的字段也不尽相同。下面分类进行说明: 维表 比如病人信息,科室信息,员工信息,设备信息等,新加字段如下:

事实表 如病人缴费,医生处方,手术记录等,新加字段如下: 数据标准化处理 在数据标准化的处理过程中,也应分为两步进行处理,先进行维表的代码(如ID号)标准化,然后将事实表中的记录以标准化后的代码配合原来的事实信息(如缴费)及数据来源标记(哪个分院)采集到DW 标准事实表中。 维表标准化 1.维表标准化以病人维表为例进行说明 2.将本院及各分院的维表数据采集到DW标准库的缓冲区(可将本院及各分院数据放置于缓冲区的不同用户 下)

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

数据库命名规范(表、字段名) 一.实体和属性的命名 1.常用单词已经进行了缩写,在命名过程当中,根据语义拼凑缩写即可。注意,由于ORCAL 数据库会将字段名称统一成大写或者小写中的一种,所以要求加上下划线 举例: 定义的缩写 Sales: Sal 销售; Order: Ord 订单; Detail: Dtl 明细; 则销售订单名细表命名为:Sal_Ord_Dtl; 2.如果表或者是字段的名称仅有一个单词,那么建议不使用缩写,而是用完整的单词。 一、【操作规范】 1. 如无备注,则表中的第一个id字段一定是主键且为自动增长; 2. 如无备注,则数值类型的字段请使用UNSIGNED属性; 3. 如无备注,排序字段order_id在程序中默认使用降序排列; 4. 如无备注,所有字段都设置NOT NULL,并设置默认值; 5. 如无备注,所有的布尔值字段,如is_hot、is_deleted,都必须设置一个默认值,并设为0; 6. 所有的数字类型字段,都必须设置一个默认值,并设为0; 7. 针对varchar类型字段的程序处理,请验证用户输入,不要超出其预设的长度; 8. 建表时将数据字典中的字段中文名和属性备注写入数据表的备注中(“PK、自动增长”不用写); 9. 如无说明,建表时一律采用innodb引擎; 二、【常用表名约定】 0. 说明:表前缀用项目名称首字母缩写;所以表名都小写,单词之间用下划线分开,单

词都用单数形式 1. user –用户 2. category –分类 3. goods –商品、产品等一切可交易网站的物品都用此命名 4. good_gallery –物品的相册 5. good_cate –物品的分类,除了单独作为表名,其他地方分类单词一律用缩写cate 4. attr –属性 5. article –文章、新闻、帮助中心等以文章形式出现的,一般都用此命名 6. cart –购物车 7. feedback –用户反馈 8. order –订单 9. site_nav –包括页头和页尾导航 10. site_config –系统配置表 11. admin –后台用户【RBAC标准表】 12. role –后台用户角色【RBAC标准表】 13. access –后台操作权限,相当于action【RBAC标准表】 14. role_admin –后台用户对应的角色【RBAC标准表】 15. access_role –后台角色对应的权限【RBAC标准表】 16. 待续 三、【常用列名约定】 1. 表名_id –通常用作外键命名 2. cid –特殊的编号,带有元数据,方便关联查询,你可以把它理解成类别(层次)编号。举个例子,产品在分类时,往往需要将其归类到子分类下,相应的字段中也一般只记录子分类的id,这时若需要知道该产品属于哪个主分类,就需要通过子分类信息再查询到主分类信息,这是比较麻烦的,cid字段就是要解决这个问题。一般的站点几十个分类肯

国家地名数据库代码编制规则

《国家地名数据库代码编制规则》 一、地名数据库代码编制 (一)为了统一、规范国家地名数据库代码,满足地名数据库编码工作的需要,特制定本规则。 (二)国家地名数据库代码依据国家标准《中华人民共和国行政区划代码》(GB2260)、《县以下行政区划代码编制规则》(GB10114一88)的编码规则、《民政统计代码编制规则》和《地名分类与类别代码编制规则》(GB/T18521-2001)制定。 (三)国家地名数据库代码应做到不重、不漏,留有备用号。 (四)国家地名数据库代码共有20位数字,分为四段。 第一段由6位数字组成,表示县级以上行政区划代码, 执行《中华人民共和国行政区划代码》(GB/T 2260-2002)。 1.行政区划数字代码(简称数字码)采用三层六位层次码结构,按层次分别表示我国各省(自治区、直辖市、特别行政区)、市(地区、自治州、盟)、县(自治县、县级市、旗、自治旗、市辖区、林区、特区)。 2.数字码码位结构从左至右的含义是: 第一层即前两位代码表示省、自治区、直辖市、特别行政区。 第二层即中间两位代码表示市、地区、自治州、盟、直辖市所辖市辖区/县汇总码、省(自治区)直辖县级行政区划汇总码,其中 (1)01~20、51~70表示市,01、02还用于表示直辖市所辖市辖区、县汇总码; (2)21~50表示地区、自治州、盟; (3)90表示省(自治区)直辖县级行政区划汇总码。 第三层即后两位表示县、自治县、县级市、旗、自治旗、市辖区、林区、特区,其中: (1)01~20表示市辖区、地区(自治州、盟)辖县级市、市辖特区以及省(自治区)直辖县级行政区划中的县级市,01通常表示市辖区汇总码; (2)21~80表示县、自治县、旗、自治旗、林区、地区辖特区 (3)81~99表示省(自治区)辖县级市。 3.为保证数字码的唯一性,因行政区划发生变更而撤销的数字码不再赋予其他行政区划。 4.凡是未经批准,不是国家标准的行政区划单列区、县级单位,代码的第三层即后两位必须设置为以91开始按顺序往下编制。 第二段的3位代码执行国家标准《县以下行政区划代码编制规则》(GB/T10114-2003)。其中的第一位数字为类别标识,以“0”表示街道,“1”表示镇,“2和3”表示乡,“4和5”表示政企合一的单位;其中的第二位、第三位数字为该代码段中各行政区划的顺序号。具体划分如下: 1.001—099 表示街道的代码,应在本地区的范围内由小到大顺序编写; 2.100—199 表示镇(民族镇)的代码,应在本地区的范围内由小到大顺序编写; 3.200—399 表示乡(民族乡)的代码,应在本地区的范围内由小到大顺序编写; 4.400—599表示政企合一单位的代码,应在本地区的范围内由小到大顺序编写; 5.600-699表示开发区等非法定单位代码,应在本地区的范围内由小到大顺序编写; 6.999表示省、地、区(县)本级的代码,应在本地区的范围内编写。 第三段由5位数字组成,表示地名属性类别,执行《地名分类与类别代码编制规则》(GB/T 18521-2001)第四段为6位数字,表示附加码,具体代码段为 000000-999999,用以区分同一类别并且是同一行政区的地名并进行排序,如果前13位编码可以确定此地名的唯一性,则第四段代码用000000表示。 其具体格式为:

大数据仓库建设方案设计

第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可实现对海量数据的实时处理,及时对问题指标进行预警。具体采集系统技术结构图如下:

相关文档
相关文档 最新文档