Diferença entre banco de dados x usuário x esquema


Respostas:


78

No Oracle, usuários e esquemas são essencialmente a mesma coisa. Você pode considerar que um usuário é a conta que você usa para se conectar a um banco de dados e um esquema é o conjunto de objetos (tabelas, visualizações etc.) que pertencem a essa conta.

Veja esta publicação no Stack Overflow: diferença entre um usuário e um esquema no Oracle? para mais detalhes e links extras.

Você cria usuários com a create userinstrução Isso também "cria" o esquema (inicialmente vazio) - você não pode criar um esquema como tal, ele está vinculado ao usuário. Depois que o usuário é criado, um administrador pode conceder privilégios ao usuário, o que permitirá criar tabelas, executar selectconsultas inserte tudo mais.

O banco de dados é o que contém todos os usuários que você criou e seus dados (e vários usuários, tabelas, visualizações etc. do sistema predefinidos que fazem com que tudo funcione). Você deve consultar a documentação da Arquitetura de banco de dados Oracle no Guia de conceitos (na verdade, toda a página vale a pena ler - há uma seção sobre usuários e esquemas mais altos nessa página) para obter uma introdução ao que é um banco de dados e o que instância de banco de dados é - dois conceitos importantes.

Você pode criar um banco de dados com a create databaseinstrução, depois de instalar a pilha de software Oracle. Mas o uso dbca(assistente de criação de banco de dados) é mais fácil de começar.


2

De acordo com a maneira como a terminologia é usada algumas vezes , a USERe a SCHEMAsão um pouco semelhantes. Mas há também uma grande diferença. A USERpode ser chamado a SCHEMAse o " USER" possuir qualquer objeto, caso contrário ele permanecerá apenas " USER". Uma vez que USERpossui pelo menos um objeto, em virtude de todas as suas definições acima ... USERagora pode ser chamado de SCHEMA.


Acho que o que você está apontando aqui é que o termo 'ESQUEMA' é multifacetado. É um espaço de nome para objetos de banco de dados, por um lado. Além disso, no Oracle (e outros?), Mas não no PostgreSQL, é um namespace de objeto de banco de dados que contém exatamente os objetos criados pelo usuário que compartilha o nome do esquema. De outra perspectiva, são os relacionamentos e a estrutura dos objetos em um banco de dados, geralmente ignorando a propriedade e o espaço para nome.
Andrew Wolfe

2

Para começar a entender a diferença, acho que devemos começar dizendo que essa nomenclatura foi um erro da Oracle.

Suponho que, se você tem um ERP chamado TRITON, deseja que seu banco de dados seja denominado TRITON, ou se minha empresa se chama JENNY EXPORT, posso decidir que meu banco de dados seja JENNYEXP ou algo parecido, não há necessidade de qualquer usuário com o mesmo nome .

No Oracle, você precisa criar um USER antes de criar as tabelas e, por estranho que pareça, essa coleção de TABLES é chamada SCHEMA.

Em seguida, você pode criar os usuários reais e conceder permissões adequadas para trabalhar com um banco de dados como TRITON, como neste exemplo, a propósito, se você se conectar através do SQL DEVELOPER, deverá NOMEAR UMA CONEXÃO.

Sei que pareço meio frustrado, mas faz mais sentido para mim a convenção de nomenclatura do MS SQL SERVER e posso acrescentar que trabalhei com o Oracle antes do SQL SERVER.


1

Base de dados.

A base de dados é uma coleção de dados, na qual os dados são realmente armazenados. É um componente de memória físico conectado a um computador instalado com o software DBMS para manipular os dados nesse componente de memória; o computador instalado com o software dbms é chamado de servidor ou servidor de banco de dados. O servidor (computador) e o banco de dados (componente de memória) são diferentes, mas Na maioria das vezes referido como Mesmo com base na situação.

USUÁRIO E ESQUEMA

As duas palavras, usuário e esquema, são intercambiáveis, é por isso que a maioria das pessoas se confunde com essas palavras.

Do utilizador

Usuário é uma conta para conectar o banco de dados (servidor). podemos criar usuários usando CREATE USER IDENTIFIED BY.

Esquema

Na verdade, o Oracle Database contém estrutura lógica e física para processar os dados. O esquema também estrutura lógica para processar os dados no banco de dados (componente de memória). Ele é criado automaticamente pelo Oracle quando o usuário é criado. Ele contém todos os objetos criados pelo usuário associado a esse esquema. Por exemplo, se eu criei um usuário com o nome santhosh, o oracle cria um esquema chamado santhosh, o Oracle armazena todos os objetos criados pelo usuário santhoshno santhoshesquema.

Podemos criar um esquema usando a CREATE SCHEMAinstrução, mas o Oracle cria automaticamente um usuário para esse esquema.

Podemos descartar o esquema usando a DROP SCHEMA <name> RESTRICTinstrução, mas ele não pode excluir objetos contidos no esquema; portanto, para descartar o esquema, ele deve estar vazio. aqui a palavra restringir obriga a especificar esse esquema sem objetos.

Se tentarmos eliminar um usuário que contém objetos em seu esquema, devemos especificar o CASCADEword, porque o Oracle não permite excluir um usuário que contém objetos.

DROP USER <name> CASCADE

portanto, o Oracle exclui os objetos no esquema e, em seguida, exclui o usuário automaticamente. Os objetos referidos a esses objetos de esquema de outros esquemas, como visualizações e sinônimos particulares, passam para o estado inválido.


-2

Eu acrescentaria que as instruções acima se aplicam à implementação da Oracle, mas outros bancos de dados, incluindo o SQL Server e o PostgreSQL, usam o esquema apenas como um espaço para nome, ou seja, uma maneira de agrupar objetos. Por exemplo, o esquema temporário pode agrupar todos os objetos usados ​​nos dados temporários, o esquema contábil pode agrupar todos os objetos relacionados à contabilidade.


Não sei ao que você se refere quando diz "instruções acima", mas o esquema no SQL e no Oracle é um agrupamento de permissões. Em outras palavras, não é apenas uma maneira de agrupar objetos semelhantes, mas uma maneira de agrupar objetos que facilitarão o gerenciamento de permissões, pois você pode conceder permissões a um esquema e, portanto, evitar a concessão de permissões para cada objeto dentro do esquema.
Thronk 23/11

-4

Usuário! = Esquema, Usuário e Esquema não são iguais, mas são usados ​​de forma intercambiável


2
Adicione detalhes sobre como eles são diferentes.
Erik

-4

Estou lhe dizendo de acordo com conceitos que não se baseiam em nenhum tipo de sistema de gerenciamento de banco de dados que você está usando.

Conceitualmente: Banco de dados: é apenas uma pilha de dados, principalmente dados não gerenciados, relacionados ou não relacionados .

Esquema: Esquema refere-se à estruturação formal dos dados não gerenciados relacionados / não relacionados, para que possam ser gerenciados por algum sistema de gerenciamento que compreenda a definição formal fornecida pelo esquema. Esquema é basicamente um esquema para fornecer uma visão geral. Por exemplo, você tem um XSD que define o esquema para criar XML. Você possui RDBMS, que define seus próprios esquemas, baseados nas Regras do Codd, que basicamente definem esquemas para criar RDBMS.

Agora, se você quiser saber mais, consulte este link .

O usuário usa a linguagem formal especificada pelo esquema para acessar o banco de dados

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.