Aulas práticas - Ficha 2

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

Eduardo R. B. Marques, DCC/FCUP

Objectivos: introdução ao modelo Entidade-Relacionamento (ER).

Material de apoio:

Sumário da sintaxe visual ER

Entidades

Relacionamentos

1

Considere a entidade-tipo ALUNO que foi exemplificada nas aulas teóricas nas suas formas textual e visual do modelo ER, e ainda na sintaxe do dbdia.

Sintaxe textual do modelo ER

ALUNO(NumMec, Nome, Sexo, DataNasc, [Idade],
Morada(Rua,Num,Andar?,Localidade,CodPostal),
{NumTelefone}, {Habilitação(Grau,Ano, Instituição)})

Sintaxe visual do modelo ER

1.1

Considere os seguintes dados para (instâncias de) ALUNO, apresentados de forma tabelada.

NumMec Nome Sexo DataNasc [Idade] Morada(Rua,Num,Andar?, Localidade,CodPostal) {NumTelef} {Habilitação(Grau,Ano, Instituição)}
19428771 'José Silva' M 31-12-2000 20 (‘Rua Fim do Mundo’, 783, NULL, ‘Finisterra’, ’4444-555’) {987654321, 222333444} { (‘Ens. Secundário’, 2017, ‘Escola Sec. Dr. Estranho-Amor’) }
10447777 ‘Maria Carvalho’ F 08-02-1921 100 (‘Rua das Bases de Dados’, 1555, 'R/C Esq', ’Vila Nova de Informática’, ‘4000-123’) {933933933, 93X93Y93Z} { (‘Ens. Secundário’, 1944, ‘Escola Sec. Vila Nova de Informática’), (‘Lic. Física’, NULL, ‘Fac. de Ciências Univ. Porto’)}
12943945 ‘Roberto Antunes’ M 17-12-1980 41 Porto {982340210, 221234567 } { (‘Ens. Secundário’, 2004, ‘Escola Sec. Vila Nova de Informática’) }
10447777 ‘Maria Silveira’ F 08-01-1980 41 (‘Rua SQL’, 8, 'R/C', ’Vila Nova de Informática’, ‘4000-123’) {987654321} { (‘Ens. Secundário’, 1984, ‘Escola Sec. Vila Nova de Informática’) }
10447778 ‘Mário Silveira’ M 08-01-1990 31 (‘Rua SQL’, 8, 'R/C', ’Vila Nova de Informática’, ‘4000-123’) {987654321} { (‘Ens. Secundário’, 2016, ‘Escola Sec. Vila Nova de Informática’) }

Estes dados estão em desacordo com o modelo para a entidade-tipo aluno. Assinale quais das opções correspondem a problemas:

  1. A idade de José Silva está errada.
  2. A idade de Maria Carvalho está errada.
  3. A idade de Roberto Antunes está errada.
  4. A idade de Maria Silveira está errada.
  5. Falta a indicação do andar na morada de José Silva.
  6. A morada para Roberto Antunes não é um valor composto.
  7. Maria Silveira e Mário de Silveira deviam ter mais números de telefone.
  8. Um dos números de telefone de Maria Carvalho é inválido.
  9. Maria de Carvalho tem habilitações a mais.
  10. Todos excepto Maria de Carvalho têm habilitações a menos.
  11. O ano da Lic. Física de Maria Carvalho não está definido.
  12. Maria de Carvalho e Maria Silveira têm números mecanográficos idênticos.
  13. Maria Silveira e Mário Silveira têm números de telefone e morada idênticos.

1.2

Use o dbdia para gerar um diagrama para a entitade-tipo ALUNO, usando o seguinte fragmento:

ALUNO
(
    _ NumMec _, 
    Nome, 
    Sexo,  
    DataNasc, 
    . Idade .,  
    Morada(Rua, Num, Andar?, Localidade, CodPostal), 
    { NumTelefone },  
    { Habilitação(Grau, Ano, Instituição) }
)  
  1. Copie o fragmento acima para a janela de edição e clique em "Generate" deverá obter um diagrama semelhante a este.

  2. Se usar -rankdir=BT ("bottom-to-top" layouyt) em "Options" obterá um "layout" ligeiramente diferente.

2

2.1

Considere um universo (simplificado) de uma empresa de organização de eventos. As entidades-tipo em causa e respectivos atributos consistem em:

Codifique estas entidades-tipo usando o dbdia, tendo em conta:

2.2

Considere agora adicionalmente os seguintes requisitos para a empresa de gestão de eventos:

Tendo em conta estes requisitos:

3

Considere os seguintes requisitos para uma base de dados de uma rede social simples "Livro das Caras" em que:

Use o dbdia para expressar o modelo ER correspondente.