A modelagem de bancos de dados passa pela análise das relações e comportamento dos dados que futuramente constituirão o conteúdo desses bancos. Para bancos de dados relacionais, essa modelagem passa pelo levantamento das dependências funcionais que eventualmente possam ser depreendidas em cada caso. Como um exemplo, considere um banco de dados que armazena a data de nascimento, o CPF (Cadastro de Pessoas Físicas) e a CNH (Carteira Nacional de Habilitação) de um grupo de pessoas, no qual todas possuem CPF e CNH. Dado que no Brasil o CPF e a CNH são individualizados, as dependências funcionais que devem ser consideradas, em conjunto, são:
- A)CPF → DataNascimento CNH → DataNascimento CPF → CNH CNH → CPF
Correta, porque CPF e CNH identificam univocamente a pessoa e, assim, determinam a data de nascimento e um ao outro.
- B)CPF → DataNascimento DataNascimento → CNH CNH → CPF
Errada, porque data de nascimento não determina CNH, já que muitas pessoas podem compartilhar a mesma data.
- C)CPF → DataNascimento DataNascimento → CPF CPF → CNH
Errada, porque data de nascimento não determina CPF, então essa dependência não se sustenta.
- D)CPF → CNH CNH → CPF
Errada, porque deixa de fora a data de nascimento e reduz indevidamente as dependências possíveis entre os atributos.
- E)CPF → DataNascimento CNH → DataNascimento
Errada, porque CPF e CNH determinam a data de nascimento, e não o contrário.
Gabarito: A
Em dependências funcionais, a ideia é simples: se um atributo consegue identificar de forma única outro dado, então ele o determina. Em banco relacional, isso é crucial para entender chave, redundância e normalização. Aqui, o enunciado diz que CPF e CNH são individualizados no Brasil, ou seja, cada um aponta para uma única pessoa. Se uma pessoa tem um CPF e uma CNH, então o CPF identifica aquela pessoa e, por consequência, determina os dados dessa pessoa no cadastro, como a data de nascimento e a própria CNH. O mesmo raciocínio vale no sentido inverso: a CNH também identifica uma pessoa e determina o CPF e a data de nascimento. Por isso, o conjunto correto de dependências é o que inclui CPF -> DataNascimento, CNH -> DataNascimento, CPF -> CNH e CNH -> CPF. Repare que não estamos dizendo que data de nascimento identifica CPF ou CNH, porque muita gente pode nascer no mesmo dia. Aí está o detalhe que a banca gosta de cobrar: dado comum não é dado identificador. Assim, o gabarito A está correto porque respeita a individualização dos dois documentos e não inventa dependências sem base lógica. Em termos de modelagem, CPF e CNH funcionam como candidatos a chave para identificar o registro da pessoa nesse cenário.