Синоним срещу псевдоним (в бази данни ORACLE) | Частни синоними и публични синоними
На английски синонимът и псевдонимът имат почти еднакви значения. Но в базите данни това са две различни неща. Особено в базите данни на ORACLE, използването им е различно. Синонимите се използват за препращане към обекти на схема или база данни от друга схема. Така че синонимът е тип обект на база данни. Но псевдонимите идват по различен начин. Това означава; те не са обекти на база данни. Псевдонимите се използват за препращане към таблици, изгледи и колони в заявки.
Синоними
Това са тип обекти на база данни. Те препращат към други обекти в базата данни. Най-честата употреба на синоним е за препращане към обект от отделна схема чрез използване на друго име. Но синоними могат да бъдат създадени и за препращане към обектите на друга база данни (в разпределени бази данни, като се използват връзки към база данни). Таблици, изгледи, функции, процедури, пакети, последователности, материализирани изгледи, обекти от java клас и тригери могат да се използват като препратки към синонимите. Има два вида синоними.
- Лични синоними (могат да се използват само от потребителя, който ги е създал.)
- Публични синоними (могат да се използват от всички потребители, които имат съответните привилегии)
Тук е прост синтаксис за създаване на синоним в отделна база данни, създайте синоним myschema.mytable1 за [имейл защитен]_link1
Тъй като имаме синоним на име mytable1 в myschema за [email protected]_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)?