Oracle数据库设计规范建议

合集下载

Oracle数据库命名规范

Oracle数据库命名规范

1.Oracle数据库命名规范数据库命名规范总体上以“汉语拼音和常见英语单词相结合”的方式,汉语拼音即是采用每一个汉字拼音的第一个字母的方式。

英语单词采用整个英文单词或可以识别的英文单词缩写的方式。

数据库字段命名原则总统上同数据库命名,采用“汉语拼音和常见英语单词相结合”方式命名。

这里单独出来主要是强调本系统字段命名需要额外遵循如下规则:1)字段名称的唯一性:即同一含义的字段在整个系统范围内中必须有相同的字段名。

不能有类似一个表中的备注字段用“BeiZhu”,另一表中的备注却用“Remark”、“Desc”、“XXRemark”等。

2)字段含义唯一性:即系统同一字段名称必须有同一含义。

不能有类似“Name”在一个表中表单位名称,在另外一个表中表项目名称,这种情况需要加前缀区分。

3)所有字段名不能以SM开头,目的是避免与SuperMap保留字段前缀混淆4)空间表中:字段顺序以空间信息字段在前,属性信息字段在后原则。

5)属性表中:字段顺序以主次顺序设计,用于空间定位的字段放在最后原则。

1.1表属性规范1)表名前缀为Tbl_。

数据表名称必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:tbl_pstn_detail。

表名称不能用双引号包含。

2)表分区名前缀为p。

分区名必须有特定含义的单词或字串。

例如:tbl_pstn_detail的分区p2004100101表示该分区存储2004100101时段的数据。

3)字段名字段名称必须用字母开头,采用有特征含义的单词或缩写,不能用双引号包含。

4)主键名前缀为PK_。

主键名称应是前缀+表名+构成的字段名。

如果复合主键的构成字段较多,则只包含第一个字段。

表名可以去掉前缀。

5)外键名前缀为FK_。

外键名称应是前缀+外键表名+主键表名+外键表构成的字段名。

表名可以去掉前缀。

1.2索引1)普通索引前缀为IDX_。

索引名称应是前缀+表名+构成的字段名。

如果复合索引的构成字段较多,则只包含第一个字段,并添加序号。

(完整版)Oracle数据库规划设计和运行维护方案

(完整版)Oracle数据库规划设计和运行维护方案

Oracle数据库规划设计和运行维护方案(V1。

0)目录1。

前言 (6)1。

1. 编写目的 (6)1。

2。

方案说明 (6)1.3. 预期读者 (7)2。

数据库部署模式 (7)2.1. 单机模式 (7)2.2. 双机热备模式(HA模式) (8)2.3。

集群模式(RAC) (9)2。

4. 主从模式(DataGuard) (10)2.5。

混合模式(DataGrard+RAC) (10)2。

6。

数据库运行模式选择 (11)3。

系统特点和数据库类型 (11)3。

1。

业务系统的特点 (11)3。

1.1。

OLTP特点 (12)3.1.2。

OLAP特点 (13)3。

2。

数据库的规模 (13)3.3。

数据库版本建议 (13)4. 数据库运行环境规划 (14)4.1。

主机规划 (14)4。

2. 网络规划 (15)4.3. 存储规划 (17)5。

数据库安装部署规划 (19)5.1。

软件安装路径 (19)5。

2. 表空间设计 (19)5.2.1. 业务数据量估算 (19)5。

2。

2。

表空间使用规则 (21)5.2.3。

表空间的概念和分配原则 (25)5。

2.4。

表空间的参数配置 (26)5.2。

5. Undo/temp表空间的估算 (30)5.2。

6. 表的参数设置 (30)5.2。

7. 索引的使用原则 (31)5。

3. 文件设计 (32)5.3。

1. RAC配置文件 (32)5.3。

2. 参数文件 (33)5。

3。

3. 控制文件 (34)5。

3.4。

重做日志文件 (35)6。

数据库应用规划 (37)6。

1。

数据库用户设计 (37)6。

1。

1。

用户权限规划 (37)6.1.2。

用户安全实现 (39)6。

1。

3. 用户类型及角色命名规范 (41)6.2. 数据库分区 (44)6.2。

1. 数据库分区介绍 (44)6。

2.3. 物理分割 (45)6。

2。

4. 数据分区的优点 (45)6.2.5. 数据分区的不足 (45)6.2。

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

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

数据库的设计⽅法、规范与技巧⼀、数据库设计过程 数据库技术是信息资源管理最有效的⼿段。

数据库设计是指对于⼀个给定的应⽤环境,构造最优的数据库模式,建⽴数据库及其应⽤系统,有效存储数据,满⾜⽤户信息要求和处理要求。

数据库设计中需求分析阶段综合各个⽤户的应⽤需求(现实世界的需求),在概念设计阶段形成独⽴于机器特点、独⽴于各个DBMS产品的概念模式(信息世界模型),⽤E-R图来描述。

在逻辑设计阶段将E-R图转换成具体的数据库产品⽀持的数据模型如关系模型,形成数据库逻辑模式。

然后根据⽤户处理的要求,安全性的考虑,在基本表的基础上再建⽴必要的视图(VIEW)形成数据的外模式。

在物理设计阶段根据DBMS特点和处理的需要,进⾏物理存储安排,设计索引,形成数据库内模式。

1. 需求分析阶段 需求收集和分析,结果得到数据字典描述的数据需求(和数据流图描述的处理需求)。

需求分析的重点是调查、收集与分析⽤户在数据管理中的信息要求、处理要求、安全性与完整性要求。

需求分析的⽅法:调查组织机构情况、调查各部门的业务活动情况、协助⽤户明确对新系统的各种要求、确定新系统的边界。

常⽤的调查⽅法有:跟班作业、开调查会、请专⼈介绍、询问、设计调查表请⽤户填写、查阅记录。

分析和表达⽤户需求的⽅法主要包括⾃顶向下和⾃底向上两类⽅法。

⾃顶向下的结构化分析⽅法(Structured Analysis,简称SA⽅法)从最上层的系统组织机构⼊⼿,采⽤逐层分解的⽅式分析系统,并把每⼀层⽤数据流图和数据字典描述。

数据流图表达了数据和处理过程的关系。

系统中的数据则借助数据字典(Data Dictionary,简称DD)来描述。

数据字典是各类数据描述的集合,它是关于数据库中数据的描述,即元数据,⽽不是数据本⾝。

数据字典通常包括数据项、数据结构、数据流、数据存储和处理过程五个部分(⾄少应该包含每个字段的数据类型和在每个表内的主外键)。

数据项描述={数据项名,数据项含义说明,别名,数据类型,长度, 取值范围,取值含义,与其他数据项的逻辑关系} 数据结构描述={数据结构名,含义说明,组成:{数据项或数据结构}} 数据流描述={数据流名,说明,数据流来源,数据流去向, 组成:{数据结构},平均流量,⾼峰期流量} 数据存储描述={数据存储名,说明,编号,流⼊的数据流,流出的数据流, 组成:{数据结构},数据量,存取⽅式} 处理过程描述={处理过程名,说明,输⼊:{数据流},输出:{数据流}, 处理:{简要说明}} 2. 概念结构设计阶段 通过对⽤户需求进⾏综合、归纳与抽象,形成⼀个独⽴于具体DBMS的概念模型,可以⽤E-R图表⽰。

oracle数据库设计课程设计

oracle数据库设计课程设计

