Skip to content

Data Warehouse para análise estratégica de peregrinação e turismo, implementado com PostgreSQL 16 e modelagem Star Schema. Projeto integrador do 3º semestre de Big Data para Negócios (FATEC) focado em automação de processos e governança de dados através de PL/pgSQL.

Notifications You must be signed in to change notification settings

Thiago-code-lab/tour4friends-analytics

Repository files navigation

Tour4Friends Banner

🌍 Tour4Friends Analytics - Data Warehouse

Typing Animation

Projeto Integrador - 3º Semestre | Curso: Big Data para Negócios | Instituição: FATEC


PostgreSQL SQL Git VS Code


📋 Sobre o Projeto

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.

🎯 Objetivos do Projeto

  • ✅ Implementar Data Warehouse com modelagem dimensional
  • ✅ Criar rotinas avançadas de automação em PL/pgSQL
  • ✅ Garantir governança e auditoria de dados
  • ✅ Facilitar análises estratégicas de Business Intelligence

-- 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


👥 Integrantes do Grupo


Membro 1
Pablo Roberto
Membro 2
Lucas Antonio
Membro 3
Thiago Cardoso
Membro 4
William Nunes
Membro 4
Murilo Santos
Membro 4
Daniel Fernando

🛠️ Tecnologias Utilizadas

PostgreSQL
PostgreSQL 16
VS Code
VS Code
Git
Git/GitHub
GitHub
GitHub

📚 Stack Técnica

Categoria Tecnologia
Banco de Dados PostgreSQL 16
Linguagem SQL (PL/pgSQL)
Modelagem Star Schema (Fatos e Dimensões)
Versionamento Git/GitHub
IDE VS Code

🚀 Funcionalidades Implementadas

Entregável de Banco de Dados - Lógica de Negócio Avançada

Conforme os requisitos do projeto integrador, foram desenvolvidas rotinas avançadas de banco de dados para suportar a inteligência de negócios.

1️⃣ Stored Procedure com Cursor Dinâmico

📌 Informações Técnicas

Nome: calcular_total_peregrinos_dinamico

Tipo: Stored Procedure com Cursor Não Vinculado (Unbound)

Parâmetros:

  • Tabela de origem
  • Campo de agrupamento
  • Campo de soma

💡 Aplicação no Negócio

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:

  • ⚡ Queries dinâmicas em tempo de execução
  • 📊 Flexibilidade analítica
  • 🎯 Decisões data-driven

🔧 Funcionalidade

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.


2️⃣ Trigger de Auditoria (Log de Segurança)

📌 Informações Técnicas

Nome: trg_vigia_peregrinos

Tabela Monitorada: fato_peregrinos_por_transporte

Eventos Capturados:

  • 🔵 INSERT
  • 🟡 UPDATE
  • 🔴 DELETE

💡 Aplicação no Negócio

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:

  • 🛡️ Rastreabilidade completa
  • 📝 Logs automáticos
  • ✅ Compliance garantido

🔧 Funcionalidade

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.


📂 Estrutura do Banco de Dados

⭐ Modelagem Star Schema

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"
Loading

▶️ Como Executar

📥 Passo 1: Clonar o Repositório

git clone https://github.com/Thiago-code-lab/tour4friends-analytics.git
cd tour4friends-analytics

🔌 Passo 2: Conectar ao Banco de Dados

Utilize o VS Code ou PgAdmin para conectar ao seu servidor PostgreSQL local.

Configuração Recomendada:

  • Host: localhost
  • Porta: 5432
  • Database: tour4friends_dw
  • User: postgres

🏗️ Passo 3: Criar a Estrutura

Execute o script table.sql para criar as tabelas e relacionamentos.

\i table.sql

⚙️ Passo 4: Criar a Lógica

Execute o script database_objects.sql para criar a Procedure e o Trigger.

\i database_objects.sql

✅ Passo 5: Testar

Execute 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

📊 Arquitetura do Projeto

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
Loading

📈 Benefícios da Implementação

🎯 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

🎓 Contexto Acadêmico

📚 Disciplina

Banco de Dados Avançado

🎯 Objetivo

Aplicação prática de conceitos de DW

⭐ Competências

PL/pgSQL, Modelagem, BI

📝 Licença e Uso

Projeto desenvolvido para fins acadêmicos - 2025

License Status Version


🌍 Tour4Friends Analytics | Transformando dados em insights estratégicos

About

Data Warehouse para análise estratégica de peregrinação e turismo, implementado com PostgreSQL 16 e modelagem Star Schema. Projeto integrador do 3º semestre de Big Data para Negócios (FATEC) focado em automação de processos e governança de dados através de PL/pgSQL.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •