当前位置:文档之家› Oracle数据库对象

Oracle数据库对象

Oracle数据库对象
Oracle数据库对象

四、数据库对象

表、视图、序列、过程、函数、程序包,甚至其它同义词都可以创建同义词。

1、同义词:私有同义词、公有同义词。

私有同义词只能被当前模式的用户访问。私有同义词名称不可与当前模式的对象名称相同。要在自身的模式创建私有同义词,

用户必须拥有Create Synonym系统权限。要在其它用户模式创建私有同义词,用户必须拥有Create Any Synonym系统权限。

公有同义词可被所有的数据库用户访问。要创建公有同义词,用户必须拥有Create Public Synonym系统权限。

创建私有同义词语法:

Create [OR REPLACE] SYNONYM [schema.]synonym_name FOR [schema.]object_name;

其中:OR REPLACE表示在同义词存在的情况下替换该同义词。

synonym_name表示要创建的同义词的名称。

object_name指定要为之创建同义词的对象的名称。

示例1:create synonym s_emp for scott.emp;

创建公有同义词语法:

Create PUBLIC SYNONYM synonym_name FOR [schema.]object_name;

示例2:create public synonym emp_syn from scott.emp;

可以查询字典视图User_Synonyms来查看用户所创建的同义词的详细信息

删除同义词语法:Drop Synonyms synonym_name; 删除公有同义词加上一个Public

此命令只删除同义词,不会删除对应的表。

2、序列:是用来生成唯一、连续的整数的数据库对象。序列通常用来自动生成主键或唯一键的值。

创建序列语法如下:

Create SEQUENCE sequence_name

[START WITH integer]

[INCREMENT BY integer]

[MAXV ALUE integer|NOMAXV ALUE]

[MINV ALUE integer|NOMINV ALUE]

[CYCLE|NOCYCLE]

[CACHE interger|NOCACHE];

其中:START WITH是指定要生成的第一个序列号。对于升序序列,其默认值为序列的最小值。对于降序序列,其默认值为序列的最大值。

INCREMENT BY是用于指定序列号之间的间隔。其默认值为1。如果integer为正值,则生成的序列将按升序排列,否则按降序排列。

MAXV ALUE指定序列可以生成的最大值。

NOMAXV ALUE这是默认选项,将升序序列的最大值设为10的27次幂,将降序序列的最大值设为-1。

MINV ALUE指定序列的最小值。MINV ALUE必须小于或等于START WITH的值,并且必须小于MAXV ALUE。

NOMINV ALUE这是默认选项,将升序序列的最小值设为1,将降序序列的最小值设为-10的26次幂。

CYCLE指定序列在达到最大值或最小值后,将继续从头开始生成值。

NOCYCLE这是默认选项。指定序列在达到最大值或最小值后,将不能再继续生成值。

CACHE使用CACHE选项可以预先分配一组序列号,并将其保留在内存中,这样可以更快的访问序列号。

NOCACHE此项则不会为加快速度而预先分配序列号。如果在创建序列时忽略了CACHE和NOCACHE选项,Oracle将默认缓存20个序列号。

示例3:Create SEQUENCE toys_seq

START WITH 10

INCREMENT BY 2

MAXV ALUE 2000

MINVALUE 10

NOCYCLE

CACHE 30;

访问序列:可以通过CURRV AL和NEXTV AL伪列来访问该序列的值。

示例4:演示从序列toys_seq中选择值插入toys表中的toyid列。执行成功将会在该表的toyid列插入值"P10"和"P12"。

INSERT INTO toys(toyid,toyname,toyprice) values('p'||toys_seq.NEXTV AL,'TWENTY',25);

INSERT INTO toys(toyid,toyname,toyprice) values('p'||toys_seq.NEXTV AL,'MAGIC PENCIL',75);

示例5:演示如何查看序列当前值

Select toys_seq.CURRV AL from dual;

更改序列:ALTER SEQUENCE命令用于设置或删除MINVALUE或MAXV ALUE、修改增量值、修改缓存中的序列号的数目。

修改序列语法如下:注意,不能修改序列的START WITH参数。在修改序列时,应注意升序序列的最小值应小于最大值。

ALTER SEQUENCE [schema.]sequence_name

