Quais são as principais diferenças entre o MongoDB e o MySQL?
MySQL
O MySQL é um sistema de gerenciamento de banco de dados relacional (RDBMS) de código aberto, popular e de uso gratuito, desenvolvido pela Oracle. Assim como outros sistemas relacionais, o MySQL armazena dados usando tabelas e linhas, força a integridade referencial e usa a linguagem de query estruturada (SQL) para acesso aos dados. Quando os usuários precisam recuperar dados de um banco de dados MySQL, eles devem criar uma query SQL que una várias tabelas para criar a visualização dos dados de que precisam.
Os esquemas de banco de dados e os modelos de dados precisam ser definidos com antecedência, e os dados devem corresponder a esse esquema para serem armazenados no banco de dados. Essa abordagem rígida de armazenamento de dados oferece um certo grau de segurança, mas troca isso por flexibilidade. Se um novo tipo ou formato de dados precisar ser armazenado no banco de dados, uma migração de esquema deverá ocorrer, o que pode se tornar complexo e dispendioso à medida que o tamanho do banco de dados aumenta.
MongoDB
O MongoDB também é de uso gratuito e de código aberto; entretanto, seus princípios de design diferem dos sistemas relacionais tradicionais. Frequentemente chamado de banco de dados não relacional ou NoSQL, o MongoDB adota uma abordagem significativamente diferente para armazenar dados, representando as informações como uma série de documentos semelhantes a JSON (na verdade armazenados como JSON binário, ou BSON), em vez das tabelas e linhas dos sistemas relacionais.
No MongoDB, os documentos consistem em uma série de pares de chave/valor de tipos variados, incluindo arrays e documentos aninhados; no entanto, a principal diferença é que a estrutura dos pares de chave/valor em uma determinada coleção pode variar de documento para documento. Essa abordagem mais flexível é possível porque os documentos são autodescritivos.
