Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Engenharia reversa de um modelo de dados usando o Oracle SQL Developer

Introdução


Este tutorial apresenta as ferramentas do Oracle SQL Developer Data Model que podem ser usadas para fazer engenharia reversa de um esquema de banco de dados existente em um modelo relacional e lógico. Considere um processo típico de desenvolvimento de banco de dados que começa com os requisitos do usuário de negócios que são modelados como um Modelo de Entidade de Relacionamento que consiste em Entidades, Atributos, Identificadores e Relacionamentos. Este modelo E-R é então transformado em um modelo Relacional composto por Relações, Atributos, Chaves e Chaves Estrangeiras. O modelo relacional pode ser implementado em um banco de dados relacional como um conjunto de Tabelas, Colunas e restrições, incluindo restrições exclusivas, de chave primária e de chave estrangeira.

Podemos nos deparar com situações em que temos um esquema de banco de dados relacional já implementado, mas não temos o modelo Relacional original ou o modelo Entity Relationship que foi usado para projetar o banco de dados. Nessas situações, podemos recriar o modelo E-R por engenharia reversa o modelo do esquema do banco de dados. Para isso, precisamos seguir os seguintes passos:
  1. Conecte o esquema do banco de dados e identifique todas as tabelas existentes, suas colunas e suas restrições de chave primária e estrangeira.
  2. Construa o modelo relacional que corresponde ao conjunto existente de tabelas e restrições.
  3. Inferir o modelo E-R do modelo relacional.

Terminologia do modelo de dados


O Oracle SQL Developer usa termos ligeiramente diferentes dos que são normalmente usados ​​em cursos acadêmicos de banco de dados. O modelo físico (com chaves, relacionamentos de chave estrangeira e índices) que é extraído do esquema do banco de dados é denominado “Modelo Relacional” pelo Oracle SQL Developer. O conjunto de entidades com linhas de relacionamento é chamado de “Modelo Lógico” pelo Oracle SQL Developer.

Pré-requisitos


Antes de iniciar este tutorial, certifique-se de estar trabalhando com o Oracle SQL Developer versão 4.x ou mais recente. Infelizmente, o Oracle 12c ainda pode ser fornecido com a versão 3.x do SQL Developer, que não possui as ferramentas de modelagem de dados.

Se você precisar obter e instalar o SQL Developer, ou quiser algumas dicas sobre como começar com o SQL Developer, veja o tutorial.

Você também precisará das credenciais (nome do host, porta, nome do serviço, nome de usuário e senha) para o esquema de amostra 'HR' (ou outro) fornecido com o Oracle 11g e o Oracle 12c.

As etapas a seguir foram realizadas usando o SQL Developer 4.1 no Windows 7 conectado ao esquema de exemplo ‘HR’ em um banco de dados Oracle 12c.


Engenharia reversa do modelo relacional de um esquema de banco de dados

  1. Execute o Oracle SQL Developer e crie uma conexão com o esquema de banco de dados com o qual você trabalhará. Neste exemplo, criamos uma conexão com o esquema 'HR' que é o banco de dados de exemplo de Recursos Humanos que vem com Oracle 11g e Oracle 12c.
  2. Abra o menu Arquivo, selecione Modelador de Dados e, em seguida, o submenu Importar. Clique na seleção do Dicionário de Dados no menu suspenso, conforme mostrado abaixo. Isso iniciará o Assistente de Importação de Dicionário de Dados:
  3. Selecione a conexão com a qual deseja trabalhar. Você também pode clicar no botão Adicionar para adicionar uma nova conexão. Depois de destacar sua conexão, clique no botão Avançar> para continuar.
  4. A próxima etapa é selecionar o esquema a ser importado. Para este exemplo, marcamos a caixa do esquema 'HR', conforme mostrado abaixo. Observe que a seleção “Import To:” mostra New Relational Model e o tipo de banco de dados é Oracle 12c. Clique no botão Avançar> para continuar:

O próximo conjunto de etapas na próxima página abrange a seleção dos objetos de banco de dados a serem importados para o modelo.


  1. A próxima etapa é selecionar quais objetos de banco de dados importar. Para este exercício, selecionaremos todas as tabelas a serem importadas. Observe que existem outros objetos de banco de dados, como exibições, sequências, funções, procedimentos armazenados, etc. que também podem ser importados. Para este exercício, vamos mantê-lo simples e apenas olhar para as tabelas. Após selecionar as tabelas, clique no botão Avançar> para continuar.
  2. A etapa final do assistente de importação é revisar os objetos de banco de dados a serem importados. Se tudo estiver correto, clique no botão Concluir para iniciar a importação.
  3. Neste ponto, dependendo de quantas tabelas você está importando, você pode ver uma barra de progresso como:
  4. Quando concluído, uma janela de registro de resumo será exibida:


    Se houver alguma instrução com falha, salve este registro para ajudar na depuração.
  5. Assumindo que o processo de importação foi concluído sem erros, um novo modelo Relacional aparecerá na janela. Você pode se mover pelas mesas para fazer um bom arranjo. O modelo usa a notação “Pé de galinha” onde o “pé de galinha” representa o lado “Muitos” da relação. Assim, por exemplo, uma “região” tem muitos “países”. Um “País” tem muitos “Locais” e assim por diante.
  6. Você pode alterar o nível de detalhes mostrado no modelo relacional clicando com o botão direito do mouse na tela e selecionando o item de menu Exibir detalhes.

