Base de Dados, 2018/2019

Índice


Professor

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

Aulas práticas

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

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

Trabalho prático

Links para SGBDs gratuitos