Oracle开发规范

Oracle开发规范
Oracle开发规范

数据库设计规范

V00.01.000

目录

1数据库命名约定 (4)

1.1规则 (4)

1.2项目模块 (4)

1.3表名 (4)

1.4列名 (5)

1.5视图名 (5)

1.6触发器名 (5)

1.7存储过程名 (5)

1.8函数名称 (5)

1.9变量名 (5)

1.10自定义数据类型、默认、规则命名原则 (6)

1.11主键、外键关系、索引命名原则 (6)

1.12序列命名原则 (6)

1.13命名中其他注意事项 (6)

1.14字段NULL值强制默认一览表 (6)

2SQL书写格式 (7)

2.1注释 (7)

2.2排版 (8)

3事务处理 (8)

4安全性设计 (9)

5优化设计 (9)

5.1索引的使用 (9)

5.2严禁使用的SQL (10)

5.3需要慎重使用的SQL (11)

5.4大量装载数据的注意事项: (11)

5.5尽量减少多表连接的操作。 (12)

5.6SQL语句优化 (12)

5.7建表、索引及关键字时参数的使用 (12)

6POWERDESIGNER格式 (13)

7附录 (14)

7.1ORCLE关键字列表 (14)

7.2数据库设计文档格式 (17)

Oracle开发规范

1数据库命名约定

1.1 规则

?命名富有意义英文词汇,多个单词组成的,中间以下划线分割。

?除数据库名称长度为1-8个字符,其余为1-30个字符,Database link名称也不要超过30个字符。

?命名只能使用英文字母,数字和下划线。

?避免使用Oracle的保留字如level、关键字如type。

1.2 项目模块

注意:判别某类对象属于哪个模块,通常考虑数据的生成所属的模块、模块对该对象的访问频度及该对象的用途几个因素。

1.3 表名

大写,以子系统和模块名的缩写命名。命名时参照需求分析和系统词汇表。

如:产品管理的合约计划管理contract plan manage

可以命名为PM_CONTRACT_PLAN 或者PM_CPM。

大写,命名时参照需求分析和系统词汇表。多个单词组成一个字段用下划线分开,可以简写。

1.4 列名

大写,命名时参照需求分析和系统词汇表。多个单词组成一个字段用下划线分开,可以简写,

如下:工作计划管理Work plan manage

可以命名为WORK_PLAN_MANAGE 或者WORK_PLAN_M。

1.5 视图名

大写,以V作为前缀。然后加上子系统和模块名的缩写命名,命名应尽量体现各视图的功能。

如:V_ PM_CPM_VALIDE

1.6 触发器名

大写,以TRI作为前缀,然后加上表名,再加上出发的动作。Insert:I,update:U,delete D.

TRI_ PM_CPM_IU或者TRI_ PM_CPM_IUD

1.7 存储过程名

大写,以P作为前缀,然后加上子系统和模块名的缩写命名,再加上功能说明。后续部分主要以动宾形式构成,并用下划线分割各个组成部分。注意要尽量描述存储过程的功能。

常用动词缩写:

Search - SCH

Update-UPT

Get –GET

如:P_PM_UPT_WP

1.8 函数名称

大写,以FN作为前缀,后续部分主要以动宾形式构成,并用下划线分割各个组成部分。注意要尽量描述其功能。

如FN_PARTSTR_COMPANY (分解公司名称字符串).

1.9 变量名

变量V_

参数P_

如P_CUST_ID

1.10 自定义数据类型、默认、规则命名原则

自定义数据类型:UD_

默认: DF_,对于非绑定的默认可取系统默认的名字

规则:RU_,对于非绑定规则(约束) 可取系统默认的名字1.11 主键、外键关系、索引命名原则

主键: PK_表名

外键关系:FK_主表_从表

索引:IDX_表名_列名,符合索引列名间用_隔开

1.12 序列命名原则

SEQ_表名

1.13 命名中其他注意事项

以上命名都不得超过30个字符的系统限制。

变量名的长度限制为29。

1.14 字段NULL值强制默认一览表

2SQL书写格式

2.1 注释

?注释以中文为主。

?注释尽可能详细、全面,并且将注释放在实现代码的前面,不要集中放在对象的开始。

每一数据对象的前面,应具体描述该对象的功能和用途。传入参数的含义应该有所说明。如果取值范围确定,也应该一并说明。取值有特定含义的变量(如boolean类型变量和枚举型变量),应给出每个值的含义。

?注释语法包含两种情况:单行注释、多行注释

?注释简洁,同时应描述清晰。

注释举例:编写函数、触发器、存储过程以及其他数据对象时,必须为每个对象增加适当注释。该注释以多行注释为主,主要结构如下(作者可以适当增减):

2.2 排版

?程序块要采用缩进风格编写,缩进的空格可根据实际情况进行调整,总的原则是使代码清晰可读。

示例:

?相对独立的程序块之间、变量说明之后必须加空行。

?较长的语句(>80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符或

关键字放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读。

示例:

?循环、判断等语句中若有较长的表达式或语句,则要进行适应的划分,长表达式要在低优先级操

作符处划分新行,操作符或关键字放在新行之首。

示例:参考规则1-1的示例。

?若函数或过程中的参数较长,则要进行适当的划分。

示例:

?只使用空格键,不要使用TAB键。

说明:以免用不同的编辑器阅读程序时,因TAB键所设置的空格数目不同而造成程序布局不整齐。

3事务处理

?事务是SQL语句的一个序列,对事务的改变通过COMMIT语句成为永久的变化,部分或全部事

务可以由ROLLBACK语句撤消。任何一个事务在运行过程中都要消耗一定的系统资源,如内存、回滚

空间、磁盘空间等。在开发数据库应用软件的过程中,要注意正确估算相关事务的大小,对过大的事务操作采取必要的措施。

?明确事务的时间长短,要求事务在该时间内完成。

?明确对事务的要求高低:如果对事务要求较高,对commit语句要判断执行是否正确,发现commit

语句执行不正确,进行提示或记录。如果对事务要求较底,对commit语句不要判断执行是否正确,因为执行不正确也没有解决方法。对roolback都不用判断。

?明确事务书写的规则:事务和存储过程的关系:存储过程中包含事务,还是事务中包含存储过程。

同样要明确:事务和中间件的关系、事务和函数的关系。

?明确是否使用事务嵌套:有的数据库支持事务嵌套,有的数据库不支持事务嵌套。在设计是要明

确整个系统是否使用事务嵌套。

?某些复杂的事务提交需要同涉及文件系统的某过程同时提交,此时,需要分析事务与过程的关系,

决定提交的次序和错误恢复的策略。

4安全性设计

?数据库用户一定要通过操作系统,网络服务,或数据库进行身份确认。

?如果用户是通过数据库进行用户身份的确认,那么建议使用密码加密的方式与数据库进行连接。

?数据库开发者不能将数据库登陆密码直接写在其开发源代码中。

5优化设计

下面的情况针对的是大数据量的情况下。在数据量小的时候,下面的约定没有必要,例如,小表扫描比使用索引消耗的资源还小些。

为了SQL语句执行的速度,减少阻塞和死锁,提高请求的响应时间,请遵照如下约定:

5.1 索引的使用

在SQL的写法中,所有在大范围数据里搜索记录,必须有合适的索引来配匹,否则引起长时间的表扫

描锁定。这是所有系统性能低下的最基本的根源。请为每一个SQL语句设计合适的索引,当系统开始设计时没有索引时请向项目经理申请增加。

?对于取值不能重复的、经常作为查询条件的字段,应该建立唯一索引:unique index

示例:

create unique index my_unique_idx on myTable (id);

?对于经常作为查询条件的字段,其值可以不是唯一,则应该建立可重复索引:index

示例:

create index my_dup_idx on myTable(name);

?尽量避免以索引的一部分作为查询的条件:

示例:某表的建立SQL为:

create table myTable(id int,name char(8),age int,

primary key(id, name))

即表myExample是以id 和name 共同组成Primary Key。

则下面方式的查询语句效率很好:

select ... from myTable where id= .... and name =....

而如果仅仅以primary key 的一部分作为条件,则没有起到key 的作用。

如下面两条SQL查询效率很低:

select ... from myTable where id=....

select ... from myTable where name=...

以上两条SQL,数据库系统将会使用顺序扫描,从而导致效率低下。

?组合索引要尽量使关键查询形成索引覆盖,其前导列一定是使用最频繁的列。

?经常同时存取多列,且每列都含有重复值可考虑建立组合索引;

?有大量重复值、且经常有范围查询(between, >,< ,>=,< =)和order by

、group by发生的列,可考虑建立群集索引;

5.2 严禁使用的SQL

在大范围的数据情况下,下面的用法,坚决杜绝使用。

1、光标:大数据范围的循环,Oracle不能很好的支持。会造成系统性能严重下降。

2、函数:函数同光标一样一行行的执行,效率也非常低。

3、"!=", "!>", "!<", "NOT", "NOT EXISTS", "NOT IN", "NOT LIKE",like …%aaa%?等比较运算。他们都不会做索引。坚决反对使用。

4、不得建没有作用的事物:事物的启动需要一定的资源,请不要乱用例如产生报表时。

5、Select Into创建表:请使用显示定义Create table 。特别的是不要在事物里创建表和临时表。

6、在Where字句中,Oracle的函数和字段一定的分离。坚决不得使用如下的写法:

where Convert(varchar(10),fdate,112) = …2003-09-06?或者

where Substring(PNO,4,3) = …001?

他们都是表完全扫描。

5.3 需要慎重使用的SQL

下面这些语句容易对服务器造成额外的负担,例如Order by 消耗了大量的CPU资源。所以要避免采用它,当然不是说不用他们。有时需要将结果集排序显示就一定要用到Order by,但不要用多余的Order by.

?Order By:消耗了内存和CPU,在Temp中完成操作。

?Group By:同Order BY

?Having:同Order BY

?Distinct:同Order BY

?Union (尽量用Union All) :同Order BY

?in :没有Between快。

?视图:尽量少用。

?SELECT COUNT(*) :用Exists更好

5.4 大量装载数据的注意事项:

?大批量装载数据的时候,如果有可能,尽量把数据库设置为非日志方式。装载数据完成以后,再

把数据库恢复成原先的方式

?大批量装载数据的时候,尽量把内存参数、数据同步的参数设大。

?大批量装载数据的时候,避免使用insert语句,而应该使用数据库提供的装载工具或者采用游标

insert方式来实现。

5.5 尽量减少多表连接的操作。

说明:多表连接的操作一般效率较差,在联机事务处理(OLTP)的应用中,应该尽量避免多表连接的操作,尽量避免建立多表的关系。

示例:

5.6 SQL语句优化

说明:SQL语句编写的好坏,直接影响到系统性能及增加数据库的负荷。SQL优化的实质就是在结果正确的前提下,用优化器可以识别的语句,充份利用索引,减少表扫描的I/O次数,尽量避免表搜索的发生。

?任何对列的操作都将导致表扫描,它包括数据库函数、计算表达式等等,查询时要尽可能将操作

移至等号右边。

?in、or子句常会使用工作表,使索引失效;如果不产生大量重复值,可以考虑把子句拆开;拆开的

子句中应该包含索引。

?多条件查询时候,根据最优化原则,指定要应用的索引,屏蔽非索引字段。

SELECT /*+ INDEX(DF_ACCOUNTS,IND_JS_CNJ)*/ CNJ,ZJE FROM DF_ACCOUNTS

WHERE QH=FQH AND SH=FSH AND YF=C.YF AND YHBH=C.YHBH AND GDH||’’=C.GDH;

5.7 建表、索引及关键字时参数的使用

新建表、索引及关键字时,应带相关参数(具体详解见文档:ORACLE建表参数解释.DOC):

create table DF_CSDFYB

(

QH V ARCHAR2(2),

SH V ARCHAR2(4),

SFD V ARCHAR2(4),

YF V ARCHAR2(6),

CSHS NUMBER(14))

PCTFREE 20

INITRANS 2

MAXTRANS 255

TABLESPACE GZYD

STORAGE(INITIAL 1M NEXT 5M MINEXTENTS 1 MAXEXTENTS 2048 PCTINCREASE 0 BUFFER_POOL DEFAULT)

LOGGING

1、建议PCTINCREASE参数设置为0,可使碎片最小化,使每一个Extent都相同(等于NEXT值)。

2、如果一个表无频繁删除,修改操作,建议PCTFREE参数适当设低,如有频繁删除,修改操

作可适当调高,如以上格式。

3、根据表数据量的大小及将来的扩充将STORAGE 中INITIAL 、NEXT 合理设置,保证该表数据

尽量保持在同一块区,保证查询速度,减少I/O资源损耗。

4、建立索引和关键字时候,指定特定专用的表空间,这样在处理数据时就可以充分利用磁盘I/O,使

数据和索引在不同的I/O上进行,以提高访问速度。

6PowerDesigner格式

说明:由于现在数据库建设为分开小组建立,集中管理,为能够顺利集中,并保持统一格式,所以要求在设计时按如下规范实行:

1、一个模块实体表尽量要求在一个PAGE 中画完,便于查阅及交流;

2、表、字段字体要求统一为宋体9 号字体;

3、要求表CODE 字段为英文名称,NAME 字段值为CODE的中文名称+ CODE。

4、画布背景色采用白色,子系统独立使用的实体表,背景色设为浅绿色;本子系统使用的系统公共表,背

景色设为黄色;子系统内部不同图表层间的引用,背景色设为桔红色。如下图:

5、要求每个字段、每个表必须在注释中添加说明。

7附录

7.1 ORCLE关键字列表

access,add,all,alter,and,any,as,asc,audit

between,bfile,blob,by

char,char,check,clob,cluster,column,comment,compress,connect,count,create,current

date,date,decimal,decimal,default,delete,desc,distinct,drop

else,exclusive,exists

file,float,for,from

grant,group,grouping

having

identified,immediate,in,increment,index,initial,insert,integer,integer,intersect,into,is

level,like,lock,long

maxextents,minus,mlslabel,mode,modify

noaudit,nocompress,not,nowait,null,number,number

of,offline,on,online,option,or,order

pctfree,prior,privileges,public

raw,rename,resource,revoke,row,rowid,rownum,rows

select,session,set,share,size,smallint,start,successful,sum,synonym,sysdate

table,then,to,trigger,type

uid,union,unique,update,user

validate,values,varchar,varchar2,varchar2,varchar,view

whenever,where,with

7.2 过程描述规则

--过程名Pro_name:Pro_子系统缩写_功能点,名称尽量简洁、易懂。如Pro_Ec_Charge 。

--函数名Fun_Name Fun_子系统缩写_功能点,类似

--包名Pack_Name Pack_子系统缩写_功能点,类似

CREATE OR REPLACE PROCEDURE Pro_Name(pi_name1 IN V ARCHAR2, --参数说明1 传入参数以pi_开头

po_name2 OUT NUMBER, --参数说明2 返回参数以po_开头

pio_name3 IN OUT NUMBER --参数说明3 传入返回参数以pio_开头

) AS

/*必须有简要的日志说明

日期:20080101

作者:存储

内容:完成数据操作。

--

日期:20080201

作者:过程

内容:修改了部分语句,提高速度。

--

日期:20080301

作者:演示

内容:统一编写风格。

*/

--游标说明

CURSOR c_name1 IS

SELECT field1, field2

FROM table1

WHERE field3 = '1';

CURSOR c_name2(p_name1 CHAR) IS

SELECT field1, field2

FROM table2

WHERE field3 = p_name1;

v_name1 V ARCHAR2(100); --变量说明1 普通变量以v_开头v_name22 NUMBER(10); --变量说明1

v_name3 NUMBER;

vc_name1 c_name1%ROWTYPE;--游标变量以vc_开头BEGIN

v_name1 := '1'; --变量赋值说明1

v_name22 := 2; --变量赋值说明2

FOR vc_name1 IN c_name1 LOOP

--游标、循环注释

IF 1 = 1 THEN

--条件注释1

NULL;

ELSIF 2 = 2 THEN

--条件注释2

NULL;

END IF;

END LOOP;

FOR vc_name1 IN c_name2(pi_name1) LOOP

CASE v_name3

WHEN 1 THEN

NULL;

WHEN 2 THEN

NULL;

ELSE

NULL;

END CASE;

SELECT seq_name.NEXTV AL

INTO v_name3

FROM dual;

END LOOP;

BEGIN

--特殊情况下,再使用指定索引。

SELECT /*+index(Table1,IDX_Table11)*/

field1, field2, field1, field2, field1, field2, field1, field2, field1, field2, field1, field2

INTO v_name1, v_name3, v_name1, v_name3, v_name1, v_name3, v_name1, v_name3, v_name1, v_name3, v_name1,

v_name3

FROM table1

WHERE field3 = v_name22

AND field4 = v_name22;

INSERT INTO table2

(field1, field2)

V ALUES

(v_name1, v_name3);

/*

日期:20080301

作者:A君

内容:取消原来的删除,改为更新。

DELETE

FROM table3

WHERE field1 = v_name22

AND field2 = v_name22;

*/

UPDA TE /*+index(Table4,IDX_Table41)*/ table4

SET field1 = v_name22,

field2 = v_name22

WHERE (field3 = v_name22 OR field4 = v_name22)

AND field = 1;

EXCEPTION

WHEN OTHERS THEN

NULL;

END;

EXCEPTION

WHEN OTHERS THEN

pro_name2(pi_name1, pio_name3);

END pro_name;

/

7.3 数据库设计文档格式

?表名

?说明

?

?关键字

?字段说明

?

?

?触发器

?数据量

估计每日数据量:

估计最大数据量:

数据量太大引起的问题和处理办法:

?备注

视图

存储过程

处理流程图:

报表

?

7.4 ORACLE建表参数解释

oracle的逻辑结构包括:表空间(tablespaces)、段(segments)、区(extents)、数据块(data blocks)以及模式对象(schema),之间的关系是这样的:表空间是oracle中最大的逻辑单位,其中存储的对象是段,如:数据段、索引段、临时段等。段是由区组成,区是磁盘空间分配的最小单位,段的增大是通过增加区的个数开实现的。而每个区的大小是块的整数倍。数据块是数据库中最小的I/O单元。

STORAGE主要相关参数的说明及建议

INITIAL:

此参数指定分配给段的第一个范围的字节量,其缺省值相当于5个数据库块,最小值为相当于2个数据库块的大小。最大值要依赖于操作系统。该参数一般设定为该对象可能增长到的最大值稍大30%或更大些到预计可能大小的2倍。

NEXT:

分配给一个段的下一个增量范围的字节量,该参数的值一般设置等于INITIAL的值。MAXEXTENTS 是能分配给段的范围总数。对于我们自己建立的表在磁盘空间允许时一般把它设为UNLIMITED(无限制)。

MINEXTENTS

是段建立时分配给它的范围总数,一般为1个范围。回滚段最少应为2个范围,应尽可能再大一些。

PCTINCREASE(%Increase)

是一个百分数,每一个增量范围都在最新分配的增量范围上增长这个百分数。缺省值是50%,但在回滚段中此参数应设置为0。对于一般的表应把它设置为0,但对于一些修改频繁且增长很快的表应给它设置个较大的PCTINCREASE参数值。

ORACLE数据库安全规范

数据库安全规范

1概述 1.1适用范围 本规范明确了Oracle数据库安全配置方面的基本要求。 1.2符号和缩略语 2 ORACLE安全配置要求 本规范所指的设备为ORACLE数据库。本规范提出的安全配置要求,在未特别说明的情况下,均适用于ORACLE数据库。 本规范从ORACLE数据库的认证授权功能和其它自身安全配置功能提出安全要求。 2.1账号 ORACLE应提供账号管理及认证授权功能,并应满足以下各项要求。 2.1.1按用户分配帐号

2.1.2删除或锁定无关帐号 2.1.3用户权限最小化 要求内容 在数据库权限配置能力内,根据用户的业务需要,配置其所需的最小权

限。

grant 权限 to user name; revoke 权限 from user name; 2、补充操作说明 用第一条命令给用户赋相应的最小权限 用第二条命令收回用户多余的权限 业务测试正常 4、检测操作 业务测试正常 5、补充说明 2.1.4使用ROLE 管理对象的权限 1. 使用Create Role 命令创建角色。 2.使用用Grant 命令将相应的系统、对象或 Role 的权限赋予应用用户。 2、补充操作说明 对应用用户不要赋予 DBA Role 或不必要的权限。 4、检测操作 1.以DBA 用户登陆到 sqlplus 中。 2.通过查询 dba_role_privs 、dba_sys_privs 和 dba_tab_privs 等视图来检查 是否使用ROLE 来管理对象权限。 5、补充说明 操作指南 1、参考配置操作 检测方法 3、判定条件 要求内容 使用数据库角色(ROLE )来管理对象的权限。 操作指南 1、参考配置操作 检测方法 3、判定条件

ORACLE数据库设计规范

1命名原则 1.1约定 u是指对数据库、数据库对象如表、字段、索引、序列、存储过程等的命名约定; U命名使用富有意义的英文词汇,尽量避免使用缩写,多个单词组成的,中间以下划线分割 u避免使用Oracle的保留字如LEVEL、关键字如TYPE (见Oracle保留字和关键字); u各表之间相关列名尽量同名; u除数据库名称长度为1 — 8个字符,其余为1 — 30个字符,Database link 名称也不要超过30个字符; u命名只能使用英文字母,数字和下划线; 1.2表名 规则如下: 命名规则为xxx_yyy_TableName 。xxx表示开发公司的名称,最多五个字母构成,尽量用简称;yyy 表示子系统中的子模块的名称(可以没有),最多五个字母构成,尽量用简称;TableName 为表含义,最多十个字母构成,尽量用简称 TableName 规则如下: u使用英文单词或词组作为表名,不得使用汉语拼音 u用名词和名词短语作表名 u不使用复数 正确的命名,例如: fiber_sys_user fiber_biz_order 1.3存储过程 规则如下: 命名规则为xxx_yyy_StoredProcedureName 。xxx表示开发公司的名称,最多五个字母构成,尽量用 简称;yyy表示子系统中的子模块的名称(可以没有),最多五个字母构成,尽量用简称;

StoredProcedureName 规则如下: u用动词或动词短语来命名,并带有宾语 u需要符合用Pascal命名规则。 u尽量谨慎地使用缩写 u尽量不要和关键字重合 u不要用任何名前缀(例如U , B) u StoredProcedureName 内不使用下划线 u当操作依赖条件时,一般结尾使用By+条件 存储过程正确的命名,例如: sys_lnsertUser sys_SearchUserByUserlD sys_DeleteUserByUserlD 1.4视图 规则如下: u视图的命名采用xxx_yyy_ ViewName_v 。xxx表示开发公司的名称,最多五个字母构成,尽量用简称;yyy表示子系统中的子模块的名称(可以没有),最多五个字母构成,尽量用简称;_v后缀表示视图, ViewName 部分表示视图的含义,最多十个字母构成,尽量用简称。 ViewName 规则如下: u用名词和名词短语, u不使用复数 u用Pascal命名规则 u尽量谨慎地使用缩写 u尽量不要和关键字重合 u不要用任何名前缀(例如U,B) u ViewName 中使用下划线 视图正确的命名,例如:

oracle11g数据库管理与开发第7章答案.

第7章安全管理 一、填空题 1.Oracle数据库用户口令认证可以采用数据库验证、外部验证、全局验证等几种方式。 2.Oracle数据库概要文件主要用于资源管理、控制口令等。 3.Oracle数据库中的权限分为系统权限和对象权限两种类型,向用户直接授权需要grant权限to用户SQL语句。 4.用户连接Oracle数据库后希望得到角色权限,这有两种实现方法:一种方法是让管理员把角色设置为用户默认角色,另一种方法是向用户授予角色,需调用的SQL语句是grant 角色to用户。 二、简答题 1.简要说明在oracle数据库内普通用户口令认证和管理员口令认证都有哪些方法? 答:oracle数据库普通用户口令认证有以下3种认证方法: (1)数据库认证(2)外部认证(3)全局认证 管理员口令认证有以下3种认证方法: (1)口令文件认证(2)操作系统认证(3)基于网络认证服务认证 2.简述用户通过默认角色和非默认角色获得权限有何异同? 答:用户通过默认角色获得权限时,用户默认角色在用户连接后被自动激活,所以用户不用显式启用角色就可以立即获得它们所具有的权限。而通过非默认角色获得权限时,必须通过命令调用为其授权,才能使非默认角色获权。 三、实训题 1.请创建一个用户books_pub,要求他第一次登录时必须修改口令,将其默认表空间和默认临时表空间分别设置为books_pub和temp,并在表空间users,demots和books_pub上分别为他分配10MB,10MB和50MB的存储空间。 create tablespace books_pub//创建books_pub表 datafile'f:\app\administrator\admin\orcl\hcy_1.dbf'size5M; create tablespace demots//创建demots表 datafile'f:\app\administrator\admin\orcl\hcy_2.dbf'size5M; create user books_pub//创建books_pub用户 identified by123 password expire default tablespace books_pub temporary tablespace temp quota10M on users quota10M on demots quota50M on books_pub; 2.把创建会话的系统权限,以及scott用户dept表和emp表上的所有对象授予用户books_pub。

Oracle数据库设计规范建议

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(用英文表达存储过程意义);

Oracle数据库开发规范

项目编号:××× xxx Oracle数据库开发规范 Oracle DB Development Standardization <部门名称> **年**月**日 文档信息: 文档名称: 文档编号: 文档版本日期: 起草人: 起草日期: 复审人: 复审日期: 版本历史: 版本 日期 作者 更改参考 说明

审批信息: 签字/日期 审核 审批 目录 1 概述 4 1.1 编写目的 4 1.2 文档约定 4 1.3 预期的读者和阅读建议 4 1.4 参考文献 5 2 数据库对象命名 6 2.1 命名总体原则 6 2.2 表名 6 2.3 视图 6 2.4 同义词 6 2.5 序列7 2.6 索引7 2.7 存储过程7 2.8 存储函数8 2.9 存储程序包8 2.10 触发器8 2.11 字段8 2.12 其他9 3 设计规范9 3.1 范围9 3.2 表空间9 3.3 字符集10 3.4 主外键约束10 3.5 分区表10 3.6 RAC下的序列设计10 3.7 字段10 3.8 表结构设计11 3.9 索引设计11 3.10 临时表11 4 SQL编写规范 12 4.1 书写规范12 4.2 SQL语句的索引使用13 4.3 SQL语句降低系统负荷 15 5 PL/SQL编程规范18

5.1 书写规范18 5.2 常用数据库操作语句编码规范19 5.3 常用过程控制结构20 5.4 Condition 21 5.5 Cursor 22 5.6 变量定义与赋值22 5.7 过程与函数调用23 5.8 例外处理(Exception) 23 5.9 例外处理的错误消息24 5.10 注释(Comment) 25 5.11 应用调试控制27 5.12 并发控制27 5.13 代码测试、维护29 1 概述 1.1 编写目的 为规范软件开发人员的Oracle数据库开发提供参考依据和统一标准。 1.2 文档约定 说明本文档中所用到的专用术语定义或解释,缩略词定义。 1.3 预期的读者和阅读建议 本文档适用于所有开发员。 1.4 参考文献 列出有关的参考文件,如: a.属于本项目的其他已发表文件; b.本文件中各处引用的文档资料。 列出这些文件的标题、作者,说明能够得到这些文件资料的来源。 2 数据库对象命名 2.1 命名总体原则 本规范所涉及数据库对象主要是指表、视图、同义词、索引、序列、存储过程、函数、触发器等; 命名应使用富有意义的英文词汇,尽量避免使用缩写,多个单词组成的,中间以下划线分割;避免使用Oracle的保留字或关键字,如LEVEL和TYPE; 各表之间相关列名尽量同名; 除数据库模式对象名称长度为1-8个字符,其余对象名称均要求不超过30个字符; 命名只能使用大写英文字母,数字和下划线,且以英文字母开头。 2.2 表名 规则:XXX_MMM_DDDD 说明:XXX代表子系统或模块名称(2-3个字母构成); MMM代表子模块名称(2-3个字母构成,根据实际情况可以没有); DDDD为表的简称含义,使用英文单词或词组构成,可包括下划线,但不得使用汉语拼音。 示例:PO_HEADERS_ALL 2.3 视图 规则:XXX_MMM_DDDD_V 说明:XXX代表子系统或模块名称(2-3个字母构成);

ORACLE数据库学习心得

ORACLE数据库结课论文 一个好的程序,必然联系着一个庞大的数据库网路... 今年我们学习了oracle数据库这门课程,起初的我,对这个字眼是要多陌生有多陌生,后来上课的时候听一会老师讲课,偶尔再跟上上机课,渐渐的学会了不少东西,但我感觉,我学到的仍是一些皮毛而已,怀着疑惑和求知的心态,我在网上搜索了关于oracle数据库的一些知识。 1.ORACLE的特点: 可移植性ORACLE采用C语言开发而成,故产品与硬件和操作系统具有很强的独立性。从大型机到微机上都可运行ORACLE的产品。可在UNIX、DOS、Windows等操作系统上运行。可兼容性由于采用了国际标准的数据查询语言SQL,与IBM的SQL/DS、DB2等均兼容。并提供读取其它数据库文件的间接方法。 可联结性对于不同通信协议,不同机型及不同操作系统组成的网络也可以运行ORAˉCLE数据库产品。 2.ORACLE的总体结构 (1)ORACLE的文件结构一个ORACLE数据库系统包括以下5类文件:ORACLE RDBMS的代码文件。 数据文件一个数据库可有一个或多个数据文件,每个数据文件可以存有一个或多个表、视图、索引等信息。 日志文件须有两个或两个以上,用来记录所有数据库的变化,

用于数据库的恢复。控制文件可以有备份,采用多个备份控制文件是为了防止控制文件的损坏。参数文件含有数据库例程起时所需的配置参数。 (2)ORACLE的内存结构一个ORACLE例程拥有一个系统全程区(SGA)和一组程序全程区(PGA)。 SGA(System Global Area)包括数据库缓冲区、日志缓冲区及共享区域。 PGA(Program Global Area)是每一个Server进程有一个。一个Server进程起动时,就为其分配一个PGA区,以存放数据及控制信息。 (3)ORACLE的进程结构ORACLE包括三类进程: ①用户进程用来执行用户应用程序的。 ②服务进程处理与之相连的一组用户进程的请求。 ③后台进程ORACLE为每一个数据库例程创建一组后台进程,它为所有的用户进程服务,其中包括: DBWR(Database Writer)进程,负责把已修改的数据块从数据库缓冲区写到数据库中。LGWR(Log Writer)进程,负责把日志从SGA中的缓冲区中写到日志文件中。 SMON(System Moniter)进程,该进程有规律地扫描SAG进程信息,注销失败的数据库例程,回收不再使用的内存空间。PMON (Process Moniter)进程,当一用户进程异常结束时,该进程负责恢复未完成的事务,注销失败的用户进程,释放用户进程占用的资源。

北语 18春《Oracle数据库开发》

18春《Oracle数据库开发》作业_1 一、单选题( 每题4分, 共10道小题, 总分值40分) 1.在Oracle中,关于PL/SQL下列描述正确的是() A. PL/SQL代表Power Language/SQL B. PL/SQL不支持面向对象编程 C. PL/SQL块包括声明部分、可执行部分和异常处理部分 D. PL/SQL提供的四种内置数据类型是character,integer,float,boolean 答案:C 2.当需要删除表,且该表具有外键约束,需要删除表及其外键约束,可以使用如下()类型的SQL语句。 A. DROP TABLE table1 B. DROP TABLE tablel with foreign key C. DROP TABLE tablel1 CASCADE CONSTRAINTS D. DROP TABLE table1 all 答案:C 3.为了启动Oracle数据库实例,Oracle必须读取一个()文件,该文件保存了实例和数据库的配置参数列表。 A. 控制文件 B. 数据文件 C. 参数文件 D. 初始化文件 答案:C 4.()实现了JDBC ResultSet中的所有方法,但与ResultSet不同的是,OracleCachedRowSet 中的数据在Connection关闭后仍然有效。 A. OracleCachedRowSet B. OracleRowSet C. OracleSet D. CachedRowSet 答案:A 5.假设需要给某个客户表Customer的Customer_name列添加注释信息:客户姓名,可以使用如下()方式 A. COMMENT ON TABLE?CUSTOMER?IS?'客户姓名' B. COMMENT ON COLUMN CUSTOMER.CUSTOMER_NAME IS '客户姓名' C. COMMENT ON COLUMN CUSTOMER.CUSTOMER_NAME '客户姓名' D. COMMENT ON COLUMN CUSTOMER.CUSTOMER_NAME '客户姓名' 答案:B

北语20秋《Oracle数据库开发》作业1【标准答案】

20秋《Oracle数据库开发》作业1 试卷总分:100 得分:100 一、单选题 (共 9 道试题,共 36 分) 1.Orcacle提供了(),用于支持采用向导方式创建数据库。 A.SQL*Plus B.Oracle Net C.Oracle Listner D.Oracle Database Configuration Assistant。 答案:D 2.可以自动执行操作的存储对象是() A.程序包。 B.函数。 C.过程。 D.触发器 答案:D 3.在Oracle中,约束可以在DML语句执行之后立即生效,也可以延迟到事务处理提交时才生效。()语句可以让用户在事务处理中设置延迟约束的强制模式 A.set constraint B.set transaction C.take constraint D.take constraint 答案:A 4.Oracle的分区表可以包括多个分区,每个分区都是一个独立的(),可以存放到不同的表空间中。 A.段。 B.盘区。 C.物化视图。 D.数据文件 答案:A 5.初始化参数()指定了实例启动时希望创建的共享服务器进程的数目 A.SHARED_SERVICES。 B.DISPATCHERS。 C.HOST。 https://www.360docs.net/doc/777208614.html,_SERVICES 答案:A 6.假设需要格式化作者表AUTHOR查询的列信息,将AUTHOR_ID列名字格式化为“作者编号”,AUTHOR_ID列名字格式化为“作者名称”,AUTHOR_DESC列名字格式化为“作者简介”,可以使用如下()方式 A.FORMAT AUTHOR_ID HEADING ’作者编号’FORMAT AUTHOR_NAME HEADING ’作者名称’FORMAT

Oracle数据库设计策略及规范

Oracle数据库设计策略及规范 设计策略及规范 1. 目的 定义Oracle数据库设计规范,作为数据库规划、设计、开发以及维护人员的技术参考资料。用以规范和指导相关人员的设计行为。 2. 概述 本文档根据Oracle数据库性能特点,描述对表、视图、存储过程、对象命名等方面的设计规范。 3. 基本策略 3.1 设计策略 ◆?分类拆分数据量大的表。 对于经常使用的表(如某些参数表或代码对照表),由于其使用频率很高,要尽量减少表中的记录数量。例如,银行的户主账表原来设计成一张表,虽然可以方便程序的设计与维护,但经过分析发现,由于数据量太大,会影响数据的迅速定位。如果将户主账表分别设计为活期户主账、定期户主账及对公户主账等,则可以大大提高查询效率。 ◆?分区策略 在拥有数500行以上的表时,采用分区策略。 ◆?索引设计。 对于大的数据库表,合理的索引能够提高整个数据库的操作效率。在索引设计中,索引字段应挑选重复值较少的字段;在对建有复合索引的字段进行检索时,应注意按照复合索引字段建立的顺序进行。例如,如果对一个5万多条记录的流水表以日期和流水号为序建立复合索引,由于在该表中日期的重复值接近整个表的记录数,用流水号进行查询所用的时间接近3秒;而如果以流水号为索引字段建立索引进行相同的查询,所用时间不到1秒。因此在大型数据库设计中,只有进行合理的索引字段选择,才能有效提高整个数据库的操作效率。 ◆?有时候为了提高性能。减少表的关联,恰当的数据冗余是允许的。 ◆?索引对新增,删除,更新的性能影响比较大,对相关的表的索引使用要权衡 ◆?为表和索引建立不同的表空间,禁止在系统表空间中放入非核心oracle系统成分的对象,确保数据表空间和索引表空间位于不同的磁盘磁盘驱动器上。 ◆?对于经常发生同时查询或频繁查询的表,最好把他放到不同的磁盘空间上 4. 逻辑设计规范 4.1 范式 ◆?如果没有性能上的原因,应该使用关系数据库理论,达到较高的范式,避免数据冗余。 ◆?如果在数据量上与性能上无特别要求,考虑到实现的方便性可以有适当的数据冗余,但基本上要达到3NF。 4.2 表设计 ◆?对于数据量比较大的表,根据表数据的属性进行分区,以得到较好的性能。如果表按某些字段进行增长,则采用按字段值范围进行范围分区;如果表按某个字段 的几个关键值进行分布,则采用列表分区;对于静态表,则采用Hash分区或列表分区;在范围分区中,如果数据按某关键字段均衡分布,则采用子分区的复合分区方法。 ◆?每个表均创建类型为Sequence的主键字段。 4.3 索引设计 ◆?常规OLTP应用,创建B-TREE索引,不创建位图索引。 ◆?不需要为小型数据表(<5000)创建索引。 ◆?给单个表创建的索引不超过5个,特别是海量交易类表。 ◆?索引条件查询结果记录,不超总记录的20%。 ◆?不要给固定选项的字段创建独立索引。 如只有‘男,女’的性别字段;‘是,否’的状态字段等,不要创建独立索引,位可以建立复合索引。 ◆?对于复合索引,索引字段顺序比较关键,把查询频率比较高的字段排在索引组合的最前面。 ◆?索引放到独立的表空间,该表空间不需要REDO LOG。 ◆?含有外键约束的表的字段,必须有单独索引。如订单明细的表头外键。 5. 对象命名规范 5.1 一般规范 5.1.1 语言 ◆?命名使用英文单词,不使用复数。 ◆?英文单词使用同对象本身意义相对或相近的单词。选择最简单或最通用的单词。不能使用毫不相干的单词来命名。 ◆?当一个单词不能表达对象含义时,用词组组合,如果组合太长时,采用简写或缩写,缩写要基本能表达原单词的意义。 ◆?当出现对象名重名时,是不同类型对象时,加类型前缀或后缀以示区别。 ◆?禁止使用中文或拼音缩写进行命名

Oracle11g数据库基础教程-参考答案资料

第1章Oracle 11g数据库安装与配置 1.简答题 (1) 企业版数据库服务器包含所有的数据库组件,主要针对高端的应用环境,适用于安全性和性能要求较高的联机事务处理(OLTP)、查询密集型的数据仓库和要求较高的Internet应用程序:标准版数据库服务器提供大部分核心的数据库功能和特性,适合于工作组或部门级的应用程序:个人版数据库服务器只提供基本数据库管理功能和特性,适合单用户的开发环境,为用户提供开发测试平台。 (2) 常用数据库类型包括事务处理类、数据仓库类以通用类型。其中事务处理类型主要针对 具有大量并发用户连接,并且用户主要执行简单事务处理的应用环境。事务处理数据库的典型应用有银行系统数据库、Internet电子商务数据库、证券交易系统数据库等。对于需要较 高的可用性和事务处理性能、存在大量用户并行访问相同数据以及需要较高恢复性能的数据 库环境,事务处理类型的配置可以提供最佳性能;数据仓库类型的数据库主要针对有大量的 对某个主题进行复杂查询的应用环境。数据仓库的典型应用有客户订单研究、支持呼叫、销售预测、采购模式以及其他战略性业务问题的历史数据研究。对于需要对大量数据进行快速 访问,以及复杂查询的数据库环境,数据仓库类型配置是最佳选择;通用类型配置的数据库是事务处理数据库与数据仓库配置的折衷方案。既可以支持大量并发用户的事务处理,又可以快速对大量历史数据进行复杂的数据扫描和处理。 (3) 数据库名可以由字母、数字、下划线(_)、#和美元符号($)组成,且必须以字母开头,长度不超过30个字符。在单机环境中,可以不设置域名,域名长度不能超过128个字符。Oracle服务标识符(SID)是一个Oracle实例的唯一名称标识,长度不能超过12个字符。(4) OracleServiceORCL:数据库服务(数据库实例),是Oracle核心服务,是数据库启 动的基础,只有该服务启动,Oracle数据库才能正常启动。(必须启动) OracleOraDb11g_home1TNSListener:监听器服务,该服务只有在远程访问数据库时 才需要(无论远程计算机还是本地计算机,凡是通过Oracle Net网络协议连接数据 库都属于远程访问)。(必须启动) OracleOraDb11g_home1ConfigurationManager:配置Oracle启动时的参数的服务。(非必须启动) OracleOraDb11g_home1ClrAgent:提供对.NET支持的Oracle数据库扩展服务。(非必须启动) OracleJobSchedulerORCL:数据库作业调度服务。(非必须启动) OracleDBConsoleorcl:Oracle控制台服务,即企业管理器服务。只有该服务启动了, 才可以使用Web方式的企业管理器管理数据库。(非必须启动) OracleVssWriterORCL:是Oracle对VSS提供支持的服务。(非必须启动) OracleMTSRecoveryService:是允许数据库充当一个微软事务服务器、COM/COM+对象和分布式环境下的事务资源管理器的服务。

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

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

目录 1. 前言 (7) 1.1. 编写目的 (7) 1.2. 方案说明 (7) 1.3. 预期读者 (8) 2. 数据库部署模式 (8) 2.1. 单机模式 (8) 2.2. 双机热备模式(HA模式) (8) 2.3. 集群模式(RAC) (9) 2.4. 主从模式(DataGuard) (10) 2.5. 混合模式(DataGrard+RAC) (11) 2.6. 数据库运行模式选择 (11) 3. 系统特点和数据库类型 (12) 3.1. 业务系统的特点 (12) 3.1.1. OLTP特点 (12) 3.1.2. OLAP特点 (13) 3.2. 数据库的规模 (13) 3.3. 数据库版本建议 (14) 4. 数据库运行环境规划 (14) 4.1. 主机规划 (14) 4.2. 网络规划 (15) 4.3. 存储规划 (17) 5. 数据库安装部署规划 (18) 5.1. 软件安装路径 (18) 5.2. 表空间设计 (19) 5.2.1. 业务数据量估算 (19) 5.2.2. 表空间使用规则 (20) 5.2.3. 表空间的概念和分配原则 (24) 5.2.4. 表空间的参数配置 (25) 5.2.5. Undo/temp表空间的估算 (29) 5.2.6. 表的参数设置 (29) 5.2.7. 索引的使用原则 (30) 5.3. 文件设计 (31) 5.3.1. RAC配置文件 (31) 5.3.2. 参数文件 (31) 5.3.3. 控制文件 (32) 5.3.4. 重做日志文件 (33) 6. 数据库应用规划 (35) 6.1. 数据库用户设计 (35) 6.1.1. 用户权限规划 (35) 6.1.2. 用户安全实现 (37) 6.1.3. 用户类型及角色命名规范 (39) 6.2. 数据库分区 (41)

oracle数据库命名规范

竭诚为您提供优质文档/双击可除oracle数据库命名规范 篇一:oracle数据库管理脚本命名规范 oracle資料庫管理腳本命名規範 oracle中的数据字典是数据库中的非常重要的一部分,提供了相关数据库的信息,它是所有oracle用户(从应用 的最终用户、应用的设计开发者到数据库管理员)的非常重要的信息来源。数据字典的创建,是在oracle数据库创建 完毕后,运行一些相关的数据库管理脚本来完成的。当采用oracle统一安装器(oracleuniversalinstaller)创建数据库时,oracle服务器有关的字典视图和脚本最后会被自动安装。但当需要升级目前的oracle数据库服务器时,数据库 管理员必须要手工重新运行创建这些视图或脚本的sql。安 装完数据库后,oracle数据库管理脚本就存放在操作系统中。对于unix和nt操作系统,分别位于不同的物理目录下,见表1所示: 表1数据库管理脚本在操作系统中的物理位置 oracle中几乎所有的系统管理脚本都保存在该文件目 录下,该目录下含有上百个不同文件。这些不同的文件都有

什么作用呢?本文将详细讨论组成oracle数据库管理脚本的命名规范。这样用户看到某个文件大概就可以知道该文件主要用途是什么。该目录下的文件按照功能不同可分为4大类,oracle为了容易区分这几类不同的文件,对于文件的命名遵从一定的规则。见表2所示。 表2数据库管理脚本命名规范 下面来详细介绍这四种不同类型的脚本功能: 1、cat*.sql脚本 该类脚本主要用于创建数据字典视图。其中,脚本catalog.sql和catproc.sql是创建数据库后必须要运行的两个脚本。这两个脚本的功能说明见表3所示。 (1)catalog.sql 该脚本创建相对于系统基表的视图和系统动态性能视图以及他们的同义词。该脚本又同时运行创建其他对象的脚本,主要有: 基本pl/sql环境,包括pl/sql的声明: -数据类型 -预定义例外 -内建的过程和函数 -sql操作等 审计 导入/导出

Oracle数据库开发知识点

Oracle数据库开发指南 前言 参考 第一部分基础 一、数据库对象 表空间Tablespace:存储数据库对象的容器 模式Schema 表Table 表名最长为30个字符,不能以数字开头。一个表最多254个列。 CREATE TABLE tablename AS select_statement,通过子查询建立新表 DESC tablename,查看表或其它数据库对象的定义 ALTER TABLE tablename RENAME new_tablename,修改表名 RENAME tablename TO new_tablename,修改表名,注意修改表名后,视图必须重建。 索引Index 保证表中数据的唯一性;减少定位和检索数据所需要的I/O操作 Oracle允许对列值创建索引,也可对表达式创建索引。所以既可是UNIQUE,也可是UNIQUE Oracle对DESC(降序)索引认为是基于函数的索引。 序列Sequence 使用序列为表的码值生成唯一的序列值 聚簇Cluster 视图View 由一个预定义的查询构成,可看作为数据库的逻辑表。 SELECT text_length FROM user_views WHERE view_name = …viewname? Set long 5000 SELECT text FROM user_views WHERE view_name = …viewname? 快照Snapshot 快照与视图都是基于查询结果的。但快照使用物理的存储空间,快照中的数据一般都是静态的,只有刷新时才改变。 快照的目的是提供某个时间点的数据。 二、数据类型 CHAR(n),255字符 V ARCHAR2(n):2000字符 LONG,2G字符,只能用在列SELECT列表,UPDATE语句的SET子句或INSERT语句的V ALUES子句中,一个表中只能有一个LONG列,LONG列不能建索引,也不能有完整性约束,不能用于表达式。DATE

《ORACLE数据库课程设计》大纲及参考题目要求

《ORACLE数据库课程设计》大纲 一、学时、学分 总学时:2周学分:2 二、对象 网络工程(本科) 三、目的 在掌握课本所讲授的理论知识的基础上,通过一个自选项目的课设,将课本理论知识与实际操作应用相结合,使学生对数据库应用开发过程有个全面的认识,提高学生的实际操作能力,为以后从事数据库开发方面的工作打下基础。 四、条件 硬件:人手一台PC机,要求能够连接到Internet。 软件: Oracle数据库 五、总体要求 1. 课设过程中听从老师安排,遵守实验室的规定。 2. 按时出勤,不迟到,不早退。 3. 独立按时完成课设,如有问题可查阅文献,与同学研讨,不得抄袭别人作业。 4. 课设过程中严格要求自己,高质量完成课设要求的同时,利用网络搜集资料,拓展应用自己所学知识,提高自己解决实际问题的能力。 六、课设内容及学时分配 (1)内容 要求学生自由选择一个数据库应用开发系统为项目课题进行开发。可参考附件中的课题。完成所选系统的数据库设计,前台界面选择实现。 数据库系统设计中包括有数据库系统概述、需求分析(文字描述、数据流程图、数据字典)、概念结构设计、逻辑结构设计、系统优化(规范化)、物理实现(用DDL定义每个基本表并录入基本的数据信息)、数据库管理(加入适当的视图、索引、存储过程、触发器)、测试(根据系统功能写出问题,并用相应的语句功能解决)、数据库维护(数据库备份)。 (2)学时分配

七、要求 每人1题,原则上不得重复(至少本组内不得重复)。 作业一:课设报告 课设报告内容包括:详细介绍所选项目的数据库系统开发过程,结构完整,叙述详实,有必要的图、表,图1 XXX,图2 XXX…,表1 XXX,表2 XXX…。 作业二:数据库原文件(数据文件、日志文件) 要求:(1)课设报告均用A4纸打印,宋体,小四号字,工整、整洁。在报告上方装订两颗钉。学院有统一封面模板。 (2)作业一、二完成后,课设报告交给老师,电子文档上传到ftp://10.1.10.136课设文件夹下。用户名、密码均为yyj,交到“ORACLE课程设计”文件夹下。在网络B121或网络B122下建立自己学号+姓名子文件夹,样式为:01赵依依(3)作业上交时间为2015年1月23日,逾期不再接收。 八、成绩评定、考核办法 由指导教师根据学生完成课设任务的情况(课设过程中的工作态度30%,作业一20%,作业二50%)综合打分。主要是答辩(凭一卡通)和报告。成绩评定实行优秀、良好、中等、及格和不及格五个等级。其中工作态度考核内容包括: 是否按时到场;是否听从统一安排和要求;是否按进度要求完成课设科目;是否保持课设设备完好无损等。

Oracle数据库应用开发相关试题(doc 10页)

Oracle数据库应用开发相关试题(doc 10页)

Oracle 1. ()进程可以将数据库高速缓冲区中的修改的块写到数据文件中。(第十章) A. LGWR。 B. DBWn。 C. CKPT。 D. SMON。 答案. B 2. 当失败的实例再次启动时,()可以执行紧急恢复操作。(第十章) A. LGWR。 B. DBWn。 C. CKPT。 D. SMON。 答案. D 3. ()可以用于备份联机重做日志文件,以便在文件中充满日志或者发生日志切换时存储档案。(第十章) A. ARCn。

B. RECO。 C. SMON。 D. PMON。 案. A 4. 当需要查询当前活动进程的信息时,可以使用()视图。(第十章) A. V$PROCESS。 B. V$SESS_IO。 C. V$SESSION_WAIT。 D. V$LATCH。 答案. A 5. 表空间和数据文件在物理存储上是()的关系(第十章) A. 一对多。 B. 多对一。 C. 一对一。 D. 多对多。 答案. A

A. 数据字典。 B. 数据文件。 C. 控制文件。 D. 表空间。 答案. A 9. 在Oracle数据字典视图中,()视图存储了数据库中所有对象的信息。(第十章) A. dba_*。 B. user_*。 C. all_*。 D. sys_*。 答案. A 10. ()包含了一些潜在的由系统管理员如SYS维护的表和视图,由于当数据库运行的时候它们会不断进行更新。(第十章) A. 动态数据字典。 B. 静态数据字典。 C. dba_*视图。 D. all_*视图。 答案. A

数据库开发规范

项目一部数据库开发规范

注:对该文件内容增加、删除或修改均需填写此变更记录,详细记载变更信息,以保证其可追溯性。

1.命名规范 1.1.对象 新建的表,存储过程,包等要遵循以下规则 1.2.表 表名不得超过30个字母,全部采用大写字母,表的命名可以如下:模块缩写名_表的名称,如RES_NODE代表资源模块的节点; 值班: DUTY_CALENDAR。 1.3.字段名称 字段名不得超过30个字母,必须以英文单词构成,每个单词之间以下划线隔开,全部采用大写字母。对复杂的大型应用系统而言,必须建立表名和字段名的数据字典,并附于开发规范附录中,在命名时必须严格遵守数据字典。

2.数据库对象管理 2.1.一般规定 数据库所有对象,包括表、视图、主键、索引、序列、存储过程、包等必须在数据库建模工具中进行管理并保持与数据库完全同步。 2.2.大小写 在数据库模型、数据库脚本中,所有对象,包括表、视图、主键、索引、序列、存储过程、包等名称必须大写。 3.语句书写规范 3.1.尽量不使用某种数据库的特有功能 为了保持可移植性,尽量不使用某种数据库的特有功能,如SQL Server专用的Unique ID, Oracle专用的Sequence的功能; 3.2.查询sql语句尽量使用绑定变量 3.3.尽最大可能不使用通配符 在SQL语句中,LIKE关键字支持通配符匹配,但这种匹配特别耗费时间。如:SELECT A FROM ABC WHERE A LIKE 'M%' 。在A字段上建立了索引。把语句改为SELECT A FROM ABC WHERE A >'M' AND A <'N',在执行查询时会利用索引以提高响应速度。 使用*通配符必须事先征得项目开发负责人同意。 3.3.1Distinct 使用distinct会增加查询和I/O的操作次数。应当避免使用distinct关键字。 3.3.2嵌套查询 SELECT A FROM CMS_USER WHERE USER_NAME IN ( SELECT USER_NAME FROM CMS_DEPARTMENT WHERE DEPARTMENT=’电子办’)如果我们用连接来代替,且表关联放在条件语句的最后部。即: SELECT A FROM CMS_USER,CMS_DEPARTMENT WHERE CMS_DEPARTMENT .DEPARTMENT=’电子办’ AND CMS_DEPARTMENT .USER_NAME = CMS_https://www.360docs.net/doc/777208614.html,ER_NAME 将提高一定的效率。

Oracle_开发数据库试题.

Oracle_开发数据库选择题1 1.()是Oracle维护数据库中其他文件的列表、数据库名称和系统改变号(SCN)的文件。 A. 控制文件。 B. 参数文件。 C. 数据文件。 D. 可执行文件。 2. Oracle数据库被划分为()的逻辑存储单元,该逻辑存储单元本身由操作系统磁盘文件和原始分区组成。 A. 表空间。 B. 联机重做日志文件。 C. 归档重做日志文件。 D. 回滚段。 3.()是包含Oracle数据库中所有数据的数据库对象。 A. 视图。 B. 索引。 C. 存储过程。 D. 表。 4.()是为了加速对特定表数据的访问而创建的数据段。 A. 视图。 B. 索引。 C. 存储过程。 D. 触发器。 5.下面是有关date数据类型和timestamp数据类型的描述,请问哪一种描述是正确的? A. 两者都只能存储日期数据,不能存储时间数据。 B. 两者都只能存储时间数据,不能存储日期数据。 C. date数据类型比timestamp数据类型的存储时间精度高。 D. date数据类型比timestamp数据类型的存储时间精度低。 6.可以自动执行操作的存储对象是()。 A. 程序包。 B. 函数。 C. 过程。 D. 触发器。 7.当Oracle创建数据库时,所有为数据库的数据字典所建立的基本表和视图都存储在()模式中。 A. SYS。 B. SYSTEM。 C. USER。 D. TEMP。 8.()是Oracle数据库对象的别名,可以强化对象的安全性。 A. 触发器。 B. 视图。 C. 表。 D. 同义词。 9.()是具有只读类型的表和视图集,存储了数据库的物理和逻辑结构信息。 A. 表空间。 B. 盘区。 C. 数据字典。 D. 方案。 10.()是一组Oracle进程和SGA。 A. 实例。 B. 数据库。 C. 表空间。 D. 实体化视图。 11.()可以用于存储4Gb字节的数据。 A. Clob。 B. Blob。 C. Text。 D. Varchar2。 12.NUMBER数据类型存储的最大精度是()。 A. 12。 B. 38。 C. 127。 D. 64。 13.当需要描述一个表table1对象结构时,可以使用(); A. DES table1。 B. DESC table1。 C. DESCR table1。 D. DESCRIB table1。 14.()是目前各类数据库中最重要、最流行的数据库类型。 A. 网络数据库。 B. 图像数据库。 C. 关系数据库。 D. 对象数据库。 15.()是对事物的符号表示,是用于表示事物的未经加工的原始素材。 A. 信息。 B. 数据。 C. 文本。 D. 文件。 16.()是一种软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。

Oracle数据库命名规范

命名规范(Oracle数据库)

1表命名 ●命名最好望文生义,避免使用数据库关键词 ●命名一律为大写字母(不要大下写混合) ●英文单词单数命名.例:FACTORY ●英文单词缩写命名.例:DEPT ●英文单词之间用下划线连结,且每个单词皆为单数.例:TASK_RESULT ●用来存储历史资料,命名以HISTORY结尾.例:TASK_HIS ●用来存储日志资料,命名以LOG结尾.例:TASK_LOG ●用来存储类别资料,命名以TYPE结尾.例:TASK_TYPE 2表字段 ●命名最好望文生义,避免使用数据库关键词 ●英文单词单数命名.例:MAIL ●英文单词缩写命名.例:DEPT_ID ●英文单词之间用下划线连结,且每个单词皆为单数.例:USER_NAME ●字段用来存储流水号,命名以ID结尾.例: TASK_ID ●字段用来存储代码,命名以NO结尾.例: TASK_NO ●字段用来存储类别,命名以TYPE结尾.例:STATION_TYPE ●字段用来存储名称,命名以NAME结尾.例:ENDUSER_NAME ●字段用来存储描述,命名以DESC结尾.例:STATION_DESC ●字段用来存储代码,命名以CODE结尾.例:ERROR_CODE ●字段用来存储标志,命名以FLAG开头.例:DEBUG_FLAG 3索引 命名以表名+ INDEX+两位流水号(01~99).例:ENDUSER_INDEX01 4键值 ●主键命名以表名+PK+一位流水号(1~9).例:DEPT_PK1 ●附键命名以表名+AK+一位流水号(1~9).例:DEPT_AK1 ●外键命名以表名+FK+一位流水号(1~9).例:DEPT_FK1 ●检查条件以表名+CK+一位流水号(1~9).例:DEPT_CK1

相关文档
最新文档