Różnica między synonimem a aliasem

Synonim vs Alias (w bazach danych ORACLE) | Prywatne synonimy i publiczne synonimy
 

W języku angielskim synonim i alias mają prawie takie samo znaczenie. Ale w bazach danych są to dwie różne rzeczy. Szczególnie w bazach danych ORACLE ich użycie jest inne. Synonimy odnoszą się do obiektów schematu lub bazy danych z innego schematu. Więc synonim jest typem obiektu bazy danych. Ale aliasy pojawiają się w inny sposób. To znaczy; nie są obiektami bazy danych. Aliasy służą do odsyłania do tabel, widoków i kolumn w zapytaniach.

Synonimy

Są to typy obiektów bazy danych. Odnoszą się do innych obiektów w bazie danych. Najczęstszym użyciem synonimu jest odsyłanie do obiektu oddzielnego schematu przy użyciu innej nazwy. Można jednak utworzyć synonimy, aby odwoływały się również do obiektów innej bazy danych (w rozproszonych bazach danych, za pomocą łączy do baz danych). Tabele, widoki, funkcje, procedury, pakiety, sekwencje, zmaterializowane widoki, obiekty klasy Java i wyzwalacze mogą być używane jako odniesienia do synonimów. Istnieją dwa rodzaje synonimów.

  1.  Prywatne synonimy (może używać tylko użytkownik, który je utworzył).
  2.  Publiczne synonimy (mogą być używane przez wszystkich użytkowników, którzy mają odpowiednie uprawnienia)

Oto prosta składnia umożliwiająca utworzenie synonimu w osobnej bazie danych,

utwórz synonim myschema.mytable1 dla [chroniony przez e-mail] _link1

Ponieważ mamy synonim o nazwie mytable1 w myschema dla [chroniony przez e-mail] _link1 (tabela rozproszonej bazy danych), możemy łatwo odwołać tabelę rozproszonej bazy danych za pomocą mytable1. Nie musimy wszędzie używać długiej nazwy obiektu z łączem do bazy danych.

Alias

To tylko inna nazwa widoku, tabeli lub kolumny wewnątrz zapytania. Nie są obiektami bazy danych. Dlatego aliasy nie są poprawne wszędzie w schemacie / bazie danych. Są prawidłowe tylko w zapytaniu. Zobaczmy ten przykład,

                                    wybierz tab1.col1 jako c1, tab2.col2 jako c2

                                       z user1.tab1 tab1, user1.tab2 tab2

                                       gdzie tab1.col1 = tab2.col2

Tutaj c1 i c2 są aliasami kolumn, które są używane dla tab1.col1 i tab2.col2, a tab1 i tab2 są aliasami tabel, które są używane dla user1.table1 i user2.table2. Wszystkie te aliasy są prawidłowe tylko w tym zapytaniu. 

Jaka jest różnica między synonimem a aliasem (w bazach danych ORACLE)?

  • Synonimy to typ obiektu bazy danych. Ale aliasy to tylko nazwa odnosząca się do tabeli, widoku lub kolumny w zapytaniu. Nie jest obiektem bazy danych.
  • Można tworzyć synonimy dla tabel, widoków, funkcji, procedur, pakietów, sekwencji, widoków zmaterializowanych, typów obiektów klasy Java i wyzwalaczy. Ale aliasy są używane tylko dla widoków, tabel i ich kolumn.
  • Ponieważ synonimy są obiektem bazy danych, są prawidłowe w schemacie (prywatny synonim) lub w bazie danych (publiczny synonim). Ale aliasy są prawidłowe w zapytaniu, w którym są używane.
  • Każdy schemat potrzebuje „Stwórz synonim” uprawnienie do tworzenia synonimów. Ale nie ma żadnego przywileju używania aliasów.