Különbség a szinonimák és az álnevek között

Szinonima vs Alias (az ORACLE adatbázisokban) Magán- és nyilvános szinonimák
 

Angolul a szinonimának és álnévnek szinte azonos jelentése van. De az adatbázisokban ez két különféle dolog. Különösen az ORACLE adatbázisokban mindkettő eltérő. A szinonimákat arra használják, hogy egy séma objektumait vagy egy másik séma adatbázisát hivatkozzanak. Tehát a szinonima egy adatbázis objektumtípus. De az álnevek másképp jönnek. Azt jelenti; nem adatbázis-objektumok. Az álnevek táblázatok, nézetek és oszlopok hivatkozására szolgálnak a lekérdezésekben.

Szinonimák

Ezek egy típusú adatbázis objektumok. Az adatbázis más objektumaira utalnak. A szinonimák leggyakoribb használata egy külön séma objektumának hivatkozása másik név használatával. De szinonimákat lehet létrehozni egy másik adatbázis objektumainak hivatkozására is (elosztott adatbázisokban, adatbázis hivatkozások használatával). Táblázatok, nézetek, függvények, eljárások, csomagok, szekvenciák, materializált nézetek, java osztályobjektumok és triggerek használhatók hivatkozásként a szinonimákhoz. Két szinonima típus létezik.

  1.  Privát szinonimák (csak az a felhasználó használhatja, aki azokat létrehozta.)
  2.  Nyilvános szinonimák (minden felhasználó használhatja, aki rendelkezik a megfelelő jogosultságokkal)

Itt egy egyszerű szintaxis, amellyel szinonimát hozhat létre külön adatbázisban,

hozzon létre a myschema.mytable1 szinonimát az [email protected] _link1 számára

Mivel van egy neve a szinonimának mytable1 ban ben myschema mert [e-mail védett] _link1 (elosztott adatbázis táblázat), egyszerűen hivatkozhatunk az elosztott adatbázis táblára a mytable1. Nem kell mindenhol használni a hosszú objektumnevet az adatbázis hivatkozásra.

Álnév

Ezek csak egy nézet, táblázat vagy oszlop egy másik neve a lekérdezésben. Nem adatbázis-objektumok. Ezért az álnevek nem mindenütt érvényesek a sémában / adatbázisban. Csak a lekérdezésen belül érvényesek. Lássuk ezt a példát,

                                    válassza a tab1.col1 mint c1, tab2.col2 mint c2

                                       a user1.tab1 tab1, user1.tab2 tab2

                                       ahol tab1.col1 = tab2.col2

Itt c1 és c2 oszlop álnevek, amelyeket a tab1col1 és tab2.col2 táblákhoz használnak, és a tab1 és tab2 táblák álnevek, amelyeket a user1.table1 és user2.table2 táblákhoz használnak. Ezek az álnevek csak ebben a lekérdezésben érvényesek. 

Mi a különbség a szinoním és az álnév között? (az ORACLE adatbázisokban)?

  • A szinonimák adatbázis-objektumtípusok. Az álnevek azonban csak egy név, amely a lekérdezésben található táblára, nézetre vagy oszlopra utal. Nem adatbázis objektum.
  • Szinonimákat hozhatunk létre táblák, nézetek, funkciók, eljárások, csomagok, szekvenciák, materializált nézetek, java osztály objektumtípusok és eseményindítók számára. Az álneveket azonban csak nézetekhez, táblázatokhoz és oszlopokhoz használják.
  • Mivel a szinonimák adatbázis-objektumok, érvényesek a sémán belül (privát szinonimák) vagy az adatbázisban (nyilvános szinonimák). De az álnevek érvényesek a lekérdezésen belül, ahol használják.
  • Minden sémának szüksége van „Szinonima létrehozása” kiváltság szinonimák létrehozására. De az álnevek használatára nincs kiváltság.