[INCREMENT BY integer]

[MAXV ALUE integer|NOMAXV ALUE]

[MINV ALUE integer|NOMINV ALUE]

[CYCLE|NOCYCLE]

[CACHE interger|NOCACHE];

示例6:演示如何设置一个新的MAXV ALUE,并为toys_seq序列打开了CYCLE。

ALTER SEQUENCE toys_seq

MAXV ALUE 5000

CYCLE;

可以查询字典视图User_Sequences来查看用户所创建的序列的详细信息

删除序列语法:Drop SEQUENCE toys_seq;

3、视图

视图是存储的查询定义。

创建视图的语法如下:

Create [OR REPLACE] [FORCE | NOFORCE] VIEW view_name[(alias,alias,...)] AS

select_statement [WITH CHECK OPTION [CONSTRAINT constraint]] [WITH READ ONL Y];

其中:OR REPLACE表示在该视图存在的话,将重新创建该视图。

FORCE使用此关键字,则无论基表是否存在,都将创建视图。

NOFORCE这是默认值。如果使用此关键字,则仅当基表存在时才创建视图。

view_name表示要创建视图的名称。

alias指定在视图里面列的名字,名字数目必须与视图所选择的表达式的数目相匹配。

select_statement表示Select语句。

WITH CHECK OPTION此选项指定只能插入或更新视图可以访问的行。术语constraint表示为CHECK OPTION约束指定的名称。

WITH READ ONL Y此选项确保不能在此视图上执行任何修改操作。

示例7:演示创建一个名为ven_view的视图,该视图与vendor_master表具有相同的结构。

Create VIEW ven_view AS select * from vendor_master;

视图中的ORDER BY子句:以便在查询视图时即使不使用Order By子句,结果集也会按指定的顺序排列行。

示例8:Create OR REPLACE VIEW ven_view(编号,日期) AS select orderno,odate from vendor_master order by venname;

创建带有错误的视图:使用FORCE选项

在以下情况下,Oracle也会创建视图:

视力定义的查询引用了一个不存在的表;视图定义的查询引用了现有表中无效的列;视图的所有者没有所需的权限。

示例9:下面创建一个基于venmast的视图。但数据库中并不存在名为"venmast"的表。Create FORCE VIEW ven AS select * from venmast;

如果稍后创建名为venmast的表,可以使用ALTER VIEW ven COMPILE;

联接视图:

示例:演示如何创建联接视图

Create OR REPLACE VIEW ven_ord_view AS select vm.vencode,venname,orderno,odate,ostatus

from vendor_master vm,order_master om where vm.vencode=om.vencode;

键保留表:在联接视图中,如果视图包含了一个表的主键,并且也是这个视图的主键,则这个键被保留,则这个表被称为键保留表。

ven_ord_view视图以vendor_master和order_master这两个表为基表。order_master表被视为键保留表,因为orderno既是order_master表

的主键,也是视图的主键。而vendor_master表不被视为键保留表,因为vendor_master 表的主键vencode是联接字段,不是视图的主键。

示例10:此示例成功修改了记录,因为odate列属于键保留表order_master。对于非键保留表vendor_master的venname列的更新则是不允许的。

update wen_ord_view odate=odate+1 where vencode='V003'; 注意:运行此示例时,必须确保基表的主键已正确创建。

可以查询字典视图User_Updateble_Columns来查看联接视图中可更新的列。

可以查询字典视图User_Views来查看用户所创建的视图信息。

视图中的函数:视图可以使用单行函数(由数字、字符、日期组成)、分组函数和表达式。示例11:此示例用UPPER函数创建视图,注意使用函数或表达式时,应赋予列一个别名。Create VIEW vendor_master_view AS select vencode,UPPER(venname) vendor_name from vendor_master;

删除视图语法:Drop VIEW view_name ;

4、索引:

查询User_indexes可以获取有关用户已创建的索引的详细信息。

查询User_ind_partitions可以获取有关用户已创建的分区索引的详细信息。

查询User_ind_columns可以获取有关列(用户的索引是基于这些列创建的)的详细信息。

唯一索引、组合索引、反向键索引、位图索引和基于函数的索引。