oracle数据库设计课程设计一、课程目标知识目标:1. 理解Oracle数据库的基本概念,掌握数据库设计的基本原理;2. 学会使用SQL语言进行数据库的基本操作,如创建表、查询数据、更新数据等;3. 掌握数据库设计规范,能够设计出结构合理、性能优良的数据库表结构;4. 了解数据库的安全性和一致性约束,能够为数据库设置合理的约束条件。

技能目标:1. 能够运用所学知识独立完成小型信息系统的数据库设计;2. 能够熟练运用SQL语言进行数据库的操作,解决实际问题;3. 能够运用数据库设计原则对现有数据库进行优化,提高数据库性能;4. 能够分析实际业务需求,撰写数据库设计文档,为软件开发提供支持。

情感态度价值观目标:1. 培养学生对数据库技术的兴趣,激发学习积极性,提高自主学习能力;2. 培养学生具备良好的团队合作精神,能够在团队项目中发挥积极作用;3. 培养学生严谨、细致的学习态度,对待数据库设计和操作能够认真负责;4. 通过数据库技术在实际案例中的应用,使学生认识到信息技术对社会发展的积极作用,增强社会责任感。

二、教学内容1. Oracle数据库基础知识- 数据库概念、发展历史及Oracle数据库特点- 数据库体系结构、数据库存储结构- SQL*Plus工具的使用2. SQL语言基础- 数据定义语言(DDL):创建、修改、删除表- 数据操纵语言(DML):插入、查询、更新、删除数据- 数据控制语言(DCL):权限管理、事务控制3. 数据库设计原理- 实体关系模型(ER模型)及其转换- 数据库设计范式:1NF、2NF、3NF、BCNF- 数据完整性、约束条件设置4. Oracle数据库高级应用- 索引、分区、视图、序列的应用- 存储过程、函数、触发器的创建与使用- 数据库性能优化、备份与恢复5. 实践项目- 设计一个小型信息系统的数据库,包括表结构设计、数据操作、完整性约束设置等- 对数据库进行性能优化,分析并解决性能瓶颈- 撰写数据库设计文档,进行项目展示与交流教学内容按照以上五个方面进行组织,确保学生能够系统地掌握Oracle数据库的设计与应用。

掌握数据库设计的原则与技巧

掌握数据库设计的原则与技巧

掌握数据库设计的原则与技巧在当今数字化的时代,数据已经成为企业和组织运营的核心资产之一。

而数据库作为存储和管理数据的关键工具,其设计的合理性和有效性直接影响着系统的性能、可扩展性和数据的完整性。

因此,掌握数据库设计的原则与技巧对于开发高质量的应用程序和确保数据的高效管理至关重要。

数据库设计的原则1、数据完整性数据完整性是指确保数据库中的数据准确、一致和可靠。

这包括实体完整性(确保表中的每行都有唯一的标识符)、参照完整性(确保表之间的关系正确)和域完整性(确保数据的值在预定义的范围内)。

例如,在一个学生成绩管理系统中,学生表中的学号必须是唯一的,课程表中的课程编号也必须是唯一的。

同时,成绩表中的成绩必须在 0 到 100 之间。

2、数据一致性数据一致性是指在数据库的不同部分和不同操作中,数据保持相同的含义和格式。

为了实现数据一致性,需要在设计时定义明确的数据规则和约束条件。

比如,在一个库存管理系统中,如果一个商品被出库,那么库存数量应该相应地减少,而且在任何查询库存的操作中,都应该得到相同的准确数量。

3、最小冗余冗余数据是指在数据库中多次重复存储相同的信息。

过多的冗余会导致数据不一致、存储空间浪费和更新操作的复杂性增加。

然而,在某些情况下,适当的冗余可以提高查询性能。

例如,在一个订单管理系统中,可以在订单详情表中存储商品的名称和价格,而不是每次查询都从商品表中获取,这样可以减少表连接的操作,但需要确保在商品信息发生变化时能够及时更新。

4、可扩展性设计的数据库应该能够轻松适应未来数据量的增长和业务需求的变化。

这意味着在设计时要考虑到可能的扩展方向,例如添加新的表、字段或关系。

例如,如果一个电商平台预计未来会增加新的商品类别,那么在设计数据库时应该预留足够的灵活性,以便能够方便地添加相关的表和字段。

5、性能优化数据库的性能是设计时需要重点考虑的因素之一。

这包括合理选择数据类型、创建合适的索引、优化查询语句等。

ORACLE设计规范

ORACLE设计规范

ORACLE设计规范1、数据库模型设计方法规范1.1、数据建模原则性规范1.2、实体型之间关系认定规范1.3、范式化1NF的规范1.4、范式化2NF的规范1.5、范式化3NF的规范1.6、反范式化冗余字段使用规范1.7、数据库对象命名基本规范第一:长度规范:凡是需要命名的对象其标识符均不能超过30个字符,也即:Oracle中的表名、字段名,函数名,过程名,触发器名,序列名,视图名的长度均不能超过30个字符;第二:构成规范:数据库各种名称必须以字母开头,但严禁使用SYS开头;名称只能含有字母,数字和下划线“_”三类字符,“_”用于间隔名称中的各语义字段;不要使用DUAL作表名;第三:大小写规范:构成Oracle数据库中的各种名称(表明,字段名,过程名,视图名等等)的所有字符,必须使用大写,也就是不能在脚本中,对任何名称添加双引号“”来设定字符的大小写形式,只要不采用“”限制,Oracle自动会将各名称转化成大写。

2、表的设计规范2.1、表的主键规范遵循如下三点原则:第一:有无原则:除临时表和外部表,以及流水表,日志表外,其他表都要建立主键;第二:构成原则:主键不能使用含有实际语义的列,应该增加一个xx_id字段做主键,类型为number,取值来自序列sequence;第三:创建原则:对于500万以上的表,请数据组参与设计实施,采用先建唯一索引再添加主键约束的方式来创建主键;2.2、表的主键列规范对于实体表,主键就是一列,就是没有任何语义的自增的NUMBER列,对于关系表,主键就是相关实体表主键形成的复合主键,是多列;2.3、使用注释的规范2.4、一个表所含字段总长度的规范2.5、一个表所含字段访问频繁度的规范2.6、一个表所含数据量的规范2.7、大对象字段(BLOB,CLOB)使用规范2.8、增量同步表的设计规范字典信息表和需要使用增量同步的表必须增加如下属性:2.9、表的表空间使用规范2.10、索引的表空间使用规范3、设计分区表的规范3.1、RANGE分区的规范3.2、LIST分区的规范3.3、HASH分区的规范3.4、RANGE-LIST分区的规范3.5、RANGE-HASH分区的规范4、索引的设计规范4.1、主键索引的规范4.2、唯一约束索引的规范4.3、外键列索引的规范4.4、复合索引的规范4.5、函数索引的规范4.6、位图索引的规范4.7、反向索引的规范4.8、分区索引的规范4.9、索引重建的规范5、SQL访问规范5.1、避免SELECT *程序中不能出现SELECT*,即使是选择全部选择项,也需要全部指明,这主要出于如下原因:第一:使用*相对比较慢,因为Oracle 需要遍历更多的内部字典信息;第二:为避免以后相关表增加字段造成程序错误,比如INSERT INTO SELECT和SELECT INTO语句会报错;5.2、避免笛卡尔运算多表关联查询不能出现笛卡尔积,如果在报表中为集聚表(或称中间表)生成多个维度组成的复合主键需要使用迪克尔积的,必须请数据组确认性能。

