|
Este repositório contém a implementação do Data Warehouse (DW) para a empresa Tour4Friends. O objetivo do projeto é estruturar dados de peregrinação e turismo para permitir análises estratégicas sobre fluxo de pessoas, modalidades de transporte e sazonalidade. O foco deste entregável é a implementação de Lógica de Negócio no Banco de Dados (PL/pgSQL), garantindo automação, consistência e auditoria dos dados diretamente na camada de armazenamento.
|
-- Data-Driven
SELECT decision
FROM analytics
WHERE quality = 'HIGH'
AND automation = TRUE
AND governance = TRUE;🏗️ Arquitetura Star Schema ⭐ 🔐 Segurança Auditoria Completa ⚡ Performance Queries Otimizadas |
|
PostgreSQL 16 |
VS Code |
Git/GitHub |
GitHub |
| Categoria | Tecnologia |
|---|---|
| Banco de Dados | PostgreSQL 16 |
| Linguagem | SQL (PL/pgSQL) |
| Modelagem | Star Schema (Fatos e Dimensões) |
| Versionamento | Git/GitHub |
| IDE | VS Code |
Conforme os requisitos do projeto integrador, foram desenvolvidas rotinas avançadas de banco de dados para suportar a inteligência de negócios.
|
Nome: Tipo: Stored Procedure com Cursor Não Vinculado (Unbound) Parâmetros:
|
Permite aos analistas de dados gerar relatórios rápidos sobre quais modais (Bicicleta, A pé, etc.) estão sendo mais utilizados, facilitando o direcionamento de investimentos em infraestrutura. Benefícios:
|
Percorre a tabela de fatos utilizando um cursor não vinculado (unbound) e executa uma query dinâmica. Permite calcular a soma total de peregrinos agrupada por qualquer dimensão escolhida em tempo de execução (ex: agrupar por Tipo de Transporte ou por Mês), sem necessidade de reescrever o código SQL.
|
Nome: Tabela Monitorada: Eventos Capturados:
|
Garante a Governança de Dados. Evita que números históricos de peregrinos sejam alterados acidentalmente ou maliciosamente sem deixar rastros, assegurando a confiabilidade dos dashboards gerenciais. Benefícios:
|
Monitora eventos de INSERT, UPDATE e DELETE na tabela principal de fatos. Sempre que um dado financeiro ou de contagem é alterado, o trigger dispara automaticamente e grava uma cópia dos dados originais e dos novos dados em uma tabela de histórico (Log_Auditoria_Peregrinos), junto com o usuário e data da alteração.
| Tipo | Nome da Tabela | Descrição |
|---|---|---|
| 🎯 Fato | fato_peregrinos_por_transporte |
Registra a quantidade de peregrinos |
| 📊 Dimensão | dim_transporte |
Modalidades: A pé, Bicicleta, Cavalo, etc. |
| 📊 Dimensão | dim_tempo |
Sazonalidade: Ano, Mês, Estação |
| 🔐 Auxiliar | log_auditoria_peregrinos |
Tabela criada automaticamente para logs |
erDiagram
FATO_PEREGRINOS ||--o{ DIM_TRANSPORTE : "fk_transporte"
FATO_PEREGRINOS ||--o{ DIM_TEMPO : "fk_tempo"
FATO_PEREGRINOS ||--o{ LOG_AUDITORIA : "monitora"
git clone https://github.com/Thiago-code-lab/tour4friends-analytics.git
cd tour4friends-analyticsUtilize o VS Code ou PgAdmin para conectar ao seu servidor PostgreSQL local.
Configuração Recomendada:
- Host:
localhost - Porta:
5432 - Database:
tour4friends_dw - User:
postgres
Execute o script table.sql para criar as tabelas e relacionamentos.
\i table.sqlExecute o script database_objects.sql para criar a Procedure e o Trigger.
\i database_objects.sqlExecute o comando para testar a stored procedure:
CALL calcular_total_peregrinos_dinamico(
'fato_peregrinos_por_transporte',
'fk_transporte',
'qtd_peregrinos'
);Saída Esperada:
✓ Query executada com sucesso
✓ Totais calculados por modalidade de transporte
✓ Resultados agrupados e ordenados
graph TD
A[Dados Brutos] --> B[ETL Process]
B --> C[Data Warehouse]
C --> D[Fatos]
C --> E[Dimensões]
D --> F[BI Analytics]
E --> F
D --> G[Auditoria]
style C fill:#667eea
style F fill:#764ba2
style G fill:#f093fb
| 🎯 Aspecto | 📊 Benefício |
|---|---|
| Performance | Consultas otimizadas com índices estratégicos |
| Automação | Processos automáticos com triggers e procedures |
| Governança | Auditoria completa de todas as operações |
| Escalabilidade | Arquitetura preparada para crescimento |
| Confiabilidade | Logs detalhados para troubleshooting |
| Banco de Dados Avançado | Aplicação prática de conceitos de DW | PL/pgSQL, Modelagem, BI |



