`
ming_7755
  • 浏览: 38181 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle数据库对象—同义词

 
阅读更多

原文地址:

http://cuiguoqiang.blog.163.com/blog/static/119597106200962015237746/

同义词的概念

Oracle数据库中提供了同义词管理的功能。同义词是数据库方案对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。在Oracle数据库中的大部分数据库对象,如表、视图、同义词、序列、存储过程、包等等,数据库管理员都可以根据实际情况为他们定义同义词。

同义词的分类

Oracle数据库同义词有两种类型,分别是公用同义词与私有同义词:

公用同义词由一个特殊的用户组Public所拥有。顾名思义,数据库中所有的用户都可以使用公用同义词。公用同义词往往用来标示一些比较普通的数据库对象,这些对象往往大家都需要引用。

私有同义词是跟公用同义词所对应,他是由创建他的用户所有。当然,这个同义词的创建者,可以通过授权控制其他用户是否有权使用属于自己的私有同义词。

同义词的创建及删除

创建公有同义词的语法:

Create [public] synonym 同义词名称 for [username.]objectName;

Drop [public] synonym 同义词名称

4同义词的作用

(1) 多用户协同开发中,可以屏蔽对象的名字及其持有者。

如果没有同义词,当操作其他用户的表时,必须通过user.object的形式,采用了同义词之后就可以隐蔽掉user名,当然这里要注意的是:public同义词只是为数据库对象定义了一个公共的别名,其他用户能否通过这个别名访问这个数据库对象,还要看是否已经为这个用户授权。

(2) 为用户简化sql语句。

上面的一条其实就是一种简化sql的体现,同时如果自己建的表的名字很长,可以为这个表创建一个同义词来简化sql开发。

(3)为分布式数据库的远程对象提供位置透明性。

同义词在数据库链中的作用

数据库链是一个命名的对象,说明一个数据库到另一个数据库的路径,通过其可以实现不同数据库之间的通信。

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语句分别如下:

S1select ….from Student,Course@DLA1,S_C@DLA2 where…..;

S2select … from Student@DLB1,Course,S_C@DLB2 where…..;

S3select ….from Student@DLC1,Course@DLC2,S_C where….;

这就导致一个问题,同样的应用放在三台服务器上,sql语句是不一样的。

下面我们可以建立同义词:

S1Create public synonym Course for Course@DLA1;

       Create public synonym S_C for S_C@DLA2;

S2Create public synonym Student for Student@DLB1;

       Create public synonym S_C for S_C@DLB2;

S3Create public synonym Student for Student @DLC1;

       Create public synonym Course for Course@DLC2;

这样SQL语句分别如下:

S1select ….from Student,Course,S_C where…..;

S2select … from Student,Course,S_C where…..;

S3select ….from Studeng,Course,S_C where….;

可以看到Sql语句在三台服务器上是一样的。

分享到:
评论

相关推荐

    Oracle数据库对象管理及备份与恢复.pdf

    首先,关于Oracle数据库对象管理,主要包括创建和修改表结构、管理索引、维护表分区、创建和管理视图及序列等操作。创建表(CREATE TABLE)是数据库管理中最基础的操作,涉及到数据类型、存储参数和数据块管理等特性...

    实用的数据库赋权和同义词的存储过程,用于oracle

    同义词在Oracle中是一种数据库对象,它允许用户使用一个别名来引用实际的对象,如表、视图或过程。这提供了两个主要好处: 1. 隐藏对象的实际名称:对于外部用户,同义词可以隐藏数据库内部结构,增加安全性。 2. ...

    Oracle中定义以及使用同义词的方法

    Oracle中的同义词(Synonyms)是数据库管理系统中一种非常实用的功能,它为数据库对象提供了一个别名,类似于我们常见的Windows文件系统的快捷方式。在Oracle环境中,同义词主要用于简化对象访问,增强安全性,并在...

    Oracle数据库 Synonym和DBLink

    同义词是数据库对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle 数据库将它翻译成对应方案对象的名字。 创建同义词需要授予创建同义词的权限,例如:grant create any ...

    oracle数据库对象导出脚本

    ### Oracle数据库对象导出脚本知识点解析 #### 标题:Oracle数据库对象导出脚本 此标题指明了本文档的主题是关于如何通过编写脚本来导出Oracle数据库中的对象定义。在Oracle数据库中,对象是指数据库表、视图、...

    Oracle 同义词和视图

    同义词是Oracle数据库提供的一种机制,允许用户为表、视图、过程、函数等数据库对象创建一个别名。这极大地提高了代码的可读性和易用性,特别是在大型企业环境中,当数据库对象的名称较长或者需要隐藏真实的对象名称...

    Oracle 同义词

    Oracle 同义词是指在 Oracle 数据库中创建的别名,用于简化对数据库对象的访问。同义词可以是公开的,也可以是私有的。公开的同义词可以被所有用户访问,而私有的同义词只能被对象的拥有者或被授予权限的账户访问。 ...

    oracle笔记其它数据库对象(序列索引同义词)

    oracle笔记其它数据库对象(序列、索引、同义词),有创建序列,创建索引,创建同义词的具体代码案例

    IBM-ETP-Oracle04第四章 数据库对象管理

    在Oracle数据库对象管理中,权限和角色的概念也很重要。**权限** 控制用户对数据库对象的操作,而**角色** 是一组权限的集合,便于权限管理。我们可以用`GRANT`和`REVOKE`来赋予和撤销权限,`CREATE ROLE`和`DROP ...

    oracle 其他数据库对象

    - **同义词(Synonym)**:同义词是一种用于简化对象名称的数据库对象,可以通过同义词来访问表、视图或其他同义词。 - **数据库链接(Database Link)**:这是一种用于访问另一个数据库中对象的通道,使得用户能够在...

    oracle同义词和序列

    Oracle 同义词和序列 Oracle 数据库中同义词和序列是两个重要概念,然而同义词的概念...同义词和序列是 Oracle 数据库中两个重要的概念,它们可以帮助用户更方便地访问数据库对象,并提高数据库的可维护性和可读性。

    Oracle的同义词(synonyms)总结

    通过上述介绍可以看出,Oracle中的同义词机制极大地简化了对数据库对象的引用方式,并且有助于提高应用程序的安全性和可维护性。正确地使用同义词,不仅可以让SQL语句更加简洁明了,还能有效地控制不同用户对数据库...

    oracle数据库学习宝典

    **同义词**在Oracle数据库中提供了另一种数据库对象的别名,它可以是公共的,对所有用户可见,也可以是私有的,仅限于创建它的用户使用。同义词使得数据库对象的访问更加灵活,尤其是在多用户环境中,它能隐藏对象的...

    ORACLE中一个用户操作另一个用户的某些表 oracle同义词

    Oracle 同义词是 Oracle 中的一种机制,允许用户创建一个别名,以便简化数据库对象的访问。同义词可以应用于多种情况,例如,在不同用户之间共享表、视图、序列、程序单元等数据库对象。 在 Oracle 中,一个用户...

    oracle作业视图和同义词

    同义词在Oracle数据库中是一种对象,它为另一个对象提供别名。同义词可以分为公有同义词和私有同义词两种类型。 ##### 创建公有同义词 根据实验内容,我们创建一个名为`Pub_syn`的公有同义词,指向表`SC`。 ```sql...

    oracle数据库对象备份与恢复脚本工具

    ### Oracle数据库对象备份与恢复脚本工具 #### 概述 在Oracle数据库管理过程中,数据库对象的备份与恢复是一项至关重要的工作。为了更好地管理和维护数据库中的各种对象(如存储过程、函数、包、触发器、视图等)...

    中南大学Oracle数据库课件

    2. **结构**:Oracle数据库的结构主要由表、视图、索引、存储过程、触发器、序列、同义词等组成。每个对象都有其特定用途,例如表用于存储数据,索引提高查询速度,存储过程封装业务逻辑,视图简化数据访问。 3. **...

    Oracle数据库培训.ppt

    模式对象是 Oracle 数据库中的数据库对象的集合,包括表、视图、序列、存储过程、索引、聚簇、同义词、数据库联结等。 数据块是 Oracle 数据库中的基本存储单元,用于存储数据。范围段是 Oracle 数据库中的逻辑存储...

    oracle数据库入门书

    本部分还会介绍表空间、数据库对象等高级概念,包括同义词、序列、视图和索引等。 PL/SQL是Oracle提供的过程化语言,它允许开发者编写复杂的数据库程序。PL/SQL程序设计章节介绍PL/SQL的基本概念、数据类型、条件...

    oracle 同义词和序列

    创建同义词有助于简化数据库对象的引用,尤其是在多用户环境中,可以避免复杂的权限管理和长的对象路径。删除同义词同样使用 `DROP SYNONYM` 语句。 最后,序列是 Oracle 中用于生成唯一、连续整数的数据库对象,常...

Global site tag (gtag.js) - Google Analytics