Num banco de dados relacional, considere uma tabela T, não ...

Próximas questões
Com base no mesmo assunto
Q914414 Banco de Dados
Num banco de dados relacional, considere uma tabela T, não normalizada contendo os atributos CPF, Matrícula, Nome, Endereço, Telefone. Sobre esses atributos, foram apuradas as seguintes dependências funcionais:
Matrícula → CPF CPF → Nome Matrícula → Endereço Telefone → Matrícula
Assinale o esquema (com as chaves primárias sublinhadas) que está normalizado e produzido com decomposição sem perda.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a D. Agora, vamos entender o porquê.

O tema abordado na questão é a normalização de bancos de dados relacionais e a decomposição de tabelas para atingir um esquema normalizado sem perda de informações. A normalização é um processo para reduzir a redundância e evitar problemas como anomalias de inserção, atualização e exclusão de dados. O objetivo principal da normalização é dividir grandes tabelas em menores, mais manejáveis, e estabelecer relações entre elas para promover a integridade e consistência dos dados.

Para resolver esta questão com êxito, é necessário entender conceitos como:

  • Dependência funcional: Uma relação que determina a unicidade de um atributo com base no valor de outro. Por exemplo, se o CPF determina de forma única o Nome, então dizemos que Nome é funcionalmente dependente de CPF.
  • Chave primária: Um atributo ou conjunto de atributos que podem identificar unicamente cada registro em uma tabela.
  • Decomposição sem perda: Dividir uma tabela em várias, garantindo que a junção delas reconstrua a tabela original sem perda de dados ou introdução de dados espúrios.

Agora, vamos justificar a alternativa D:

  • T1 (CPF, Nome): Aqui temos uma tabela que associa o CPF ao Nome da pessoa, o que está correto, pois de acordo com as dependências funcionais, o CPF determina o Nome. CPF é a chave primária justamente porque determina de forma única o Nome.
  • T2 (Matrícula, CPF, Endereço): Nesta tabela, a Matrícula é a chave primária e determina o CPF e o Endereço, conforme as dependências funcionais apuradas. Isso também está correto porque a Matrícula está associada a um único CPF e um único Endereço.
  • T3 (Telefone, Matrícula): Por fim, temos uma tabela onde o Telefone é a chave primária e aponta para a Matrícula. Esta relação está de acordo com as dependências funcionais, uma vez que o Telefone determina a Matrícula.

Essa decomposição mantém as dependências funcionais originais e permite que as tabelas sejam recombinadas sem perda de informação. Cada tabela está normalizada pois não existem atributos não-chave funcionalmente dependentes de parte de uma chave candidata, o que evita as anomalias de inserção, atualização e exclusão.

É importante destacar que as outras alternativas oferecem esquemas onde ou a decomposição causaria perda de informações, ou não respeitam as dependências funcionais apuradas, ou ainda possuem dados redundantes, o que não é desejável em um esquema normalizado.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Devia ser anulada. Como "Telefone" pode ser chave primária????? Então quer dizer que duas pessoas que possuem o mesmo telefone (Residencial por exemplo) não podem fazer parte dessa tabela?? Devia colocar uma chave primária composta (Telefone + Matrícula). Demorei pra responder, e como não tem resposta correta fui na menos errada que é a C.

 

Caro colega Filipe, não vejo erros para invalidar a alternativa D, seu exemplo é válido num BD normalizado no mundo real, porém não devemos criar pêlo em ovo! Em uma prova devemos nos ater no caso proposto pelo examinador, eu sei que na vida real não faria sentido colocar o campo telefone como chave primária, mas na referida questão NÃO NENHUM OBSTÁCULO para tal.

Já que telefone -> matricula então o atributo telefone pode ser sim uma chave primária.

GABARITO CORRETO, a meu ver, LETRA D

LETRA D

Filipe Freitas coloca na sua cabeça que a regra de negócio pertence a banca, sendo assim ela pode determiná-la do jeito que lhe convir. A partir do seu cometário podemos entrar na lógica de argumentação, em que por mais que as proposições não façam sentido o que importa é a validade dos argumetos.

Dito isso, saliento que quebrei a cabeça para entender o que estava acontecendo, porém só existe uma alternativa correta, conforme o esquema proposto.

Banco de Dados Relacional - É uma coleção de dados com relacionamentos predefinidos entre si. Esses itens são organizados como um conjunto de tabelas e linhas. As tabelas são usadas para reter informações sobre os objetos a serem representados no banco de dados. Cada coluna da tabela retém um determinado tipo de dado e um campo armazena o valor em si de um atributo. As linhas na tabela representam uma coleção de valores relacionados de um objeto ou uma entidade. Cada linha em uma tabela pode ser marcada com um único identificador chamado de chave principal. Já as linhas entre várias tabelas podem ser associadas usando chaves estrangeiras.

 

Esses dados podem ser acessados de várias formas diferentes, sem reorganizar as tabelas do banco de dados eles mesmos.

(https://aws.amazon.com/pt/relational-database/)

 

Chaves - As chaves são elementos das tabelas que evitam redundância e garantem consistência e integridade dos dados. As principais chaves são:

a) Chave primária - São atributos restritivos que identificam unicamente um registro em uma tabela. Na criação da chave primária, devem ser escolhidos quais atributos ou colunas da tabela vão compor a chave primária. As colunas escolhidas, juntas, devem identificar unicamente cada registro da tabela, ou seja, um linha completa de dados da tabela, não podendo se repetir.

b) Chave estrangeira - É a chave primária de uma tabela de origem que é inserida como chave estrangeira numa tabela de destino. No nosso caso, vamos usar a chave primária da tabela setor como chave estrangeira na tabela funcionário, uma vez que cada funcionário estará lotado em um setor.

(Informática – Fernanda Hondo Tedesque – Degravação Grancursos)

 

Dependência Funcional - É uma restrição entre dois subconjuntos de atributos (A e B), sendo denotada por A --> B. Especifica uma restrição nas possíveis tuplas (linhas). Neste caso diz-se que A determina funcionalmente B (ou alternativamente que B depende funcionalmente de A).

(https://www.ic.unicamp.br/~rocha/teaching/2012s2/mc536/aulas/aula-08-final.pdf).

D. A dúvida ficaria somente no atributo telefone ser ou não chave. Mas como telefone é determinante, deve ser chave, já que determina Matrícula, evitando assim que o mesmo telefone perteça a matrículas diferentes.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo