Jump to content
  • 0
MarKteus

É possivel transformar um banco de dados relacional em NoSQL ?

Question

É possivel transformar um banco de dados relacional em NoSQL ?

Existem alguma ferramenta que ajude nessa empreitada ?

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 1

É e não é... Na verdade são dois conceitos meio diferentes, um banco de dados relacional é, na verdade, um sistema que possui uma estrutura de dados capaz de relacionar tabelas e entidades. Um NoSQL em essência, é a mesma coisa, só que esse relacionamento é inexistente, portanto fica a cargo do programador incluir as regras de consistência de dados dentro do software.

Para usar um banco NoSQL a partir de um banco relacional comum, eu aconselharia que você revisasse sua aplicação. Porque, no caso do mongo, por exemplo, toda a estrutura dele é baseada em documentos, estes documentos são como se fossem registros em uma tabela (collection), mas os relacionamentos entre eles não é explicito e também não é verificado, então você precisa garantir toda a integridade relacional manualmente.

  • +1 1

Share this post


Link to post
Share on other sites
  • 0

1) Sim, é possível. Como você não citou qual banco utiliza e para qual banco deseja migrar, veja um exemplo nesta URL oficial do MongoDB https://www.mongodb.com/compare/mongodb-mysql

2) Desconheço ferramenta pra este propósito. Como foi falado são conceitos diferentes e mesmo que você já conheça NoSQL, você terá que entender as particularidades de cada banco NoSQL, para depois escolher a melhor opção para sua aplicação.

 

Share this post


Link to post
Share on other sites
  • 0

Podemos transformar qualquer coisa que queiramos em qualquer outra coisa que queiramos; o ponto é: o que queremos?

 

Quando falamos sobre transformar uma base relacional numa não relacional, precisamos, obviamente, de um caso de uso que justifique. Precisamos desse caso de uso porque existem bases não relacionais baseadas em chave=valor, colunas, documentos, grafos, etc; mas o ponto mais importante, e certamente o mais relevante, é que NoSQL traduz-se como Não Apenas SQL, com uma ênfase enorme ao não apenas.

 

Por exemplo, aqui no fórum, estamos usando MySQL com Redis e fazendo jus ao "não apenas": o que é relacional, fica na base relacional; o que é chave=valor, fica no Redis - antes usávamos Memcached para isso.

 

Então,  qual o caso de uso que justifica essa sua transformação?

 