数据库设计开发规范

数据库设计开发规范

数据库设计开发规范1 数据库命名约定1.1 规则(1)命名富有意义英⽂词汇,多个单词组成的,中间以下划线分割。

(2)除数据库名称长度为1-8个字符,其余为1-30个字符,dblink名称也不要超过30个字符。

(3)命名只能使⽤英⽂字母,数字和下划线,字母全部⼩写(4)避免使⽤Oracle的保留字如level、关键字如type。

1. 2系统模块编号名称英⽂缩写1系统管理system sys2配置管理dictionary dic3设备系统equipment equ4通讯系统BaiZE bai5能耗系统energy consumption egy6调度系统dispatch dph7数据分析系统Auto Data Make Data amk8Data to UI dui9stmart smt10营收系统revenue rev11客服系统custom service cus12远程抄表系统remote reading rea13报装系统Expanding exp14移动互联系统mobile mob15管⽹监测系统Pipe Supervision pip16⾃备井监测Self-supply wells ssw17协同办公cooperative OA coa18⽔⼚监测Water Factory Monitoring wfm19⼆次供⽔系统secondary water-supply sws20GIS系统gis gis21⽔⼒模型系统Water Model system mod21⽔⼒模型系统Water Model system mod22管理系统Manage system man23仿真决策分析系统decision-making system dms24BIM系统Building Information Modeling bim1. 3业务功能编号名称英⽂缩写1⼩区area area2压⼒pressure pressure3流量flow flow4客服custom service service5移动应⽤mobile apps app6⽔⼚water works water7客户customer customer 8⼤客户big customer bcustomer 9⼆次供⽔secondary water supply second10饮⽔机water fountain fountain11⾃备井Self-supply wells wells12⽔质water quality quality13诊断diagnoses diagnoses 14⽔源waterhead waterhead 15收费charge charge16档案file file17抄表reading reading18发票invoice invoice19报表report report20⼯单job job21流程process processs 1. 4数据库对象编号名称缩写其它1表空间tbs2表tb3视图vw4过程sp5函数fn6序列seq seq_表名7触发器tr tr_表名8包pk9索引idx seq_表名10约束ck ck_表名_字段名11主键pk pk_表名_字段名12外键fk fk_主表名_从表名13⽤户⾃定义类型udt2 SQL书写⽅式2.1 注释(1)注释以中⽂为主。

ORACLE数据库设计规范

ORACLE数据库设计规范

1 命名原则约定ü? 是指对数据库、数据库对象如表、字段、索引、序列、存储过程等的命名约定;ü? 命名使用富有意义的英文词汇,尽量避免使用缩写,多个单词组成的,中间以下划线分割ü? 避免使用Oracle的保留字如LEVEL、关键字如TYPE(见Oracle保留字和关键字);ü? 各表之间相关列名尽量同名;ü? 除数据库名称长度为1-8个字符,其余为1-30个字符,Database link名称也不要超过30个字符;ü? 命名只能使用英文字母,数字和下划线;?表名规则如下:命名规则为xxx_yyy_TableName。

xxx表示开发公司的名称,最多五个字母构成,尽量用简称;yyy表示子系统中的子模块的名称(可以没有), 最多五个字母构成,尽量用简称;TableName为表含义, 最多十个字母构成,尽量用简称?TableName规则如下:ü? 使用英文单词或词组作为表名,不得使用汉语拼音ü? 用名词和名词短语作表名ü? 不使用复数?正确的命名,例如:fiber_sys_userfiber_biz_order?存储过程规则如下:命名规则为xxx_yyy_StoredProcedureName。

xxx表示开发公司的名称,最多五个字母构成,尽量用简称;yyy表示子系统中的子模块的名称(可以没有), 最多五个字母构成,尽量用简称;StoredProcedureName为存储过程含义,最多十个字母构成,尽量用简称?StoredProcedureName规则如下:ü? 用动词或动词短语来命名,并带有宾语ü? 需要符合用Pascal 命名规则。

ü? 尽量谨慎地使用缩写ü? 尽量不要和关键字重合ü? 不要用任何名前缀 (例如 U,B)ü? StoredProce dureName内不使用下划线ü? 当操作依赖条件时,一般结尾使用 By+条件?存储过程正确的命名,例如:sys_InsertUsersys_SearchUserByUserIDsys_DeleteUserByUserID?视图规则如下:ü? 视图的命名采用xxx_yyy_ViewName_v。

数据库设计规范和指导

数据库设计规范和指导

数据库设计规范和指导1数据库设计规范需考虑以下1.业务根据业务和范式设计合理的表结构2.容量根据业务考虑月增长量,年增长量等等,考虑是否进行水平分表.根据请求性能指标考虑是否进行垂直水平分表.3.性能过高的范式会影响性能,数据库库表结构直接影响查询语句,间接影响查询效率.4.范式一般情况遵循范式,特殊情况可以反范式,进行表之间的字段冗余.5.索引优化dba根据业务表查询进行索引优化2数据库以及账户名划分1. 尽量简洁明义,能够一眼看出来这个数据库是用来做什么的;2. 使用名词作为数据库名称,并且只用英文,不用中文拼音;3. 使用英文字母,全部小写,如果oracle可按个人习惯全部大写或者小写.4. 如果有多个单词,则使用下划线隔开.使用常见单词,避免使用长单词和生僻词;2.1读写账号分离读写库w_xxx 只读库r_xxx2.2开发环境读写库dev_w_xxx 只读库dev_r_xxx2.3测试环境读写库qa_w_xxx 只读库qa_r_xxx2.4生产模拟环境生产数据库从库(准实时同步),只读环境,不允许修改数据,不允许修改表结构;供线上问题查找,数据查询等读写库real_w_xxx 只读库real_r_xxx2.55.生产线上环境线上环境;开发人员不允许直接在线上环境进行数据库操作,如果需要操作必须找DBA进行操作并进行相应记录;读写库online_w_xxx 只读库online_r_xxx3表名字段名限制SQLSERVER 128个字符,临时表116个字符。

Oracle 30个字符。

(为什么要这么短?)MySQL 64个字符。

DB2 128个字符?4表名命名规范1. 尽量简洁明义,能够一眼看出来这个数据库是用来做什么的;2. 使用名词作为数据库名称,并且只用英文,不用中文拼音;3. 使用英文字母,全部小写,如果oracle可按个人习惯全部大写或者小写.4. 如果有多个单词,则使用下划线隔开.使用常见单词,避免使用长单词和生僻词;5. 表名以t_开头,视图v_,类似常用的还有过程sp_xxx/函数f_xxx/包pkg_xxx/序列seq_xxx.6. 具备统一前缀,对相关功能的表应当使用相同前缀,如acl_xxx,ord_xxx,ppc_xxx;其中前缀通常为这个表的模块或依赖主实体对象的名字,通常来讲表名为:业务_动作_类型,或是业务_类型;acl_xxx_idx7. 数据库编码utf8mb4, 表编码可选择utf8和utf8mb4,默认utf8.字段中如果包含非主流字(如非主流的qq昵称)需用utf8mb4编码.8. 表引擎取决于实际应用场景及当前数据库中的已经存在的存储引擎;日志及报表类表建议用myisam,与交易,审核,金额等事务相关的表用innodb引擎。

常见Oracle数据库优化策略与方法

常见Oracle数据库优化策略与方法

