Base de Dados, 2017/2018

Índice


Professores

Descrição e objectivos da disciplina

Esta disciplina aborda técnicas de análise e modelação de bases de dados e o uso de sistemas de gestão de base de dados (SGBDs) para o desenvolvimento de aplicações. Iremos aprender a fazer modelos conceptuais de dados usando UML. Estudaremos o modelo relacional, e a conversão de um modelo conceptual para o modelo relacional. Irá ser dado ênfase a linguagens de manipulação de dados, quer abstractas (álgebra relacional) quer concretas (SQL). A linguagem SQL é um standard para definir e manipular informação em bases de dados e irá ter uma cobertura extensiva. Veremos também como desenvolver aplicações utilizando SQL juntamente com uma linguagem de programação tradicional. Iremos também aprender noções sobre bases de dados semi-estruturadas.

Programa resumido

Bibliografia

O livro de texto recomendado é,

Livros em português para quem não esteja à vontade na língua inglesa,

Regras de avaliação

Trabalho prático 30%
Exame final 70%

É necessário uma nota não inferior a 7,0 valores no trabalho prático para serem admitidos a exame final. Arredondamentos só na nota final.

O trabalho prático é feito individualmente ou em grupo de 2 pessoas. O trabalho é composto por várias partes, cada qual com o seu prazo de entrega. Cada parte corresponde a uma tarefa necessária para o desenvolvimento de uma aplicação suportada por uma base de dados. A nota prática do grupo é convertida numa nota prática individual no momento da discussão dos trabalhos (que ocorrerá na última semana de aulas).


Aulas

aula data tópico slides
1 12/Set Introdução (PDF)
2 13/Set Modelação de dados com UML (PDF)
3 19/Set
4 26/Set
5 27/Set Modelo Relacional (PDF)
6 28/Set Conversão de UML para o modelo relacional (PDF)
7 03/Out Dependências Funcionais (PDF)
8 04/Out
9 10/Out Forma Normal de Boyce-Codd (BCNF), 3ª Forma Normal (3NF) (PDF)
10 11/Out
11 17/Out Álgebra Relacional (PDF)
12 18/Out
13 24/Out
14 25/Out SQL: Interrogações simples
SQL: Comandos de criação de tabelas. Inserção, remoção e actualização de tuplos
(PDF)
(PDF)
15 31/Out Breve introdução ao PostgreSQL e MySQL. Exemplos.  
16 07/Nov SQL: Joins e operações sobre conjuntos.
Lógica a 3 valores, joins explícitos
(PDF)
(PDF)
17 08/Nov
18 14/Nov SQL: Subqueries (PDF)
19 15/Nov SQL: Agregações (PDF)
20 21/Nov SQL: Vistas, índices, autorização, restrições (PDF)
21 22/Nov
22 28/Nov Programação em Java juntamente com SQL (PDF)
Exemplos
23 29/Nov Triggers e Regras (PDF)
24 05/Dez
25 06/Dez Transacções (PDF)
25 12/Dez

Aulas práticas

aula data tópico exercícios soluções Gradience
class token: E68759F1
1 18-22/Set Modelação de dados com UML (PDF) (PDF)  
2 25-29/Set Modelação de dados com UML (PDF) (PDF) HW 04E - UML
3 02-06/Out Conversão de UML para modelo relacional (PDF) (PDF) HW 02A - Relational Model
4 09-13/Out Dependências funcionais, BCNF, 3NF (PDF) (PDF) HW 03A - Functional Dependencies: Keys
HW 03B - Functional Dependency Inference
HW 03D - Normalization
5 16-20/Out
6 23-27/Out Álgebra relacional (PDF) (PDF) HW 02B - Classical Relational Algebra
HW 05A - Bag Relational Algebra
HW 05B - Relational Algebra: Extended Operations
7 30-03/Nov
8 06-10/Nov Familiarização com PostgreSQL ou MySQL (HTML)    
9 13-17/Nov SQL (HTML)   HW 06A - Basic SQL
HW 06B - NULL Values
10 20-24/Nov SQL Gradiance   HW 06C - Grouping and Aggregation
HW 06D - Duplicates
HW 06E - Order-By
HW 06F - Outer Join
HW 06G - Subqueries
Lab Project 1
Lab Project 2
Lab Project 3
Lab Project 4
Lab Project 5
Lab Project 6
Lab Project 7
11 27-30/Nov
12 04-08/Dez SQL Gradiance   HW 08 - Views
HW 07 - Constraints and Triggers

Gradiance

Gradiance é um sistema online que permite a realização de exercícios e receber feedback imediato. A grande vantagem deste sistema é que o feedback não é um simples certo ou errado: quando erram o sistema dá dicas sobre o erro cometido. O sistema é muito bom e é uma excelente ajuda para a aprendizagem da matéria de base de dados.

Recomendo que consultem http://infolab.stanford.edu/~ullman/pub/stud-guide.html e sigam as indicações que lá estão. Depois de criarem uma conta devem fazer login e fazer 'Sign up' usando o Class Token correspondente à matéria de Base de Dados: E68759F1.

Depois de fazerem o 'Sign up' podem fazer uma série de 'Homeworks' e 'Labs'.

Links para SGBDs gratuitos

Trabalho prático