索引在逻辑上物理上都独立于关联表中的数据,在任何时候都可以创建或删除索引,而不会影响基表或其它索引。

创建普通索引的语法:

Create INDEX index_name ON table_name(column_list) [TABLESPACE tablespace_name];

其中:index_name指所创建索引的名称。

table_name表示为之创建索引的表名。

column_list是在其上创建索引的列名列表,可以基于多列创建索引。

tablespace_name为索引指定表空间。

示例12:演示如何在itemfile表的itemcode列上创建索引

create index item_index on itemfile(itemcode);

ALTER INDEX语句的REBUILD选项可以用来重建现有的索引。该选项提供的性能要优于使用DROP INDEX和CREATE INDEX语句重新创建索引。

示例13:重建索引

ALTER INDEX item_index REBUILD;

删除索引语法:Drop INDEX item_index;

(1)唯一索引:此索引可以确保在定义索引的列中,表的任意两行的值都不相同。Oracle

自动为表的主键列创建唯一索引。

可以使用Create UNIQUE INDEX命令明确地创建唯一索引。

示例14:在itemfile表的itemcode列上创建了一个名为item_index的唯一索引。

Create UNIQUE INDEX item_index ON itemfile(itemcode);

(2)组合索引:组合索引是在表中的多个列上创建的索引。组合索引中列的顺序是任意的,不必是表中相邻的列。

创建组合索引时,应注意定义中使用的列的顺序。通常,最频繁访问的列应放置在列表的最前面。

示例15:在itemfile表上创建了一个名为comp_index的组合索引,当查询该表的的WHERE子句同时包含这两个列或只包含

p_category列时,以下示例语句创建的索引将用于检索数据,但如果单独使用itemrate列,则索引不能用于检索数据。

Create INDEX comp_index ON itemfile(p_category,itemrate);

(3)反向键索引:通常建立在一些值连续增长的列上,例如列中的值是是由序列产生的情况。

示例16:在itemfile表上创建了一个名为rev_index的反向键索引。注意使用REVERSE 关键字。

Create INDEX rev_index ON itemfile(itemcode) REVERSE;

示例17:使用关键字NOREVERSE可以将反向键索引重建为标准索引。

ALTER INDEX rev_index REBUILD NOREVERSE;

注意:不能将标准索引重建为反向键索引。

(4)位图索引:如果某个列的值重复超过一百次,则可以考虑在该列上创建位图索引。

示例18:itemcode是order_detail表中的低基数列,因为货物编码在大多数订单中都是重复的,因此适合在该列上创建位图索引。

Create BITMAP INDEX bit_ind1 ON order_detail(itemcode);

位图索引不应当用在频繁发生的INSERT,UPDA TE,DELETE操作的表上。位图索引最适合于数据仓库和决策支持系统。

(5)索引组织表:索引组织表与在一个或多个列上建立索引的普通表相似,但它无需为表和索引维护两个单独的存储空间,

数据库系统仅维护一个索引,该索引包含相应的已编码键值和与其关联的列值。

示例19:使用ORGANIZATION INDEX子句来创建索引组织表。

Create table ind_org_tab

(

vencode NUMBER(4) primary key, 注意:primary key是创建索引组织表所必需的。不允许使用分区。

venname V ARCHAR2(20)

)

organization index;

索引组织表适合于通过主键来访问数据。

(6)基于函数的索引:如果在WHERE子句的算术表达式或函数中已经包含了某个列,则不会使用该列上的索引。不能在表达式包含任何

聚合函数,LOB列、REF列或包含LOB或REF的对象类型上创建基于函数的索引。

示例20:venname是vendor_master表的一个列,用于存储供应商的姓名,假定所有供应商的姓名都以混合大小写的形式存储

(如:John Smith、Dave Jones、Tony Greig等等),同时假定我们经常需要根据供应商的姓名来查询表的数据。由于

姓名是以混合大小写的形式存储的,因此可能很难给出姓名的正确大小写形式。可以创建如下索引:

Create INDEX vn_ind ON vendor_master(UPPER(venname));

示例21:演示如何使用前面创建的基于函数的索引检索数据。

select * from vendor_master where UPPER(venname)='SMALL';

要创建基于函数或表达式的索引,必须具有QUERY REWRITE系统权限。

