ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:25.47KB ,
资源ID:3320972      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3320972.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(本规范规定了南京市交通局数据库建设的规则.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

本规范规定了南京市交通局数据库建设的规则.docx

1、本规范规定了南京市交通局数据库建设的规则1. 范围本规范规定了南京市交通局数据库建设的规则,是检验评定软件开发者为南京市交通局开发的应用系统质量的标准尺度。本规范适用于各软件开发者和有关单位为南京市交通局开发的应用系统所使用的数据库,数据库的设计、数据库内的对象命名、数据字典文档的编写必须遵守本规范。2. 总体要求数据库建设规范主要包括数据库设计规范、数据库对象命名规则和数据库程序编码规则、数据字典文档编写格式等内容。2.1 数据库设计总体要求 数据库是交通信息化建设的重要基础。数据库设计通常是作为应用系统开发的一部分进行的,但在应用系统开发中数据库设计具有特殊的重要性和相对独立性,因此在本规

2、范中专门进行规定。关于交通局应用系统的开发要求,请参见南京市交通局信息化软件开发实施指南。 开发者在系统设计阶段,应采用合理的设计方法进行数据库设计,建立数据库的逻辑模型和物理模型,最终设计出高性能、易扩展、易维护、少冗余、高安全性、高可靠性、一致性和完整性好的数据库。 在数据库设计完成后,开发者应向交通局提交数据库设计报告。在软件鉴定验收时,开发者应向交通局提交完整的数据库设计报告、数据字典和在开发过程中发生的变更记录。2.2 数据库对象命名的总体要求 数据库对象如表、存储过程等的名称一般根据对象的类别、所在的系统代号和自定义代号来确定,但对各类对象的命名有其特定要求,具体的各种对象的命名要

3、求请见本规范第四部分。 自定义代号根据中文名称来确定,采用中文名称首字的全拼,后接其它字的中文拼音首字母,如果有两个对象根据此方法命名出现重复则对两个对象都用中文拼音的完整拼音来表示。 数据库对象不得使用数据库的关键字作为名字。 在本规则的第四部分对Oracle数据库的对象命名要求和程序编码要求做了具体规定,如果需要使用具它数据库如SQL Server等,其命名规则参照Oracle数据库的命名规则来进行。本部分的要求具有强制性,开发者应严格遵守此要求。2.3 数据库程序编码的总体要求 通过对数据库程序编码制定规则,来提高程序的可读性。这其中主要包括变量命名规则、代码排版规则、代码注释规则等。

4、本部分相对要求较宽,但开发者应参照这部分的要求制定自己的编码规范,并严格遵守。本部分的代码注释规则是对开发者编写注释的基本要求,开发者自己可以提出对代码注释的更高要求,但不得低于本规则的要求。3. 数据库设计规范3.1 数据库设计要求为了保证数据库设计的质量,提高数据库的完整性、一致型、安全性、易扩展性、性能、减少数据的冗余,开发者应在需求分析阶段对已有业务系统、本期开发的业务系统和以后开发的业务系统的数据作全面的调研,在此基础上采用合理的设计方法,分析业务系统所涉及的数据及数据之间的内在关系,利用如Rational Rose、Together、ER-Win等软件作为数据库辅助设计工具,进行反

5、映数据库中对象联系和依赖的概念逻辑设计和物理设计。在进行数据库设计时,除了本规范以外,还应遵守南京市交通局信息化软件开发实施指南的要求。 在数据库逻辑设计完成后,开发者应向交通局提交数据库设计报告,在数据库设计报告中必须包括完整的实体关系图(E-R图),在得到交通局的评审认可后方可进行数据库的物理设计。 在软件鉴定验收时,开发者应向交通局提交最终完稿的数据库设计报告及其变更记录,同时提交所交付软件完整的数据字典。3.2 数据库概念逻辑设计 整个概念逻辑设计包括需求调研、概念设计和逻辑设计三个部分,需要与业务系统的调研、分析、设计和开发结合起来进行。3.2.1 需求调研 在应用系统开发的需求调研

6、阶段,应对本期开发的业务系统的功能数据和以后开发的业务系统的数据进行调研。对于本期要求开发实现的应用系统,应调研系统功能和所要处理的数据,同时要对交通局所有已有相关应用系统进行调研,分析这些系统是否已有新系统所需要的数据,该数据能否满足新系统的所有需求,以决定是否可以直接访问已有应用系统的数据库中的数据,或采用复制等方法定期将已有系统的数据复制到本期开发的应用系统后台数据库,或直接用新系统来维护这些数据。3.2.2 概念设计 概念设计应采用E-R模型进行,针对各个业务系统进行局部数据视图设计,然后进行局部数据视图集成,进行整体数据视图的设计。在整体设计中找到最大的共享数据集,同时对这些共享数据

7、进行语义上的描述(数据产生的业务系统、数据使用的业务系统等)。面向信息服务的数据建模采用E-R模型描述,但所有的数据模式按照中心主题建立。E-R图设计、画法不是唯一的,但在绘E-R图时应注意:结构要清晰、关联要简洁、实体个数要适中、属性分配要合理、没有低级冗余。3.2.3 局部设计根据各个业务系统的需求调研,设计出业务系统中的所有实体和关系,形成个局部的业务数据视图。3.2.4 整体设汁将交通局的各个业务系统对应的局部业务视图进行两两集成,删除冗余的实体和关系,记录业务系统的共享数据模式,最终实现一个没有冗余、一致的全局视图模式。标记所有共享数据模式的相关业务系统,以及数据的来源和数据的使用状

8、况。3.2.5 逻辑设计根据得到的全局概念模式进行关系逻辑设计,并作规范化分解,建立一系列的规范化分解,对于概念模式中的数据集进行数据表的设计。所有的公共共享数据集,业务数据要保证数据源唯一。同时对本期开发的业务系统中不能维护但需要使用的共享数据集,建立与老业务系统之间数据抽取的映射关系。面向信息服务的数据模式根据概念模式的来源和用途分别建立数据表或者跨数据库视图。能从业务数据平台中直接获取的数据应设计跨数据库视图,需要从业务数据平台层捕获的历史数据应设计成数据表。在逻辑设计阶段,应考虑: 为提高程序的执行效率适当进行逆规范化,减少连接运算 合理的属性类型及长度 创建视图 可以建立面向用户的外

9、模式,提供一定的逻辑数据独立性。3.3 数据库物理设计将设计好的关系逻辑模式按照数据产生的来源建立不同的业务数据集(库),然后建立一个公共共享数据集(库),在这个数据库中建立共享视图,同时为各个数据集(库)进行用户设置和权限分配。物理数据库的分布也存在多种模式: 所有的物理数据库存在于一台数据库服务器上,而且都由一个DBMS实例管理; 所有的物理数据库存在于一台数据库服务器上,由多个DBMS实例进行管理; 所有的物理数据库分布在不同的数据库服务器上,但所有的DBMS采用一种类型;因选择的数据库不同,在具体的物理设计上也会有所不同,但要保证数据库的设计和管理符合规范,并保证制定的规范是可行的、可

10、扩的,同时必须符合本规范的要求。在物理设计阶段,应根据数据的访问需求、频度、性能要求等设计索引和簇集,包括单属性索引、多属性索引、簇集索引等。4. Oracle数据库命名规则4.1 Oracle数据库对象命名规则为避免混乱,不得使用Oracle的关键字作为数据库对象的名字,Oracle数据库的关键字参见下表。除非在定义对象名称时在该对象前后加双引号,Oracle各类对象都以大写的形式保存, 且在使用时不区分大小写。表4-1 Oracle数据库关键字表ACCESSAUDITCOMPRESSDESCADOBETWEENCONNECTDISTINCTALLBYCREATEDROPALTERCHARC

11、URRENTELSEANDCHECKDATEEXLUSIVEANYCLUSTERDECIMALEXISTSASCOLUMNDEFAULTFILEASCCOMMENTDELETEFLOATFORLONGFCTFREESUCCESSFULFROMMAXEXTENTSPRIORSYNONYMGRANTMUNUSPRIVILEGESSYSDATEGROUPMODEPUBLICTABLEHAVINGMODIFYRAWTHENIDENTIFIEDNETWORKRENANETOIMMEDIATENOAUDITRESOURCETRIGGERINNOCOMPRESSREVOKEUIDINCREMENTNOTRO

12、WUNIONINDEXNOWALTROWIDUNIQUEINITIALNULLROWNUMUPDATEINSERTNUMBERROWSUSERINTEGEROFSELECTVALIDATEINTERSECTOFFLINESESSIONVALUESINTOONSETVARCHARISONLINESHAREVARCHAR2LEVELOPTIONSIZEVIEWLIKEORSMALLINTWHENEVERLOCKORDERSTARTWHEREWITH各类Oracle数据库对象的具体命名应遵守下面的规则。4.1.1 数据库名(Databases) 数据库名称由数据库系统的首字母拼音缩写加数据库编号组成

13、,在只有一个数据库的情况下可不加数据库编号。数据库编号从1开始,并以增量1递增。4.1.2 实例名(Instances)如果一个数据库只有一个实例,则此实例与数据库名称相同,如使用Oracle和Parallel Server或Oracle Real Application Clusters产品,一个数据库可能有多个实例,则采用数据库名加下划线加实例首字母拼音来命名。在数据库建设过程中,各单位应认真填写数据库、数据库实例名及对应用途关系表,并交数据库管理员妥善保存,此表格如此下。表4-2 数据库实例表地点数据库数据库实例名用途备注单位名数据库1实例1实例2数据库2实例1实例24.1.3 表空间

14、(Tablespaces) 表空间分为两种,用来存储系统生成的临时数据的临时表空间(Temporary Tablespaces)和储存用户数据的永久表空间(Permanent Tablespace)。临时表空间命名为TEMP_#,#表示编号(下同),如一个数据库只有一个临时表空间,则直接用TEMP命名即可。永久表空间命名分为三段:TBS_SSSS_ZZZZ;TBS表示这是一个表空间,SSSS为系统代号,ZZZZ为表空间类型,可以为DATA和IDX,DATA表示该表空间用来存储表对象,IDX表示该表空间用来存储索引对象。系统代号应能反映该表空间中存储对象在系统中的总体功能,用功能名的首字母拼音表

15、示。应用系统中的表和索引应该分别储存在两个表空间中,以达到提高性能的目的。4.1.4 数据文件(Data files)数据库文件的命名根据该文件所属表空间的名字进行,通过在表空间的名字后加下划线加编号实现,如_#.dbf所示,数据库文件的名字用.dbf作为后缀。4.1.5 日志文件(Redo log files)采用_REDO_#.log来命名数据库的日志文件。4.1.6 参数文件(Parameter files和Stored Parameter files)一个数据库对应一个参数文件,其命名用init_.ora表示。Oracle 9i 推出了存储参数文件的功能,如使用,其命名用sp_.ora

16、表示。4.1.7 控制文件(Control files)采用_CRTL_#.ctl来命名数据库的控制文件;为数据库名称,#为控制文件序号,控制文件以.ctl作为后缀。4.1.8 回滚段(Rollback segments)回滚段用RBS_#表示,如一个数据库的回滚段为RBS_01,RBS_02,在Oracle 9i版本数据库中推出了Automatic Undo Management功能,来实现对回滚信息的自动管理,此功能具有简化管理、提高效率的优点,因此如果使Oracle 9i以上版本数据库,则应使用此功能。4.1.9 表(Tables)表名为三段:Z_SSSS_XXXX,Z为性质代号,SSS

17、S为系统代号(下同)。XXXX为自定义代号(下同),表的所有字母统一用大写表示。(1)、性质代号包括B、C、T、A,其含义如下:B 指原始数据表C 编码数据表T 工具数据表A 统计数据表、临时数据表或中间数据表(2)、系统代号应能反映该表所在系统的功能。开发者应该在系统设计阶段根据软件功能模块的划分来确定系统代号,系统代号用能表达模块功能的关键词的首字母来表示,应控制在2到4个字母之内,为便于理解和记忆,一个系统不宜有过多的系统代号。(3)、自定义代号根据中文名称来确定,采用中文名称首字的全拼,后接其他字的中文拼音首字母,如果有两个表根据此方法命名出现重复则对两个表都用中文拼音的完整拼音来表示

18、:自定义代号的长度应保持在12位以内。4.1.10 字段(Fields)字段名称字段名分为三段:F_ZZ_XXXX; F表示这是一个字段,ZZ表示字段的数据类型代号,数据类型对应的数据类型代号如下表:表4-3 数据类型代号表代号数据类型CRCHAR,NCHARDTDATELGLONGRARAWLRLONG RAWNBNUMBERVCVARCHAR2,NVARCHAR2FLFLOATLBBLOG,CLOG,NCLOGBFBFILE另外,主表中的主键字段和附表中的外部键字段的类型和名称要完全相同。对于日期类型的数据,如果只保存日期数据,采用yyyy/mm/dd的格式,如果只保存时间数据,采用hh2

19、4:mi:ss的格式,如果同时保存日期和时间格式,采用yyyy/mm/dd hh24:mi:ss的格式。4.1.11 索引(Indexes)表主键(Primary Key)对应的索引命名为IDX_PK。如果表的唯一性索引(Unique Index)只有一个,则命名为IDX_UK,如果表有多个唯一性索引,则在最后再加上一个编号,命名为IDX_UK#,此处的#为一个数。如果一个表有多个其他的非唯一性索引,则按顺序为每一个索引加一个编号IDX_#,此处的#为一个数。4.1.12 约束(Constraints)应对主键(Primary Key)、唯一性约束(Unique)和引用约束(Referenti

20、al Key)等约束进行命名,而不是使用系统自动生成的名字。主键约束命名为PK_。如果一个表只有唯一性约束,则命名为UK_。如果一个表有多个外键,则在名称的最后再加一个编号,命名为UK_#。如果一个表只有一个外键约束,则命名为FK_。如果一个表有多个外键,则在名称的最后再加一个编号,命名为FK_#。4.1.13 视图(Views)视图名分为三段:V_SSSS_XXXX。V表示此对象为视图。4.1.14 同义词(Synonyms)同义词名分为三段:SYN_SSSS_XXXX。SYN表示此对象为同义词。4.1.15 序列号(Sequences)序列号名分为三段:SQ_SSSS_XXXX。SQ表示此