常见Oracle数据库优化策略与方法
Oracle数据库优化是提高数据库性能的关键步骤,可以采取多种策略。

以下是一些常见的Oracle数据库优化策略:
1.硬件优化:这是最基本的优化方式。

通过升级硬件,比如增加RAM、使用
更快的磁盘、使用更强大的CPU等,可以极大地提升Oracle数据库的性能。

2.网络优化:通过优化网络连接,减少网络延迟,可以提高远程查询的效率。

3.查询优化:对SQL查询进行优化,使其更快地执行。

这包括使用更有效的
查询计划,减少全表扫描,以及使用索引等。

4.表分区:对大表进行分区可以提高查询效率。

分区可以将一个大表分成多
个小表,每个小表可以单独存储和查询。

5.数据库参数优化:调整Oracle数据库的参数设置,使其适应工作负载,可
以提高性能。

例如,调整内存分配,可以提升缓存性能。

6.数据库设计优化:例如,规范化可以减少数据冗余,而反规范化则可以提
升查询性能。

7.索引优化:创建和维护索引是提高查询性能的重要手段。

但过多的索引可
能会降低写操作的性能,因此需要权衡。

8.并行处理:对于大型查询和批量操作,可以使用并行处理来提高性能。

9.日志文件优化:适当调整日志文件的配置,可以提高恢复速度和性能。

10.监控和调优:使用Oracle提供的工具和技术监控数据库性能,定期进行性
能检查和调优。

请注意,这些策略并非一成不变,需要根据实际情况进行调整。

在进行优化时,务必先备份数据和配置,以防万一。

数据库设计命名规范

数据库设计命名规范

数据库设计命名规范1.数据库涉及字符规范采用26个英文字母和0-9这十个自然数,加上下划线_组成,共36个字符。

不出现其他字符。

鉴于大小写规则难记忆,而且有些情况下,数据库不区分大小写,统一采用小写字母。

采用英文单词或英文短语(包括缩写)作为名称,不使用无意义的字符或汉语拼音。

名称应该清晰明了,能够准确表达事物的含义,最好可读,遵循“见名知意”的原则。

2.数据库对象命名规范数据库对象包括表、视图(查询)、存储过程(参数查询)、函数、约束。

对象名字由前缀和实际名字组成,绝对不要在对象名的字符之间留空格,长度不超过30。

使用单数(比如表名tb_customer,不要使用tb_customers)。

前缀:使用小写字母表tb_<表的内容分类>_<表的内容>视图vi存储过程sp函数fn索引idx_<表名>_<索引标识>主键pk_<表名>_<主键标识>外键fk_<表名>_<主表名>_<外键标识>序列seq实际名字:实际名字尽量描述实体的内容,由单词或单词组合,每个单词以‘_’间隔,字母小写,不以数字开头。

合法的对象名字类似如下。

表tb_user_info tb_message_detail视图vi_message_list存储过程sp_message_add3.数据库表设计规范表名由前缀和实际名字组成。

tb_<表的内容分类>_<表的内容>。

表的设计要符合3NF,然后,可以根据效率的需要,适当做一些冗余。

前缀:使用小写字母tb,代表表。

实际名字中,一个系统尽量采取同一单词,多个后面加_来连接区分。

合法的表名类似如下。

tb_membertb_member_infotb_forum_boardtb_blog_comment1一些作为多对多连接的表,可以使用两个表的前缀作为表名:如:用户表tb_user,用户分组表tb_group_info,这两个表建立多对多关系的表名为:tb_user_group_relation4.字段命名规范字段由表的简称,实际名字组组成。

Oracle数据库课程设计(1学分)实验指导书模板

Oracle数据库课程设计(1学分)实验指导书模板

计算机学院实验指导书课程编号:课程名称:课程学分:实验学时:适用专业:学生实验守则第一条学生进入实验室从事实验、科研活动,必须严格遵守实验室的各项规章制度。

第二条实验前必须做好预习,明确实验的目的、内容、方法和步骤,未经预习或无故迟到15分钟以上者,指导人员有权取消其实验资格。

第三条保持实验室的严肃、安静,不得在实验室内大声喧哗、嬉闹,不准在实验室内进食、吸烟和乱吐乱丢杂物。

第四条学生必须在实验指导老师规定实验开始时,方可动手实验,严禁未经许可就开始实验。

学生必须以实事求是的科学态度进行实验,严格遵守操作规程,服从实验教师或实验技术人员的指导(对有特殊要求的实验,必须按要求穿戴安全防护用具后方可进行实验),如违反操作规程或不听从指导而造成仪器设备损坏等事故者,按学校有关规定进行处理。

第五条学生应备有专用实验记录本,实验记录是原始性记录,是撰写实验报告的主要依据,内容要求真实、客观地反映实际情况,实验结果须经实验教师或实验技术人员认可。

第六条严防事故,确保实验室的安全。

发现异常情况,及时报告实验教师或实验技术人员,并采取相应的措施,减少事故造成的损失。

第七条实验完成后,应将仪器、工具及实验场地等进行清理、归还,经实验教师或实验技术人员同意后,方可离开实验室。

第八条独立完成实验报告,按时交给实验教师,不得抄袭或臆造。

实验报告是实验完成后的全面总结,它主要包括:实验名称、实验目的、实验原理、实验仪器设备、实验条件、实验数据、结果分析和问题讨论。

实验报告一律用钢笔或圆珠笔书写,统一采用国家标准所规定的单位与符号,要求文字书写工整,不得潦草;作图规范,不得随手勾画。

目录实验一、管理信息系统的设计与实现Oracle数据库课程设计报告实验一管理信息系统的设计与实现一、实验目的1、掌握Oracle数据库的安装、配置;2、重点掌握Oracle数据库开发(重点);3、掌握Oracle数据库设计(难点)。

二、实验原理及说明1、Oracle数据库的安装、配置Oracle安装与卸载创建/删除数据库2、SQL*Plus的使用SQL*Plus的环境配置SQL*Plus的的启动SQL*Plus登录,注销,编辑等命令3、SQL语句的使用数据查询语言数据操纵语言数据定义语言数据控制语言常用函数的使用创建索引创建视图分区表创建序列创建同义词4、完整性约束的使用主键约束唯一键约束外键约束非空约束check约束默认值5、PL/SQL编程数据类型与运算符PL/SQL语句控制结构编写存储过程编写触发器编写游标包编写函数6、移动数据库导出数据导入数据使用工具实现对数据的导入导出三、实验内容学生从以下题目中选择一题,单独完成课程设计内容:题目一:物业管理信息系统软件是一套具备记录、查询物业小区业主信息、物业管理费用信息、水电煤气费用信息、有线电视信息、供暖费用信息、业主房款缴纳信息,并且可以打印输出上述信息报表(月报表、季报表、年报表)的管理软件系统。

数据库设计规范详细说明

数据库设计规范详细说明

数据库设计规范详细说明1.选择适当的数据库引擎在进行数据库设计之前,根据应用的需求选择适当的数据库引擎是非常重要的。

常见的数据库引擎有关系型数据库(如MySQL、Oracle)和非关系型数据库(如MongoDB、Redis)。

根据应用的特点和数据处理的要求,选择合适的数据库引擎是数据库设计的首要步骤。

2.确定数据表之间的关系在进行数据库设计时,根据实际需求确定数据表之间的关系是至关重要的。

主要有三种关系:一对一关系、一对多关系和多对多关系。

