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.

Objectivos
Saber
  • 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
Fazer
  • 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
Soft-Skills
  • 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

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:

  1. 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
  2.  Através da realização de exame com duração de 3 horas, sem consulta.
As avaliações decorrerão presencialmente desde que as condições o permitam. Caso contrário, iremos recorrer aos mecanismos de avaliação remota autorizados na altura para a realização das provas. Caso as provas sejam realizadas remotamente, a estrutura dos testes de anos transactos pode não se aplicar.

A nota da componente teórica é obtida através de:

  1. Média aritmética da nota dos 2 testes, arredondado a uma casa decimal, ou
  2. Nota do exame, arredondado a uma casa decimal.
Os alunos poderão ser indicados pelo regente da disciplina para a realização de exame oral, cuja nota poderá substituir parcial ou totalmente a nota da componente teórica.

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

IMPORTANTEAs 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

Cursos

Cursos onde a unidade curricular é leccionada: