Você está na página 1de 4

a)

Anomalias de inserção:

Para inserir um novo paciente particular que marca consulta com o Médico
designado, precisamos inserir os dados corretos da equipe. Por exemplo, para
inserir os dados do novo paciente em pacienteNo, pacienteNome e uma
consulta, devemos inserir os dados corretos do médico (staffNo, dentistaName)
para que os dados do paciente sejam consistentes com os valores do Médico
designado, por exemplo, S1024.

Para inserir dados de novos pacientes que não possuem médico para ser
atribuído, não podemos inserir nulo valores para a chave primária.

Anomalias de exclusão:

Se quisermos excluir um paciente chamado Jill Bell, por exemplo, dois registros
precisam ser excluídos como nas linhas 2 e 5. Essa anomalia também é óbvia
quando queremos excluir o dentistaName, vários registros precisam ser
excluídos para manter a integridade dos dados.

Quando excluímos um registro de dentista, por exemplo Helen Pearson, os


detalhes de seus pacientes também são perdidos do banco de dados.

Anomalias de modificação:

Com dados redundantes, quando queremos alterar o valor de uma coluna de


um determinado Dentista, por exemplo o dentistaName, devemos atualizar
todos os registros do Dentista atribuídos ao paciente específico, caso contrário
o banco de dados ficará inconsistente. Também precisamos modificar os
horários das consultas porque dentistas diferentes têm horários diferentes.

b)

As suposições feitas incluem que um paciente está registrado em apenas uma


cirurgia e pode ter mais de uma consulta em um determinado dia. Todos os
horários foram fixados para todos os dias e semanas.

Na 1NF removemos todos os grupos repetidos, atribuindo nova coluna


(apptDate e apptTime) e atribuindo chaves primárias (chaves candidatas).
Então veremos as dependências funcionais (FDs). Usando o diagrama de
dependências, representamos a tabela conforme mostrado abaixo.

FD1 já está em 2NF. Neste caso, podemos ver que FD2 (depende apenas de
staffNo) e FD4 (depende apenas de staffNo e apptDate) violam o 2NF. Essas
duas NFs são parcialmente dependentes das chaves candidatas e não das
chaves inteiras. O FD2 pode funcionar sozinho dependendo do staffNo e,
enquanto isso, o FD4 também pode funcionar sozinho dependendo do staffNo.

O FD3 viola o 3NF mostrando a dependência transitiva onde SurgeryNo e


patientName dependem de patientNo enquanto patientNo depende de staffNo
que é o non-key é dependente de outro non-key.

A 2FN, já está na 1FN e não tem dependência parcial. Portanto, precisamos


remover o FD2 e o FD4 dividindo em novas tabelas e ao mesmo tempo criando
chaves estrangeiras. As novas tabelas que estão na 2NF são mostradas a
seguir.
E por fim na 3NF devemos remover a dependência transitiva. Neste caso
removemos o FD3 dividindo em uma nova tabela. A dependência transitiva
restante é o patientName que depende do patientNo, então dividimos isso em
uma nova tabela ao criar uma chave estrangeira.

Reorganizando e dar nomes às tabelas

Dentist(staffNo, dentistName)
Surgery(staffNo, apptDate, surgeryNo)

Patient(patientNo, patientName)

Appointment(staffNo, apptDate, apptTime, patientNo)

Você também pode gostar