09.02.2018, 14:05
Introduзгo
Modelagem de dados й parte essencial quando querermos criar um Bando de Dados de qualidade, com ela conseguimos definir a maneira como o software se comportarб e funcionarб. Na modelagem de dados temos algumas siglas que sгo muito usadas, й muito importante saber o que significa cada uma delas para ter um bom entendimento sobre banco de dados.Siglas Importantes
- SGBD
SGBD significa Sistema Gerenciador de Banco de Dados e nada mais й do que um conjunto de softwares que fazem o gerenciamento do Banco de Dados, o MySQL й um exemplo de SGBD(sim, MySQL nгo й linguagem de banco de dados), ele й responsбvel por fazer toda manipulaзгo de dados(famoso CRUD) - DER
DER significa Diagrama de Entidade e Relacionamento, sгo "desenhos" que mostram toda a modelagem dos dados, suas entidades, relacionamentos, chaves primarias e estrangeiras...
Um exemplo de DER, usarei o banco de dados do meu FS postado aqui no fуrum, link na assinatura:
Vamos entender a imagem acima:
Cada retвngulo mostra uma tabela do banco de dados, dentro de cada retвngulo temos duas seзхes, a parte de cima em negrito й o nome da tabela, em baixo ficam os atributos da tabela, o atributo que possui uma chave do lado й o identificador da tabela(chave primaria), o que possui uma fecha do lado direito sгo chaves estrangeiras, atributos que referenciam outra tabela. As flecha ligando as tabelas sгo os relacionamentos que elas possuem, no caso a tabela transactions e current possuem duas flechas pois tem duas chaves estrangeiras, as demais sу possuem uma. - Entidade
Entidades nada mais sгo do que as tabelas do banco, os retвngulos da imagem acima sгo entidades, ou seja, tabelas
Tipos de Relacionamento e Cardinaliade
Para entendermos os tipos de relacionamento precisamos saber primeiro o que й cardinalidade, pois ela й quem diz qual tipo de relacionamento possuimosSempre que formos ler uma cardinalidade, lemos o numero de fora em uma tabela com o de fora da outra, veja:
Nesse modelo, os nъmeros que estгo no lado da tabela sгo a cardinalidade minima, eles podem ser 3:
- 0
Significa que nгo й obrigatуrio uma relaзгo, na imagem acima, 1 Player pode ou nгo ter uma Conta, jб que a cardinalidade mнnima em Conta й 0 - 1
Significa que й obrigado a ter uma relaзгo, na imagem acima, 1 Conta й obrigada a pertencer a um Player, pois a cardinalidade minima em Player й 1 - N
Significa que podemos ter 2 ou mais relaзхes
Nesse exemplo vimos que 1 conta pertence obrigatoriamente a 1 Player pois a cardinalidade minima em Player й 1, mas ela pode pertencer a 2 ou mais Players pois cardinalidade mбxima й N
OBS: Quando utilizamos o N como cardinalidade, nгo importa a quantidade que for, pode ser apenas 2 registros ou 200000, serб sempre N
Quando lemos o tipo de cardinalidade, levamos em consideraзгo somente a cardinalidade mбxima
Possuнmos trкs tipos de relacionamentos em banco de dados, sгo eles:
- 1:1
Este й o mais fбcil de todos, em um relacionamento 1:1 nгo importa em qual tabela ficarб a chave estrangeira, o resultado sera o mesmo, veja um exemplo:
Esta imagem nуs lemos que: 1 player possui uma ou nenhuma conta, e 1 conta й "possuнda" obrigatуria mente por 1 e somente 1 player - 1:N
Em um relacionamento 1:N devemos prestar um pouco mais de atenзгo, pois nesse tipo de relacionamento a chave estrangeira sempre irб ficar na tabela que possui a cardinalidade mбxima como N, pois irб repetir vбrias vezes o mesmo valor, veja:
Neste exemplo lemos que uma Conta й "possuнda" obrigatoriamente por 1 Player, mas pode ter mais de 1 Player com a mesma conta, entгo, nesse caso a chave primaria ficarб na tabela Conta, pois o ID do player irб repetir varias vezes dentro da tabela Conta - N:N
Dos trкs este й o que as pessoas mais tem dificuldade em entender, mas ele й bem simples, quando temos um relacionamento N:N, temos o que й chamado de Entidade Fraca ou Entidade Associativa, que nada mais й do que uma tabela nova que irб ter duas chaves primarias que serгo chaves estrangeiras ao mesmo tempo