Ficha 2 - Algumas soluções

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

Eduardo R. B. Marques, DCC/FCUP

1

1.1

Chaves primárias:

1.2

Chaves externas:

1.3

Operação Violação
INSERE FUNCIONÁRIO(ABCDEF, Roberto Pires, CP, 12345678,...) Integridade de domínio para FUNCIONÁRIO.NumCC: ABCDEF não é um número.
INSERE FUNCIONÁRIO(12345678, Roberto Pires, CP, 22444552,...) Integridade de chave para FUNCIONÁRIO: 12345678 identifa um funcionário já existente (José Silva).
INSERE FUNCIONÁRIO(23884312, Roberto Pires, CP, 12345679,...) Integridade referencial: o supervisor com NumCC=12345679 não existe.
INSERE ESPAÇO(NULL,Null All Night, ...) Integridade de entidade: NULL não pode ser usado como valor para chave primária.
REMOVE ESPAÇO(CP) Integridade referencial: vários funcionários referem-se ao espaço com código CP.
REMOVE FUNCIONÁRIO(12345678) Integridade referencial: funcionário 12345678 (José Silva) é supervisor de 22444552 (Roberta Rodrigues)
REMOVE FUNCIONÁRIO(18923444) Integridade referencial: funcionário 18923444 (Fátima Lopes) é gestor do espaço MH e supervisor de 10345553 (Roberta Rodrigues)
ACTUALIZA FUNCIONÁRIO(22444552, Espaço → XPTO) Integridade referencial: espaço com código XPTO não existe.
ACTUALIZA ESPAÇO(CP,Nome → NULL) Integridade de domínio: Nome não é um atributo opcional (relembrar isso dos requisitos).
ACTUALIZA ESPAÇO(MH,Gestor → 12345679) Integridade referencial: funcionário 12345679 não existe.

2

Resolução

Para ser mais fácil, resolver por partes como sugerido no enunciado.

Considerando 1º entidades-tipo

Notar que:

Considerando depois relacionamentos, alterações a amarelo

Mapeamento:

3