1 同义词的概念
Oracle数据库中提供了同义词管理的功能。同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。在Oracle数据库中的大部分数据库对象,如表、视图、同义词、序列、存储过程、包等等,数据库管理员都可以根据实际情况为他们定义同义词。
2 同义词的分类
Oracle数据库同义词有两种类型,分别是公用同义词与私有同义词:
公用同义词由一个特殊的用户组Public所拥有。顾名思义,数据库中所有的用户都可以使用公用同义词。公用同义词往往用来标示一些比较普通的数据库对象,这些对象往往大家都需要引用。
私有同义词是跟公用同义词所对应,他是由创建他的用户所有。当然,这个同义词的创建者,可以通过授权控制其他用户是否有权使用属于自己的私有同义词。
3 同义词的创建及删除
创建公有同义词的语法:
Create [public] synonym 同义词名称 for [username.]objectName;
Drop [public] synonym 同义词名称
4同义词的作用
(1) 多用户协同开发中,可以屏蔽对象的名字及其持有者。
如果没有同义词,当操作其他用户的表时,必须通过user名.object名的形式,采用了同义词之后就可以隐蔽掉user名,当然这里要注意的是:public同义词只是为数据库对象定义了一个公共的别名,其他用户能否通过这个别名访问这个数据库对象,还要看是否已经为这个用户授权。
(2) 为用户简化sql语句。
上面的一条其实就是一种简化sql的体现,同时如果自己建的表的名字很长,可以为这个表创建一个同义词来简化sql开发。
(3)为分布式数据库的远程对象提供位置透明性。
5 同义词在数据库链中的作用
数据库链是一个命名的对象,说明一个数据库到另一个数据库的路径,通过其可以实现不同数据库之间的通信。
Create database link 数据库链名 connect to user名 identified by 口令 using ‘Oracle连接串’;
访问对象要通过 object名@数据库链名。
同义词在数据库链中的作用就是提供位置透明性:
例:
三台服务器S1,S2,S3,每个服务器上都装有Oracle数据库,然后又三个表Student,Course,S_C分别存在三台服务器的数据库中,如果一个应用要同时访问这三张表,当然首先要建立数据库链:S1——>S2的叫DLA1, S1——>S3的叫DLA2, S2——>S1的叫DLB1, S2——>S3的叫DLB2, S3——>S1的叫DLC1, S3——>S2的叫DLC2,
这样SQL语句分别如下:
S1:select ….from Student,Course@DLA1,S_C@DLA2 where…..;
S2:select … from Student@DLB1,Course,S_C@DLB2 where…..;
S3:select ….from Student@DLC1,Course@DLC2,S_C where….;
这就导致一个问题,同样的应用放在三台服务器上,sql语句是不一样的。
下面我们可以建立同义词:
S1:Create public synonym Course for Course@DLA1;
Create public synonym S_C for S_C@DLA2;
S2:Create public synonym Student for Student@DLB1;
Create public synonym S_C for S_C@DLB2;
S3:Create public synonym Student for Student @DLC1;
Create public synonym Course for Course@DLC2;
这样SQL语句分别如下:
S1:select ….from Student,Course,S_C where…..;
S2:select … from Student,Course,S_C where…..;
S3:select ….from Studeng,Course,S_C where….;
可以看到Sql语句在三台服务器上是一样的。
相关推荐
首先,关于Oracle数据库对象管理,主要包括创建和修改表结构、管理索引、维护表分区、创建和管理视图及序列等操作。创建表(CREATE TABLE)是数据库管理中最基础的操作,涉及到数据类型、存储参数和数据块管理等特性...
同义词在Oracle中是一种数据库对象,它允许用户使用一个别名来引用实际的对象,如表、视图或过程。这提供了两个主要好处: 1. 隐藏对象的实际名称:对于外部用户,同义词可以隐藏数据库内部结构,增加安全性。 2. ...
Oracle中的同义词(Synonyms)是数据库管理系统中一种非常实用的功能,它为数据库对象提供了一个别名,类似于我们常见的Windows文件系统的快捷方式。在Oracle环境中,同义词主要用于简化对象访问,增强安全性,并在...
同义词是数据库对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle 数据库将它翻译成对应方案对象的名字。 创建同义词需要授予创建同义词的权限,例如:grant create any ...
### Oracle数据库对象导出脚本知识点解析 #### 标题:Oracle数据库对象导出脚本 此标题指明了本文档的主题是关于如何通过编写脚本来导出Oracle数据库中的对象定义。在Oracle数据库中,对象是指数据库表、视图、...
同义词是Oracle数据库提供的一种机制,允许用户为表、视图、过程、函数等数据库对象创建一个别名。这极大地提高了代码的可读性和易用性,特别是在大型企业环境中,当数据库对象的名称较长或者需要隐藏真实的对象名称...
Oracle 同义词是指在 Oracle 数据库中创建的别名,用于简化对数据库对象的访问。同义词可以是公开的,也可以是私有的。公开的同义词可以被所有用户访问,而私有的同义词只能被对象的拥有者或被授予权限的账户访问。 ...
oracle笔记其它数据库对象(序列、索引、同义词),有创建序列,创建索引,创建同义词的具体代码案例
在Oracle数据库对象管理中,权限和角色的概念也很重要。**权限** 控制用户对数据库对象的操作,而**角色** 是一组权限的集合,便于权限管理。我们可以用`GRANT`和`REVOKE`来赋予和撤销权限,`CREATE ROLE`和`DROP ...
- **同义词(Synonym)**:同义词是一种用于简化对象名称的数据库对象,可以通过同义词来访问表、视图或其他同义词。 - **数据库链接(Database Link)**:这是一种用于访问另一个数据库中对象的通道,使得用户能够在...
Oracle 同义词和序列 Oracle 数据库中同义词和序列是两个重要概念,然而同义词的概念...同义词和序列是 Oracle 数据库中两个重要的概念,它们可以帮助用户更方便地访问数据库对象,并提高数据库的可维护性和可读性。
通过上述介绍可以看出,Oracle中的同义词机制极大地简化了对数据库对象的引用方式,并且有助于提高应用程序的安全性和可维护性。正确地使用同义词,不仅可以让SQL语句更加简洁明了,还能有效地控制不同用户对数据库...
**同义词**在Oracle数据库中提供了另一种数据库对象的别名,它可以是公共的,对所有用户可见,也可以是私有的,仅限于创建它的用户使用。同义词使得数据库对象的访问更加灵活,尤其是在多用户环境中,它能隐藏对象的...
Oracle 同义词是 Oracle 中的一种机制,允许用户创建一个别名,以便简化数据库对象的访问。同义词可以应用于多种情况,例如,在不同用户之间共享表、视图、序列、程序单元等数据库对象。 在 Oracle 中,一个用户...
同义词在Oracle数据库中是一种对象,它为另一个对象提供别名。同义词可以分为公有同义词和私有同义词两种类型。 ##### 创建公有同义词 根据实验内容,我们创建一个名为`Pub_syn`的公有同义词,指向表`SC`。 ```sql...
### Oracle数据库对象备份与恢复脚本工具 #### 概述 在Oracle数据库管理过程中,数据库对象的备份与恢复是一项至关重要的工作。为了更好地管理和维护数据库中的各种对象(如存储过程、函数、包、触发器、视图等)...
2. **结构**:Oracle数据库的结构主要由表、视图、索引、存储过程、触发器、序列、同义词等组成。每个对象都有其特定用途,例如表用于存储数据,索引提高查询速度,存储过程封装业务逻辑,视图简化数据访问。 3. **...
模式对象是 Oracle 数据库中的数据库对象的集合,包括表、视图、序列、存储过程、索引、聚簇、同义词、数据库联结等。 数据块是 Oracle 数据库中的基本存储单元,用于存储数据。范围段是 Oracle 数据库中的逻辑存储...
本部分还会介绍表空间、数据库对象等高级概念,包括同义词、序列、视图和索引等。 PL/SQL是Oracle提供的过程化语言,它允许开发者编写复杂的数据库程序。PL/SQL程序设计章节介绍PL/SQL的基本概念、数据类型、条件...
创建同义词有助于简化数据库对象的引用,尤其是在多用户环境中,可以避免复杂的权限管理和长的对象路径。删除同义词同样使用 `DROP SYNONYM` 语句。 最后,序列是 Oracle 中用于生成唯一、连续整数的数据库对象,常...