通过合理划分实体和识别实体之间的关系,能够建立正确的数据库表结构,提高数据的存储效率和查询效率。

3.使用适当的数据类型在设计数据库表时,需要根据数据的特点选择适当的数据类型。

例如,对于整数类型的数据,可以选择INT、BIGINT等;对于浮点数类型的数据,可以选择FLOAT、DOUBLE等。

正确选择数据类型有助于增加数据库的存储效率和查询效率,并避免数据冗余和损失。

4.设计合理的主键和索引主键是用于唯一标识数据表中每一条记录的字段,对于数据的唯一性和完整性非常重要。

在设计数据库表时,需要为每一个数据表设置适当的主键。

此外,为了提高查询效率,还需要为常用的查询字段设置索引,但是过多的索引也会影响数据库的性能,所以需要根据实际情况进行权衡。

5.规范命名规则在设计数据库表和字段时,需要遵循一套规范的命名规则。

命名应该具有一定的描述性,能够准确地表达出字段的含义和作用。

同时,应该避免使用特殊字符和关键字作为命名,以免引起语法错误和冲突。

6.定期备份和优化数据库数据库是应用中最重要的组成部分之一,所以定期备份数据库是非常重要的。

备份能够保证在数据丢失或数据库出现故障时能够恢复数据。

此外,还需要定期对数据库进行优化,包括对表的结构进行优化、对索引进行优化、对查询语句进行优化等,以提高数据库的性能和稳定性。

7.设计良好的数据表结构良好的数据表结构能够提高数据的存储效率和查询效率,并且易于维护和扩展。

oracle数据库安装及配置规范_v1.0

oracle数据库安装及配置规范_v1.0

Oracle数据库系统安装及配置规范2015-10目录1. 数据库物理设计原则 (5)1.1. 数据库环境配置原则 (5)1.1.1. 操作系统环境 (5)1.1.2. 内存要求 (5)1.1.3. 交换区设计 (5)1.1.4. 其他 (6)1.2. 数据库设计原则 (6)1.2.1. 数据库SID (6)1.2.2. 数据库全局名 (6)1.2.3. 数据库类型选择 (6)1.2.4. 数据库连接类型选择 (7)1.2.5. 数据库SGA配置 (7)1.2.6. 数据库字符集选择 (8)1.2.7. 数据库其他参数配置 (9)1.2.8. 数据库控制文件配置 (9)1.2.9. 数据库日志文件配置 (10)1.2.10. 数据库回滚段配置 (10)1.2.11. 数据库临时段表空间配置 (11)1.2.12. 数据库系统表空间配置 (11)1.3. 数据库表空间设计原则 (11)1.3.1. 表空间大小定义原则 (11)1.3.2. 表空间扩展性设计原则 (12)1.4. 裸设备的使用 (12)2. 数据库逻辑设计原则 (13)2.1. 命名规范 (13)2.1.1. 表属性规范 (13)2.1.2. 索引 (14)2.1.3. 视图 (15)2.1.4. 实体化视图 (15)2.1.5. 存储过程 (15)2.1.6. 触发器 (15)2.1.7. 函数 (16)2.1.8. 数据包 (16)2.1.9. 序列 (16)2.1.10. 表空间 (16)2.1.11. 数据文件 (16)2.1.12. 普通变量 (16)2.1.13. 游标变量 (17)2.1.14. 记录型变量 (17)2.1.15. 表类型变量 (17)2.2. 命名 (17)2.2.1. 语言 (17)2.2.2. 大小写 (18)2.2.3. 单词分隔 (18)2.2.4. 保留字 (18)2.2.5. 命名长度 (18)2.2.6. 字段名称 (18)2.3. 数据类型 (18)2.3.1. 字符型 (18)2.3.2. 数字型 (19)2.3.3. 日期和时间 (19)2.3.4. 大字段 (19)2.3.5. 唯一键 (19)2.4. 设计 (20)2.4.1. 范式 (20)2.4.2. 表设计 (20)2.4.3. 索引设计 (23)2.4.4. 视图设计 (24)2.4.5. 包设计 (24)2.4.6. 安全性设计 (25)2.5. SQL编写 (26)2.5.1. 字符类型数据 (26)2.5.2. 复杂sql (27)2.5.3. 高效性 (27)2.5.4. 健壮性 (28)2.5.5. 安全性 (29)2.5.6. 完整性 (30)3. 备份恢复设计原则 (30)3.1. 数据库exp/imp备份恢复 (30)3.1.1. 数据库级备份原则 (30)3.1.2. 用户级备份原则 (30)3.1.3. 表级备份原则 (31)3.2. 数据库冷备份原则 (31)3.3. Rman备份恢复原则 (31)3.3.1. Catalog数据库 (31)3.3.2. Archive Log (33)3.3.3. 全备份策略 (33)3.3.4. 增量备份策略 (33)3.3.5. 恢复原则 (33)3.4. 备用数据库原则 (34)3.5. 一些小经验 (34)3.6. 系统调优知识 (35)3.6.1. 生成状态报表(statspack的使用) (35)3.6.3. 内存调整 (37)3.6.4. 排序的优化 (40)3.6.5. 统计信息 (41)4. 设计工具 (42)1.数据库物理设计原则1.1.数据库环境配置原则1.1.1.操作系统环境对于中小型数据库系统,采用linux操作系统比较合适,对于数据库冗余要求负载均衡能力要求较高的系统,可以采用Oracle10gRAC 的集群数据库的方法,集群节点数范围在2—64个。

oracle 数据库设计及开发规范

oracle 数据库设计及开发规范

数据库设计/开发规范作者:创建日期: 2011-5-26最近更新: 2011-5-26控制编号:版本: 1.0审批:拷贝号_____文档控制变更记录审阅分发概述为了强化软件开发标准/规范执行力, 提高软件产品的一次性通过率,特对现有的开发规范进行了重新输理,本文仅包括数据库层设计及开发规范。

目的1,规范应用程序的结构和编码风格标准化,便于阅读和理解。

为软件的维护提供有效的支持;2.监督软件开发规范/标准执行。

适用范围1.公司范围内所有基于数据库的所有开发活动。

程数据库对象开发规范—命名规范命名规范:1.1 对象命名汇总表1.2 对象命名约定:1.2.1 据库对象如TABLE、VIEW、SEQUENCE、TRIGER、PROCEDURE、FUNCTION、PACKAGE、COLUMN等的命名约定;1.2.2 命名全部以CUX开头.1.2.3命名尽量采用富有意义的英文词汇,不准采用汉语拼音;1.2.4 对象名称长度为1-30个字符,Database link名称也不要超过30个字符;1.2.5 命名只能使用英文字母,数字和下划线(分隔的有意义);1.2.6 避免使用Oracle的保留字如name,id,level,remark,description等关键字;1.2.7 数据表、视图名。

各表中相关列尽量同名并保持相同的宽度。

1.3 变量命名约定:所有用户定义的存储过程或函数中使用的变量、常量、异常等统一采用v_+混合拼写(如v_count)的格式,其中小写首字母代表变量的类型,命名尽量采用富有意议的英文词汇,如果要缩写尽量采用约定俗成的缩写或去元音缩写,如info(信息)和ctrl(控制)等。

1.3.1 所有名称采用英文单数名词或动词,避免出现复数。

1.3.2 字符串类型采用varchar2,部分情况可用char.1.3.3 如无特殊需求,避免使用大字段(blob, clob, long, text, image 等)。

数据库设计中的命名规范

