数据库技术高级应用-第二章-第三章-Oracle数据库及对象的创建与管理

数据库技术高级应用-第二章-第三章-Oracle数据库及对象的创建与管理
数据库技术高级应用-第二章-第三章-Oracle数据库及对象的创建与管理

一、使用dbca创建数据库。

二、创建表空间:

CREATE TABLESPACE <表空间名>

DATAFILE '<文件路径>/<文件名>' //创建的数据文件

[SIZE <文件大小> [ K∣M ]] //初始大小

[ REUSE ] [ AUTOEXTEND [ OFF∣ON //数据文件自动扩容,next只能跟在这个后面

[ NEXT <磁盘空间大小> [ K∣M ]]

[ MAXSIZE [ UNLIMITED∣<最大磁盘空间大小> [ K∣M ] ] ] ]

[ MINMUM EXTENT <数字值>[ K | M ] ]

[ DEFAULT <存储参数>]

[ ONLINE∣OFFLINE ]

[ LOGGING∣NOLOGGING ]

[ PERMANENT∣TEMPORARY ]

[ EXTENT MANAGEMENT [ DICTIONARY∣LOCAL [ AUTOALLOCATE∣UNIFORM [ SIZE <数字值>[ K∣M ] ] ] ] ]

1、文件名包括完整路径和文件名,每个数据文件定义了文件的初始大小,初始大小一般以“M”为单位。一个表空间中可以有多个数据文件。

2、extent management 有两种方式 extent management local(本地管理); extent management dictionary(数据字典管理),默认的是local

本地管理表空间要求Oracle中的数据分区(Extent)大小统一。

3、UNIFORM SIZE:指定每个分区的统一大小。

注:参数比较全的创建表空间的方法为:

SQL> create tablespace test

Logging --注意logging不能在datafile至maxsize 之间,前、后均可。

datafile 'G:/app/Administrator/oradata/test/TEST01.DBF'

size 100M

autoextend on

next 10M

maxsize unlimited

extent management local

uniform size 1M;

创建用户临时表空间:

CREATE TEMPORARY TABLESPACE test_temp

TEMPFILE

'D:\oracle\product\10.2.0\oradata\orcl\test_temp01.dbf' SIZE 32M

AUTOEXTEND ON

NEXT 32M MAXSIZE 2048M

EXTENT MANAGEMENT LOCAL;

管理表空间

Alter tablespace xxx ADD DATAFILE∣TEMPFILE

删除表空间

Drop tablespace

三、创建表,并指定所属表空间:

CREATE TABLE <表名> (列定义 | 约束定义)

(1)DEFAULT <常数>,指明本列数据缺省值;

(2)PRIMARY KEY:指明本列数据值不重且非空(单列主码)注意

后面的字段名要加括号

(3)UNIQUE:指明本列数据值不重;

(4)FOREIGN KEY 定义表的外码约束;引用的列必须是primary key或者是unique属性的列。foreign key(SDBH) references 表2(引用列)

(5)CHECK(<取值范围条件>)注意后面的表达式要加括号

(6)指定表空间 TABLESPACE SYSTEM

2、修改表,与sql不同,修改字段类型为modify;add不需要加column,constraint可以不加。删除列为drop

Alter table A modify a1 type;

Alter table b add b1 type;

Alter table c drop column c1;

例:alter table infos add constraint pk_infos primary key(stuid) --主键约束

alter table infos add constraint ck_infos_seat check(seat >=0 and seat <=50)

3、删除表 drop table XX

四、pl\sql语言

1、求年龄。

SELECT EXTRACT(YEAR FROM SYSDATE)- EXTRACT(YEAR FROM 出生时间) AS 年龄

FROM XSB;

Set serveroutput on;

dbms_output.put_line(c);输出

2、部分符号

:= 赋值 a:=a+1

|| 字符串连接符 Full_name:= 'Narth'|| ''|| 'Yebba '

3、变量的声明,支持用户自定义数据类型

DECLARE

TYPE t_xsRecord

( xh char(6),

xm char(8),

xb char(2),

zy char(12)

);

v_xs t_xsRecord

4、常量的声明,<常量名>constant<数据类型>:=<值>;

str constant char:= 'Hello world!';

5、变量的属性

%TYPE。%TYPE属性提供了变量和数据库列的数据类型。在声明一个包含数据库值的变量时非常有用。例如,在表XSB中包含学号列,为了声明一个变量my_xh与学号列具有相同的数据类型,声明时可使用点和%TYPE属性,格式如下:

my_xh XSB.学号%TYPE;

使用%TYPE声明具有以下两个优点:

① 不必知道学号列的确切的数据类型;

② 如果改变了学号列的数据库定义,my_xh的数据类型在运行时会自动进行修改。

%ROWTYPE。可以使用%ROWTYPE属性声明描述表的行数据的记录,对于用户定义的记录,必须声明自己的域。记录包含唯一的命名域,具有不同的数据类型。

6、游标

Declare cursor s_cur is

Select 语句;

Begin

Open s_cur;

Fetch s_cur;

循环体(fetch s_cur);

Close s_cur;

End;

游标的属性。教材P134.

将游标取值放入变量中:fetch cur into 列1,列2,列3,列4

将值放入某表中:insert into 表1 values(列1,列2,列3,列4);

判断表中数据是否取完:cur%found;

%found。表示当前游标是否指向有效一行,若是则为true,否则为false。检查此属性判断是否结束游标使用。隐式游标的引用方法是sql%found。

Loop

Exit when not stu_cur%found;

End loop;

%notfound。与%found相反。Sql%notfound。

%rowcount。记录了游标抽取过的记录行数,也可以理解为当前游标所在行号。隐式游标的引用方法是sql%rowcount,表示最新处理过的sql语句影响的记录数。

%isopen。表示游标是否处于打开状态。隐式游标sql%isopen,隐式游标的该属性总为false,使用中也不用打开和关闭,也不用检查其状态。

7、IF逻辑结构

If (条件表达式1) then

(语句序列1);

Elsif (条件表达式2) then

(语句序列2);

Else (语句序列3);

End if;

可以派生出(1)if then end if;(2)if then else end if;

(3)if then elsif then else end if;

8、循环结构

(1)LOOP-EXIT-END循环

Loop

循环体

If(条件表达式1) then

Exit;

End if;

End loop;

(2)LOOP-EXIT-WHEN-END

Loop

循环体;

EXIT WHEN <条件表达式> ;

END LOOP;

(3)WHILE-LOOP-END

WHILE <条件表达式>

LOOP

<循环体>;

END LOOP;

(4)FOR-IN-LOOP-END

FOR <循环变量名> IN <变量初值>..<变量终值> --注意2个点,定

义跟踪循环的变量,

LOOP --类似between 执行后,变量还是原始值

<循环体>;

END LOOP;

(5)case when

CASE <变量名>

WHEN <值1> THEN <语句1>;

WHEN <值n> THEN <语句n>;

[ELSE <语句>]

END CASE;

9、GOTO语句:实现将执行流程转移到标号指定的位置。GOTO关键字后面的语句标号必须符合标识符规则。

GOTO <标号>

GOTO loop_end;

<>

10、数学运算函数

函 数 名说 明

Abs(<数值>)返回参数数值的绝对值,结果恒为正

Ceil(<数值>)返回大于或等于参数数值的最接近的整数

Cos(<数值>)返回参数数值的余弦值

Floor(<数值

>)

返回等于或小于参数的最大的整数

Mod(<被除数>,<除数>)

返回两数相除的余数。如果除数等于0,则返回被除数

Power(<数值

>,n)

返回指定数值的n次幂

Round(<数值

>,n)

结果近似到数值小数点右侧的n位

Sign(<数值>)

返回一个数值,指出参数数值是正还是负。如果大于0,返回1;如果小于0,返回-1;如果等于0,则返回0

Sqrt(<数值>)返回参数数值的平方根

Trunc(<数值>,n)

返回舍入到指定的n位的参数数值。如果n 为正,就截取到小数右侧的该数值处;如果n为负,就截取到小数点左侧的该数值处;如果没有指定n就假定为0,截取到小数点处

例:SELECT ROUND(3.678,2) FROM dual

11、字符串函数

函 数 名返回值说明

Length(<值>)返回字符串、数字或表达式的长度Lower(<字符串

>)

把给定字符串中的字符变成小写Upper(<字符串

>)

把给定字符串中的字符变成大写

Lpad(<字符串>, <长度>[,<填充字符串>])

在字符串左侧使用指定的填充字符串填充该字符串直到达到指定的长度,若未指定填充字符串,则默认为空格

Rpad(<字符串>, <长度>[,<填充字符串>])

在字符串右侧使用指定的填充字符串填充该字符串直到达到指定的长度,若未指定填充字符串,则默认为空格

Ltrim(<字符串>,[,<匹配字符串>])

从字符串左侧删除匹配字符串中出现的任何字符,直到匹配字符串中没有字符为止

Rtrim(<字符串>,[,<匹配字符串>])

从字符串右侧删除匹配字符串中出现的任何字符,直到匹配字符串中没有字符为止

<字符串1>‖<字

符串2>

合并两个字符串

Initcap(<字符

串>)

将每个字符串的首字母大写

Instr(<源字符串>,<目标字符串> [,<起始位置>[,<匹

判断目标字符串是否存在于源字符串,并根据匹配次数显示目标字符串的位置,返回数值。

配次数>]])

Replace(<源字符串>,<目标字符串>,<替代字符串>)

在源字符串中查找目标字符串,并用替代字符串来替换所有的目标字符串

Soundex(<字符串>)

查找与字符串发音相似的单词。该单词的首字母要与字符串的首字母相同

Subs(<字符串>, <开始位置>[,<删除字符的个数>])

从字符串中删除从指定位置开始的指定个数字符。若未指定个数,则删除从开始位置的所有字符

12、日期函数

函 数 名返回值说明

Add_months(<日期值>, <月份数>)

把一些月份加到日期上,并返回结果

Last_day(<日期值>)

返回指定日期所在月份的最后一天

Months_between(<日期值1>,<日期值>)

返回日期值1减去日期值2得到的月数

New_time(<当前日期>, <当前时区>,<指定时区>)

根据当前日期和当前时区,返回在指定时区中的日期。其中当前时区和指定时区的值为时区的三个字母缩写

Next_day(<日期值>, 'day')

给出指定日期后的day所在的日期;day是全拼的星期名称

Round(<日期值>, 'format')

把日期值四舍五入到由format 指定的格式

To_char(<日期值>, 'format')

将日期型数据转换成以format 指定形式的字符型数据

To_date(<字符串>, 'format')

将字符串转换成以format指定形式的日期型数据型返回

Trunc(<日期值>, 'format')

把任何日期的时间设置为00:00:00

五、存储过程:

CREATE [OR REPLACE] PROCEDURE <过程名>

( [(<参数名> <参数类型> <数据类型> [ DEFAULT <默认值>]

IS | AS

[<变量声明>]

BEGIN

<过程体> /*PL/SQL过程体*/

END [<过程名>][;]

调用存储过程分为2种;一是exec 存储过程名(输入参数或表达式);二是begin end形式,begin end用于需要定义变量的形式,第一种用于不需要定义变量的形式。

删除:drop procedure 方案名.过程名;

例题1、从XSCJ数据库的XSB表中查询某人的总学分,根据总学分写评语。

CREATE OR REPLACE PROCEDURE update_info

( xh in char )

AS

xf number;

BEGIN

SELECT 总学分 INTO xf

FROM XSB

WHERE 学号=xh AND ROWNUM=1;

IF xf>50 THEN

UPDATE XSB SET 备注= '三好学生' WHERE 学号=xh;

END IF;

IF xf<35 THEN

UPDATE XSB SET 备注= '学分未修满' WHERE 学号=xh;

END IF;

END;

执行存储过程update_info:

EXEC update_info(xh=>'101101');

例题2,计算某专业总学分大于40的人数,存储过程使用了一个输入参数和一个输出参数。

CREATE OR REPLACE PROCEDURE count_grade

( zy IN char, person_num OUT number )

AS

BEGIN

SELECT COUNT(学号)

INTO person_num

FROM XSB

WHERE 专业=zy AND 总学分>40;

END;

调用:DECLARE

person_num number;

BEGIN

count_grade ('计算机', person_num);

DBMS_OUTPUT.PUT_LINE(person_num);

END;

六、触发器:

CREATE [OR REPLACE] TRIGGER [<用户方案名>.] <触发器名>

{ BEFORE∣AFTER∣INSTEAD OF } /*定义触发动作*/

{ DELETE | INSERT | UPDATE [ OF <列名>[,…n] ]} /*定义触发器种类*/

[OR { DELETE | INSERT | UPDATE [ OF <列名>[,…n] ]}]

ON {<表名>∣<视图名>} /*在指定表或视图中建立触发器*/

[ FOR EACH ROW [ WHEN(<条件表达式>) ] ]

//*

DML 触发器:

对表执行Insert、Update、Delete操作时激发

可以用于执行校验、设置初使值、审核改变、甚至禁止某种DML操作

语法:

CREATE OR REPLACE TRIGGER 触发器名称

{AFTER|BEFORE } -- 指定触发时机

{INSERT OR DELETE OR UPDATE} -- 指定触发器事件

ON 表名 --指定所监控的表

{FOR EACH ROW|FOR EACH STATEMENT} -- 指定触发器次数 ROW行级触发,示例:delete from t1,删除1000行,则执行1000次(一行一次);STATEMENT语句级触发,示例: delete from t1,删除1000行,则执行1次(一句一次)。默认就是 FOR EACH STATEMENT

BEGIN

--代码;

END;

相关概念:

AFTER|BEFORE:在什么事件之前或之后执行

INSERT|DELETE|UPDATE:什么事件

ON 表名:触发器建在什么表上,即监控什么表

FOR EACH ROW:行级触发,示例:delete from t1,删除1000行,则执行1000次(一行一次) FOR EACH STATEMENT:语句级触发,示例: delete from t1,删除1000行,则执行1次(一句一次)

:new 行变量:保存事件发生时新数据所在行,只有insert事件和update事件才有新数据:old 行变量:保存事件发生时旧数据所在行,只有delete事件和update事件才有旧数据Instead of 选项只适用于视图

当基于视图建立触发器时,不能指定Before和After选项

在建立视图时没有指定with check option选项

当建立Instead of触发器时,必须指定for each row选项

*//

有关DML触发器,还有以下几点说明。

(1)创建触发器的限制。创建触发器有以下限制。

① 代码大小。触发器代码大小必须小于32 kB。

② 触发器中有效语句可以包括DML语句,但不能包括DDL语句。ROLLBACK、

COMMIT、SAVEPOINT也不能使用。

DDL:数据定义语言;DML:数据操纵语言;DCL:数据控制语言。

③ LONG、LONG RAW和LOB的限制如下。

④ 引用包变量的限制。

(2)触发器触发次序。

① 执行BEFORE语句级触发器。

② 对于受语句影响的每一行,执行顺序为:执行BEFORE行级触发器执行DML语句执行AFTER行级触发器。

③ 执行AFTER语句级触发器。

例: 创建一个表table1,其中只有一列a。在表上创建一个触发器,每次插入操作时,将变量str的值设为“TRIGGER IS WORKING”并显示。

CREATE TABLE table1(a number);

创建INSERT触发器table1_insert

CREATE OR REPLACE TRIGGER table1_insert

AFTER INSERT ON table1

DECLARE

str char(100) :='TRIGGER IS WORKING';

BEGIN

DBMS_OUTPUT.PUT_LINE(str);

END;

向table1中插入一行数据:

INSERT INTO table1 VALUES(10);

输出结果:

TRIGGER IS WORKING

例2假设XSCJ数据库中增加一个新表XSB_HIS,表结构和表XSB相同,用来存放从XSB表中删除的记录。创建一个触发器,当XSB表被删除一行,把删除的记录写到日志表XSB_HIS中。

CREATE OR REPLACE TRIGGER del_xs

BEFORE DELETE ON XSB FOR EACH ROW

BEGIN

INSERT INTO XSB_HIS (学号,姓名, 性别,出生时间, 专业, 总学分,备注)

VALUES(:OLD.学号,:OLD.姓名, :OLD.性别, :OLD.出生时间, :OLD.专业, :OLD.总学分, :OLD.备注);

END;

例3利用触发器在数据库XSCJ的XSB表执行插入、更新和删除三种操作后给出相应提示。

CREATE TRIGGER cue_xs

AFTER INSERT OR UPDATE OR DELETE ON XSB FOR EACH ROW

DECLARE

Infor char(10);

BEGIN

IF INSERTING THEN /*INSERT语句激活了触发器*/

Infor:= '插入';

ELSIF UPDATING THEN /*UPDATE语句激活了触发器*/

Infor:= '更新';

ELSIF DELETING THEN /*DELETE语句激活了触发器*/

Infor:= '删除';

END IF;

DBMS_OUTPUT.PUT_LINE(Infor);

END;

例4在XSCJ数据库中创建视图stu_view,包含学生学号、专业、课程号、成绩。

CREATE VIEW stu_view

AS

SELECT XSB.学号, 专业, 课程号, 成绩

?FROM XSB, CJB

?WHERE XSB.学号=CJB.学号

创建INSTEAD OF触发器:

CREATE TRIGGER InsteadTrig

INSTEAD OF INSERT ON stu_view FOR EACH ROW

DECLARE

xm char(8);

xb char(2);

cssj date;

BEGIN

xm:='佚名';

xb:= '男';

cssj:= '01-1月-90';

INSERT INTO XSB(学号, 姓名, 性别, 出生时间, 专业)

VALUES(:NEW.学号,xm, xb, cssj, :NEW.专业);

INSERT INTO CJB VALUES(:NEW.学号, :NEW.课程号, :NEW.成绩); END;

Oracle数据库的空间数据类型

Oracle数据库中空间数据类型随着GIS、CAD/CAM的广泛应用,对数据库系统提出了更高的要求,不仅要存储大量空间几何数据,且以事物的空间关系作为查询或处理的主要内容。Oracle数据库从9i开始对空间数据提供了较为完备的支持,增加了空间数据类型和相关的操作,以及提供了空间索引功能。 Oracle的空间数据库提供了一组关于如何存储,修改和查询空间数据集的SQL schema与函数。通过MDSYS schema规定了所支持的地理数据类型的存储、语法和语义,提供了R-tree空间数据索引机制,定义了关于空间的相交查询、联合查询和其他分析操作的操作符、函数和过程,并提供了处理点,边和面的拓扑数据模型及表现网络的点线的网络数据模型。 Oracle中各种关于空间数据库功能主要是通过Spatial组件来实现。从9i版本开始,Oracle Spatial空间数据库组件对存储和管理空间数据提供了较为完备的支持。其主要通过元数据表、空间数据字段(即SDO_GEOMETRY字段)和空间索引来管理空间数据,并在此基础上提供一系列空间查询和空间分析的函数,让用户进行更深层次的GIS应用开发。Oracle Spatial使用空间字段SDO_GEOMETRY存储空间数据,用元数据表来管理具有SDO_GEOMETRY字段的空间数据表,并采用R树索引和四叉树索引技术来提高空间查询和空间分析的速度。 1、元数据表说明。 Oracle Spatial的元数据表存储了有空间数据的数据表名称、空间字段名称、空间数据的坐标范围、坐标参考信息以及坐标维数说明等信息。用户必须通过元数据表才能知道ORACLE数据库中是否有Oracle Spatial的空间数据信息。一般可以通过元数据视图(USER_SDO_GEOM_METADATA)访问元数据表。元数据视图的基本定义为: ( TABLE_NAME V ARCHAR2(32), COLUMN_NAME V ARCHAR2(32), DIMINFO MDSYS.SDO_DIM_ARRAY, SRID NUMBER

Oracle数据库数据对象分析_张达宇

Oracle数据库数据对象分析 日期:2006-01-18 08:00 点击: Oracle数据库数据对象中最基本的是表和视图,其他还有约束、序列、函数、存储过程、包、触发器等。对数据库的操作可以基本归结为对数据对象的操作,理解和掌握Oracle数据库对象是学习Oracle的捷径。 表和视图 Oracle中表是数据存储的基本结构。ORACLE8引入了分区表和对象表,ORACLE8i引入了临时表,使表的功能更强大。视图是一个或多个表中数据的逻辑表达式。本文我们将讨论怎样创建和管理简单的表和视图。 管理表 表可以看作有行和列的电子数据表,表是关系数据库中一种拥有数据的结构。用CREATE TABLE语句建立表,在建立表的同时,必须定义表名,列,以及列的数据类型和大小。例如: 这样我们就建立了一个名为products的表,关键词CREATE TABLE后紧跟的表名,然后定义了三列,同时规定了列的数据类型和大小。 在创建表的同时你可以规定表的完整性约束,也可以规定列的完整性约束,在列上普通的约束是NOT NULL,关于约束的讨论我们在以后进行。 在建立或更改表时,可以给表一个缺省值。缺省值是在增加行时,增加的数据行中某一项值为null时,oracle即认为该值为缺省值。 下列数据字典视图提供表和表的列的信息: . DBA_TABLES . DBA_ALL_TABLES . USER_TABLES . USER_ALL_TABLES . ALL_TABLES . ALL_ALL_TABLES . DBA_TAB_COLUMNS . USER_TAB_COLUMNS . ALL_TAB_COLUMNS 表的命名规则 表名标识一个表,所以应尽可能在表名中描述表,oracle中表名或列名最长可以达30个字符串。表名应该以字母开始,可以在表名中包含数

Oracle中无效数据库对象的处理方法

Oracle中无效数据库对象的处理方法 Oracle总是会尝试自动重编译无效的PL/SQL对象和视图,但是可能不会成功。虽然Oracle可能建议手动地进行编译,不过我们并非必须进行这个操作。通常无效对象的产生是由于数据库迁移,针对无效对象,我们可以采取重编译和索引重建。 1.1、标识无效的对象 为了标识数据库中的所有无效的对象,我们可以作为SYSTEM用户或其他有权限的用户做如下查询。 SQL> select owner, object_name, object_type from dba_objects where status = 'INVALID'; 1.2、修正无效的对象 编译对象 SQL> alter procedure ADD_NUMS compile; Procedure altered. 如果编译成功,就不存在问题,如果编译失败,就需要找出失败的原因。 SQL> show errors 如果希望确定编译错误的原因,通常需要首先使用DBA_DEPENDENCIES视图。 SQL> desc dba_dependencies; Name Null? Type ----------------------------------------- -------- --------------- OWNER NOT NULL VARCHAR2(30) NAME NOT NULL VARCHAR2(30) TYPE VARCHAR2(17) REFERENCED_OWNER VARCHAR2(30) REFERENCED_NAME VARCHAR2(64) REFERENCED_TYPE VARCHAR2(17) REFERENCED_LINK_NAME VARCHAR2(128) DEPENDENCY_TYPE VARCHAR2(4) 如果要重新编译成百上千的的无效对象,可以运行下面命令。 SQL> @?/rdbms/admin/utlrp --编译无效对象脚本utlrp.sql

Oracle对象管理及使用实验报告

Oracle对象管理及使用实验报告 班级:10网工三班学生姓名:谢昊天学号:1215134046实验目的和要求: 掌握Oracle的常用对象的操作方法。会使用常用对象解决一些实际问题。 实验内容: (1)表结构的建立、修改、查看、删除操作。 (2) 索引的建立、修改、查看、删除操作。 (3) 视图的建立、查询、修改、删除操作。 (4) 同义词的建立、查询、修改、删除操作,比较对同义词的操作与对原数据库对象的操作是否一致。 (5) 掌握序列的建立、查询、修改、删除操作,利用序列向数据库表中插入数据。 实验步骤与调试过程: 1.创建表结构,利用命令行方式将下列各表建立到员工医疗保险系统数据库中。表结构如附录员工医疗保险系统,查看表结构,修改表结构,删除表结构。 索引、视图、同义词及序列操作 2.创建索引(1) 利用企业管理器为医院表的医院名称创建索引,并以降序排列,索引名为“hospital_name_index”。(2) 利用SQL*Plus或iSQL*Plus为员工表的员工姓名、员工性别、出生年月排序,以员工姓名升序、员工性别降序、出生年月降序排列,索引名为“staff_info_index”。3.查看索引(1) 利用企业管理器查看“ygbx_user”方案下有几个隶属于该方案的索引,有几个系统创建的索引,有几个用户创建的索引。(2) 利用SQL*Plus或iSQL*Plus从DBA_INDEXES数据字典中查看员工医疗保险系统所有索引的信息。(3) 利用SQL*Plus或iSQL*Plus从DBA_INDEXES数据字典中查看“staff_info_index”索引的信息,并查看该索引列的顺序及状态。4.删除索引(1) 利用企业管理器删除“hospital_name_index”索引。(2) 利用SQL*Plus或iSQL*Plus 将“staff_info_index”索引删除。 5.查看视图 6.视图数据的更新。(1) 利用SQL*Plus或iSQL*Plus向“business_view”插入一个记录,企业编号为“B1997010287”,企业名称为“格林制药”,企业类型为“企业”,企业地址为“鸭绿江街98号”,联系电话为“84692315”。(2) 利用SQL*Plus或iSQL*Plus查看“business”表是否有变化。 7.删除视图 8.创建同义词。(1) 利用企业管理器创建企业表同义词,名为“qyb”。(2) 利用SQL*Plus或iSQL*Plus创建医保卡表的同义词,名为“ybk”。 9.查询同义词(1) 利用企业管理器查看同义词“qyb”。(2) 利用SQL*Plus或iSQL*Plus查看同义词“ybk”。 10.删除同义词。(1) 利用企业管理器删除同义词“qyb”。(2) 利用SQL*Plus或iSQL*Plus删除同义词“ybk”。 11.创建序列(1) 利用企业管理器创建序列,该序列最大值为“28000”,最小值为“60”,步长为“1”,可循环,序列名为“ygbx_seq1”。(2) 利用SQL*Plus或iSQL*Plus创建序列,该序列最大值

Oracle存储空间管理及应用方案

Oracle存储空间管理及应用 摘要:本文详细介绍了Oracle存储架构及其存储体系的管理和应用,包括表空间、回滚段、临时表等,还对其在管理和应用时常见的错误进行了分析探讨 主题词:Oracle技术表空间数据文件回滚段临时表错误 一、引言 数据库空间的有效使用和维护不仅是数据库管理的重要工作,也是大多数开发人员所关心的内容,它直接关系到数据库性能的发挥。 Oracle提供了不少方法用于数据空间的使用、监控和维护,同时也在各版本中陆续对这方面的功能进行了增强,目的在于简化这方面工作的复杂度,提高应用的运行效率。 本文希望通过系统地介绍这方面的有关概念,让大家能更好地规划使用数据空间,正确使用Oracle提供的有关功能特性,提高应用的执行效率。 二、O racle数据库的存储体系及有关概念 2.1 Oracle数据库的逻辑结构 从应用者的角度来考察数据库的组成。自下向上,数据库的逻辑结构共有6层:

2.2 Oracle数据库的存储结构 数据库的存储结构指逻辑结构在物理上的实现,共有3层 其中: 数据文件:用于存放所有的数据,以DBF为扩展名。 日志文件:记录了对数据库进行的所有操作,以LOG为扩展名。 控制文件:记录了数据库所有文件的控制信息,以CTL为扩展名。 综上,Oracle数据库的数据存储空间在逻辑上分为多个表空间,每个表空间由系统中的一个或多个物理数据文件构成;Oracle存储数据的基本单位是块,其大小在建库时由DB_BLOCK_SIZE参数确定,一个或多个连续的块构成一个区间(EXTENT),它作为数据对象存储的基本单位来使用。在Oracle中,每个基本数据对象使用的空间称为段(SEGMENT),段存放在唯一的表空间上,每个段实际上是一系列区片(更为准确地是数据块)的集合。每个简单数据对象对应一个段;对于分区对象如分区表、索引,则每个(子)

Oracle数据库简介

oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。不过,一般的中小型企业都比较喜欢用SQL数据库系统,它的操作很简单,功能也非常齐全。只是比较oracle 数据库而言,在处理大量数据方面有些不如。 Oralce数据库的发展历程 Oralce数据库简介 Oracle简称甲骨文,是仅次于微软公司的世界第二大软件公司,该公司名称就叫Oracle。该公司成立于1979年,是加利福尼亚州的第一家在世界上推出以关系型数据管理系统(RDBMS)为中心的一家软件公司。 Oracle不仅在全球最先推出了RDBMS,并且事实上掌握着这个市场的大部分份额。现在,他们的RDBMS被广泛应用于各种操作环境:Windows NT、基于UNIX系统的小型机、IBM大型机以及一些专用硬件操作系统平台。 事实上,Oracle已经成为世界上最大的RDBMS供应商,并且是世界上最主要的信息处理软件供应商。由于Oracle公司的RDBMS都以Oracle为名,所以,在某种程度上Oracle己经成为了RDBMS的代名词。 Oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应用。因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力,使得越来越多的用户将Oracle作为其应用数据的处理系统。 Oracle数据库是基于“客户端/服务器”模式结构。客户端应用程序执行与用户进行交互的活动。其接收用户信息,并向“服务器端”发送请求。服务器系统负责管理数据信息和各种操作数据的活动。 Oracle数据库有如下几个强大的特性: 支持多用户、大事务量的事务处理 数据安全性和完整性的有效控制 支持分布式数据处理 可移植性很强 Oracle大体上分两大块,一块是应用开发,一块是系统管理。 开发主要是写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力。管理则需要对Oracle 数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会丢失整个数据库,相对前者来说,后者更看重经验。 Oracle数据库服务器: Oracle数据库包括Oracle数据库服务器和客户端 Oracle Server是一个对象一关系数据库管理系统。它提供开放的、全面的、和集成的信息管理方法。每个Server由一个 Oracle DB和一个 Oracle Server实例组成。它具有场地自治性(Site Autonomy)和提供数据存储透明机制,以此可实现数据存储透明性。每个 Oracle数据库对应唯一的一个实例名SID,Oracle数据库服务器启动后,一般至少有以下几个用户:Internal,它不是一个真实的用户名,而是具有SYSDBA优

ORACLE数据库日常维护与管理手册

全球眼?(MEGAEYES)网络图像管理系统2.0 ORACLE日常维护与管理手册 北京互信互通信息技术有限公司 2004-08-08

目录 全球眼?(MEGAEYES)网络图像管理系统2.0 (1) 1引言 (3) 1.1 目的 (3) 1.2 范围 (3) 1.3 参考资料 (3) 2日常维护与管理说明 (3) 2.1 运行环境 (3) 2.1.1硬件环境 (3) 2.1.2软件环境 (3) 2.2 数据库日常维护 (4) 2.2.1数据库初始设置 (4) 2.2.2每日工作内容 (5) 2.2.3每周工作内容 (6) 2.2.4每月工作内容 (7)

1引言 1.1目的 对于重要的商业系统来说,数据库系统的正常运行是保证商业应用平稳运行的关键。但是数据库在运行过程中可能会因为种种原因发生问题。这时,数据库的管理与日常维护工作将变得尤为重要。 为了指导数据库管理员做好日常维护工作,保证数据库系统的正常运行,特制定本文档。当然,数据库的日常维护是复杂和繁琐的,本文仅涉及一些常见的数据库日常维护的内容,在实际工作中,数据库管理员还需要做更多的工作。 1.2范围 本文档使用的人员:数据库维护管理人员和相关人员。 本文档涉及内容:oracle数据库的日常维护与管理解决方案。 1.3参考资料 中国电信网络视频监控技术(暂行)规范 2日常维护与管理说明 2.1运行环境 程序的运行环境包括硬件运行环境和软件运行环境。 2.1.1硬件环境 ◆CPU类型:Intel及其兼容系列CPU ◆内存容量:剩余内存要达2G以上 ◆硬盘容量:剩余硬盘容量要达1G以上 ◆网卡类型:100M网卡 2.1.2软件环境 ◆操作系统:RedHat Linux AS 3.0 ◆数据库:Oracle9i Database Release 2 (9.2.0.4.0) for Linux x86

第六章 数据库恢复技术

第六章数据库恢复技术 第六章数据库恢复技术 6.1 事务的基本概念 6.2 数据库恢复概述 6.3 故障的种类 6.4 恢复的实现技术 6.5 恢复策略 6.6 具有检查点的恢复技术 6.7 数据库镜像 6.8 小结 6.1 事务的基本概念 一、什么是事务 二、如何定义事务 三、事务的特性 一、什么是事务 ?事务(Transaction)是数据库的逻辑工作单位,是用户定义的一组操作序列。 ?事务和程序是两个概念 –在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序–一个应用程序通常包含多个事务 ?事务是恢复和并发控制的基本单位 二、如何定义事务 ?显式定义方式 BEGIN TRANSACTION BEGIN TRANSACTION SQL 语句1 SQL 语句1 SQL 语句2 SQL 语句2 。。。。。。。。。。 COMMIT ROLLBACK

?隐式方式 当用户没有显式地定义事务时, DBMS 按缺省规定自动划分事务 事务结束 COMMIT 事务正常结束 提交事务的所有操作(读+更新) 事务中所有对数据库的更新永久生效 ROLLBACK 事务异常终止 –事务运行的过程中发生了故障,不能继续执行 回滚事务的所有更新操作 –事务滚回到开始时的状态 三、事务的特性(ACID特性) 事务的ACID特性: ?原子性(Atomicity) ?一致性(Consistency) ?隔离性(Isolation) ?持续性(Durability ) 1. 原子性 ?事务是数据库的逻辑工作单位 –事务中包括的诸操作要么都做,要么都不做 2. 一致性 事务执行的结果必须是使数据库从一个 一致性状态变到另一个一致性状态。 一致性与原子性 银行转帐:从帐号A中取出一万元,存入帐号B。 –定义一个事务,该事务包括两个操作

ORACLE数据库管理系统介绍

ORACLE 数据库管理系统介绍 的特点: 可移植性 ORACLE采用C语言开发而成,故产品与硬件和操作系统具有很强的独立性。从大型机到微机上都可运行ORACLE的产品。可在UNIX、DOS、Windows等操作系统上运行。可兼容性由于采用了国际标准的数据查询语言SQL,与IBM的SQL/DS、DB2等均兼容。并提供读取其它数据库文件的间接方法。 可联结性对于不同通信协议,不同机型及不同操作系统组成的网络也可以运行ORAˉCLE数据库产品。 的总体结构 (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)进程,当一用户进程异常结束时,该进程负责恢复未完成的事务,注销失败的用户进程,释放用户进程占用的资源。 ARCH(ARCHIVER)进程。每当联机日志文件写满时,该进程将其拷贝到归档存储设备上。另外还包括分布式DB中事务恢复进程RECO 和对服务进程与用户进程进行匹配的Dnnn进程等。 的逻辑结构 构成ORACLE的数据库的逻辑结构包括: (1)表空间

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)进程,当一用户进程异常结束时,该进程负责恢复未完成的事务,注销失败的用户进程,释放用户进程占用的资源。 ARCH(ARCHIVER)进程。每当联机日志文件写满时,该进程将其拷贝到归档存储设备上。另外还包括分布式DB中事务恢复进程RECO和对服务进程与用户进程进行匹配的Dnnn进程等。 3.ORACLE的逻辑结构 构成ORACLE的数据库的逻辑结构包括: (1)表空间

浅谈对的理解对象—关系型数据库

浅谈对对象—关系型数据库的理解 姓名:杨小敏 学号:2010206190026

针对对象—关系型数据库的理解我想结合自己的专业(地图学与地理信息系统)从下面三个方面来理解:(1)关系型数据的发展以及在空间数据管理方面的优缺点(2)面向对象数据库的发展及在空间数据管理方面的优缺点(3)关系型数据库和面向对象技术的融合在数据库发展中所起到的独特作用在我们GIS专业领域内,随着信息技术的发展,各种应用系统建设的不断深入,像现在面向21世纪的应急应用系统的建设、城市基础地理空间信息数据库系统与共享平台的建设、地理信息公共服务平台的建设,小到“数字城市”的建设,大到“数字地球”乃至“智慧地球”的建设,我们已经开始不满足数值和文字的信息处理,为了达到系统建设平台尤其是公共服务平台的建设起到良好的客户友好体验,大量的图形信息,音频信息已经深入到数据库的设计中,其中尤其是空间数据库管理备受瞩目。所以,面对信息爆炸的21世纪,海量数据的存储和管路已经不是传统的数据库能解决的,空间数据管理需要更强的数据库——对象关系型数据库。 为什么空间数据需要对象关系型数据库的管理才更有效?我想简单的说一下GIS空间数据的基本特征:(1)空间特征:每个空间对象都具有空间坐标,所以在存储空间数据的同时我们要考虑数据的空间分布特征;(2)非结构化特征:通用数据库或者是传统数据库数据记录一般是结构化的,在面对空间图形信息的时候难以直接采用关系数据管理系统;(3)空间关系特征:空间数据的空间关系最重要的就是空间拓扑关系,这种拓扑结构方便了空间数据的查询和空间分析,但是给空间数据的一致性和完整性的维护增加了复杂性;(4)海量数据的特征:数据库在面对海量数据的存储和组织时,一般在二维空间上划分块或图幅,在垂直的方向上划分层在组织海量空间数据。 在空间数据的管理技术的发展中,从手工管理管理阶段到文件管理阶段再到数据库管理阶段,在三个数据管理阶段,对数据管理方式也不尽相同,在这里,我想说的是空间数据库的发展历史对空间数据管理的影响,第一是层次关系型数据库:只是数据库发展的初级阶段,这是空间数据的管理大多用文件方式管理,很显然不适合管理海量的空间数据,所以淘汰;第二是网络关系型数据库:在一定程度上解决了空间数据复杂管理的难题,但还是被日益崛起的关系型数据库所淘汰;第三是关系型数据库的发展:为了解决难于保证数据的完整性,开始将空

Oracle数据库试题

请将下列试题的正确答案写在答题栏里。(每小题2分) 1.当Oracle服务器启动时,下列哪种文件不是必须的()。 A.数据文件 B.控制文件 C.日志文件 D.归档日志文件 2.在Oracle中,当用户要执行SELECT语句时,下列哪个进程从磁盘获得用户需要的数据()。 A.用户进程 B.服务器进程 C.日志写入进程(LGWR D.检查点进程(CKPT) 3.在Oracle中,一个用户拥有的所有数据库对象统称为()。 A.数据库 B.模式 C.表空间 D.实例 4.在Oracle中,有一个教师表teacher的结构如下: ID NUMBER(5) NAME V ARCHAR2(25) EMAIL VARCHAR2(50) 下面哪个语句显示没有Email地址的教师姓名()。 A.SELECT name FROM teacher WHERE email = NULL; B.SELECT name FROM teacher WHERE email <> NULL; C.SELECT name FROM teacher WHERE email IS NULL; D.SELECT name FROM teacher WHERE email IS NOT NULL; 5.在Oracle数据库的逻辑结构中有以下组件: A 表空间 B 数据块 C 区 D 段 这些组件从大到小依次是()。 A.A→B→C→D B.A→D→C→B C.A→C→B→D D.D→A→C→B 6.在Windows操作系统中,Oracle的()服务监听并接受来自客户端应用程序的连接请求。 A.OracleHOME_NAMETNSListener

oracle的系统和对象权限

oracle的系统和对象权限 一、权限是用户对一项功能的执行权力。在Oracle中,根据系统管理方式不同,将权限分为系统权限与实体权限两类。系统权限是指是否被授权用户可以连接到数据库上,在数据库中可以进行哪些系统操作。而实体权限是指用户对具体的模式实体(schema)所拥有的权限。这样讲可以有些模糊,举个例子来说:select any table是系统权限,它表示可以查看任何表。而select on table1是实体权限,表示对表table1的查询权限。 二、主要关键字 alter any cluster 修改任意簇的权限 alter any index 修改任意索引的权限 alter any role 修改任意角色的权限 alter any sequence 修改任意序列的权限 alter any snapshot 修改任意快照的权限 alter any table 修改任意表的权限 alter any trigger 修改任意触发器的权限 alter cluster 修改拥有簇的权限

alter database 修改数据库的权限 alter procedure 修改拥有的存储过程权限 alter profile 修改资源限制简表的权限 alter resource cost 设置佳话资源开销的权限 alter rollback segment 修改回滚段的权限 alter sequence 修改拥有的序列权限 alter session 修改数据库会话的权限 alter sytem 修改数据库服务器设置的权限 alter table 修改拥有的表权限 alter tablespace 修改表空间的权限 alter user 修改用户的权限 analyze 使用analyze命令分析数据库中任意的表、索引和簇audit any 为任意的数据库对象设置审计选项 audit system 允许系统操作审计 backup any table 备份任意表的权限 become user 切换用户状态的权限 commit any table 提交表的权限 create any cluster 为任意用户创建簇的权限 create any index 为任意用户创建索引的权限 create any procedure 为任意用户创建存储过程的权限create any sequence 为任意用户创建序列的权限 create any snapshot 为任意用户创建快照的权限

第10章 数据库恢复技术(习题集)

第十章数据库恢复技术(习题集) 二、选择题 1、一个事务的执行,要么全部完成,要么全部不做,一个事务中对数据库的所有操作都是一个不可分割的操作序列的属性是(A)。 A. 原子性 B. 一致性 C. 独立性 D. 持久性 2、表示两个或多个事务可以同时运行而不互相影响的是(C)。 A. 原子性 B. 一致性 C. 独立性 D. 持久性 3、事务的持续性是指(B) A.事务中包括的所有操作要么都做,要么都不做。 B.事务一旦提交,对数据库的改变是永久的。 C.一个事务内部的操作对并发的其他事务是隔离的。 D.事务必须是使数据库从一个一致性状态变到另一个一致性状态。 4、SQL语言中的COMMIT语句的主要作用是(C)。 A. 结束程序 B. 返回系统 C. 提交事务 D. 存储数据 5、SQL语言中用(B )语句实现事务的回滚 A. CREATE TABLE B. ROLLBACK C. GRANT和REVOKE D. COMMIT 6、若系统在运行过程中,由于某种硬件故障,使存储在外存上的数据部分损失或全部损失,这种情况称为(A)。 A. 介质故障 B. 运行故障 C. 系统故障 D. 事务故障 7、在DBMS中实现事务持久性的子系统是(D)。 A. 安全管理子系统 B. 完整性管理子系统 C. 并发控制子系统 D. 恢复管理子系统 8、后援副本的作用是(C)。 A. 保障安全性 B. 一致性控制 C. 故障后的恢复 D. 数据的转储 9、事务日志用于保存(C)。 A. 程序运行过程 B. 程序的执行结果 C. 对数据的更新操作 D. 数据操作 10、数据库恢复的基础是利用转储的冗余数据。这些转储的冗余数据包括(C)。 A. 数据字典、应用程序、审计档案、数据库后备副本 B. 数据字典、应用程序、审计档案、日志文件 C. 日志文件、数据库后备副本 D. 数据字典、应用程序、数据库后备副本 11、数据恢复最常用的技术是(A )。 A.数据转储和登记日志文件 B.数据转储和备份

oracle数据库工作原理

oracle工作原理 (2007-05-18 08:47:40) 转载▼ 分类:计算机技术 第一篇Oracle架构总览 先让我们来看一张图 这张就是Oracle 9i的架构全图。看上去,很繁杂。是的,是这样的。现在让我们来梳理一下: 一、数据库、表空间、数据文件 1.数据库 数据库是数据集合。Oracle是一种数据库管理系统,是一种关系型的数据库管理系统。 通常情况了我们称的“数据库”,并不仅指物理的数据集合,他包含物理数据、数据库管理系统。也即物理数据、内存、操作系统进程的组合体。 数据库的数据存储在表中。数据的关系由列来定义,即通常我们讲的字段,每个列都有一个列名。数据以行(我们通常称为记录)的方式存储在表中。表之间可以相互关联。以上就是关系模型数据库的一个最简单的描述。 当然,Oracle也是提供对面象对象型的结构数据库的最强大支持,对象既可以与其它对象建立关系,也可以包含其它对象。关于OO型数据库,以后利用专门的篇幅来讨论。一般情况下我们的讨论都基于关系模型。 2.表空间、文件 无论关系结构还是OO结构,Oracle数据库都将其数据存储在文件中。数据库结构提供对数据文件的逻辑映射,允许不同类型的数据分开存储。这些逻辑划分称作表空间。

表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。 为了便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,RBS表空间供回滚段使用。一个表空间只能属于一个数据库。 每个表空间由同一磁盘上的一个或多个文件组成,这些文件叫数据文件(datafile)。一个数据文件只能属于一个表空间。在Oracle7.2以后,数据文件创建可以改变大小。创建新的表空间需要创建新的数 据文件。 数据文件一旦加入到表空间中,就不能从这个表空间中移走,也不能与其它表空间发生联系。 如果数据库存储在多个表空间中,可以将它们各自的数据文件存放在不同磁盘上来对其进行物理分割。在规划和协调数据库I/O请求的方法中,上述的数据分割是一种很重要的方法。数据库、表空间、文件之间的关系如下图所示: 二、数据库实例 为了访问数据库中的数据,Oracle使用一组所有用户共享的后台进程。此外,还有一些存储结构(统 称为System Gloabl Area,即SGA),用来存储最近从数据库查询的数据。数据块缓存区和SQL共享池(Shared SQL Pool)是SGA的最大部分,一般占SGA内存的95%以上。通过减少对数据文件的I/O次数,这些存储区域可以改善数据库的性能。 数据库实例(instance)也称作服务器(server),是用来访问数据库文件集的存储结构及后台进程的集合。一个数据库可以被多个实例访问(这是Oracle并行服务器选项)。实例与数据库的关系如下图所示: 决定实例大小及组成的参数存储的init.ora文件中(在9i中是spfile)。实例启动时需要读这个文件,并且在运行时可以由数据库管理员修改。对该文件的任何修改都只有在下一次启动时才启作用。实例的init.ora文件件通常包含实例的名字:如果一个实例名为orcl,那么init.ora文件通常被命名为initorcl.ora。另一个配置文件config.ora用来存放在数据库创建后就不再改变的变量值(如数据库的块 大小)。实例的config.ora文件通常也包含该实例的名字:如果实例的名字为orcl,则config.ora一般 将被命名为configorcl.ora。为了便于使用config.ora文件的设置值,在实例的init.ora文件中,该文件必须通过IFILE参数作为包含文件列出。

Oracle数据库管理与应用实例教程(刘志成)课后习题及答案

【填空题】 1.默认情况OEM的URL地址是https://sd04:1158/em(其中sd04为机器名) 2.Oracle9i发布于2001,i代表Internet,11G发布于2007,g代表grid(网格) 3.在oracle内存结构中,保存正在执行或可能执行的代码的区是代码区 4.在oracle进程结构中,用于实现进程监控功能的进程是PMON 1.Oracle数据库系统的物理存储结构主要由3类文件组成,分别为数据文件、重做日志文件、控制文件。 2.一个表空间物理上对应一个或多数据文件 3.在oracle的逻辑存储结构中,根据存储数据的类型,可以将段分成为数据段、索引段、回滚段、LOB段和临时段。 1.在设计表时,对于邮政编码最适合的数据类型是CHAR 2.在alter table语句中,如果要删除列,可以通过指定DROP COLUMN关键字来实现。 3.如果需要在表中插入一批已经存在的数据,可以在insert语句中使用SELECT语句。 4创建一个update语句来修改goods表中的数据,并且把每一行的t-id值都改成15,应该使用的SQL语句是UPDATE SCOTT.Goods SET t_ID=’15’ 5.使用DESC命令可以显示表的结构信息 6.两个表的主关键字和外关键字的数据应该对应一致,这是属于引用完整性,通常可以通过主键和外键来实现。 7.UNIQUE约束通过确保在列中不输入重复值保证一列或多列的实体完整性。 1.在select语句中选择满足条件的记录使用where关键字,分组之后进行选择使用having 关键字 2.用来返回特定字段中所有值得总和的聚合函数是SUM 3.编写查询语句时,使用%通配符可以匹配多个字符。 18.集合运算符UNION实现集合的并运算,操作符INTERSECT实现了对集合的交运算,而MINUS则实现了减运算 19.如果要定义只读的视图,可以在创建视图时使用READ ONLY关键字 20.删除视图的PL\SQL语句是DROP VIEW [用户方案.]视图名 21.在使用CREATE INDEX创建索引时,使用BITMAP关键字可以创建位图索引 22.聚集(Cluster)是存储表数据的可选择的方法。一个聚集是一组表,将具有同一公共列值的行存储在一起,并且它们经常一起使用,表中相关的列称为聚集键 23.在为表中某个列定义PRIMARY KEY约束PK_ID后,则系统默认创建的索引名为PK_ID 24.如果表中某列的基数比较低,则应该在该列上创建反向索引 25.如果要获知索引的使用情况,可以通过查询DBA_INDEXES视图,而要获知索引的当前状态,可以查询INDEX_STATS视图。 26. 在Oracle的PL/SQL程序中,除了可以使用Oracle规定的数据类型外,还可以使用%TYPE 类型的变量,由系统根据检索的数据表列的数据类型决定该变量的类型,也可以使用%ROWTYPE 类型的变量用来一次存储从数据表中检索的一行数据。 27. SYSDATE函数可以获得当前系统的日期,SUBSTR(s,start,len)函数可以实现从指定的字符串中取指定长度的字符串。 28. 用来变异存储过程的PL/SQL语句是ALTER PROCEDURE,CREATE FUNCTION语句可以用来创建函数。

oracle大型数据库简答题题库

共享和专用操作模式的工作过程有什么区别? 在专用服务器操作模式中,Oracle为每个连接到数据库实例的用户进程启动一个专门的服务进程,其用户进程数与服务器进程数的比例为1:1因为在用户进程空闲期间,对应的服务器进程始终存在,数据库的效率比较低。共享服务器操作模式可以实现只运行少量的服务器进程,由少量的服务器进程为大量用户提供服务。在此模式下,数据库实例启动的同时也将启动一定数量的服务进程,在调度进程Dnnn的调度下位任意数量的用户进程提供服务。 简述oracle的初始化参数文件? 答:在传统上,Oracle在启动实例时将读取本地的一个文本文件,并利用从中获取初始化参数对实例和数据库进行设置,这个文本文件称为初始化参数文件(简称为PFILE)。 简述如何修改初始化参数文件? 答:如果要对初始化参数进行修改,必须先关闭数据库,然后在初始化参数文件中进行编辑,再重新启动数据库使修改生效。 简述启动数据库时的状态。 答:开启数据库分成4种状态。SHUTDOWN状态:数据库是关闭的。NOMOUNT状态:Instance被开启的状态,会去读取初始化参数文件。MOUNT状态:会去读取控制文件。数据库被装载。OPEN状态:读取数据文件、在线重做日志文件等,数据库开启。 简述数据库的各种关闭方式。 答:(1)正常关闭(SHUTDOWN NORMAL):不允许新的USER连进来。(2)事务关闭(SHUTDOWN TRANSACTIONAL):等待所有未提交的事务完成后再关闭数据库(3)立即关闭(SHUTDOWN IMMEDIATE):任何未提交的事务均被回退。(4)终止关闭(SHUTDOWN ABORT):立即终止当前正在执行的SQL语句,任何未提交的事务均不被回退。 简述Oracle数据库的特殊状态? 答:静默状态:只有具有管理员权限的用户(SYS、SYSTEM)才能在数据库中执行查询、更新操作和运行PL/SQL程序挂起状态:数据库所有的物理文件(控制文件、数据文件和重做日志文件)的I/O操作都被暂停,这样能够保证数据库在没有任何I/O操作的情况下进行物理备份。利用这两种数据库状态,数据库管理员可以完成一些特殊的管理和维护操作。如何设置SQL*Plus的运行环境? 答:通过设置环境变量PAUSE为ON来控制SQL*Plus在显示完一页后暂停显示,直到按回车键后才继续显示下一页数据;使用命令SET PAGESIZE 来改变默认一页显示的大小;通过设置LINESIZE可以修改系统默认的每行打印80个字符;用NUMFORMAT设置超过10字符的处理值;设置TIMING为ON来显示命令所消耗的系统时间。 如何使用SQL*Plus来设置缓存区? 答:设置记事本作为用户的编辑器,就可以使用EDIT命令来执行编辑操作了,还可使用SA VE命令把当前SQL缓存区中的内容保存到指定的文件中,用CLEAR BUFFER命令清除SQL*Plus缓存区中的内容,若要获取通过SA VE保存的内容就要使用GET命令。 如何使用SQL*Plus帮助命令获知某命令的解释信息 在不知道具体命令的时候,先用help index 查找出所有的命令,然后使用help [topic] 其中topic为该命令进行查询。 比较内连接和外连接? 答:在内连接的检索结果中,都是满足连接条件的数据;外连接的特点是某些不满足条件的数据也可以出现在检索结果中。外连接的语法和内连接的语法规则相似,区别在于外连接中用LEFT OUTER JION、RIGHT OUTER JOIN或FULL OUTER JOIN关键字,而不使用INNER JOIN关键字。其中OUTER是可选的。

数据库恢复技术

第 7 章数据库恢复技术 1. ________ 是一系列的数据库操作,是数据库应用程序的基本逻辑单元。 2. 事务处理技术主要包括 ________ 技术和 ________ 技术。 3. 在SQL语言中,定义事务控制的语句主要有 ________. ________ 和 ________ 。 4. 事务具有四个特性:它们是 ________. ________. ________ 和 ________ 。这个 四个特性也简称为 ________ 特性。 5. 把数据库从错误状态恢复到某一已知的正确状态(亦称为一致状态)的功能,这就是 ________ 。 6. 数据库系统中可能发生各种各样的故障,大致可以分为 ________. ________. ________ 和 ________ 等。 7. 建立冗余数据最常用的技术是 ________ 和 ________ 。通常在一个数据库系统中,这 两种方法是一起使用的。 8. 转储可分为 ________ 和 ________ ,转储方式可以有 ________ 和 ________ 。 9. ________ 是用来记录事务对数据库的更新操作的文件。主要有两种格式:以 ________ 为 单位的日志文件和以 ________ 为单位的日志文件。 10. 试述事务的概念及事务的四个特性。 11. 为什么事务非正常结束时会影响数据库数据的正确性,请列举一例说明之。 12. 数据库中为什么要有恢复子系统?它的功能是什么? 13. 数据库运行中可能产生的故障有哪几类?哪些故障影响事务的正常执行?哪些故障破 坏数据库数据? 14. 数据库恢复的基本技术有哪些? 15. 数据库转储的意义是什么?试比较各种数据转储方法。 16. 什么是日志文件?为什么要设立日志文件? 17. 登记日志文件时为什么必须先写日志文件,后写数据库? 18. 针对不同的故障,试给出恢复的策略和方法。(即如何进行事务故障的恢复?系统故障 的恢复?介质故障恢复?) 19. 什么是检查点记录,检查点记录包括哪些内容? 20. 具有检查点的恢复技术有什么优点?试举一个具体的例子加以说明。 21. 试述使用检查点方法进行恢复的步骤。 22. 什么是数据库镜像?它有什么用途? 答案 1. 事务 2. 数据库恢复并发控制 3. BEGIN TRANSACTION COMMIT ROLLBACK 4. 原子性(Atomicity)一致性(Consistency)隔离性(Isolation)持续性(Durability)ACID 5. 数据库的恢复 6. 事务故障系统故障介质故障计算机病毒 7. 数据转储登录日志文件 8. 静态转储动态转储海量转储增量转储 9. 日志文件记录数据块

相关文档
最新文档