9
respostas

Dúvida sobre modelagem de dados

Tenho uma entidade matricula, pessoa e biometria. A relação de Pessoa para biometria é de 1-1 ? Sabendo que uma pessoa pode ter biometria facial, voz e por dedos(Seriam mais 3 entidades: dedos, voz, facial). Como fariam? Ficaria um 1-N?

Matricula -----(1- 1 )---- Pessoa ---?---- Biometria

9 respostas

Oi Larissa,

Seria 1-N mesmo.

No caso, uma biometria pertence a uma pessoa, porém uma pessoa pode ter N biometrias.

Pessoa -----( 1 , N )------ Biometria

Seria errado ou mal estruturado, se eu colocar os 3 tipos de biometria (voz, dedo e face) dentro de uma unica tabela?

Ficaria: Biometria ------ Tipos de biometria

Não acho que seria mal estruturado, você poderia criar essa outra tabela, onde pode conter esses três tripos de biometrias e isso deixa abertura para outras mais. Acredito que essa abordagem é até melhor.

Tabelas associativas possuem pk? Ou apenas fk ?

As sua tabela biometria pode ter um campo auto incremente com um índice que é a pk dessa tabela, e um outro campo que o o id_tp_biometria que é um fk para a tabela tipo biometria. E na tipo biometria você pode ter um um id auto increment que também é uma pk, e é pra esse segundo id que o seu id_tp_biometria (da tabela id_biometria) irá estar apontando.

Espero não ter ficado confuso rs

Sim, mas tenho dúvida com entidades em geral. Uma entidade associativa pode ter uma pk ? Ou apenas fk ?

Exemplo:

Pessoa ---- Cadastro da biometria --- Tpo de biometria

A entidade "cadastro de biometria" é associativa. Ela terá uma pk ? Ou entidades associativas não possuem pk? apenas fk ?

Ah tá entendi melhor a pergunta, pode sim, e é algo bastante comum, você criar uma chave primaria em uma tabela associativa, por exemplo:

id_cad_biometria (pk)
id_pessoa (fk)
id_tp_biometri (fk)

Consultei um "DBA" e ele me aconselhou a montar desta maneira: http://llumine.com.br/prints-modelagem-dados/modelagem_biometria.PNG

Porém, acho que a tabela "Cadastro_biometria" é desnecessária, já que eu poderia colocar a data, horário e matricula do funcionário que cadastrou a biometria, dentro da entidade "tipo_biometria".

Da minha maneira ficaria mal estruturado o modelo ?

Creio que da forma que ele montou ficou bem bacana, na cadadostro_biometria eu adicionaria a pk, mas não é algo obrigatório, as duas fks já iriam garantir a integridade do banco. Mas como eu falei, é bastante comum e quem é de sistemas "gosta" de criar pk em toda tabela.

Não creio que ficaria mal estruturado, mas você coloca muitos atributos dentro de uma entidade "tipo_biometria", eu não retiraria a tabela, eu manteria as três tabelas.