21、对象为序列号。4.1.16 存储过程(Stored Procedures)存储过程名分为三段:PRO_SSSS_XXXX。PRO表示此对象为存储过程。4.1.17 函数(Functions) 函数分为三段:FUN_SSSS_XXXX。FUN表示此对象为函数。4.1.18 程序包(Packages)和程序包体(Packages Bodies)程序包和相应程序包体的名字相同,分为三段:PAK_SSSS_XXXX。PAK表示此对象为函数。包内过程和函数的命名规则与独立的存储过程和函数的命名相同,具体过程参见4.1.16和4.1.17。4.1.19 触发器(Triggers)触发器分为三段:TR_A|

22、BI|U|D_。TR表示这是一个触发器,后面跟着表示触发器操作条件的英文字母,A|BI|U|D(A|B表示after|before,I|U|D表示insert|update|delete无该项操作则去掉相应的字母),后面再跟使用它的表名或视图名。4.1.20 角色(Roles)数据库角色分为两段:ROL_XXXX。ROL表示这是一个数据库角色。4.1.21 用户(Users)数据库用户分为两段:USR_XXXX。USR表示这是一个数据库用户。4.2 SQL、PL/SQL源代码编写约定4.2.1 变量命名规则为了提高PL/SQL程序的可读性,需要对PL/SQL程序的变量制定适当的命名规则。变量应

