Eşanlamlı ve Takma Ad Arasındaki Fark

Eş anlamlı ve diğer ad (ORACLE veritabanlarında) | Özel eşanlamlılar ve Genel eşanlamlılar
 

İngilizce'de eşanlamlı ve takma ad neredeyse aynı anlamlara sahiptir. Ancak veritabanlarında bunlar iki farklı şeydir. Özellikle ORACLE veritabanlarında her ikisi de farklıdır. Eş anlamlılar, bir şemanın nesnelerini veya başka bir şemadaki bir veritabanını belirtmek için kullanılır. Yani eşanlamlı bir veritabanı nesnesi türüdür. Ancak takma adlar farklı bir şekilde geliyor. Bunun anlamı; veritabanı nesneleri değildir. Takma adlar, sorguların içindeki tabloları, görünümleri ve sütunları belirtmek için kullanılır.

Eş anlamlı

Bunlar bir tür veritabanı nesnesidir. Veritabanındaki diğer nesnelere atıfta bulunurlar. Eşanlamlıların en yaygın kullanımı, ayrı bir şemanın nesnesine başka bir ad kullanarak başvurmaktır. Ancak eşanlamlılar başka bir veritabanının nesnelerine de atıfta bulunmak için oluşturulabilir (dağıtılmış veritabanlarında, veritabanı bağlantıları kullanılarak). Tablolar, görünümler, fonksiyonlar, prosedürler, paketler, sekanslar, materyalize görünümler, java sınıfı nesneleri ve tetikleyiciler eş anlamlılar için referans olarak kullanılabilir. İki tür eşanlamlı vardır.

  1.  Özel eşanlamlılar (yalnızca onları oluşturan kullanıcı tarafından kullanılabilir.)
  2.  Genel eş anlamlılar (uygun ayrıcalıklara sahip tüm kullanıcılar tarafından kullanılabilir)

Burada, ayrı bir veritabanında eşanlamlı oluşturmak için basit bir sözdizimi,

[e-posta korumalı] _link1 için myschema.mytable1 eş anlamlı oluştur

Adında bir eşanlamlımız olduğundan mytable1 içinde myschema için [e-posta korumalı] _link1 (dağıtılmış veritabanı tablosu), kullanarak kolayca dağıtılmış veritabanı tablosuna başvurabiliriz mytable1. Her yerde veritabanı bağlantısı olan uzun nesne adını kullanmamız gerekmiyor.

takma ad

Bunlar yalnızca bir görünüm, tablo veya sorgunun içindeki bir sütun için başka bir addır. Bunlar veritabanı nesneleri değildir. Bu nedenle, diğer adlar şema / veritabanında her yerde geçerli değildir. Bunlar yalnızca sorgu içinde geçerlidir. Bu örneği görelim,

                                    tab1.col1'i c1 olarak, tab2.col2'yi c2 olarak seçin

                                       from user1.tab1 tab1, user1.tab2 tab2

                                       burada tab1.col1 = tab2.col2

Burada c1 ve c2, tab1.col1 ve tab2.col2 için kullanılan sütun diğer adlarıdır ve tab1 ve tab2, user1.table1 ve user2.table2 için kullanılan tablo diğer adlarıdır. Bu takma adların tümü yalnızca bu sorguda geçerlidir. 

Eşanlamlı ve Takma Ad arasındaki fark nedir (ORACLE veritabanlarında)?

  • Eş anlamlılar bir veritabanı nesnesi türüdür. Ancak takma adlar, bir sorgunun içindeki tabloyu, görünümü veya sütunu referans alan bir addır. Veritabanı nesnesi değil.
  • Tablolar, görünümler, fonksiyonlar, prosedürler, paketler, sekanslar, materyalize görünümler, java sınıfı nesne türleri ve tetikleyiciler için eş anlamlılar oluşturulabilir. Ancak takma adlar yalnızca görünümler, tablolar ve sütunları için kullanılır.
  • Eşanlamlılar bir veritabanı nesnesi olduğundan, şema (özel eşanlamlı) veya veritabanı (genel eşanlamlı) içinde geçerlidir. Ancak takma adlar kullanıldıkları sorgu içinde geçerlidir.
  • Her şemanın ihtiyacı “Eşanlamlı oluştur” eş anlamlılar yaratma ayrıcalığı. Ancak takma ad kullanma ayrıcalığı yoktur.