Enquadramento
Objectivos
Fornecer aos alunos os conceitos fundamentais da teoria e prática de
bases de dados como sistemas de manipulação de grandes quantidades de
informação.
Programa
- Conceitos Básicos
Características e vantagens da
abordagem de base de dados. Funcionalidades típicas de um
SGBD. Fases do desenho de uma base de dados.
- Os Modelos ER e EER
O modelo ER: entidades tipo,
entidades fracas, atributos, relacionamentos e chaves. O modelo
EER: subclasses, superclasses, especialização, generalização e
categorias. Diagramas ER e EER.
- O Modelo Relacional
Relações, atributos, domínios e
tuplos. Superchaves, chaves primárias e chaves
externas. Restrições de integridade. Esquema
relacional. Conversão dos modelos ER e ERR para o
relacional.
- Álgebra e Cálculo Relacional
Operações da álgebra
relacional. Noção de compatibilidade para a reunião. Cálculo
relacional por tuplos (CRT) e por domínios (CRD).
Quantificadores e expressões seguras.
- A Linguagem SQL
A DDL do SQL: administrar tabelas,
restrições de integridade e domínios. A DML do SQL: consultas
básicas, encadeadas e correlacionadas. Operações de junção,
agregação, inserção, remoção e alteração. Visões, asserções e
triggers.
- SQL em Ambiente de Programação
Problemas de
integração. SQL embebido em C. Cursores. API C do
MySQL. Programação no SGBD com o SQL/PSM. Transacções,
concorrência e tolerância a falhas. Segurança em bases de dados:
contas e privilégios.
- Interface PHP ao MySQL
Breve introdução ao PHP e à API
do MySQL para o PHP. Exemplo de uma aplicação PHP de interface
ao MySQL.
- Normalização
Formas normais e normalização de
relações: 1NF, 2NF, 3NF, BCNF, 4NF e 5NF. Dependências
funcionais, multi-valor e de junção. Decomposição com
junção-não-aditiva.
- Organização Física dos Dados
Registos, ficheiros de
registos e índices.
Bibliografia
- Fundamentals of Database Systems 4/E
R. Elmasri and S. Navathe, Addison-Wesley.
- A First Course in Database Systems 2/E
J. Ullman and J. Widom, Prentice-Hall.
- Database Systems Concepts 5/E
A. Silberschatz, H. Korth and S. Sudarshan, McGraw-Hill.
Avaliação
A avaliação dos alunos faz-se por realização de um trabalho prático e
um exame escrito.
- O trabalho prático consiste no desenho, desenvolvimento e
implementação de uma base de dados para um fim previamente
definido. O trabalho prático está dividido em 3 fases distintas
com avaliação no final de cada fase. O trabalho prático não é
obrigatório. Os alunos que não realizem o trabalho prático
ficam com a classificação de 0% no parâmetro CTP para o cálculo
da classificação final da disciplina (ver detalhes abaixo).
- O exame é constituído por duas partes: uma primeira parte de
carácter teórico com perguntas de desenvolvimento e uma segunda
parte mais prática com exercícios semelhantes aos realizados nas
aulas práticas. A classificação mínima no exame é de
40%.
Sejam CTP, CET e CEP as classificações obtidas, em percentagem,
respectivamente no trabalho prático e nas partes teóricas e práticas
do exame. A classificação final da disciplina é calculada do seguinte
modo:
- Classificação Final = 15 CE + 5 CTPA, onde CE = (CET + CEP) / 2
e CTPA = min(max(CEP - 20%, CTP), CEP + 20%)
ou seja, a diferença entre a classificação obtida no trabalho prático
e na parte prática do exame não deverá exceder os 20%, pois caso
contrário a classificação do trabalho prático será ajustada para esse
limite.
As condições mencionadas acima aplicam-se de igual modo aos exames da época
normal, de recurso, especial ou de finalista para aprovação ou melhoria de nota.