23、该用中文拼音首字母来表示,应防止变量名与Oracle表的字段重名,因为如果重名,Oracle会将此名字解释为字段名。为了能够快速区分变量的作用域和类型,应对变量加上统一的前缀和后缀。在基本类型局部变量名家前缀v_在全局变量名前加前缀g_在常量名前加前缀c_在过程和函数的参数函数变量前加p_,对IN OUT类型和OUT类型的参数变量要分别加后缀io和o。缺省没有前缀的参数变量都为IN类型。在record collection类型变量前加前缀r_在%rowtype类型变量前加前缀rt_在PL/SQL类型变量前加前缀t_在table type类型变量前加前缀tt_在游标cursor类型变量前加前缀c

24、ur_在例外exception类型变量前加前缀e_4.2.2 代码排版规则制定代码排版规则的目的是使用户更方便地理解程序的逻辑结构。缩进缩进设置为4个空格,Tab设置为4个空格。通过缩进要把程序的条件、循环的逻辑结构显示出来。使用大小写所有的SQL和PL/SQL关键字用大小写,而所有的数据库表、字段、变量用小写。4.2.3 代码注释规则在PL/SQL程序段中的注释需要能说明问题,应该比代码易读;注释的长度不能太长,60字符以内为宜;当代码发生改变时,注释应该及时更新。每个数据对象包括表、存储过程、函数和字段都必须作相关的注释说明。如果数据对象是函数或存储过程,还必须说明作者、功能和创立时间(修

25、改时间)等信息。格式如下:注释位置对Oracle数据库对象的整体注释应置于对象定义语法的下一行,AS关键字之后(置于头部时,经Oracle编译后会丢失,不能保存到数据库中);同理,其他注释也要置于代码内部。PL/SQL程序文件头部注释文件头部注释用于表明该文件的信息及版权格式,其格式如下:/Copyright/文件名:/功能描述:/改版履历:/ 姓名 时间 描述/过程、函数、包注释对过程、函数、包必须加注释描述其主要功能,注释长度不超过60字符为宜,超过则作换行处理。其他需要加注释的地方: 每一个分支出,如:if else处; 曾经出现Bug的地方(加注Bug号);声明变量时; 定义常量时,解