Como lembrete, a maioria dos profissionais normalmente chamaria isso de “modelo de banco de dados físico”, pois inclui os tipos de dados, chaves, chaves estrangeiras e índices que são implementados no esquema do banco de dados.

As etapas para salvar o modelo são apresentadas na próxima página.


  1. Neste ponto, o modelo recebe um nome temporário, como Untitled_1. Para visualizar este modelo no “Browser”, abra o menu View, selecione Data Modeler e depois Browser. Abra o design Untitled_1 e, em seguida, abra os Modelos Relacionais e, finalmente, o modelo nomeado após sua conexão, conforme mostrado abaixo:
  2. Clique com o botão direito do mouse no design Untitled_1 e clique no item de menu Salvar design. Navegue até uma pasta adequada para salvar seu trabalho e dê um nome de arquivo ao design. Clique no botão Salvar quando estiver pronto:

Neste ponto, agora temos (o que a Oracle chama) um Modelo Relacional que é essencialmente um espelho do esquema de banco de dados relacional que acabamos de importar. Na verdade, o SQL Developer mantém esses dois sincronizados para que, se o esquema do banco de dados for alterado, isso será refletido no Modelo Relacional e, se forem feitas alterações no modelo relacional, elas possam ser inseridas (implementadas) no esquema do banco de dados.

Este modelo irá mostrar todas as Tabelas (Relações), Chaves, Chaves Estrangeiras, verificar restrições e índices que podem ou não impor unicidade. Por exemplo, a relação EMPLOYEES abaixo tem uma chave primária EMPLOYEE_ID, três chaves estrangeiras (JOB_ID, MANAGER_ID e DEPARTMENT_ID) e uma restrição exclusiva na coluna EMAIL:



O próximo conjunto de etapas na próxima página aborda como continuar o processo de engenharia reversa para produzir um Modelo Lógico.


Engenharia Reversa do Modelo de Relacionamento de Entidade


Neste ponto, fizemos engenharia reversa de um esquema de banco de dados para um modelo relacional, que é um processo bastante direto. O último passo é continuar a engenharia reversa para produzir o modelo Entidade Relacionamento. Observe que a Oracle chama isso de “modelo lógico”.
  1. Retornando ao Data Model Browser, abra as pastas para Modelos Relacionais e Modelo Lógico conforme mostrado abaixo:
  2. Clique com o botão direito do mouse no modelo relacional (o nosso é chamado sfscdb_pdb2_hr) e selecione Engineer to Logical Model no menu pop-up, conforme mostrado abaixo:
  3. O Engenheiro para o Modelo Lógico caixa de diálogo deve aparecer como abaixo. Cada uma das Tabelas e Referências deve ser verificada. Cada tabela será mapeada para uma Entidade e cada Referência de chave estrangeira deverá ser mapeada para um relacionamento entre entidades. Depois que todos os elementos apropriados forem selecionados na janela à esquerda, clique no botão Engenheiro para criar o modelo lógico (ER).
  4. O novo modelo de relacionamento de entidade deve aparecer conforme mostrado abaixo. Por padrão, a notação “Pé de Corvo” ou Barker é usada.



Os detalhes dos relacionamentos (que a Oracle chama confusamente de “relações”) podem ser visualizados clicando duas vezes na linha de relacionamento. No exemplo abaixo, o relacionamento entre as entidades Employees e Jobs é aberto. Ao especificar frases verbais para os campos "Nome na origem" e "Nome no destino", cada relacionamento pode ser completamente especificado em um grande nível de detalhes.


A figura abaixo mostra a relação completamente definida que seria:
One JOB may be a job performed by One or More EMPLOYEES
One EMPLOYEE must be performing One and Only One JOB



A notação padrão para o modelo ER é a notação Crow’s Foot ou Barker. Para alterar a notação para Bachman ou para a notação de Engenharia da Informação, clique com o botão direito do mouse em qualquer lugar do diagrama e realce o item de menu Notação. Selecione qualquer uma das notações disponíveis na lista que aparece.


Você pode adicionar um título e outros detalhes ao modelo ER usando a ferramenta New Note