-
Notifications
You must be signed in to change notification settings - Fork 11
Documento de Arquitetura do Banco de Dados
Para o funcionamento correto da aplicação o dados requisitados da API dos Mapas Culturais passam para o Django que salva essas dados no MongoDB, eles são passadas para o metabase para que possa ser criados os gráficos e dados da plataforma, essas informações são salvas no Postgres.
Figura 1 - Diagrama de camadas
Com a figura 1 é possível ver o fluxo de trabalho.
As models são os locais onde é feito a modelagem e a persistência dos dados. Como o mongoDB não possui esquemas então é possível fazer a remodelagem dos dados quando necessário, por isso usamos a mongoenine que faz com que classes das models se tornem uma coleção.
A camada views é responsável por popular o banco, para que as informações da página estejam sempre atualizadas é necessário que o celery faça periodicamente a chamada da função que popula o banco com os novos registros e atualizações da plataforma, assim o site se mantém atualizado.
ORM (object relational mapping) é uma técnica utilizada para automatizar a transferência de dados, transformando classes em tabelas e os objetos em uma tupla do banco de dados. As vantagens do ORM está no poder de abstração, pois permite o programador desenvolver em python e não se preocupar com as instruções SQL.
O mongo engine é uma Object-Document Mapper, é como uma ORM porém é usada para banco de dados orientados a documentos, o mongoDB não precisa de esquemas, ou seja você pode adicionar ou remover campos sem que o banco de erros. Do mesmo jeito de uma ORM o mongoengine cria "documentos" de acordo com a classe e esses dados são salvos em coleções. A grande facilidade de usar uma ORM é que não é passado nenhum esquema para o banco, será tudo modelado no nível de aplicação.
Mongo DB é um banco de dados orientado a documentos, isso quer dizer que o banco não usa esquemas, e sim coleções e documentos. Um documento guarda todas as informações de um objeto em uma única instancia, em vez de separar em tabelas como bancos relacionais, outra diferença do mongo e outros bancos não relacionais é que ele guarda os dados em um formato de json, chave e valor.
- Visão Geral
- Políticas do Repositório
- Licença
- Copyleft
- Notas sobre a Release
- Contatos
- Atas de Reunião
- Apresentação R1
- Acesse a plataforma
- Link Alternativo
- Post mortem