26、释常量的意义; 其他比较难以理解的地方。4.2.4 其他要求Oracle8i以上版本是对象关系型数据库管理系统(RDBMS),和传统的关系型数据库相比,增加了面向对象的功能。但为了提高数据库的兼容性,在进行数据库设计时应避免使用这些面向对象的功能。能够使用SQL语句实现功能时,不使用PL/SQL。删除所有无用的变量。如果要用变量来表示一个字段和多个字段,尽量使用%TYPE和%ROWTYPE来定义这些变量。数据表中用于存放文档、图片、音像等内容的大型字段应放在一个独立的表中,以减少对数据库性能的影响。5. 数据字典文档编写格式 开发者应提供完整准确的数据字典,数据字典中应包括数据库表汇总表、数据

27、库表详述表、编码数据表三部分内容。5.1 数据库表汇总表格式数据库表汇总表的目的是将某一子系统所用到的全部表和视图列在一个表格中,以便检索查找。其格式如下:表5-1 数据库表汇总表格式表子系统名数据库用户名表格编号表英文名称表中文名称用途说明类型表格编号格式为:Z_XXX,其中Z为数据表性质代号B、C、T、A,XXX为顺序号。要求相同性质的表集中排列,排列顺序依次为B、C、T、A。各性质的顺序号分别从1开始依次升序增加。汇总表中的表格编号与详述表中对应的表格编号要相同。详述表在文档中的具体位置要按表格升序为止,以便根据表格编号迅速找到对应的详述表。5.2 数据库表详述表格式数据库表详述表描述所

