oracle数据库模式对象
- 格式:ppt
- 大小:678.00 KB
- 文档页数:42
《Oracle数据库应用》理论课数据库对象⏹本章技能目标◆使用同义词◆使用序列◆创建视图◆创建索引1.数据库对象Oracle 数据库对象又称模式对象。
数据库对象是逻辑结构的集合,最基本的数据库对象是表。
其他数据库对象包括:同义词,序列,视图,索引。
下面我们依次讲解这几个数据库对象的使用。
2.同义词同义词是数据库对象的一个别名,这些对象可以是表,视图,序列,过程,函数,程序包,甚至其它同义词,通过使用同义词,用户可以访问其它模式的数据库对象而无需指定模式前缀,例如用户USER1要访问用户USER2的表EMP,必须使用USER2.EMP,那么USER1就可以使用同义词像访问自己的表一样引用USER2.EMP了。
同义词有以下用途:简化SQL语句隐藏对象的名称和所有者提供对对象的公共访问为分布式数据库德远程对象提供了位置透明性同义词允许应用程序访问数据库对象,不论那个用户或哪个数据库拥有该对象。
但是同义词不能代替权限,在使用同义词之前确保用户已得到访问对象的权限。
可以通过同义词执行SELECT,INSERT,UPDA TE,DELETE,LOCK TABLE ,GRANT和REVOKE 等语句。
同义词只是表的一个别名,因此对它的操作都会影响到表。
同义词共有两种类型:公有同义词。
私有同义词。
2.1私有同义词和公有同义词2私有同义词只能在其模式内访问,且不能与当前模式的对象同名。
要在自身的模式创建私有同义词,用户必须拥有CREATE SYNONYM 系统权限。
要在其它用户模式的创建私有同义词,用户必须CREATE ANY SYNONYM 系统权限.。
创建私有同义词语法如下:OR REPLACE 表示在同义词存在的情况下替换该同义词。
synonym_name 表示要创建的同义词的名称。
object_name 指定要为之创建同义词的对象的名称。
例1:假定两个用户模式:ACCP 和SCOTT ,SCOTT 用户拥有EMP表,ACCP 用户需要频繁引用EMP表,为了简化SQL语句,需要为ACCP 用户创建一个同义词。
Oracle⽤户模式
在 Oracle 数据库中,为了便于管理⽤户所创建的数据库对象(数据表、索引、视图等),引⼊了模式的概念,这样某个⽤户所创建的数据库对象就都属于该⽤户模式。
⼀、模式与模式对象
模式是⼀个数据库对象的集合。
模式为⼀个数据库⽤户所有,并且具有与该⽤户相同的名称,⽐如SYSTEM模式、SCOTT模式等。
在⼀个模式内部不可以直接访问其他模式的数据库对象,即使在具有访问权限的情况下,也需要指定模式名称才可以访问其他模式的数据库对象。
模式对象是由⽤户创建的逻辑结构,⽤以存储或引⽤数据。
⽐如段、数据表、索引,约束、视图、过程以及程序包等。
简单地说,模式与模式对象之间的关系就是拥有与被拥有的关系,即模式拥有模式对象;⽽模式对象被模式所拥有。
注意:⼀个不属于某个⽤户所拥有的数据库对象就不能称之为模式对象,⽐如⾓⾊、表空间及⽬录等数据库对象。
⼆、实例模式 Scott
Oracle 11g ⾥⾯提供了⼀个典型的实例模式——SCOTT模式,因为该模式及其所拥有的模式对象经常被作为实例。
SCOTT模式的给⽤户提供了⼀些视⼒表和数据来展⽰ Oracle 数据库的⼀些特性,该⽤户的连接密码是 tiger ,通过连接到SCOTT ⽤户模式,查询数据字典视图 user_tables 可以获得该模式所包含的数据表。
当然,⽤户可可以在system 模式下查询 Scott 模式所拥有的数据表,但要求使⽤dba_tables 数据表。
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模式。
oracle数据库体系架构详解在学习oracle中,体系结构是重中之重,⼀开始从宏观上掌握它的物理组成、⽂件组成和各种⽂件组成。
掌握的越深⼊越好。
在实际⼯作遇到疑难问题,其实都可以归结到体系结构中来解释。
体系结构是对⼀个系统的框架描述。
是设计⼀个系统的宏观⼯作。
这好⽐建⼀栋⼤楼。
你⾸先应该以图纸的⽅式把整个⼤楼的体系架构描述出来。
然后⼀点点的往⾥⾯填充东西。
下⾯我们先以⼀个图解的⽅式对oracle体系结构有⼀个基本了解根据⽰图,便于我们记忆,⽰图分三部分组成,左侧User Process、Server Process、PGA可以看做成Clinet端,上⾯的实例(Instance)和下⾯的数据库(Database)及参数⽂件(parameter file)、密码⽂件(password file)和归档⽇志⽂件(archived logfiles)组成Oracle Server,所以整个⽰图可以理解成⼀个C/S架构。
Oracle Server由两个实体组成:实例(instance)与数据库(database)。
这两个实体是独⽴的,不过连接在⼀起。
在数据库创建过程中,实例⾸先被创建,然后才创建数据库。
在典型的单实例环境中,实例与数据库的关系是⼀对⼀的,⼀个实例连接⼀个数据库,实例与数据库也可以是多对⼀的关系,即不同计算机上的多个实例打开共享磁盘系统上的⼀个公⽤数据库。
这种多对⼀关系被称为实际应⽤群集(Real Application Clusters,RAC)RAC极⼤提⾼了数据库的性能、容错与可伸缩性(可能耗费更多的存储空间)并且是oracle⽹格(grid)概念的必备部分。
下⾯我们来详细看⼀下oracle数据库的体系架构Oracle体系架构主要有两⼤部分组成:数据库实例(Instance)和数据库⽂件(database)数据库实例指数据库服务器的内存及相关处理程序,它是Oracle的⼼脏。
与Oracle性能关系最⼤的是SGA(System Global Area,即系统全局区活共享内存区),SGA包含三个部分:1、数据缓冲区,可避免重复读取常⽤的数据;2、⽇志缓冲区,提升了数据增删改的速度,减少磁盘的读写⽽加快速度;3、共享池,使相同的SQL语句不再编译,提升了SQL的执⾏速度。
oracle nologging用法说明在Oracle数据库中,nologging模式是一种特殊的日志记录模式,其目的是尽量减少日志的记录,以提高数据库的性能。
使用nologging模式可以在某些特定的操作中减少日志的记录量,从而减少磁盘I/O操作和日志文件的空间占用。
但是,使用nologging模式也会带来一定的风险,因为如果没有足够的日志记录,可能会影响数据库的恢复和故障恢复能力。
在使用nologging模式时,需要注意以下几点:1.nologging模式只适用于表空间级别,不能在数据库级别或表级别进行设置。
2.当表空间设置为nologging模式时,该表空间内创建的所有对象(如表、视图等)都不会记录日志。
但是,对于已经存在的对象,不能将其修改为nologging模式。
3.nologging模式只适用于非事务性操作。
对于事务性操作,必须使用logging模式或force logging模式。
4.如果数据库处于归档模式,即使表空间设置为nologging模式,redo日志仍然会被记录。
这是因为redo日志是用于数据库恢复和故障恢复的重要工具。
5.使用nologging模式可能会降低数据库的恢复和故障恢复能力。
如果发生故障或错误,可能无法通过日志进行完全恢复。
因此,在使用nologging模式时,需要权衡性能提升和恢复能力下降的风险。
总之,使用Oracle中的nologging模式可以在特定的操作中减少日志的记录量,从而提高数据库的性能。
但是需要注意,使用nologging模式会降低数据库的恢复和故障恢复能力。
因此,在使用nologging模式时需要谨慎考虑其风险和适用场景。
oracle模式对象的管理【开发语言及实现平台或实验环境】Oracle10g【实验目的】(1)学习基本数据库表的创建,表结构的修改与删除等命令;(2)学习索引的管理命令;(3)学习索引化表的管理命令(4)学习分区表的管理命令(5)学习簇、视图、序列、同义词等的管理命令【实验原理】1.基本表的管理(1)表的创建:Create命令:CREATETABLEtable_name(column_nametype(ize),column_nametype(i ze),…);或CREATETABLEtable_name[(column_name,…)]ASSELECTtatement;表名命名规则所用的表名必须满足下面的条件:a)名字必须以A-Z或a-z的字母开始;b)名字可以包括字母、数字和特殊字母(_)。
字符$和#也是合法的,但是这种用法不提倡;c)名字大小写是一样的;例如EMP、emp和eMp是表示同一个表;d)名字最长不超过30个字符;e)表名不能和其它的对象重名;f)表名不能是SQL保留字。
字段类型:完整性约束:Oracle允许用户为表和列定义完整性约束来增强一定的规则。
可分为:表约束和字段约束约束类型如下:1)NOTNULL约束NOTNULL约束保证字段值不能为NULL。
没有NOTNULL约束的字段,值可以为NULL。
2)UNIQUE约束指定一个字段或者字段的集合为唯一键。
在表中没有两行具有相同的值。
如果唯一键是基于单条记录的,NULL是允许的。
表约束命令格式:,[CONSTRAINTcontraint_name]UN IQUE(Column,Column,…)字段约束命令格式:[CONSTRAINTcontraint_name]UNIQUE例如:CREATETABLEDEPT(DEPTNONUMBER,DNAMEVARCHAR2(9),LOCVARCHAR2(10),CONSTRAINTUNQ_DEPT_LOCUNIQUE(DNAME,LOC));UNQ_DEPT_LOC是一个表约束。
实验四oracle对象管理及使用一、实验目的及要求掌握Oracle的常用对象的操作方法。
会使用常用对象解决一些实际问题。
二、实验主要内容(1) 表结构的建立、修改、查看、删除操作。
(2) 索引的建立、修改、查看、删除操作。
(3) 视图的建立、查询、修改、删除操作。
(4) 同义词的建立、查询、修改、删除操作,比较对同义词的操作与对原数据库对象的操作是否一致。
(5) 掌握序列的建立、查询、修改、删除操作,利用序列向数据库表中插入数据。
三、实验仪器设备在局域网环境下,有一台服务器和若干台客户机。
服务器成功安装Oracle 10g数据库服务器(企业版),客户机成功安装Oracle 10g客户端软件,网络服务配置正确,数据库和客户端正常工作。
四、实验步骤1.创建表结构利用命令行方式将下列各表建立到员工医疗保险系统数据库中。
表结构如附录员工医疗保险系统表1-表7所示。
2.查看表结构(1) 利用数据字典查看员工医疗保险系统所有表的字段信息和约束信息。
从数据字典DBA_TAB _COLUMNS查看员工医疗保险系统所有表的字段信息。
从数据字典DBA_ CONSTRAINTS查看员工医疗保险系统所有表的约束信息。
3.修改表结构(1) 将表“staff_sql”重新命名为“staff_sql0”。
(2) 为“staff_sql0”表添加“age ”字段,利用DESC命令查看“staff_sql0”表的字段信息。
(3) 为“staff_sql0”表添加“salary NUMBER(5,2)”、“salary_add NUMBER(3,1)”两个字段,利用DESC命令查看“staff_sql0”表的字段信息。
(4) 向“staff_sql0”表添加“sname”字段惟一性约束,从数据字典DBA_CONSTRAINTS查看“staff_sql0”表的约束信息。
(5) 删除“staff_sql0”表上“sname”字段惟一性约束,从数据字典DBA_CONSTRAINTS查看“staff_sql0”表的约束信息。
oceanbase oracle 模式实例名OceanBase是阿里巴巴自主研发的新一代关系型分布式数据库系统,其设计目标是满足阿里巴巴集团大规模在线事务和在线分析处理(OLAP)的需求。
OceanBase采用了亚洲顶级计算机科学实验室提供的深度技术,具备了高可靠性、高扩展性、高性能和低成本等优点。
OceanBase采用了分布式架构,将数据分为多个区域,每个区域由多个存储节点组成,每个存储节点支持多副本的存储。
这种分布式架构可以实现数据的水平扩展,提高系统的可扩展性和容错能力。
在OceanBase中,模式(Schema)是指数据库中的数据和关系的结构,模式可以包含多个表、视图、索引和其他数据库对象。
实例(Instance)是指在数据库服务器上运行的OceanBase的一个副本,每个实例都有自己的内存和磁盘资源,可以独立地处理用户的请求。
每个OceanBase实例都有一个唯一的实例名,用于作为标识符来区分不同的实例。
实例名在安装和配置OceanBase时指定,在启动实例时也需要指定。
实例名的长度不能超过64个字符,可以包含字母、数字、下划线和短划线。
实例名在OceanBase中的作用主要有以下几个方面:1.区分不同的实例:每个实例都有一个唯一的实例名,可以通过实例名来区分不同的实例。
这对于管理多个实例的系统管理员来说非常重要。
2.路由请求:当客户端发送请求到OceanBase时,需要将请求路由到相应的实例上进行处理。
通过实例名可以确定请求应该路由到哪个实例。
3.客户端连接:客户端与OceanBase实例之间建立连接时,需要指定实例名。
客户端可以通过实例名来连接指定的实例,与实例进行数据交互。
4.监控和管理:通过实例名,可以方便地监控和管理OceanBase 实例。
管理员可以通过实例名来查看实例的状态、性能指标和日志信息,对实例进行诊断和调优。
总之,实例名在OceanBase中是一个重要的标识符,用于区分不同的实例,路由请求,建立客户端连接以及监控和管理实例。