Synonym vs Alias (ORACLE adatbázisokban) | Privát szinonimák és nyilvános szinonimák
Angolban a szinonimák és az álnevek jelentése közel azonos. De az adatbázisokban ez két különböző dolog. Főleg az ORACLE adatbázisokban mindkettőjük felhasználása eltérő. A szinonimák egy séma vagy egy adatbázis objektumaira hivatkoznak egy másik sémából. Tehát a szinonimája egy adatbázis objektumtípus. De az álnevek más módon érkeznek. Azt jelenti; ezek nem adatbázis objektumok. Az álnevek a lekérdezéseken belüli táblázatokra, nézetekre és oszlopokra hivatkoznak.
Szinonimák
Ezek az adatbázis-objektumok egy fajtája. Más objektumokra hivatkoznak az adatbázisban. A szinonimák legáltalánosabb használata az, hogy egy különálló séma objektumára más névvel hivatkozunk. De szinonimák létrehozhatók egy másik adatbázis objektumainak hivatkozására is (elosztott adatbázisokban, adatbázis hivatkozások segítségével). Táblázatok, nézetek, függvények, eljárások, csomagok, sorozatok, materializált nézetek, java osztályobjektumok és triggerek használhatók a szinonimák hivatkozásaként. Kétféle szinonima létezik.
- Privát szinonimák (csak az azokat létrehozó felhasználó használhatja.)
- Nyilvános szinonimák (minden felhasználó használhatja, aki rendelkezik a megfelelő jogosultságokkal)
Itt egy egyszerű szintaxis szinonimák létrehozására egy külön adatbázisban, szinonima myschema.mytable1 létrehozása a következőhöz: [email protected]_link1
Mivel a myschemában a mytable1 szinonimája van az [email protected]_link1 (distributed database table) kifejezésnek, könnyen hivatkozhatunk az elosztott adatbázistáblára a mytable1 használatával. Nem kell mindenhol használnunk a hosszú objektumnevet adatbázishivatkozással.
Alias
Ezek csak egy másik név egy nézetnek, egy táblázatnak vagy egy oszlopnak a lekérdezésben. Ezek nem adatbázis-objektumok. Ezért az álnevek nem mindenhol érvényesek a sémában/adatbázisban. Csak a lekérdezésben érvényesek. Lássuk ezt a példát:
válasszon tab1.col1 mint c1, tab2.col2 mint c2
felhasználó1.tab1 tab1, user1.tab2 lap2
ahol tab1.col1=tab2.col2
Itt a c1 és c2 oszlopálnevek, amelyeket a tab1.col1 és tab2.col2, a tab1 és a tab2 pedig a user1.table1 és a user2.table2 táblákhoz használt álnevek. Mindezek az álnevek csak ebben a lekérdezésben érvényesek.
Mi a különbség a Synonym és az Alias között (ORACLE adatbázisokban)?