数据库设计规范_第1页
数据库设计规范_第2页
数据库设计规范_第3页
数据库设计规范_第4页
数据库设计规范_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库设计规范有限公司变更统计版本号修改点阐明变更日期变更人审批人V1.0创立EPGL修改点阐明的内容有以下几个:创立、修改(+修改阐明)、删除(+删除阐明)目录TOC\o"1-3"\u1 编写目的 12 数据库方略 12.1 数据库对象长度方略 12.2 数据完整性方略 12.3 规范化设计与性能之间的权衡方略 12.4 字段类型的定义与使用方略 13 命名规范 33.1 数据库命名规则 33.2 数据库对象命名的普通原则 33.3 表空间(Tablespace)命名规则 43.4 表(Table)命名规则 43.5 字段命名规则 43.6 视图(View)命名规则 43.7 序列(Sequence)命名规则 53.8 存储过程(Procedure)的命名规则 53.9 函数(Function)的命名规则 53.10 索引(Index)命名规范 53.11 约束(Constraint)命名规范 54 数据模型产出物规范 5附录A:xml文献使用阐明 7附录B:保存核心字 8编写目的本文的目的是提出针对Oracle数据库的设计规范,使运用Oracle数据库进行设计开发的系统严格恪守本规范的有关商定,建立统一规范、稳定、优化的数据模型。参考下列原则进行数据库设计:方便业务功效实现、业务功效扩展;方便设计开发、增强系统的稳定性和可维护性;确保数据完整性和精确性;提高数据存储效率,在满足业务需求的前提下,使时间开销和空间开销达成优化平衡。数据库方略数据模型全局单一,全部公共的数据模型得到共享。数据库建模要基于统一的元数据管理机制。数据库设计遵照关系数据库的规范化理论。OLTP与OLAP分开设计。数据库对象长度方略数据库字段的长度要考虑业务对象的类型、数据库所用字符集、时间格式来设定出相对精确的长度,满足业务需要,同时确保数据库的高效,避免不必要的开销。数据完整性方略必须遵照数据库设计的第二范式,根据业务需要尽量满足第三范式。数据完整性尽量通过业务逻辑实现,数据库设计应尽量避免使用大量的外键约束,避免使用触发器。规范化设计与性能之间的权衡方略数据的原则化有助于消除数据库中的数据冗余。如果数据冗余低,数据的一致性容易得到确保,如无特殊理由,OLTP系统的设计应当遵照第三范式,对于OLAP系统,为了减少表间连接查询的操作,提高系统的响应时间,合理的数据冗余是必要的。字段类型的定义与使用方略数据类型的选用原则数据类型使用阐明CHAR根据业务数据的特性决定与否使用CHAR类型,例如静态编码、固定年月日的时间字段等,避免数据变长的状况下使用CHAR类型VARCHAR2(N)Oracle数据库VARCHAR2类型,根据业务数据特性定义适宜的长度,定义成偶数长度。REAL、FLOAT、INTEGER、NUEBEROracle数据库必须使用NUEBERNUMBER(P,S)、NUMERIC(P,S)、DECIMAL(P,S)Oracle数据库必须使用NUMBERDATE时间类型必须使用DATEBLOB(二进制数据)、CLOB(字符数据)数据类型长度的选用参考:如果下列字段类型和长度能满足设计规定,必须遵照下列字段选用原则数据类型惯用类型CHARCHAR(1)本规范不推荐长度不为1的字段使用char类型VARCHAR2(N)VARCHAR2(2)VARCHAR2(4)VARCHAR2(8)VARCHAR2(10)VARCHAR2(16)VARCHAR2(20)VARCHAR2(30)VARCHAR2(40)VARCHAR2(50)VARCHAR2(100)VARCHAR2(200)VARCHAR2(400)VARCHAR2(1000)VARCHAR2()NUMBERNUMBER(P,S)DATEBLOB惯用字段定义:涉及销售额等金额的数值: NUMBER(16,2)涉及税率、比例、分成的数值: NUMBER(10,6)涉及货品单价的数值: NUMBER(16,6)涉及人数的数值: NUMBER(10)涉及人名的: VARCHAR2(50)涉及单位名称、地址的: VARCHAR2(100)涉及阐明、理由、意见的:VARCHAR2(200)optr_code,建议在业务表中增加该字段,表达操作员工号;opt_date,建议在业务表中增加该字段,表达操作时间;remark,建议在业务表中增加该字段,作为备用字段;stand,建议在业务表中增加该字段,作为备注;描述“是、否”类型的字段命名,避免使用“IS_”开头。命名规范数据库命名规则数据库命名规则以下:项目简称+1位数据库类型代码+识别代码+序号数据库类型代码:T:业务型数据库A:分析型数据库H:历史数据库识别代码:DEV:开发数据库TEST:测试数据库如果一种类型的数据库一种数据库,则不加序号,否则末尾增加序号。如果是生产库则不加识别代码,否则需要增加爱识别代码DEV或TEST如果只作历史库,部分生产、开发或者测试,则只需要项目简称+H+序号举例:出入系统业务生产库:AOCT、AOCT1、AOCT2出入系统业务开发库:AOCTDEV、AOCTDEV1、AOCTDEV2出入系统业务测试库:AOCTTEST、AOCTTEST1、AOCTTEST2数据库对象命名的普通原则数据库对象的命名应当以最少的字母达成最容易理解的意义。如果没有特殊规定,数据库对象及其属性的命名应满足以下条件:命名不推荐使用保存字;数据库实体统一采用英文命名;对象命名长度最佳不要超出18个字符,缩写要易于理解,符合通用的习惯,例如部门编码缩写:dept_code,组织机构编码缩写:org_code。前导字符为A至Z非前导字符可觉得:A至Z0至9_(下划线字符)表空间(Tablespace)命名规则表空间表空间的描述规则统一为:TS_业务规则。例如:TS_CRM等临时表空间临时表空间的描述规则统一为:TS_TMP_业务规则。表(Table)命名规则业务数据库中的数据表命名规则:子系统简称_业务含义分析型数据库中的数据表操作型数据存储区中的数据表:ODS_业务规则。事实表:FACT_业务规则。维表数据:DIM_业务规则。中间表:MID_业务规则。字段命名规则主键与外键必须使用相似的字段名和数据类型(含数据精度);尽量少使用联合主键;主键的命名有一定的含义,不要只写成“ID”之类的字段名;主键的生成规则有一定的含义,例如前缀+流水号规则,不要使用自增主键,不要使用数字类型。凡与业务含义无关的主键一律加_ID后缀。如PARTY_ID;但凡含有业务含义的编码(或代码)等字段一律加_CODE后缀。如PARTY_CODE;但凡名称、姓名等字段一律加_NAME后缀。如PARTY_NAME;视图(View)命名规则命名规则:V_子系统简称_业务含义。序列(Sequence)命名规则命名规则:SEQ_表名。存储过程(Procedure)的命名规则命名规则:P_子系统简称_业务含义。函数(Function)的命名规则命名规则:F_子系统简称_业务含义。索引(Index)命名规范命名规则:IDX_表名_有关字段。不允许使用自动生成的索引。约束(Constraint)命名规范主键(PrimaryKeyConstraint):PK_表名,需要考虑主键长度太长无法创立的状况,表名部分要尽量简化且易于分辨。外键(ForeignKeyConstraint):FK_表名_字段_被参考(referenced)表名,需要考虑外键长度太长无法创立的状况,表名部分要尽量简化且易于分辨。数据模型产出物规范PDM文献数据模型产出物统一为PDM文献。各个项目根据状况,能够分辨概念模型和物理模型;XML文献数据模型需要产出对应的XML文献,通过PDM进行转换,具体xml使用阐明参考附录A。建表脚本数据库的建表脚本作为数据库设计的规范产出物,需要严格进行版本控制,有统一的命名规范,命名规范以下:创立表脚本:项目简称_create_table.sql。修改表脚本:项目简称_alter_table.sql,在原有表的基础上做的修改,增加字段、主键、外键、索引等。创立存储过程脚本:项目简称_create_prc.sql,全部涉及存储过程的创立和修改,必须实时更新此文献。创立函数脚本:项目简称_create_fun.sql,全部涉及函数的创立和修改,必须实时更新此文献。创立视图脚本:项目简称_create_view.sql,全部涉及视图的创立和修改,必须实时更新此文献,并且如果在PDM文献中有视图的创立,需要更新PDM文献。注:修改表脚本只作为备忘,全部表构造的修改,都必须实时更新“PDM文献”和“创立表脚本”,便于项目实施时表构造的导入。