数据库设计中的命名规范

数据库设计中的命名规范数据库设计过程中表、字段等的命名规范也算是设计规范的⼀部分,不过设计规范更多的是为了确保数据库设计的合理性、为了项⽬最终的协调稳定性,⽽命名规范则更多的是为了确保设计的正式和统⼀。

公正的讲,数据库中表字段等等以什么样的⽅式命名、取具体什么名字,并不会直接影响到项⽬的稳定性,不是说叫⿊猫项⽬就是正常的,叫⽩猫就运⾏异常了。

制定规范的直接⽬的是约束设计⾏为,最终⽬的是确保设计的合理统⼀。

规范虽然是有丰富项⽬经验的⼈制定的,但维护的却不是某个⼈的意志,⽽是项⽬的意志,因为遵守此规范对项⽬是好的有利的,此规范才有意义。

所以规范是为了项⽬利益最⼤化⽽在团队⼈员中形成的⼀种约定(貌似约定的英⽂单词Convention本⾝就有规范的意思),所有参与设计的⼈员都要遵守此约定,所有参与开发的⼈员都会依此约定解读设计。

我们约定,所有的主键统⼀命名为id,结果有设计⼈员违反约定将⼀个⾮主键字段命名为id,约定被打破,共识也就被打破,设计⼈员之间、开发⼈员与设计⼈员之间的沟通就出现了隔阂。

设计规范更多的是为了合理,命名规范更多的是为了统⼀,团队协作中,统⼀在某种程度上⽐局部设计开发的好坏更重要。

违反了约定,局部设计开发的再好,反⽽可能影响到项⽬整体的稳定协调。

约定优先于配置(Convention Over Configuration)。

在“设计规范”中提到过⼀些命名规范,也详细讲述了表、字段的类型、注释等属性的设置,为什么要求主键统⼀命名为id、统⼀为char(32)类型,为什么要求浮点型数值统⼀为decimal类型?我们希望团队中所有⼈看到设计成果,⼀眼就可以明⽩这个字段是做什么的、代表的含义是什么,可以但不⽌于见名知意。

再者,当前的开发模式,前后端代码及数据库⽂档、程序⽂档、接⼝⽂档等等⼤都是由⼯具⽣成,⽽其最底层的依据就是数据库,表、字段的命名注释同时会影响到⼯具⽣成的⽂档、代码中的类属性⽅法甚⾄是前台页⾯的命名注释,数据库设计命名的规范关系到整个项⽬的规范。

Oracle的性能优化

Oracle的性能优化

千里之行,始于足下。

Oracle的性能优化
Oracle的性能优化是提高数据库系统性能和响应速度的关键步骤,可以通
过如下几个方面进行优化:
1. 数据库设计和规范化:合理的数据库设计和良好的规范化可以减少数据冗余,提高查询效率,避免数据冲突和不一致。

2. 索引优化:在频繁查询的字段上创建适当的索引,可以加快查询速度。

但是,索引不宜过多,因为它们会增加数据修改和插入的时间。

3. 查询优化:优化查询语句的执行计划,使用正确的连接方法(如内连接、外连接),避免全表扫描。

4. 硬件升级:增加内存、硬盘和处理器等硬件资源,可以显著提高
Oracle数据库的性能。

5. 优化配置参数:根据数据库的特点和应用的需求,调整数据库的配置参数,例如SGA大小、PGA大小、日志文件大小等,以提高性能。

6. 数据库优化:使用合适的数据库特性,如分区表、分区索引、物化视图等,优化数据库的存储和查询效率。

7. 监控和调优:持续监控数据库的性能指标,如CPU利用率、内存使用率、磁盘IO等,并及时进行适当的调优操作。

第1页/共2页
锲而不舍,金石可镂。

总体来说,Oracle的性能优化需要综合考虑数据库设计、硬件配置、查询优化和系统监控等多个方面,通过不断的调整和优化,提高数据库的性能和响应速度。

数据库建库规范

数据库建库规范

数据库建库规范在当今数字化的时代,数据库成为了企业和组织存储、管理和利用数据的核心工具。

一个设计良好、规范建设的数据库能够高效地支持业务运营,提供准确可靠的数据,而一个不规范的数据库则可能导致数据混乱、错误、丢失,甚至影响业务的正常开展。

因此,遵循一套科学合理的数据库建库规范至关重要。

一、数据库规划与设计在开始建库之前,需要进行全面的规划和设计。

这包括明确数据库的用途和目标,确定要存储的数据类型、规模和访问需求。

例如,如果是用于客户关系管理的数据库,就需要重点考虑客户的基本信息、交易记录、沟通历史等数据。

同时,要进行合理的数据库架构设计。

选择合适的数据库管理系统(如 MySQL、Oracle、SQL Server 等),并根据数据特点和业务需求确定数据库的模式,如关系型数据库的表结构、字段定义、主键和外键等。

在设计表结构时,要遵循规范化原则,尽量减少数据冗余,提高数据的一致性和完整性。

二、数据命名规范清晰、一致且有意义的数据命名是数据库建库规范的重要组成部分。

表名、字段名应该能够准确反映其包含的数据内容。

使用具有描述性的名称,避免使用模糊、简短或无意义的缩写。

例如,“customer_information”比“ci”更具可读性和可理解性。

命名规则应保持一致,采用统一的大小写格式(如驼峰命名法或下划线命名法),并遵循一定的命名约定,如使用名词来命名表,使用动词或形容词来命名存储过程等。

三、数据类型选择为每个字段选择合适的数据类型能够优化数据库的存储空间和性能。

例如,对于整数类型,要根据数据的取值范围选择合适的整数类型(如 tinyint、int 或 bigint)。

对于字符串类型,要根据预计的长度选择合适的长度(如 varchar 或 char),避免过度浪费存储空间。

四、主键和索引设计主键是用于唯一标识表中每条记录的字段或字段组合。

主键的选择应该具有唯一性和稳定性,通常建议使用自增整数类型作为主键。

Oracle数据库规划设计和运行维护方案

Oracle数据库规划设计和运行维护方案