Você analisou todos os cenários e variáveis antes de chegar à conclusão de que você realmente tem um caso onde uma base não relacional é melhor do que uma base relacional?

  • +1 2

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By giovannaalves
      Apareceu esse erro na página para retornar os dados do tabela do banco de dados:
      Fatal error: Call to a member function query() on a non-object in /home/storage/e/e6/47/grupoct/public_html/rondact/ronda2.php on line 4
       
      Meu código:
      <?php
          include("conexao.php");
          $consulta = "SELECT * FROM TAG_LIDA";
          $con = $mysqli->query($consulta) or die($mysqli->error);
          
      ?>
      <html>
          <head>
              <meta charset="utf-8">
          </head>
          <body>
              <table border="1">
                  <tr>
                      <td>Código posto</td>
                      <td>Data</td>
                      <td>Hora</td>
                      <td>Nome posto</td>
                      <td>Tag</td>
                  </tr>
                  <?php while($dado = $con->mysql_fetch_array()){ ?>
                  <tr>
                      <td><?php echo $dado["TAG_COD_POSTO"]; ?></td>
                      <td><?php echo date("d/m/Y", strtotime( $dado["TAG_DATA"])); ?></td>
                      <td><?php echo $dado["TAG_HORA"]; ?></td>
                      <td><?php echo $dado["TAG_NOME_POSTO"]; ?></td>
                      <td><?php echo $dado["TAG_TAG"]; ?></td>
                  </tr>
                  <?php } ?>
              
              </table>
          </body>
      </html>
    • By giovannaalves
      Apareceu esse erro na página para retornar os dados do tabela do banco de dados:
      Fatal error: Call to a member function query() on a non-object in /home/storage/e/e6/47/grupoct/public_html/rondact/ronda2.php on line 4
       
      Meu código:
      <?php
          include("conexao.php");
          $consulta = "SELECT * FROM TAG_LIDA";
          $con = $mysqli->query($consulta) or die($mysqli->error);
          
      ?>
      <html>
          <head>
              <meta charset="utf-8">
          </head>
          <body>
              <table border="1">
                  <tr>
                      <td>Código posto</td>
                      <td>Data</td>
                      <td>Hora</td>
                      <td>Nome posto</td>
                      <td>Tag</td>
                  </tr>
                  <?php while($dado = $con->mysql_fetch_array()){ ?>
                  <tr>
                      <td><?php echo $dado["TAG_COD_POSTO"]; ?></td>
                      <td><?php echo date("d/m/Y", strtotime( $dado["TAG_DATA"])); ?></td>
                      <td><?php echo $dado["TAG_HORA"]; ?></td>
                      <td><?php echo $dado["TAG_NOME_POSTO"]; ?></td>
                      <td><?php echo $dado["TAG_TAG"]; ?></td>
                  </tr>
                  <?php } ?>
              
              </table>
          </body>
      </html>
    • By Carlos Filipe
      Olá pessoal,
       
      Sou um iniciante em programação, estou criando um projeto onde preciso de 2 sites.
      Para um usuário usar os dois sites é preciso ser cadastrado.
      Preciso muito saber como fazer que ( apenas 01 formulário de cadastro ) cadastre meus usuários em 02 sites.
       
      Obs:
       
      Os campos a serem preenchidos são:
       
      Nome
      E-mail
      Senha
      repetir senha
      Aceitar os termos
       
       
      Obrigado.
       
       
       
       
    • By thiamatte
      pesquisei muito e não consegui encontrar a solução para o meu problema, alguém poderia me ajudar.
      tenho um BD carro, BD opcionais e um BD (cod_carro e cod_opcional).
      cadastro todos os opcionais e quando vou cadastrar os carros carrega os checkbox vindos do BD e gravo até aí tudo normal e funcionando, o problema é quando eu quero editar o carro, não consigo trazer ticado os opcionais já cadastrados no BD, segue o código:
       
      $Opcional = $conn->query ("SELECT * FROM opcional ORDER BY opcional ASC");
      $CarroOpcional = $conn->query ("SELECT * FROM carro_opcional, opcional WHERE carro_opcional.cod_carro = '$cod_carro' AND carro_opcional.cod_opcional = opcional.cod_opcional");

      $row_CarroOpcional = $CarroOpcional->fetch( PDO::FETCH_ASSOC );
       
      <?
      while ($row_Opcional = $Opcional->fetch(PDO::FETCH_ASSOC)) {
           foreach($row_CarroOpcional as $row => $cod_opcional) {
                if ($cod_opcional === $row_Opcional['cod_opcional']) {
                     $opcional_selecionado = "checked";
                }
           } ?>
      <input name="cod_opcional[]" type="checkbox" id="cod_opcional" value="<? echo $row_Opcional['cod_opcional']; ?>" <? echo $opcional_selecionado; ?>><? echo $row_Opcional['opcional']; ?>
      <? } ?>
       
      Desde já agradeço a ajuda
    • By pedrohsantis
      Bom dia, estou com a seguinte dúvida, sou novo no "Mundo php" então ainda estou apanhando.

      Preciso criar um sistema simples, porém que ele faça o seguinte.
      Importe um relatório xlsx , que eu abra ele consigo editar se precisar.
      Após isso, preciso gerar um novo relatório porém com nome campos diferentes.
      Assim, temos um sistema hoje, porem ele gera um relatorio no qual os campos são diferentes no SAP, e não é necessário de todos os campos que o outro sistema gera , porém para ganharmos tempo , eu tive a ideia de criar tipo de um "conversor" para essa finalidade, importar o relatorio de um sistema, filtrar os campos que serão necessario para o SAP e exportar para o SAP.
       
       
      é possível criar algo assim ?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.