Bases de Dados
Objetivos
Pretende-se dotar os alunos das bases necessárias à concepção, construção e análise de bases de dados relacionais.
- Conhecer o modelo Entidade-Relação e o modelo relacional de dados, e os fundamentos do modelo objecto/relacional
- Álgebra relacional como linguagem formal de manipulação de bases de dados relacionais
- Os fundamentos da linguagem SQL (quer como linguagem de definição de dados como de manipulação)
- Normalização de bases de dados com base em dependências funcionais e multivalor
- Breves noções de modelação de dados em XML, e de mecanismos para manipulação desses dados
- Modelar, primeiro em ER e depois numa base de dados relacional, um problema de dimensão média (resultando em cerca de uma/duas dezenas de tabelas)
- Criar uma base de dados em SQL para problema médio implementando em SQL todos os mecanismos necessário à integridade dos dados
- Implementar uma interface simples para manipulação da base de dados
- Estar à vontade na formulação de perguntas complexas em SQL
- Saber usar os mecanismos base SQL do modelo objecto/relacional
- Capacidade de trabalhar em equipa e de colaborar numa equipa
- Capacidade de modelação de problemas
- Saber elaborar relatório de análise, desenho e implementação de uma solução
- Gestão do tempo e cumprimento de prazos
Caracterização geral
Código
10640
Créditos
9.0
Professor responsável
Carlos Augusto Isaac Piló Viegas Damásio, Jorg Matthias Knorr
Horas
Semanais - 5
Totais - 70
Idioma de ensino
Português
Pré-requisitos
A disponibilizar brevemente
Bibliografia
Livro recomendado
- Database System Concepts, 7th Edition.
Abraham Silberschatz, Henry F. Korth and S. Sudarshan
McGraw Hill, 2019
ISBN 9780078022159
Acetatos
- Após cada aula teórica, serão disponibilizados no CLIP os acetatos.
Bibliografia complementar
- A Guide to the SQL Standard (4th Ed)
C. J. Date and Hugh Darwen
Addison-Wesley
ISBN:0-201-94426-0 - The theory of Relational Databases
David Maier
Computer Science Press
ISBN:0-914894-42-0
Método de ensino
A UC tem aulas teóricas apoiadas em slides com exemplos. As práticas têm fichas e guiões para realizar durante as aulas e em estudo autónomo. O planeamento das teóricas incluem sempre espaço para análise e discussão de problemas de testes anteriores. Os estudantes utilizam o sistema Oracle 18c (última versão) e APEX tendo disponível um servidor devidamente configurado para utilização nos laboratórios e por VPN a partir do exterior.
A avaliação é constituída por dois testes (ou exame) e um projeto prático em equipa, com pesos respectivamente de 60% e 40% da nota final. É necessário ter 9.5 valores na componente teórica para obter aprovação. O projeto tem duas fases em que primeiro é proposto pelo grupo o tema e modelo de base de dados a implementar e depois a entrega final com relatório escrito e código. O projecto é realizado essencialmente fora das aulas, justificando os 9ECTS desta UC. A nota do projeto é individual e resulta da discussão com o grupo.
Método de avaliação
Avaliação
A avaliação é composta por uma componente teórica e por uma componente prática. As duas componentes são avaliadas numa escala de 0 a 20.
Para obter aprovação à disciplina um aluno necessita ter uma classificação igual ou superior a 9,5 valores na componente teórica e na nota final.
A nota final da disciplina é a média ponderada das duas componentes em que a componente teórica vale 60% da nota e a prática os restantes 40%.
Componente Teórica
A componente teórica pode ser realizada de duas formas:
- Através da realização de 2 testes, sem consulta, com duração de 2 horas cada nas seguintes datas:
- 1º Teste: abril de 2022 sobre a matéria das primeiras 9 aulas teóricas e 4 aulas práticas, salvo aviso posterior.
- 2º Teste: junho de 2022 sobre a restante matéria
- Através da realização de exame com duração de 3 horas, sem consulta.
A nota da componente teórica é obtida através de:
- Média aritmética da nota dos 2 testes, arredondado a uma casa decimal, ou
- Nota do exame, arredondado a uma casa decimal.
Componente Prática
A componente prática é realizada através do desenvolvimento, em grupo, de um trabalho prático, entregue em duas fases, e respectiva discussão. O trabalho deverá ser desenvolvido essencialmente fora do horário das aulas, havendo apenas duas aulas no fim do semestre dedicadas a esclarecimento de dúvidas finais.
Apesar do trabalho ser feito em grupo, a nota desta componente será sempre individual (e não atribuída ao grupo).
IMPORTANTE: As notas de trabalhos práticos desta disciplina obtidas em anos lectivos anteriores são válidas para a avaliação deste ano. Os alunos que pretendam manter a nota da componente prática não se poderão inscrever em turnos práticos. A inscrição num turno prático implica, automaticamente, a perda da nota da componente prática anteriormente obtida.
Informação detalhada sobre o trabalho prático, respetivas datas de entrega e penalizações em caso de atrasos, vão estar disponíveis em Documentação de Apoio -> Outros (projetoBD.pdf)
Conteúdo
Introdução aos sistemas de bases de dados
Modelos de dados
- Modelo ER
- Modelo Relacional
Normalização de Bases de Dados
- Dependências funcionais e multi-valor
- Formas normais: 3ª, 4ª e de Boyce-Cood
Linguagens de manipulação de bases de dados
- Álgebra relacional
- Linguagem SQL
- Outras linguagens
Integridade de Bases de Dados
- Integridade de referência
- Asserções e triggers
- Segurança e autorizações
Interação com Bases de Dados
- Embedded SQL, ODBC, JDBC
- Segurança e autorizações
- Transações
Discussão de outros modelos de bases de dados
- Bases de dados objectos/relacional
- XML