
O que é um Sinônimo?
No Oracle, um sinônimo é um alias (apelido) para outro objeto de banco de dados, como uma tabela, visão, sequência, procedimento armazenado ou outro sinônimo. Eles são usados para simplificar o acesso a objetos de banco de dados e proporcionar um nível de abstração.
Vantagens de Usar Sinônimos
- Simplificação de Nomes de Objetos: Sinônimos podem tornar mais simples o uso de nomes de objetos complexos ou longos.
- Facilitação de Mantenabilidade: Eles permitem a mudança de nomes de objetos subjacentes sem impactar os aplicativos que os utilizam.
- Acesso Transparente: Sinônimos podem ser usados para proporcionar um acesso transparente a objetos localizados em diferentes esquemas ou até mesmo em diferentes bancos de dados.
- Segurança: Sinônimos podem ajudar a mascarar os nomes reais dos objetos de banco de dados, aumentando a segurança. Eles podem também ser usados para implementar políticas de segurança que restringem o acesso a objetos específicos.
- Portabilidade de Aplicativos: Sinônimos são úteis quando você deseja mover aplicativos entre diferentes esquemas ou ambientes sem alterar o código SQL. Eles proporcionam uma camada de abstração que desacopla o código do aplicativo da estrutura real do banco de dados.
Tipos de Sinônimos
- Sinônimo Público: Disponível para todos os usuários do banco de dados.
- Sinônimo Privado: Disponível apenas para o usuário que o criou.
Como Criar um Sinônimo
A criação de um sinônimo no Oracle é feita através do comando CREATE OR REPLACE SYNONYM
. Veja um exemplo básico:
Sinônimo Privado:
CREATE OR REPLACE SYNONYM func FOR hr.funcionarios;
Neste exemplo, o sinônimo func
é criado para a tabela funcionarios
no esquema hr
.
Sinônimo Público:
CREATE OR REPLACE PUBLIC SYNONYM func FOR hr.funcionarios;
Aqui, o sinônimo func
está disponível publicamente para todos os usuários.
Utilizando Sinônimos
Uma vez criado, o sinônimo pode ser usado em consultas e outros comandos SQL da mesma forma que o objeto original:
SELECT * FROM func;
Excluindo um Sinônimo
Se um sinônimo não for mais necessário, ele pode ser excluído com o comando DROP SYNONYM
:
Sinônimo Privado:
DROP SYNONYM func;
Sinônimo Público:
DROP PUBLIC SYNONYM func;
Sinônimos e Dblink
Sinônimos podem ser usados em conjunto com links de banco de dados (db link) para simplificar o acesso a objetos em bancos de dados remotos. Isso pode ser especialmente útil em ambientes distribuídos.
Exemplo de Sinônimo com DB Link:
CREATE SYNONYM func_remote FOR funcionarios@remote_db;
Neste exemplo, o sinônimo func_remote
é criado para a tabela funcionarios
em um banco de dados remoto acessado via remote_db
link.
Sinônimos e Views
Sinônimos podem ser criados para views, facilitando o acesso a dados agregados ou derivados sem expor a complexidade da consulta subjacente.
Exemplo de Sinônimo para View:
CREATE VIEW v_funcionarios AS SELECT id, nome, salario FROM funcionarios WHERE status = 'ATIVO'; CREATE SYNONYM ativos FOR v_funcionarios;
Aqui, criamos uma view v_funcionarios
e, em seguida, um sinônimo ativos
para facilitar o acesso aos dados dos funcionários ativos.
Considerações Finais
Sinônimos são uma ferramenta útil no Oracle para simplificar o acesso a objetos de banco de dados, melhorar a mantenabilidade e proporcionar um nível de abstração. No entanto, é importante usá-los com cuidado para evitar ambiguidades e garantir que a estrutura do banco de dados permaneça clara.
Se quiser saber mais, veja a documentação oficial do Oracle sobre Sinônimos para obter informações detalhadas e exemplos práticos.
Se você tiver alguma dúvida ou sugestão, deixe um comentário abaixo!