Разлика между синоним и псевдоним

Синоним срещу псевдоним (в бази данни ORACLE) | Частни синоними и обществени синоними
 

На английски синонимът и псевдонимът имат почти еднакви значения. Но в базите данни това са две различни неща. Особено в базата данни ORACLE, и двете им употреба са различни. Синонимите се използват за препращане на обекти на схема или база данни от друга схема. Така че синонимът е тип обект на база данни. Но псевдонимите идват по различен начин. Това означава; те не са обекти на база данни. Псевдонимите се използват за препращане на таблици, изгледи и колони в заявките.

Синоними

Това са вид обекти на база данни. Те се отнасят за други обекти в базата данни. Най-честото използване на синоним е да се отнасят към обект от отделна схема чрез използване на друго име. Но синоними могат да бъдат създадени и за препращане към обектите на друга база данни (в разпределени бази данни, като се използват връзки към база данни). Таблици, изгледи, функции, процедури, пакети, последователности, материализирани изгледи, обекти от класове java и тригери могат да се използват като препратки към синонимите. Има два типа синоними.

  1.  Частни синоними (могат да се използват само от потребителя, който ги е създал.)
  2.  Обществени синоними (могат да се използват от всички потребители, които имат съответните привилегии)

Ето, е прост синтаксис за създаване на синоним в отделна база данни,

създайте синоним myschema.mytable1 за [защитен имейл] _link1

Тъй като имаме синоним на име mytable1 в myschema за [имейл защитени] _link1 (таблица с разпределена база данни), можем лесно да препратим таблицата на разпределената база данни с помощта mytable1. Не е необходимо да използваме името на дългия обект с връзка към базата данни навсякъде.

псевдоним

Това са просто друго име за изглед, таблица или колона в заявка. Те не са обекти на база данни. Следователно псевдонимите не са валидни навсякъде в схемата / базата данни. Те са валидни само в заявката. Нека видим този пример,

                                    изберете tab1.col1 като c1, tab2.col2 като c2

                                       от user1.tab1 tab1, user1.tab2 tab2

                                       където tab1.col1 = tab2.col2

Тук c1 и c2 са псевдоними на колони, които се използват за tab1.col1 и tab2.col2, а tab1 и tab2 са псевдоними на таблици, които се използват за user1.table1 и user2.table2. Всички тези псевдоними са валидни само в тази заявка. 

Каква е разликата между синоним и псевдоним (в бази данни ORACLE)?

  • Синонимите са тип обект на база данни. Но псевдонимите са само име за препратка към таблица, изглед или колона в заявката. Не е обект на база данни.
  • Синоними могат да бъдат създадени за таблици, изгледи, функции, процедури, пакети, последователности, материализирани изгледи, типове обекти и тригери от клас клас Java. Но псевдоними се използват само за изгледи, таблици и техните колони.
  • Тъй като синонимите са обект на база данни, те са валидни в схемата (частен синоним) или вътре в базата данни (обществен синоним). Но псевдоними валидни в заявката, където се използват.
  • Всяка схема се нуждае „Създаване на синоним“ привилегия за създаване на синоними. Но няма привилегия да използвате псевдоними.