附录A:xml文献使用阐明表构造设计文献是指在进行表,视图,以及约束的设计过程中所产生的文献。格式:xml文献<?xml-stylesheettype=“text/xsl”href=“ui/TL_Schema.xsl”?><!DOCTYPEapp-dataSYSTEM“ui/TL_Schema.dtd”>上面两行格式固定,重要用于数据构造的列表展示,每一种表构造文献都要引用<app-data>文献根节点<database>文献二级节点,下面允许有多个<module>元素<modulename=“DEPLOY”chineseDescription=“基础信息维护”>文献三级节点,指项目设计中的模块,name和chineseDescription必须维护。下面允许有多个<submodule>节点。<submodulename=“BASE_SOURCE”chineseDescription=“基础信息”>文献四级节点,指项目设计中的模块,name和chineseDescription必须维护。下面允许有多个<table>节点<tablename=“DEPLOY_MACHINE”chineseDescription=“主机信息”pkg=“com.tl.deploy.machine”jspPath=“com/tenglong/deploy/machine”function1=“all”>表定义节点,下面允许有多个<rem><column><foreign-key><index>元素属性name指代表的英文名称,属性chineseDescription指表的中文名称。属性pkg指由表构造自动生成的java类所在包途径。属性jspPath指由表构造自动生成的jsp文献在所途径属性function=“all”指生成增删改查属性head=“TABLE_NAME”指现在表的主表名称属性line=“TABLE_NAME”指现在表的细表名称<rem>表注释元素,用来对表的功效,修改信息做出描述</rem><columnname=“PID”primaryKey=“true”required=“true”type=“VARCHAR”size=“32”chineseDescription=“内码”queryShow=“true”searchShow=“true”updateShow=“false”insertShow=“true”detailShow=“true”/>表的列元素。属性name指代字段的英文名称(即字段名)primaryKey=“true”用来标记现在列为主键列required=“true”用来标记现在列与否允许为空type=“VARCHAR”用来标记现在列的字段类型定义size=“10”用来标记现在列的字段长度chineseDescription=“内码”用来标记现在列的字段中文名称queryShow=“true”标记列中在查询列表中与否显示searchShow=“true”标记列中在查询条件中与否显示updateShow=““标记列中在修改页面中与否显示insertShow=“true”标记该列在插入页面中与否显示detailShow=“true”标记该列在明细页面中是滞显示enumValue=“1:JSP,2:CLASS”标记该列允许的选择值及代表意义。<foreign-keyforeignTable="DEPLOY_TASK">标记外键引用,允许<reference>子节点<referencelocal="TID"foreign="TID"/>本节点重要是把现在表字段与引用表字段根据字段名关联起来附录B:保存核心字对象命名不允许使用的核心字:ABSOLUTEINDICATORSYSTEM_USERAUXILIARYABSOLUTEINITIALIZETABLEBUFFERPOOLACTIONINITIALLYTEMPORARYCALLEDADAINNERTERMINATECAPTUREADDINOUTTEXTSIZECCSIDADMININPUTTHANCLUSTERAFTERINSENSITIVETHENCOLLECTIONAGGREGATEINSERTTIMECOLLIDALIASINTTIMESTAMPCOMMENTALLINTEGERTIMEZONE_HOURCONCATALLOCATEINTERSECTTIMEZONE_MINUTECONDITIONALTERINTERVALTOCOUNT_BIGANDINTOTOPCURRENT_LC_PATHANYISTRAILINGCURRENT_SERVERAREISOLATIONTRANCURRENT_TIMEZONEARRAYITERATETRANSACTIONDAYSASJOINTRANSLATEDB2GENERALASCKEYTRANSLATIONDB2SQLASSERTIONKILLTREATDBAATLANGUAGETRIGGERDBINFOAUTHORIZATIONLARGETRIMDBSPACEAVGLASTTRUNCATEDISALLOWBACKUPLATERALTSEQUALDOBEFORELEADINGUNDERDSSIZEBEGINLEFTUNIONEDITPROCBETWEENLESSUNIQUEELSEIFBINARYLEVELUNKNOWNENCRYPTBITLIKEUNNESTERASEBIT_LENGTHLIMITUPDATEEXCLUSIVEBLOBLINENOUPDATETEXTEXPLAINBOOLEANLOADUPPERFENCEDBOTHLOCALUSAGEFIELDPROCBREADTHLOCALTIMEUSEFINALBREAKLOCALTIMESTAMPUSERGENERATEDBROWSELOCATORUSINGGRAPHICBULKLOWERVALUEHANDLERBYMAPVALUESHOURSCALLMATCHVARCHARIDENTIFIEDCASCADEMAXVARIABLEINTEGRITYCASCADEDMINVARYINGISOBIDCASEMINUTEVIEWJAVACASTMODIFIESWAITFORLABELCATALOGMODIFYWHENLC_CTYPECHARMODULEWHENEVERLEAVECHAR_LENGTHMONTHWHERELINKTYPECHARACTERNAMESWHILELOCALECHARACTER_LENGTHNATIONALWITHLOCATORSCHECKNATURALWITHOUTLOCKCHECKPOINTNCHARWORKLOCKSIZECLASSNCLOBWRITELONGCLOBNEWWRITETEXTLOOPCLOSENEXTYEARMICROSECONDCLUSTEREDNOZONEMICROSECONDSCOALESCENOCHECKFALSEMINUTESCOLLATENONCLUSTEREDTRUEMODECOLLATIONNONEACCESSMONTHSCOLUMNNOTADDNAMECOMMITNULLALLNAMEDCOMPLETIONNULLIFALTERNHEADERCOMPUTENUMERICANDNODENAMECONNECTOBJECTANYNODENUMBERCONNECTIONOCTET_LENGTHASNULLSCONSTRAINTOFASCNUMPARTSCONSTRAINTSOFFAUDITOBIDCONSTRUCTOROFFSETSBETWEENOPTIMIZATIONCONTAINSOLDBYOPTIMIZECONTAINSTABLEONCHARPACKAGECONTINUEONLYCHECKPAGECONVERTOPENCLUSTERPAGESCORRESPONDINGOPENDATASOURCECOLUMNPARTCOUNTOPENQUERYCOMMENTPARTITIONCREATEOPENROWSETCOMPRESSPCTFREECROSSOPENXMLCONNECTPCTINDEXCUBEOPERATIONCREATEPIECESIZECURRENTOPTIONCURRENTPRIQTYCURRENT_DATEORDATEPRIVATECURRENT_PATHORDERDECIMALPROGRAMCURRENT_ROLEORDINALITYDEFAULTPSIDCURRENT_TIMEOUTDELETEQUERYNOCURRENT_TIMESTAMPOUTERDESCRECOVERYCURRENT_USEROUTPUTDISTINCTRELEASECURSOROVERDROPRENAMECYCLEOVERLAPSELSEREORGDATAPADEXCLUSIVEREPEATDATABASEPARAMETEREXISTSRESETDATEPARAMETERSFILERESOURCEDAYPARTIALFLOATRRNDBCCPASCALFORRUNDEALLOCATEPATHFROMSCHEDULEDECPERCENTGRANTSCRATCHPADDECIMALPLANGROUPSECONDSDECLAREPOSITIONHAVINGSECQTYDEFAULTPOSTFIXIDENTIFIEDSECURITYDEFERRABLEPRECISIONIMMEDIATESHAREDEFERREDPREFIXINSIMPLEDELETEPREORDERINCREMENTSOURCEDENYPREPAREINDEXSTANDARDDEPTHPRESERVEINITIALSTAYDEREFPRIMARYINSERTSTOGROUPDESCPRINTINTEGERSTORESDESCRIBEPRIORINTERSECTSTORPOOLDESCRIPTORPRIVILEGESINTOSTYLEDESTROYPROCISSUBPAGESDESTRUCTORPROCEDURELEVELSYNONYMDETERMINISTICPUBLICLIKETABLESPACEDIAGNOSTICSRAISERRORLOCKTYPEDICTIONARYREADLONGUNDODISCONNECTREADSMAXEXTENTSUNTILDISKREADTEXTMINUSUPSERTDISTINCTREALMLSLABELVALIDPROCDISTRIBUTEDRECONFIGUREMODEVARIANTDOMAINRECURSIVEMODIFYVCATDOUBLEREFNOAUDITVOLUMESDROPREFERENCESNOCOMPRESSWLMDUMMYREFERENCINGNOTYEARSDUMPRELATIVENOWAITADDDYNAMICREPLICATIONNULLARITH_OVERFLOWEACHRESTORENUMBERCHAR_CONVERTELSERESTRICTOFCONFIRMENDRESULTOFFLINECONTROLROWEND-EXECRETURNONENDTRANEQUALSRETURNSONLINEERRORDATAERRLVLREVOKEOPTIONERROREXITESCAPERIGHTOREXP_ROW_SIZEEVERYROLEORDERIDENTITY_GAPEXCEPTROLLBACKPCTFREEIDENTITY_STARTEXCEPTIONROLLUPPRIORINSTALLEXECROUTINEPRIVILEGESJAREXECUTEROWPUBLICMAX_ROW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论