28、有表和视图字段的功能,其格式如下:表5-2 数据库详述表格式表子系统名数据库用户名表格编号表中文名称表英文名称No.字段名中文名称数据类型取值范围PFINDUC1 由于Oracle数据库不支持逻辑数据类型,建立数据表时,采用CHAR(1)类型模拟逻辑数据类型字段,取值为:1= True,0= False。数据库的完整性约束规则一般应用P、F、I、N、D、U、C表示,其含义如下:(1)、P:主键(PK);(2)、F:外键(FK),在取值范围内指明外键:表名(列名);(3)、I:在该字段上有索引,在数据表最后指明索引名,方向(A/D),字段名;(4)、N:该字段不许为空;(5)、D:有缺省值,在取值范围内指明缺省值;(6)、U:取值唯一;(7)、C:主键数据删除时级联删除全部外键数据。非主键无此标志;具有上述特性的字段,在文档相应的位置按上述说明填写*记号。5.3 编码数据表格式编码数据表用于将某些编码内容已经明确的编码表及其内容列在文档中,要求编码数据表按表格编号升序排列。表5-3 编码数据表格式表表格编号表中文名表英文名依据标准如国标、地方标准、行业标准、南京市交通局标准等编码字段中文名(英文名)编码内容中文名(英文名)编码内容

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1