Bases de Dados

Objectivos

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

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 disponibilizar brevemente

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, arredondado às unidades.

Para obter aprovação à disciplina um aluno necessita ter uma classificação igual ou superior a 10 valores na componente teórica.

A nota final da disciplina é a média das duas componentes em que a componente teórica vale 60% da nota e a prática os restantes 40%.

As provas definem quer a frequência quer a classificação final.

Componente Teórica

A componente teórica pode ser realizada de duas formas:

  1. Através da realização de 2 testes, com duração de 2 horas cada, sem consulta, nas seguintes datas:
    • 1º Teste: X de abril de 2020, sobre a matéria das primeiras 9 aulas teóricas e 4 aulas práticas, salvo aviso posterior.
    • 2º Teste: Y de junho de 2020 sobre a restante matéria
  2.  Através da realização de exame com duração de 3 horas, sem consulta, em X de julho de 2020.

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

  1. Média aritmética da nota dos 2 testes, ou
  2. Nota do exame.

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, podem encontrar-se na página da disciplina http://bd.ssdi.di.fct.unl.pt/

 

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: