I N T R O D U Ç Ã O Modelagem de Banco de Dados Introdução e Modelo Conceitual Prof. Márcio Funes Planejamento da Aula 7 módulos · exercícios por módulo · gabaritos comentados Introdução à Modelagem de Banco de Dados 01 Por que Banco de Dados? 30 min 02 A Área de BD Hoje 20 min 03 História do Banco de Dados 25 min 04 Tipos de Banco de Dados 20 min 05 Tipos de Dados & SGBDs 25 min 06 Modelagem Conceitual & MER 40 min 07 DER · Entidades · Atrib. · Cardinalidade 40 min Por que precisamos de Banco de Dados? O Mundo sem Banco de Dados Como dados eram gerenciados antes dos BDs modernos Introdução à Modelagem de Banco de Dados Cenário Típico dos Anos 70 – 80 Uma empresa com 3 departamentos. Cada um com sua pasta de arquivos físicos. Vendas tem uma lista de clientes, Financeiro tem outra, e as duas nunca coincidem. 🔄 Redundância: Mesmo dado copiado em N lugares ❌ Inconsistência: Dados conflitantes entre arquivos 🔒 Sem controle: Qualquer pessoa modifica qualquer dado 🔍 Busca lenta: Horas procurando uma informação 💥 Fragilidade: Arquivo corrompido = dados perdidos 👥 Sem concorrência: Dois usuários editam ao mesmo tempo = conflito Com Banco de Dados Um repositório centralizado, seguro, acessível por múltiplos usuários ao mesmo tempo, com regras que garantem integridade. 🎯 Dado único: Uma fonte de verdade (Single Source of Truth) 🔐 Segurança: Controle de acesso por usuário e perfil ⚡ Performance: Consultas em milissegundos com índices 💾 Integridade: Regras e restrições garantem consistência 🔄 Transações: ACID garante operações atômicas e seguras 👥 Concorrência: Múltiplos usuários sem conflitos Banco de Dados no Seu Dia a Dia Você interage com dezenas de bancos de dados todo dia Introdução à Modelagem de Banco de Dados 📱 Celular Contatos, fotos, apps, WhatsApp — tudo armazenado em SQLite local 🏦 Banco/Fintech Cada transação, saldo e histórico é uma operação em BD de alta disponibilidade 🛒 E - commerce Catálogo, estoque, pedidos, recomendações — estruturas relacionais e NoSQL 🏥 Hospitais Prontuários, exames, agendamentos — BD com rigidez de integridade máxima 🎬 Netflix/Spotify Perfil, histórico, preferências — bancos distribuídos para bilhões de usuários 🚗 Uber/iFood Localização em tempo real, preços dinâmicos — BD de série temporal e grafos 🎓 Escola/Faculdade Alunos, notas, turmas, matrículas — modelo relacional clássico 🌐 Redes Sociais Amizades, posts, curtidas — grafos e BD documentais para escala bilionária Benefícios de um Banco de Dados Por que empresas investem em modelagem desde o início Introdução à Modelagem de Banco de Dados 🎯 Centralização Um único repositório elimina duplicatas e conflitos. Todos trabalham com a mesma informação. 🔐 Segurança & Auditoria Autenticação, controle por perfil de acesso, logs de auditoria. Quem acessou o quê e quando. ⚡ Performance Índices, cache, otimizador de consultas. Busca em milhões de registros em milissegundos. 🔗 Integridade Relacional Chaves estrangeiras, restrições, triggers. O BD garante que dados inconsistentes não entrem. 💾 Backup & Recuperação Point - in - time recovery, replicação, failover automático. Dados protegidos contra desastres. 👥 Multiusuário & Concorrência Controle de transações ACID. Múltiplos usuários sem corromper dados uns dos outros. Conceito - Chave: ACID As quatro propriedades que garantem a confiabilidade das transações Introdução à Modelagem de Banco de Dados Uma transação é qualquer operação que lê ou escreve dados no banco. O ACID garante que, mesmo com falhas, os dados permanecem ín tegros. A Atomicidade Tudo ou nada. Uma transação é executada por completo ou desfeita por completo. Se você está transferindo R$ 100 entre contas, ou o débito E o crédito acontecem, ou nenhum dos dois. Exemplo: Transferência bancária — debita conta A e credita conta B como uma única operação. C Consistência O banco vai de um estado válido a outro estado válido. Regras de negócio e restrições de integridade são sempre respeitadas durante e após qualquer transação. Exemplo: O saldo nunca pode ficar negativo se há regra proibindo isso. I Isolamento Transações concorrentes não se interferem. Cada transação opera como se fosse a única no sistema. Diferentes níveis: Read Uncommitted, Read Committed, Repeatable Read, Serializable. Exemplo: Dois caixas vendem o último produto ao mesmo tempo — apenas um vende. D Durabilidade Uma vez confirmada (commit), a transação persiste mesmo em falhas de sistema, quedas de energia ou crashes. Dados escritos em disco de forma durável. Exemplo: Após confirmar a compra, o pedido existe mesmo se o servidor cair imediatamente. A Área de Banco de Dados no Mundo Atual Banco de Dados no Mundo Atual Uma das áreas com maior demanda profissional em TI Introdução à Modelagem de Banco de Dados 402 TB de dados gerados por dia globalmente em 2025 85 % das empresas usam ≥ 1 SGBD pesquisa Gartner 2024 R$ 12 k+ salário médio DBA Sênior Brasil, glassdoor 2024 Principais Tendências em 2025 – 2026 ☁ DBaaS Database as a Service — AWS RDS, Google Cloud SQL, Azure SQL. BD gerenciado na nuvem, sem administração de servidor. 🤖 AI + BD Bancos com recursos de IA embutidos: autotuning, consultas em linguagem natural (Text - to - SQL), geração de índices automática. 🌐 Distributed DB CockroachDB, Spanner, YugabyteDB — bancos relacionais globalmente distribuídos com consistência forte. 🔥 NewSQL Une o poder do SQL com a escalabilidade do NoSQL. TiDB, PlanetScale — nova geração de bancos transacionais. Carreiras na Área de Dados Cada papel tem responsabilidades distintas — todos precisam de modelagem Introdução à Modelagem de Banco de Dados ️ DBA — Database Administrator Responsabilidades: Habilidades - chave: ▸ Instala, configura e mantém SGBDs ▸ Monitora performance e otimiza consultas ▸ Gerencia backup, recovery e segurança ▸ Cria e mantém objetos do banco (tabelas, índices, views) SQL avançado Performance tuning Backup/recovery Segurança de dados 📐 Arquiteto de Dados Responsabilidades: Habilidades - chave: ▸ Projeta a estrutura dos dados da empresa ▸ Define padrões de modelagem e governança ▸ Decide qual SGBD usar para cada contexto ▸ Cria o modelo conceitual, lógico e físico Modelagem (MER/DER) Normalização Governança de dados Arquitetura de sistemas 🔬 Data Engineer Responsabilidades: Habilidades - chave: ▸ Constrói pipelines de dados (ETL/ELT) ▸ Integra diferentes fontes de dados ▸ Mantém data warehouses e data lakes ▸ Garante qualidade e disponibilidade dos dados Python/SQL Spark, Kafka, Airflow Cloud (AWS/GCP/Azure) Modelagem dimensional 📊 Data Analyst Responsabilidades: Habilidades - chave: ▸ Extrai insights e gera relatórios ▸ Cria dashboards e visualizações ▸ Responde perguntas de negócio com dados ▸ Limpa e prepara dados para análise SQL Power BI / Tableau Excel avançado Estatística básica História do Banco de Dados Linha do Tempo: A Evolução dos BDs Dos arquivos em fita magnética à inteligência artificial Introdução à Modelagem de Banco de Dados Anos 50 Arquivos Sequenciais Fita magnética, acesso linear Anos 60 Modelo Hierárquico IMS (IBM) árvore de dados 1970 Modelo Relacional E.F. Codd (IBM) artigo fundador Anos 80 SQL & SGBDs Oracle, DB 2 SQL vira padrão Anos 90 BD Orientado Obj. OO + BD, cliente - servidor Anos 2000 NoSQL & Big Data Google, Amazon, Facebook escalam 💡 Marco: Em 1970, E.F. Codd publicou 'A Relational Model of Data for Large Shared Data Banks' — o artigo que revolucionou a compu tação. Geração 1 : Modelos Hierárquico e de Rede Antes do SQL — estruturas rígidas e navegação programática Introdução à Modelagem de Banco de Dados 🌲 Modelo Hierárquico ( 1960 s) Dados organizados em árvore. Um pai, múltiplos filhos. Sem flexibilidade. ▸ IMS da IBM ( 1966 ) — primeiro BD comercial ▸ Navegação por ponteiros físicos ▸ Estrutura rígida — alterar = reescrever o sistema ▸ Não suportava relacionamentos M:N ▸ Muito eficiente para hierarquias simples ▸ Ainda usado em mainframes bancários hoje EMPRESA ️ Modelo de Rede ( 1969 ) Evolução do hierárquico. Registros podem ter múltiplos pais. CODASYL definiu o padrão. ▸ CODASYL ( 1969 ) — padrão da indústria ▸ Suporte a relacionamentos M:N ▸ Ainda navegação por ponteiros ▸ Complexidade crescente de programação ▸ Difícil de manter e evoluir ▸ Substituído pelo modelo relacional nos anos 80 ⚠️ O grande problema: o programador precisava conhecer a estrutura física dos dados para consultá - los. Geração 2 : O Modelo Relacional E.F. Codd ( 1970 ) — a revolução que dura até hoje Introdução à Modelagem de Banco de Dados 🔷 Edgar Frank Codd — IBM ( 1970 ) Matemático britânico que definiu o modelo relacional baseado na teoria dos conjuntos e na álgebra relacional. 📄 Dados em tabelas (relações): Linhas (tuplas) e colunas (atributos) 🔑 Chaves primárias: Identificam unicamente cada linha 🔗 Chaves estrangeiras: Relacionam tabelas sem ponteiros físicos 💬 Linguagem declarativa: 'O QUÊ' buscar, não 'COMO' buscar & Álgebra relacional: Base matemática formal e sólida 13 Regras de Codd Codd definiu 13 regras que um banco deve seguir para ser verdadeiramente relacional. Nenhum BD comercial cumpre 100 % — e isso gerou críticas da indústria. Linha do Tempo SQL 1970 Codd publica o artigo fundador 1974 IBM desenvolve SEQUEL (depois SQL) 1979 Oracle lança o 1 ° SGBD comercial com SQL 1987 SQL vira padrão ISO 1992 SQL - 92 — a versão mais conhecida Geração 3 & 4 : NoSQL, Big Data e Cloud Quando o modelo relacional não era suficiente para a internet em escala Introdução à Modelagem de Banco de Dados Problema: Google, Amazon e Facebook processavam bilhões de operações/dia. Bancos relacionais não escalavam horizontalmente co m f acilidade. 🌐 2004 – 2010 A Origem do NoSQL ▸ Google BigTable ( 2004 ) — armazenamento colunar distribuído ▸ Amazon Dynamo ( 2007 ) — chave - valor para alta disponibilidade ▸ Facebook Cassandra (2008) — coluna larga para redes sociais ▸ MongoDB ( 2009 ) — BD documental com JSON nativo 💥 2010 – 2015 Big Data Explode ▸ Hadoop e MapReduce se tornam padrão ▸ Apache Spark para processamento em memória ▸ Kafka para streaming de eventos em tempo real ▸ Data Lake como conceito surge nessa época ☁️ 2015 – 2020 NewSQL & Cloud ▸ Google Spanner — SQL distribuído globalmente ▸ CockroachDB — banco relacional tolerante a falhas ▸ AWS RDS, Azure SQL, Google Cloud SQL ▸ DBaaS elimina a necessidade de DBA de infra 🤖 2020 – Hoje IA + Dados ▸ Vector databases (Pinecone, Weaviate) para IA generativa ▸ Lakehouse: Delta Lake, Apache Iceberg unificam DW e Data Lake ▸ Text - to - SQL: IA consulta BD com linguagem natural ▸ Multi - model: um BD, múltiplos paradigmas Tipos de Banco de Dados Tipos de Banco de Dados Cada paradigma resolve um problema diferente Introdução à Modelagem de Banco de Dados 📋 Relacional MySQL · PostgreSQL · Oracle · SQL Server Tabelas, linhas e colunas. SQL. Relacionamentos por chaves. Padrão corporativo há 40 anos. 📄 Documental MongoDB · CouchDB · Firestore Documentos JSON/BSON. Sem schema fixo. Ideal para dados semi - estruturados e hierárquicos. 🔑 Chave - Valor Redis · DynamoDB · Memcached Pares key - value. Extremamente rápido. Cache, sessões, filas, dados temporários. ️ Grafos Neo 4 j · ArangoDB · Neptune Nós e arestas. Relacionamentos complexos. Redes sociais, fraude, rotas, recomendações. 📊 Colunar Cassandra · HBase · BigQuery Otimizado para leitura em colunas. Big Data, analytics, data warehouses em escala. 🕒 Série Temporal InfluxDB · TimescaleDB · Prometheus Dados indexados por tempo. IoT, monitoramento de infraestrutura, métricas de negócio. Relacional vs. NoSQL Escolha baseada no problema, não em modismo Introdução à Modelagem de Banco de Dados Critério Banco Relacional NoSQL Estrutura Schema fixo (tabela/coluna) Schema flexível ou ausente Linguagem SQL padronizado Varia por BD (API, drivers) Escalabilidade Vertical (servidor maior) Horizontal (mais servidores) Consistência ACID forte Eventual (BASE em geral) Relacionamentos Chaves estrangeiras, JOINs Denormalização, embedding Casos de uso Transações, ERP, CRM, dados estruturados Big Data, redes sociais, cache, IoT Exemplos PostgreSQL, Oracle, MySQL MongoDB, Redis, Cassandra, Neo 4 j Quando Usar Cada Tipo de BD Árvore de decisão prática para escolha de tecnologia Introdução à Modelagem de Banco de Dados Tenho dados bem estruturados com relacionamentos entre entidades? SIM → Relacional Dados são documentos independentes com estrutura variável? SIM → Documental (MongoDB) Preciso de cache ultra - rápido ou sessões de usuário? SIM → Chave - Valor (Redis) Os relacionamentos são o dado mais importante (grafos sociais)? SIM → Grafos (Neo 4 j) São métricas coletadas ao longo do tempo (IoT, monitoring)? SIM → Série Temporal (InfluxDB) São analytics em escala de petabytes? SIM → Colunar (BigQuery, Cassandra) Tipos de Dados & SGBDs