O r a c l e数据库规划设计和运行维护方案(V1.0)目录1.前言1.1.编写目的..........................................................1.2.方案说明..........................................................1.3.预期读者..........................................................2.数据库部署模式2.1.单机模式..........................................................2.2.双机热备模式(HA模式)...........................................2.3.集群模式(RAC)...................................................2.4.主从模式(DataGuard).............................................2.5.混合模式(DataGrard+RAC).........................................2.6.数据库运行模式选择................................................3.系统特点和数据库类型3.1.业务系统的特点....................................................OLTP特点.................................................OLAP特点.................................................3.2.数据库的规模......................................................3.3.数据库版本建议....................................................4.数据库运行环境规划4.1.主机规划..........................................................4.2.网络规划..........................................................4.3.存储规划..........................................................5.数据库安装部署规划5.1.软件安装路径......................................................5.2.表空间设计........................................................业务数据量估算............................................表空间使用规则............................................表空间的概念和分配原则....................................表空间的参数配置..........................................Undo/temp表空间的估算....................................表的参数设置..............................................索引的使用原则............................................5.3.文件设计..........................................................RAC配置文件..............................................参数文件..................................................控制文件..................................................重做日志文件..............................................6.数据库应用规划6.1.数据库用户设计....................................................用户权限规划..............................................用户安全实现..............................................用户类型及角色命名规范....................................6.2.数据库分区........................................................数据库分区介绍............................................逻辑分割..................................................物理分割..................................................数据分区的优点............................................数据分区的不足............................................Oracle分区技术...........................................分区使用建议..............................................分区索引..................................................6.3.数据库实例配置....................................................6.4.数据库参数设置....................................................必须修改的初始化参数......................................建议修改的初始化参数......................................不可修改的初始化参数......................................建议不可修改的初始化参数..................................与并行有关的参数..........................................6.5.数据库连接服务....................................................专用服务器连接............................................共享服务器连接............................................连接服务建议..............................................6.6.数据库安全建议....................................................6.7.数据库备份和恢复..................................................RMAN备份.................................................EXP/IMP备份..............................................存储级备份................................................数据库恢复................................................6.8.数据库网络配置....................................................监听器的使用配置原则......................................TNSNAMES的使用配置原则...................................RAC环境下TNSNAMES的配置.................................7.业务系统开发建议7.1.数据库模型设计规范................................................命名规则..................................................数据库对象................................................7.2.PLSQL开发规则....................................................总体开发原则..............................................7.3.SQL语句编写规则..................................................查询语句的使用原则........................................DML语句的调整原则........................................8.数据库体系结构8.1.整体结构..........................................................8.2.内存结构..........................................................系统全局区(SGA).........................................程序全局区(PGA).........................................后台进程..................................................8.3.存储结构..........................................................物理结构..................................................逻辑结构..................................................9.数据库基本管理9.1.参数文件管理......................................................9.2.表空间管理........................................................用户表空间管理............................................临时表空间管理............................................回滚段表空间管理..........................................9.3.重做日志文件管理..................................................增加重做日志文件组........................................添加重做日志文件组成员....................................改变重做日志文件组成员....................................删除重做日志文件组成员....................................删除重做日志文件组........................................重做日志切换..............................................重做日志清理..............................................重做日志切换次数查询......................................9.4.归档模式设置......................................................单实例数据库设置归档模式..................................RAC数据库设置归档模式....................................归档路径设置..............................................9.5.控制文件重建......................................................9.6.内存参数管理......................................................Oracle内存管理发展阶段...................................自动内存管理AMM..........................................自动共享内存管理ASMM.....................................自动PGA管理..............................................9.7.其它管理内容......................................................查看数据库版本............................................数据库字符集..............................................创建密码文件..............................................关闭数据库审计功能........................................账号管理..................................................10.数据库集群(RAC)管理10.1.RAC状态检查......................................................检查守护进程..............................................检查资源状态..............................................10.2.RAC启动与关闭....................................................10.3.管理OCR..........................................................OCR盘状态查看............................................OCR备份与恢复............................................查看OCR内容..............................................指定OCR盘................................................增加OCR盘................................................删除OCR盘................................................10.4.管理VOTING DISK..................................................检查Voting Disl盘........................................VOTING DISK备份与恢复....................................添加VOTING DISK盘........................................删除VOTING DISK盘........................................10.5.CSS管理..........................................................10.6.SRVCTL管理工具...................................................管理实例..................................................管理监听程序..............................................管理ASM..................................................管理service..............................................10.7.修改RAC的IP及VIP...............................................修改外网IP和心跳IP......................................修改VIP..................................................查看与删除IP.............................................10.8.管理ASM..........................................................管理DiskGroup............................................ASM兼容性管理............................................ASM中添加disk的方法.....................................ASMCMD管理命令介绍.......................................ASM常用视图..............................................11.数据库备份11.1.备份概念说明......................................................脱机备份..................................................联机备份..................................................RMAN备份.................................................11.2.备份策略规划......................................................11.3.RMAN备份和恢复案例...............................................归档模式下的完全恢复......................................归档模式下的不完全恢复....................................12.数据库运维管理12.1.运维职责..........................................................12.2.运维要求..........................................................12.3.技能要求..........................................................12.4.运维内容..........................................................检查数据库运行情况........................................检查操作系统和数据库日志文件..............................检查Oracle对象状态.......................................检查数据库相关资源的使用..................................检查数据库备份............................................检查数据库的性能..........................................数据库安全性检查.......................................... 前言编写目的随着以使用Oracle数据库的应用系统不断增加,为了加强应用系统在规划、开发、实施、维护等环节工作的规范化,特编写本文档,力求对实际的设计、实施工作起到规范和指导作用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle数据库设计规范建议1 目的本规范的主要目的是希望规范数据库设计,尽量提前避免由于数据库设计不当而产生的麻烦;同时好的规范,在执行的时候可以培养出好的习惯,好的习惯是软件质量的很好的保证。

数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,有效存储数据,满足用户信息要求和处理要求。

2 适用范围本规范的适用人员范围包括我司的所有应用开发人员以及在我司承接数据库应用开发的软件人员。

本规范的适用IT范围包括数据库对象的命名规范、设计原则、SQL语句的设计和使用、SQL语句的性能优化建议、其他与性能有关的设计原则以及设计工具的选择。

3 数据对象的命名规范3.1 通用规范3.1.1 使用英文:要用简单明了的英文单词,不要用拼音,特别是拼音缩写。

主要目的很明确,让人容易明白这个对象是做什么用的;3.1.2 一律大写,特别是表名:有些数据库,表的命名乃至其他数据对象的命名是大小写敏感的,为了避免不必要的麻烦,并且尊重通常的习惯,最好一律用大写;3.2 数据库对象命名规范3.2.1 表的命名3.2.1.1 表名的前缀:前缀_表名_T。

为表的名称增加一个或者多个前缀,前缀名不要太长,可以用缩写,最好用下划线与后面的单词分开;其目的有这样几个:3.2.1.1.1 为了不与其他项目或者其他系统、子系统的表重名;3.2.1.1.2 表示某种从属关系,比如表明是属于某个子系统、某个模块或者某个项目等等。

表示这种从属关系的一个主要目的是,从表名能够大概知道如何去找相关的人员。

比如以子系统为前缀的,当看到这个表的时候,就知道有问题可以去找该子系统的开发和使用人员;3.2.2 视图命名:相关表名_V(或者根据需要另取名字);3.2.3 程序包命名:程序包名_PKG(用英文表达程序包意义);3.2.4 存储过程命名:存储过程名_PRO(用英文表达存储过程意义);3.2.5 函数命名:函数名称_FUN(用英文表达函数作用);3.2.6 触发器命名:触发器名称_TRI(用英文表达触发器作用);3.2.7 索引命名:表名_字段名_IDX(如果存在多字段索引,取每字段前三个字符加下划线组合,如在 custom, cutting, curtail 上建立联合索引,命名为表名_cus_cut_cur_IDX,如果前三个截取字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如在 custid, custom,custname上建立联合索引,就命名为表_tid_tom_tna_IDX;3.2.8 唯一索引命名:表名_字段名_UNI(如果存在多字段唯一索引,取每字段前三个字符加下划线组合,如在 custom, cutting, curtail上建立唯一索引,命名为表名_ cus_cut_cur_UNI,如果前三个截取字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如:在 custid, custom,custname上建立唯一索引,命名:表_tid_tom_tna_UNI;3.2.9 主键命名:表名_字段名_PK(如果存在多字段主键,取每字段前三个字符加下划线组合,如在 custom, cutting, curtail上建立主键,命名为表名_cus_cut_cur_PK,如果前三个截取字符相同,就从字段名称中不同的字符开始取三个字符加下划线组合,如在 custid, custom,custname上建立主键,命名:表_tid_tom_tna_PK;3.2.10 外键命名:表名_主表名_字段名_FK;3.2.11 Sequence命名:表名_列名_SEQ(或者根据需要另取名字);3.2.12 Synonym命名:与对应的数据库对象同名;3.2.12 JAVA命名:遵守公司相应的JAVA命名规范;4 数据库对象设计原则4.1 表的设计4.1.1 主、外键4.1.1.1 每个表,都必须要有主键。

主键是每行数据的唯一标识,保证主键不可随意更新修改,在不知道是否需要主键的时候,请加上主键,它会为你的程序以及将来查找数据中的错误等等,提供一定的帮助;4.1.1.2 一个表的某列与另一表有关联关系的时候,如果加得上的话,请加上外键约束。

外键是很重要的,所以要特别强调:4.1.1.2.1 适量建外键。

为了保证外键的一致性,数据库会增加一些开销,如果有确凿的并且是对性能影响到无法满足用户需求的证据,可以考虑不建外键。

否则,还是应该建外键;4.1.1.2.2 不要以数据操作不方便为理由而不建外键。

是的,加上外键以后,一些数据操作变得有些麻烦,但是这正是对数据一致性的保护。

正是因为这种保护很有效,所以最好不要拒绝它;4.1.1.2.3 以缺省的方式建立外键(即用delete restrict方式),以达到保护数据一致性的目的;外键在保护数据一致方面非常有效。

如果不建外键,数据库中容易出现垃圾数据,并且无人知晓。

当数据量很大的时候,查找这些垃圾数据也是相当困难的。

而应用程序在设计时,往往没有考虑或者也无法照顾到垃圾数据。

因此垃圾数据很可能造成应用程序工作不正常,并且表现出来的现象会很奇怪,让人摸不着头脑。

4.1.2 列的设计4.1.2.1 字段的宽度要在一定时间内足够用,但也不要过宽,占用过多的存储空间,对于长度不确定的列,采用可变长度的数据类型如 varchar类型;4.1.2.2 字段的类型及宽度在设计以及后面进行开发时,往往要与应用的设计、开发人员商讨,以得到双方认可的类型及宽度;4.1.2.3 除非必要,否则尽量不加冗余列。

所谓冗余列,是指能通过其他列计算出来的列,或者是与某列表达同一含义的列,或者是从其他表复制过来的列等等。

冗余列需要应用程序来维护一致性,相关列的值改变的时候,冗余列也需要随之修改,而这一规则未必所有人都知道,就有可能因此发生不一致的情况。

如果是应用的特殊需要,或者是为了优化某些逻辑很复杂的查询等操作,可以加冗余列;4.1.3.3 除非必要,否则尽量不使用LONG, TEXT, BLOB, CLOB, NCLOB, LONG, LONG RAW这一类的数据类型,而是使用其他可以替代的数据类型;优先使用varchar2类型替代CHAR类型,除非列宽有严格的要求而且得到应用严格支持;4.1.3 记录数4.1.3.1 单表的记录数一般控制在两千万条 (参考值,各应用可以根据实际情况进行适量调整) 以内;4.1.3.2 记录数在两千万和两亿条之间的表一定要采用分区技术,并根据应用的使用情况创建合适的分区标准,单个分区内的记录数一般控制在两千万条(参考值,各应用可以根据实际情况进行适量调整)以内,同时表的索引使用对应的分区索引;4.1.3.3 记录数超过两亿条的表一定要考虑信息生命周期,必须考虑历史数据的剥离,并在应用设计中完成对历史数据的相应处理功能(历史数据的剥离规则须经业务使用部门的确认);4.2 索引的设计索引是从数据库中获取数据的最高效方式之一。

95%的数据库性能问题都可以采用索引技术得到解决。

但大量的DML操作会增加系统对索引的维护成本,对性能会有一定影响,对于插入相当频繁的表要慎重建索引,索引也会占相当的存储空间,所以要根据硬件环境和应用需求在空间和时间上达到最好的平衡点,主要原则:4.2.1 适当利用索引提高查询速度:当数据量比较大,了解应用程序的会有哪些查询,依据这些查询需求建相应的索引;最好亲自试验一下,模拟一下生产环境的数据量,在此数据量下,比较一下建索引前后的查询速度;索引对性能会有一定影响,对于DML频繁列的索引要定期维护(重建)。

但是,索引的结构对于索引的更新(比如在插入数据的时候)是有一定优化的,所以不要在没有试验以前过分夸大它对性能的影响。

最终还是以试验为准;4.2.2 不要建实际用不上的索引,与上条相关,如果建的索引并不提高任何一应用中的查询速度,则要把它删除;有些数据库有相关工具可以发现实际未被使用的索引,可以利用一下;4.2.3 索引类型的选择:要根据数据分布及应用来决定如何建立索引,一般的高基数数据列(高基数数据列是指该列有很多不同的值)时 ,建立BTree索引(一般数据库索引的缺省类型);当低基数数据列(该列有大量相同的值)时,可以考虑建立位图索引(如果所选数据库支持的话),但位图索引是压缩类型索引,所以DML(增、删、改)的代价更高,要综合考虑;4.2.4 索引列的选择:如果检索条件有可能包含多列,创建联合主键或者联合索引,把最常用于检索条件的列放在最前端,其他的列排在后面;不要索引使用频繁的小型表,假如这些小表有频繁的DML就更不要建立索引,维护索引的代价远远高于扫描表的代价;4.2.5 主键索引在建立的时候一定要明确的指定名称,不能让系统默认建立主键索引(可能有些数据库无法指定主键名,则例外);4.2.6 外键必须需建索引。

当有一定数据量,并且经常以外键所在列为关联,进行关联查询时,需要建索引(可能有些数据库自动为外键建索引,则例外);4.2.7 当有联合主键或者联合索引时,注意不要建重复的索引。

举例说明:4.2.7.1 表EMPLOYEES,它的主键是建立在列DEPARTID和EMPLOYEEID上的联合主键,并且创建主键的语句中DEPARTID在前,EMPLOYEEID在后。

在这样一个表里,通常就没有必要再为DEPARTID建一个索引了;联合索引的情况也一样;4.2.7.2 更复杂的情况,比如表EMPLOYEES,有一个索引建立在列CORPID, DEPARTID, EMPLOYEEID三列上,在创建语句中也依据上述顺序,就没有必要再为CORPID建立索引;也没有必要再建立以CORPID在前,DEPARTID在后的联合索引;如果EMPLOYEEID 需要索引,那么为EMPLOYEEID建立一个索引是不与上面的索引重复的;DEPARTID列也类似;4.2.8 控制一个表的索引数量,尽量使得一个表的索引数量小于五个;4.3 视图的设计4.3.1在不太清楚视图用法的情况下,尽量不建。

因为一旦建了,就有被滥用的危险;4.3.2 如果需要建视图,只要是打算长期使用的,请写入数据库设计中。

明确它的用途、目的;4.3.3 建立视图时要明确写出所有要选择出的列名而不要以SELECT *来代替,可以使结构清晰可读性增强,也不会增加它对表的所有字段的依赖,而表是很可能修改的,特别是增加字段。

就很有可能导致使用该视图的应用程序出错;4.4 存储过程、函数、触发器的设计4.4.1 触发器的功能通常可以用其他方式实现。

在调试程序时触发器可能成为干扰。

假如你确实需要采用触发器,一定要经过测试再应用在生产系统中,而且必须集中对它文档化。

相关文档
最新文档