Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Wiki Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Painel de Dados Nubo
  • WikiWiki
  • Wiki
  • Banco de Dados

Banco de Dados · Changes

Page history
Update Banco de Dados authored Jun 14, 2025 by Luana Farias da Silva's avatar Luana Farias da Silva
Hide whitespace changes
Inline Side-by-side
Banco-de-Dados.md
View page @ 15371405
...@@ -233,19 +233,129 @@ Armazena as faturas geradas para cada transação. Cada fatura está vinculada a ...@@ -233,19 +233,129 @@ Armazena as faturas geradas para cada transação. Cada fatura está vinculada a
### **Dataset** ### **Dataset**
Representa um dataset disponível para assinatura, contendo metadados como origem, preço e categoria. ### Descrição
Armazena os conjuntos de dados fornecidos por diferentes provedores. Cada dataset pertence a um provedor de dados e está vinculado diretamente a um único produto de dados publicado no sistema.
### Estrutura da Tabela
| Coluna | Tipo | Chave | Restrições | Descrição |
|------------------|-----------|------------|----------------------------------------|--------------------------------------------------------------|
| `id` | `String` | Primária | Gerado via `UUID`, `NOT NULL` | Identificador único do dataset. |
| `data_provider_id`| `String` | Estrangeira| `ForeignKey(data_provider.id)` | Identifica o provedor de dados responsável. |
| `category` | `String` | — | `NOT NULL` | Categoria do dataset (ex: saúde, educação, clima, etc). |
| `is_active` | `Boolean` | — | `DEFAULT True` | Indica se o dataset está ativo no sistema. |
| `created_at` | `TIMESTAMP`| — | `NOT NULL` | Data de criação do registro. |
| `updated_at` | `TIMESTAMP`| — | `NOT NULL` | Data da última atualização do registro. |
### Relacionamentos
- `data_product`: relacionamento com a tabela `data_product`, vinculando o dataset ao produto publicado. O uso de `uselist=False` indica uma relação de **um para um**.
---
### **DataSource** ### **DataSource**
Define a fonte de onde os datasets são obtidos, associando-os a provedores de dados. ### Descrição
Representa as fontes físicas ou virtuais de onde os dados são originados por um provedor de dados. Cada fonte contém informações de localização geográfica e está vinculada a um provedor.
> ⚠️ **Nota**: A tabela define tanto `id` quanto `data_provider_id` como chaves primárias, o que cria uma chave primária composta. Verifique se essa é realmente a intenção, pois normalmente apenas `id` é suficiente como chave primária única.
### Estrutura da Tabela
| Coluna | Tipo | Chave | Restrições | Descrição |
|-------------------|-----------|---------------|----------------------------------|-----------------------------------------------------------------|
| `id` | `String` | Primária | Gerado via `UUID`, `NOT NULL` | Identificador único da fonte de dados. |
| `data_provider_id`| `String` | Primária/Estrangeira | `UUID`, `NOT NULL` | Identificador do provedor de dados (relacionamento pendente). |
| `created_at` | `TIMESTAMP`| — | `NOT NULL` | Data de criação do registro. |
| `updated_at` | `TIMESTAMP`| — | `NOT NULL` | Data da última atualização do registro. |
| `is_active` | `Boolean` | — | `DEFAULT True` | Indica se a fonte está ativa. |
| `location` | `String` | — | `NOT NULL` | Descrição do local da fonte (ex: cidade, servidor, etc.). |
| `latitude` | `String` | — | `NOT NULL` | Latitude geográfica. |
| `longitude` | `String` | — | `NOT NULL` | Longitude geográfica. |
### Relacionamentos
- A coluna `data_provider_id` **deveria** referenciar a tabela `data_provider`. O relacionamento está comentado no código, mas pode ser reativado se necessário:
```python
data_provider = relationship("DataProvider", back_populates="data_sources")
### **DataProvider** ### **DataProvider**
Representa uma entidade que fornece datasets para a plataforma. ### Descrição
Armazena os provedores de dados responsáveis por publicar e manter datasets na plataforma. Cada provedor está vinculado a uma conta do sistema e pode ter múltiplas fontes de dados (data sources) e datasets associados.
### Estrutura da Tabela
| Coluna | Tipo | Chave | Restrições | Descrição |
|--------------|----------|------------|-------------------------------------|--------------------------------------------------------------------|
| `id` | `String` | Primária | `UUID`, `INDEX`, `NOT NULL` | Identificador único do provedor de dados. |
| `name` | `String` | — | `NOT NULL` | Nome do provedor de dados. |
| `account_id` | `String` | Estrangeira| `ForeignKey(account.id)`, `NOT NULL`| Conta responsável pelo provedor. |
| `created_at` | `String` | — | `NOT NULL` | Data de criação do registro (⚠️ Armazenado como string). |
| `updated_at` | `String` | — | `NOT NULL` | Data da última atualização do registro (⚠️ Armazenado como string).|
### Observações
- Os campos `created_at` e `updated_at` estão definidos como `String`, mas é comum que campos de data utilizem `DateTime` ou `TIMESTAMP`. Verifique se essa decisão é proposital ou se houve um equívoco.
### Relacionamentos Sugeridos
- Pode conter relacionamento com:
- `Account`: a conta dona do provedor.
- `Dataset`: datasets publicados por este provedor.
- `DataSource`: fontes associadas ao provedor.
---
### **DataProduct** ### **DataProduct**
Define um conjunto de datasets agrupados em um produto de dados que pode ser adquirido como uma unidade. ### Descrição
Armazena os produtos de dados disponíveis na plataforma, os quais são baseados em datasets fornecidos por provedores. Cada produto contém informações detalhadas como localização, descrição, preço e está vinculado a um dataset.
### Estrutura da Tabela
| Coluna | Tipo | Chave | Restrições | Descrição |
|---------------|-----------|------------|---------------------------------------|------------------------------------------------------------------------|
| `id` | `String` | Primária | `UUID`, `NOT NULL`, `DEFAULT uuid4()` | Identificador único do produto de dados. |
| `dataset_id` | `String` | Estrangeira| `ForeignKey(dataset.id)`, `NOT NULL` | Referência ao dataset que originou o produto. |
| `location_x` | `Numeric` | — | `NOT NULL` | Coordenada X da localização associada ao produto. |
| `location_y` | `Numeric` | — | `NOT NULL` | Coordenada Y da localização associada ao produto. |
| `name` | `String` | — | `NOT NULL` | Nome do produto de dados. |
| `description` | `String` | — | `NOT NULL` | Descrição detalhada do conteúdo do produto. |
| `price` | `Numeric` | — | `NOT NULL` | Preço do produto, usado nas transações. |
| `created_at` | `TIMESTAMP`| — | `NOT NULL` | Data de criação do registro. |
| `updated_at` | `TIMESTAMP`| — | `NOT NULL` | Data da última atualização do registro. |
### Relacionamentos
- `subscriptions`: lista de assinaturas atreladas ao produto de dados.
- `dataset`: vínculo com o dataset que deu origem a este produto (relacionamento de muitos para um).
---
### **DataProductItem** ### **DataProductItem**
Relaciona datasets individuais a um data product, permitindo composição flexível de pacotes de dados. ### Descrição
Relaciona um produto de dados a múltiplos datasets, permitindo que um único `data_product` seja composto por diversos `dataset`s. Serve como uma tabela de associação (join table) entre `data_product` e `dataset`.
### Estrutura da Tabela
| Coluna | Tipo | Chave | Restrições | Descrição |
|------------------|------------|------------|-----------------------------------------|----------------------------------------------------------------------------|
| `id` | `String` | Primária | `UUID`, `NOT NULL` | Identificador único da associação entre o produto e o dataset. |
| `data_product_id`| `String` | Estrangeira| `ForeignKey(data_product.id)`, `NOT NULL`| Produto de dados relacionado. |
| `dataset_id` | `String` | Estrangeira| `ForeignKey(dataset.id)`, `NOT NULL` | Dataset que faz parte do produto de dados. |
| `created_at` | `TIMESTAMP`| — | `NOT NULL` | Data de criação do registro. |
| `updated_at` | `TIMESTAMP`| — | `NOT NULL` | Data da última atualização do registro. |
### Observações
- Esta tabela implementa uma relação **muitos-para-muitos** entre `data_product` e `dataset`, permitindo reuso de datasets em diferentes produtos.
- Pode ser estendida com metadados adicionais no futuro, caso necessário (por exemplo, ordem de inclusão ou tags específicas por item).
---
## Regras de Integridade e Constraints ## Regras de Integridade e Constraints
- Todas as chaves primárias são UUIDs para garantir unicidade. - Todas as chaves primárias são UUIDs para garantir unicidade.
......
Clone repository
  • Arquitetura
  • Banco de Dados
  • Gerência
  • Mockups
  • Processos
  • Sprints
  • Testes
  • Home