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 possuimos
Sempre 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
Agora veremos os tipos de relacionamento:
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:
[list="box-sizing: border-box; margin-bottom: 10px; color: rgb(51, 51, 51); font-family:"]
[*]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
Creditos: MBJ