Aulas práticas - Ficha 1

Bases de Dados (CC2005), Dep. Ciência de Computadores, FCUP

Eduardo R. B. Marques, DCC/FCUP

Objectivos:

1

Para uma BD fictícia de uma faculdade considere o seguinte requisito para a representação de dados para docentes:

Considere agora o seguinte conjunto de dados para alguns docentes representados de forma tabelada, em que entradas denotadas com NULL correspondem a valores não definidos. O que há de errado com os dados das últimas 4 entradas (em itálico) ?

ALUNO

Nº Mec. Nome Email Telefone
10345553 António das Cenas cenas@bd.com NULL
12388455 Alípio Jorge amjorge@xpto.edu.pt 993332122
12345678 Eduardo Marques edrdo@sql.edu.pt NULL
18923444 Eduardo Marques eduardo@proton.com 983111122
28373733 Fátima Lopes NULL 983000111
28844283 Roberta Rodrigues rr@bd.com ABCDE
10345457 Filipe Lopes f123@xyz.com NULL
10345457 António Silva antonio@silva.com 912345678

2

Considere os seguintes requisitos adicionais para a BD de uma faculdade no que toca à representação de departamentos, cursos e cadeiras:

Indique se os seguintes factos estariam ou não de acordo com os requisitos apresentados, justificando a sua resposta para cada caso negativo.

  1. Departamentos e docentes:

  2. Departamentos e cursos:

  3. Cadeiras:

3

Considere os seguintes dados (consistentes) para docentes e departamentos na forma tabelada abaixo (veja também esta imagem em alternativa), em que:

DOCENTE

Nº Mec. Nome Email Telefone Departamento
10345553 António das Cenas cenas@bd.com NULL CO
12388455 Alípio Jorge amjorge@xpto.edu.pt 993332122 CC
12345678 Eduardo Marques edrdo@sql.edu.pt NULL CC
18923444 Eduardo Marques eduardo@proton.com 983111122 F
28373733 Fátima Lopes fatima@proton.com NULL F

DEPARTAMENTO

Código Nome Presidente
CO Ciência das Coisas 10345553
CC Ciência de Computadores 12388455
F Física 18923444

3.1

Indique o conjunto de nomes de docentes associados a cada departamento e o nome do presidente de cada departamento.

3.2

Qual é o problema de efectuarmos as seguintes alterações aos dados apresentados em termos da sua consistência se:

  1. Actualizarmos o valor de Presidente no Dep. Física para 87654321?
  2. Actualizarmos o valor de Presidente no Dep. Física para 12345678?
  3. Removermos a entrada para o docente Alípio Jorge?
  4. Removermos a entrada para o departamento de Ciência de Computadores?
  5. Adicionarmos a seguinte entrada para um novo docente António Silva:

    Nº Mec. Nome Email Telefone Departamento
    77245553 António Silva antonio@chemistry.com 93838033 Q
  6. Adicionarmos a seguinte entrada para um novo docente Antónia Silva:

    Nº Mec. Nome Email Telefone Departamento
    28373733 Antónia Silva antonia@physics.com NULL F

4

Considere os seguintes dados adicionais para cursos e cadeiras na forma tabelada abaixo (veja também esta imagem em alternativa).

CURSO

Código Nome
LCC Lic. em Ciência de Computadores
MIERSI Mestr. Int. em Redes e Sistemas Informáticos
LF Lic. em Física
LC Lic. em Coisas

DEPARTAMENTOS RESPONSÁVEIS POR CURSO

(curso e departamento(s) responsável(eis) identificados pelos respectivos código)

Curso Departamento
LCC CC
MIERSI CC
LF F
LC CO
LC F

CADEIRA

(departamento responsável identificado pelo respectivo código na coluna Departamento)

Código Nome Departamento
BD Bases de Dados CC
F1 Física I F
SC Sociologia das Coisas CO

DOCENTES POR CADEIRA

(cadeira identificada pelo código, docente pelo número mecanográfico)

Cadeira Docente
BD 12388455
BD 12345678
F1 28373733
SC 10345553

CURSOS POR CADEIRA

(cadeira e curso identificados pelos respectivos códigos)

Cadeira Curso
BD LCC
BD MIERSI
BD LF
F1 LF
F1 LC
SC LC

4.1

  1. Que cursos são da responsabilidade de cada departamento? Que departamentos são responsáveis por mais do que um curso? Há cursos com mais do que um departamento responsável?
  2. Quais são os nomes dos docentes de cada uma das cadeiras?
  3. Qual é o nome de cada uma das cadeiras oferecidas à Lic. em Coisas?

4.2

Indique se a BD fica consistente em cada um dos seguintes casos se alterarmos os dados acima:

  1. Adicionarmos em DOCENTES POR CADEIRA:

    Cadeira Docente
    F1 12345678
  2. Adicionarmos em DOCENTES POR CADEIRA:

    Cadeira Docente
    F1 28373733
  3. Adicionarmos em CURSOS POR CADEIRA a entrada para a cadeira com código SC para:

    Cadeira Curso
    SC LF
  4. Actualizarmos em CADEIRA a entrada com código BD para:

    Código Nome Departamento
    BD Bases de Dados F
  5. Actualizarmos em CURSOS POR CADEIRA a entrada para a cadeira com código SC para:

    Cadeira Curso
    SC LF
  6. Removermos em DOCENTES POR CADEIRA:

    Cadeira Docente
    BD 12388455
  7. Removermos em DOCENTES POR CADEIRA:

    Cadeira Docente
    F1 28373733
  8. Removermos em CURSOS POR CADEIRA a entrada para a cadeira com código SC.