(7)索引中的分区:与对表进行分区类似,Oracle也允许对索引分区。牵引分区可以存储在不同的表空间中。

局部分区索引:Oracle为表的每个分区建立一个独立的索引。

示例22:先创建分区表

Create table order_mast

(

orderno number(4),

venname varchar2(20)

)

partition by range(orderno)

(

partition oe1 values less than(1000),

partition oe2 values less than(2000),

partition oe3 values less than(maxvalue)

);

接着创建局部索引:

create INDEX myind ON order_mast(orderno) LOCAL;

全局分区索引:是指在分区表或非分区表上创建的索引。

示例23:在上面创建的分区表上创建全局索引

create INDEX glb_ind ON order_mast(orderno) GLOBAL

partition by range(orderno)

(

partition ip1 values less than(1500),

partition ip2 values less than(maxvalue)

);

在有3个分区的表上创建2个分区的索引。注意:不能在散列分区或子分区建立全

局索引。

全局非分区索引:全局分区索引是在分区表上创建的全局索引,它类似于非分区表上的索引,索引的结构不会被分割

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 用户和模式 Oracle数据库的安全保护流程可以总结为三个步骤:首先,用户向数据库提供身份识别信息,即提供一个数据库账号。接下来用户还需要证明他们所给出的身份识别信息是有效的,这是通过输入密码实现的,用户输入的密码会经过数据库的核对,决定用户提供的密码是否正确。最后,假设密码是正确的,那么数据库认为身份识别信息是可信赖的。此时,数据库将会在基于身份识别信息的基础上决定用户所拥有的权限,即用户可以数据库执行什么操作。因此,为了确保数据库的完全,首要的问题就是对用户进行管理。 这里所说的用户并不是数据库的操作人员,而是定义在数据库中的一个名称,更准确地说它是账户,只是习惯上称其为用户。它是Oracle数据库的基本访问控制机制,当连接到Oracle数据库时,操作人员必须提供正确的用户名和密码。 连接到数据库的用户所具有权限是不相同。Oracle提供了一些特权用户(SYSDBA或SYSOPER),这类用户主要用于执行数据库维护操作,如启动数据库、关闭数据库、建立数据库,以及执行备份和恢复等操作。SYSDBA和SYSOPER的区别在于:SYSDBA不仅可以具备SYSOPER的所有权限,而且还可以建立数据库,执行不完全恢复。在Oracle 11g中,Oracle提供了默认的特权用户SYS,当以特权用户身份登录数据时,必须带有AS SYSDBA 或AS SYSOPER选项。例如: SQL> conn /as sysdba 已连接。 SQL> grant sysdba to system; 授权成功。 SQL> conn system/password as sysdba 已连接。 与用户密切关联的另一个根念是模式,模式也称为方案(Schema)。模式或方案实际上是用户所拥有的数据库对象的集合。在Oracle数据库中,对象是以用户来组织的,用户与模式是一一对应的关系,并且二者名称相同。 如图13-1所示,SYSTEM用户拥用的所有对象都属于SYSEM模式,而SCOTT用户拥有的所有对象都属于SCOTT模式。当访问数据库对象时,需要注意如下一些事项: ●在同一个模式中不能存在同名对象,但是不同模式中的对象则可以相同。 ●用户可以直接访问其他模式对象,但如果要访问其他模式对象,则必须具有对象权 限。例如,用户SCOTT可以直接查询其模式中的EMP表,但如果用户HR要查 询SCOTT模式中的EMP表时,则必须在EMP表上具有SELECT对象权限。 ●当用户要访问其他模式对象时,必须附加模式名作为前缀。

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大型数据库简答题题库

共享和专用操作模式的工作过程有什么区别? 在专用服务器操作模式中,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语句,任何未提交的事务 页脚内容1

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

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数据库试题

