[Tutorial] Modelagem conceitual de dados
#1

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
  1. 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)
  2. 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.
  3. 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: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
  2. 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
  3. 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




Reply
#2

Mt bom. Parabйns pelo tutorial!
Reply
#3

Parabйns.
Reply
#4

Bom tutorial
Reply
#5

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
Reply
#6

Quote:
Originally Posted by PT
View Post
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
Reply
#7

Sei lб nem li mais do rep(bloqueado) msm assim e ainda um parabйns (falso) kkkkkkkk tmj.
Reply
#8

Уtimo tutorial, explicou muito bem.
Reply
#9

Quote:
Originally Posted by IlanZ
View Post
Уtimo tutorial, explicou muito bem.
Obrigado
Reply
#10

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.
Reply
#11

Quote:
Originally Posted by n0minal
View Post
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
Reply
#12

Quote:
Originally Posted by n0minal
View Post
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.
Reply
#13

Quote:
Originally Posted by HelderPT
View Post
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
Reply
#14

@n0minal, newbie kksss..
Lembro de quando vocк era inciante, lembra ? Kkkkkkk..
Reply
#15

Quote:
Originally Posted by BarbaNegra
View Post
@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
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)