Modelagem conceitual de dados -
MBJ - 09.02.2018
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:
- 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
Re: Modelagem conceitual de dados -
GuiKommander - 09.02.2018
Mt bom. Parabйns pelo tutorial!
Re: Modelagem conceitual de dados -
NelsonC - 09.02.2018
Parabйns.
Re: Modelagem conceitual de dados -
Ermanhaut - 09.02.2018
Bom tutorial
Re: Modelagem conceitual de dados -
PT - 09.02.2018
E bom sempre ver este tipo de coisa pelo forum
So tem uma coisa a galera sempre fala do MySQL mas tbm podem falar que o samp tem isto nativo com o SQLite
Re: Modelagem conceitual de dados -
MBJ - 09.02.2018
Quote:
Originally Posted by PT
E bom sempre ver este tipo de coisa pelo forum
So tem uma coisa a galera sempre fala do MySQL mas tbm podem falar que o samp tem isto nativo com o SQLite
|
Sim, mas eu particularmente prefiro o MySQL, com ele tenho a liberdade de integraзгo de plataformas, como um UCP por exemplo, enquanto o SQLite nгo deixa fazer
Re: Modelagem conceitual de dados -
DelK - 09.02.2018
Sei lб nem li mais do rep(bloqueado) msm assim e ainda um parabйns (falso) kkkkkkkk tmj.
Re: Modelagem conceitual de dados -
IlanZ - 10.02.2018
Уtimo tutorial, explicou muito bem.
Re: Modelagem conceitual de dados -
MBJ - 10.02.2018
Quote:
Originally Posted by IlanZ
Уtimo tutorial, explicou muito bem.
|
Obrigado
Re: Modelagem conceitual de dados -
n0minal - 10.02.2018
Cara, depois de um bom tempo longe do fуrum eu tф vendo que a galera daqui realmente evoluiu bastante, vejo as pessoas hoje em dia criando tutoriais sobre MySQL, Assembly, atй tutoriais bons como esse que ajudam e muito o desenvolvedor na hora de planejar o servidor, parabйns MBJ, espero que vocк e outros membros bons como Jelly e outros continuem sempre trazendo conteъdo de qualidade, estou pensando em trazer alguns tutoriais sobre Laravel tambйm pro pessoal que tem interesse em criar UCP.
+9 reps.
Re: Modelagem conceitual de dados -
HelderPT - 10.02.2018
Quote:
Originally Posted by n0minal
Cara, depois de um bom tempo longe do fуrum eu tф vendo que a galera daqui realmente evoluiu bastante, vejo as pessoas hoje em dia criando tutoriais sobre MySQL, Assembly, atй tutoriais bons como esse que ajudam e muito o desenvolvedor na hora de planejar o servidor, parabйns MBJ, espero que vocк e outros membros bons como Jelly e outros continuem sempre trazendo conteъdo de qualidade, estou pensando em trazer alguns tutoriais sobre Laravel tambйm pro pessoal que tem interesse em criar UCP.
+9 reps.
|
Nгo estavas banido? pareces um ganda homem no mundo pawn e mapper olha so quanta Reputaзao
Re: Modelagem conceitual de dados -
MBJ - 10.02.2018
Quote:
Originally Posted by n0minal
Cara, depois de um bom tempo longe do fуrum eu tф vendo que a galera daqui realmente evoluiu bastante, vejo as pessoas hoje em dia criando tutoriais sobre MySQL, Assembly, atй tutoriais bons como esse que ajudam e muito o desenvolvedor na hora de planejar o servidor, parabйns MBJ, espero que vocк e outros membros bons como Jelly e outros continuem sempre trazendo conteъdo de qualidade, estou pensando em trazer alguns tutoriais sobre Laravel tambйm pro pessoal que tem interesse em criar UCP.
+9 reps.
|
Muito obrigado cara, fico feliz em saber q o conteъdo q posto й bem recebido.
Re: Modelagem conceitual de dados -
n0minal - 11.02.2018
Quote:
Originally Posted by HelderPT
Nгo estavas banido? pareces um ganda homem no mundo pawn e mapper olha so quanta Reputaзao
|
Tava sim, conversei com o Dugi hoje no IRC e pedi pra ele me desbanir, mas enfim, nгo vem ao caso, vamos manter on-topic o bom tutorial apresentado aqui
Re: Modelagem conceitual de dados -
BarbaNegra - 11.02.2018
@n0minal, newbie kksss..
Lembro de quando vocк era inciante, lembra ? Kkkkkkk..
Re: Modelagem conceitual de dados -
n0minal - 11.02.2018
Quote:
Originally Posted by BarbaNegra
@n0minal, newbie kksss..
Lembro de quando vocк era inciante, lembra ? Kkkkkkk..
|
Lembro como se fosse ontem a primeira vez que eu abri o zamaroth e como eu comia a samp wiki no meio das aulas do ensino mйdio hehe, nгo vou mais poluir o tуpico do rapaz aqui, caso queiram continuar sу falar lб no chat topic