请将下列试题的正确答案写在答题栏里。(每小题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 数据库管理系统介绍 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数据库管理与应用实例教程(刘志成)课后习题及答案

【填空题】 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的系统和对象权限 一、权限是用户对一项功能的执行权力。在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 为任意用户创建快照的权限

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.实验目的 ●熟悉和掌握数据操作语言和数据查询语言; ●使用对象-关系SQL进行建模和查询 ●掌握用户、权限和角色的创建和管理,以及数据库审计 2.实验要求 ●独立完成实验内容; ●实验报告;(简单要求如下) 1)实验的整个过程(包括用户身份,SQL执行语句,SQL执行结果(截屏)) 2)回答实验中提出的问题 3)结果分析。 [注] 标有可选的实验可以不做。 3.实验内容 3.1 创建用户、角色 由系统管理员(admin)创建以下数据表:课程信息表CourseInfo,排课信息表ClassInfo,部门代码表DepartmentInfo,教师信息表TeacherInfo,学生信息表StudentInfo,选课信息表SelectiveInfo,保存在系统管理员的schema中。请按照文档lab1_DataModel.doc的表结构创建表。

实验步骤: 1)建立角色; 2)为角色分配权限; 3)建立密码管理和资源限制Profile文件; 4)建立用户; 5)为用户分配角色; 6)用户登录,执行相应的SQL操作。 3.2 权限管理及安全信息查询 1)系统管理员admin登录选课系统数据库,登录三次失败,第四次输入正确的密码进 行登录,会出现什么情况?为什么? 2)使teacher1具有创建数据表系统权限,以用户teacher1登录,创建一个部门代码表 DepartmentInfo作为系统管理员创建的选课信息表的备份; 3)用户teacher1登录,分配学生用户(你的名字)查看teacher1. DepartmentInfo记录 的权限;学生用户登录,查看teacher1. DepartmentInfo中的记录;〔可选〕 4)从数据字典中查看teacher1和学生用户的信息; 5)从数据字典查看teacher1可使用的数据表空间的空间大小信息。〔可选〕 6)取消用户teacher1创建数据表权限;取消学生用户查看teacher1. DepartmentInfo记

Oracle 管理对象权限

Oracle 管理对象权限 对象权限指访问其他用户模式对象的权利。在Oracle数据库中,用户可以直接访问其模式对象,但如果要访问其他用户的模式对象时,必须具有相应的对象权限。 1.对象权限的分类 根据不同的对象类型,Oracle数据库设置了不同类型的对象权限。对象权限及对象之间的对应关系如表13-5所示。 表13-5 对象、对象权限的对应关系 ALTE R DELET E EXECU TE INDE X INSE RT RREA D REFEREN CE SELE CT UPDA T E DIRECTOR Y √ FUNCTION √ PROCEDU RE √ PACKAGE √ SEQUENCE √√ TABLE √√√√√√√ VIEW √√√√ 其中,“√”表示某种对象所具有的对象权限,空格表示该对象没有某种权限。例如,对于基本表TABLE,具有ALTER、DELETE、INDEX、INSERT、REFERENCES、SELECT、UPDATE权限,而没有EXECUTE权限。 多种权限组合在一起时,可以使用ALL关键字,表示该对象的全部权限,对于不同的对象,ALL组合的权限数量是不相同的。对于表TABLE而言,ALL表示ALTER、DELETE、INDEX、INSERT、REFERENCES、SELECT、UPDATE权限;对于存储过程,ALL只代表EXECUTE权限。 2.授予对象权限 对象权限由该对象的拥用者为其他用户授权,非对象的拥有者不得向其他用户授予对象授权。将对象权限授出后,获权用户可以对对象进行相应的操作,没有授予的权限不得操作。从Oracle 9i开始,DBA用户可以将任何对象权限授予其他用户。授予对象权限所使用的GRANT语句形式如下: grant { object_priv [ (column_list) ] [,object_priv[(column_list)]]…. | ALL [PRIVILEGES] ON [ schema.]object TO { user | role | PUBLIC} [,{user | role | public}] … [with grant option] 其中,OBJECT_PRIV是对象权限,COLUMN_LIST用于标识权限所对应列的列表,SCHEMA表示模式名,USER表示被授权的用户,ROLE表示被授权的角色。对象权限不仅可以授予用户、角色,也可以授予PUBLIC。将对象权限授予PUBLIC后,会使所有用户都具有该对象权限。授予对象权限时,可以带有WITH GRANT OPTION选项,若使用该选项,被授权用户可以将对象权限转授给其他用户。

相关主题
文本预览
相关文档 最新文档