Banco de Dados I

Horário

Terça e Quinta, 7h30–9h10.

Ferramentas

Modelagem Entidade-Relacionamento

Usaremos o BRModelo Web para criar diagramas ER. A ferramenta é gratuita, roda no navegador e usa a notação adotada no livro do Heuser (referência da disciplina).

Aulas e exercícios

Usaremos o DB Fiddle para praticar SQL diretamente no navegador, sem necessidade de instalação. Selecione PostgreSQL no menu superior antes de executar as queries.

Projeto de Disciplina

O projeto será desenvolvido no Supabase. Cada grupo deve criar uma conta gratuita, criar um projeto e usar o SQL Editor integrado para desenvolver e testar o banco de dados. O Supabase fornece um PostgreSQL completo com interface visual, similar ao pgAdmin.

Objetivo

Introduzir os fundamentos que permitam ao aluno adquirir o domínio básico da tecnologia de banco de dados.

Ementa

Conceitos básicos de banco de dados. Modelos de dados e linguagens. Projeto de bancos de dados. Novas tecnologias e aplicações de banco de dados.

Bibliografia

  • HEUSER, Carlos Alberto. Projeto de Banco de Dados. 2a edição. Porto Alegre: Sagra - Luzzato, 1999.
  • SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de Banco de Dados. 3a edição. São Paulo: Markon Books, 1999.

Material extra

Avaliação

  1. Prova (P1): 25 pontos
  2. Atividade Prática (AP): 25 pontos
  3. Projeto de Disciplina (PD): 50 pontos
    • Entrega Parcial 1 (EP1): 10 pontos
    • Entrega Parcial 2 (EP2): 15 pontos
    • Apresentação Final: 25 pontos

Projeto de Disciplina (PD)

Grupos de 3–4 pessoas. Cada grupo escolhe um domínio de aplicação (sistema hospitalar, escola, e-commerce, delivery, etc.) e desenvolve um banco de dados completo ao longo do semestre.

Entregas:

  • EP1 (02/07): Diagrama ER + scripts DDL funcionando no SGBD
  • EP2 (14/07): Banco populado com dados consistentes + conjunto de consultas SQL (mínimo 10 queries cobrindo SELECT, JOIN, GROUP BY e subquery)
  • Apresentação Final (16–23/07): Demonstração ao vivo do banco, explicação das decisões de modelagem e consultas desenvolvidas

Atividades Assíncronas

Nas semanas sem aula, os alunos devem realizar as seguintes atividades:

  • Semana de 14–16/04 (viagem): Modelagem ER — escolher um sistema do cotidiano e modelar entidades, atributos e relacionamentos usando BRModelo ou draw.io. Entrega: 23/04.
  • 21/04 (Tiradentes): Quiz online de normalização — 10 questões sobre dependências funcionais e formas normais. Entrega: 23/04.
  • Semana de 28–30/04 (viagem): Exercício escrito de normalização — dado um esquema desnormalizado, normalizar até 3FN mostrando cada passo. Entrega: 05/05.

Cronograma

Passível de alterações.

# Data Dia Conteúdo
1 31/03 Ter Apresentação da disciplina. O que é BD? SGBD, modelos de dados, arquitetura em 3 níveis
2 02/04 Qui MER: entidades, atributos, relacionamentos, cardinalidade, participação
3 07/04 Ter MER: entidades fracas, generalização/especialização. Exercícios de modelagem
4 09/04 Qui Modelo Relacional: mapeamento MER→Relacional. Normalização (1FN, 2FN, 3FN)
14/04 Ter VIAGEM — SEM AULA (atividade assíncrona)
16/04 Qui VIAGEM — SEM AULA (atividade assíncrona)
21/04 Ter TIRADENTES — SEM AULA (atividade assíncrona)
P1 23/04 Qui Avaliação 1 — MER, Modelo Relacional, Normalização
28/04 Ter VIAGEM — SEM AULA (atividade assíncrona)
30/04 Qui VIAGEM — SEM AULA (atividade assíncrona)
5 05/05 Ter Introdução ao SQL. DDL: CREATE TABLE, tipos de dados, constraints (PK, FK, NOT NULL, UNIQUE, CHECK)
6 07/05 Qui DDL: ALTER TABLE, DROP TABLE. Laboratório prático
7 12/05 Ter DML: INSERT, UPDATE, DELETE. Transações básicas: COMMIT, ROLLBACK
8 14/05 Qui Laboratório: criação completa de um banco (DDL + DML com dados reais)
9 19/05 Ter SELECT: WHERE, ORDER BY, LIMIT. Funções escalares básicas
10 21/05 Qui SELECT: Funções de agregação (COUNT, SUM, AVG). GROUP BY e HAVING
11 26/05 Ter JOINs: INNER JOIN, LEFT JOIN, RIGHT JOIN. Exercícios com múltiplas tabelas
12 28/05 Qui Laboratório de consultas: exercícios progressivos cobrindo tudo até aqui
AP 02/06 Ter Atividade Prática — DDL, DML, SELECT, JOINs
04/06 Qui CORPUS CHRISTI — SEM AULA
13 09/06 Ter Subqueries (IN, EXISTS). Views. CTEs básicas
14 11/06 Qui Índices: conceito e criação. Transações: ACID em profundidade
15 16/06 Ter Revisão geral + tirar dúvidas antes do projeto
16 18/06 Qui Kickoff do Projeto: formação de grupos, escolha de tema, entrega de proposta
17 23/06 Ter Orientação: modelagem ER
18 25/06 Qui Orientação: modelo relacional + normalização do esquema
19 30/06 Ter Orientação: DDL — criação das tabelas no SGBD
EP1 02/07 Qui Entrega Parcial 1: diagrama ER + scripts DDL funcionando
20 07/07 Ter Orientação: DML — população do banco com dados consistentes
21 09/07 Qui Orientação: consultas SQL (relatórios, filtros, JOINs)
EP2 14/07 Ter Entrega Parcial 2: banco com dados + conjunto de consultas funcionando
22 16/07 Qui Apresentações — Grupos 1 e 2
23 21/07 Ter Apresentações — Grupos 3 e 4
24 23/07 Qui Apresentações — Grupos 5 e 6 + encerramento

Entrega atrasada

Entregas de trabalhos após o prazo serão aceitas mas os pontos referentes não serão contabilizados.

Política de plágio

Todos os trabalhos (a não ser que indicados explicitamente) devem ser feitos em grupo conforme definido. O que você entregar deve ser fruto do trabalho do grupo. Grupos são permitidos e encorajados a discutir ideias com outros grupos. Grupos não são permitidos copiar solução ou parte de solução de outros grupos. Na presença de plágio, os grupos envolvidos não receberão pontos da atividade em questão.