o Olá pessoal sejam bem vindos a mais um vídeo do nosso canal Eu sou professor olibario e neste vídeo eu quero começar uma série sobre diagrama entidade-relacionamento C ou d e r o Dr serve para gente modelar em termos gráficos ou seja visuais um banco de dados Então a gente vai pegar uma situação do mundo real e vai modelar de forma visual por meio deste diagrama Nesta aula vou falar sobre os principais elementos de um Dr que são entidade atributos relacionamentos e cardinalidade vamos lá no Dr A Entidade é qualquer coisa para qual a gente
deseja armazenar dados quero armazenar dados de Funcionários Funcionários será uma entidade do meu banco de dados quero armazenar dados sobre carros carro será uma entidade do meu banco de dados quer armazenar dados sobre imóveis imóvel será uma entidade Ah e assim por diante as entidades no meu banco de dados possuem atributos que são os campos que diferenciam uma entidade da outra por exemplo o que diferencia um carro do outro a placa a cor a marca o modelo o ano e assim por diante então eu tenho a entidade carro que é formada pelos atributos placa cor
modelo marca e ano O que diferencia um funcionário de outro por exemplo o CPF o nome o endereço telefone e-mail salário dentre outras possibilidades no Dr as entidades são representados por retângulos e os atributos por elipses suponha por exemplo que nós queremos salvar dados de Empregados Se queremos salvar dados de Empregados empregado é uma entidade O que diferencia o empregado de outro por exemplo o CPF o nome e o endereço Então eu tenho a Entidade empregadora de dentro de um retângulo e tem os seus atributos CPF empregado numa empregado e endereço empregado e eu ligo
esses atributos a minha entidade por meio dessas linhas então aqui eu tenho um diagrama entidade relacionamento com a entidade empregado e os atributos CPF nome e endereço poderia ter vários outros atributos aqui isso vai depender do que eu preciso armazenar para o empregado no meu banco de dados se eu pensar empregado como uma tabela eu teria uma tabela empregado e os atributos seriam as colunas dessa tabela e eu teria então Vários valores possíveis dentro dessa tabela várias linhas possíveis por exemplo a Maria que mora na Rua X e tem esse de CPF o José que
mora na rua y e tem este o CPF e assim por diante no Dr a gente não tem os dados ou seja a gente não sabe no diagrama Quais são os valores que estão armazenados para uma entidade a gente só sabe que existe as entidades e aqui ela é formada por CPF nome e endereço em geral o nome das entidades vem com a primeira letra maiúscula aqui eu coloquei todas em maiúsculas mas a convenção diz que a primeira letra está em maiúsculo e sempre no singular então não importa quantos empregados nós tenhamos no banco de
dados o nome da entidade será empregado no singular o nome dos atributos também Geralmente vem no singular se o empregado tiver vários telefones eu coloco o atributo telefone no singular Isso é o que diz a convenção não significa que se eu fizer diferente estará errado eu posso fazer diferente mas eu não estarei seguindo o que a maioria dos projetistas faz dentre os atributos de uma entidade eu específico pelo menos um que será a chave primária a chave primária representa um conjunto mínimo de atributos que identificam de maneira única uma entidade o valor da chave primária
Nunca será o lado dentro de uma entidade e eu identifico a chave primária grifando o atributo dentre os atributos que existem então CPF empregado neste caso é minha chave primária porque ele está gripado porque CPF foi escolhido como chave primária porque é impossível que dois empregados tenham o mesmo CPF então este valor será o único dentro da tabela ninguém pode ter o CPF da Maria ninguém pode ter o CPF do José e assim por diante porque porque o CPF está grifado no meu diagrama entidade-relacionamento ele é chave primária vemos então a entidade os atributos a
chave primária agora vamos ver relacionamentos no Dr o relacionamento vem dentro de losangos e os relacionamentos são as associações entre as minhas entidades por exemplo Uma pessoa trabalha para empresa se eu quero identificar isso por meio do a dama eu faço entidade pessoa trabalha para dentro de um losango empresa e liga os dois por meio das Linhas Portanto tem as entidades que são qualquer coisa para qual queira salvar dados e essas entidades se associam ou se relacionam por meio de relacionamentos a cardinalidade ou multiplicidade diz a quantidade de uma entidade que se relaciona com outra
entidade Aqui nós temos um relacionamento gerencia que tem cardinalidade um para um o relacionamento trabalha tem cardinalidade n para um e o desenvolve tem cardinalidade m para n o que significa isso significa o seguinte um é empregado gerencia apenas um departamento e um departamento é gerenciado por apenas um empregado eu sempre leio 1 de 1 e o relacionamento e vejo a cardinalidade do outro lado para saber a quantidade de entidades que se relacionam com essa entidade de carro então um empregado gerencia Olha a cardinalidade de cá é um então um único departamento e eu posso
ler no caminho inverso também um departamento é gerenciado olha a cardinalidade de cá por um único empregado nesta modelagem é impossível que um empregado gerencie dois departamentos por exemplo assim como é impossível que um departamento seja gerenciado por mais de um empregado neste segundo caso eu tenho um empregado trabalha para Olha a cardinalidade de cá um único departamento então não importa se é n do lado de cá eu sempre leio um empregado trabalha para é um departamento e eu leio a volta da mesma forma sempre começando com um em um departamento trabalham vários empregados é
isso que se ele me disse E aqui embaixo um empregado desenvolve inúmeros projetos e um projeto é desenvolvido por inúmeros empregados Ok Isso pega muita gente as pessoas leem vários empregados desenvolvem vários projetos Não é assim que se lê é um empregado desenvolve vários projetos e um projeto é desenvolvido por vários empregados sempre leio um de uma entidade vejo o relacionamento E aí vejo a cardinalidade do outro lado quais seriam as diferenças entre este diagrama aqui e este outro é bom nesse primeiro caso eu tenho que uma pessoa trabalha para uma única empresa então é
impossível que essa pessoa esteja cadastrada em mais de uma empresa e em uma empresa trabalham várias pessoas neste outro diagrama Uma pessoa trabalha para inúmeras empresas então eu posso ter uma pessoa trabalhando em uma empresa assim como eu posso ter uma pessoa trabalhando em duas três quatro cinco e quantas empresas ele quiser trabalhar e em uma empresa trabalham várias pessoas Então essa é a diferença entre esses dois diagramas aqui vamos fazer um exercício nós vamos fazer o diagrama para a seguinte situação uma imobiliária mantém os dados dos locadores que são os donos dos imóveis os
locatários que são as pessoas que alugam os imóveis e os imóveis alugados os proprietários são registrados por CPF nome e telefone Os clientes são registrados por CPF nome telefone e-mail no caso dos locatários aqui né Cada imóvel possui código identificador descrição o valor do aluguel e endereço o nome do banco número da conta e número da agência também são armazenados para fins de creditação do valor do aluguel tenho aqui uma situação extremamente simplista de um sistema de Imobiliária o que nós precisamos identificar para fazer o diagrama as entidades com seus atributos os relacionamentos e as
cardinalidades entidade a qualquer coisa para qual queremos armazenar dados então analisando essa situação aqui a gente pode querer armazenar dados da imobiliária locadores locatários imóvel Oi e a conta bancária Ok então as possíveis entidades para essa situação são Imobiliária proprietário conta imóvel e locatário é importante que o escolha bem esses nomes aqui que eles sejam bem descritivos para que quando eu olho para este diagrama eu consigo a entender a situação do mundo real que está sendo modelada tem os possíveis entidades como eu sei quais entidades eu vou considerar no meu diagrama bom eu tenho que
identificar os atributos de cada entidade os atributos no caso são CPF nome e telefone para os proprietários CPF nome telefone e-mail para Quem aluga código descrição valor do aluguel e endereço para cada imóvel em nome do banco número da conta número da agência para conta bancária Opa a minha situação não fala nada sobre os dados da imobiliária eu poderia por exemplo salvar o nome da imobiliária o CNPJ e assim por diante mas nesse mini mundo aqui que está sendo modelado e não há nenhuma informação desse tipo então será que eu preciso considerar Imobiliária aqui a
resposta é não não preciso porque não está claro que eu preciso armazenar dados para ela nesse sistema se eu não preciso armazenar dados para ela eu posso excluir essa entidade aqui isso claro vai depender da situação do mundo real que eu estou modelando a gente então nós vamos colocar os atributos nas demais entidades vai ficar assim o CPF nome e telefone do proprietário coloquei aqui Associados a proprietário o CPF identifica unicamente um proprietário ele não pode ser duplicado então eu coloquei CPF do proprietário como chave primária grifei o atributo CPF e os atributos dos locatários
são CPF nome telefone e-mail e os coloquei aqui da mesma forma selecionei CPF como chave primária os atributos do imóvel são código de referência descrição endereço e o valor da locação cada imóvel possui um único código que não pode se repetir no meu banco de dados então o código é minha chave primária agora Olhem que interessante para conta eu tenho os atributos nome do banco número da conta e número da agência se eu tivesse selecionado o nome do banco como chave primária sozinho não daria certo porque em um banco eu tenho inúmeras contas Então esse
nome do banco estaria duplicado para várias contas então ele sozinho não pode ser colocado número da conta pode ser que em um único banco eu tenho apenas uma única conta mas assim o número de uma conta de um banco for igual a número da conta em outro banco de um cliente então o número da conta sozinho como chave primária também não o número da agência sozinho também não pode ser chave primária porque existem inúmeras contas em uma agência mas a combinação do nome do banco número da conta e número da agência formam uma chave primária
porque é impossível que eu tenha nome de banco número da conta e número da agência iguais simultaneamente então aqui eu selecionei os três Campos para formarem a minha chave primária no Banco do Brasil eu tenho apenas uma conta no meio um na agência X por exemplo nada impediria que eu tivesse aqui um código identificador assim como eu tive no imóvel e colocasse o código como uma única chave primária tá para esta modelagem eu optei por fazer desse jeito aqui o que falta agora é colocar os relacionamentos o exercício não explícita Quais são os relacionamentos então
eu vou escolher de acordo com o meu conhecimento de mundo possíveis relacionamentos aqui eu escolhi poço Oi disponibiliza e aluga proprietário possui conta ele disponibiliza imóvel eo locatário aluga imóvel não é a única modelagem possível vocês podem relacionar de forma diferente também aqui é só um exemplo falta agora colocar a multiplicidade vamos fazer então a multiplicidade para cada relacionamento possui um proprietário possui quantas contas de possui uma única conta e uma conta está associada a Quantas pessoas há uma única pessoa então tem um relacionamento um-para-um a E se for uma conta conjunta entre o marido
EA esposa por exemplo aí seria uma conta para várias pessoas seria em nesse caso aqui então nós tem que depende da modelagem do meu mundo real eu coloquei que é um para um ok disponibiliza um proprietário pode disponibilizar vários imóveis para serem alugados e pode ser dono de vários Imóveis Então é ele do lado de cá um imóvel é disponibilizado por vários proprietários Então estou permitindo nesse banco de dados que duas ou mais pessoas sejam Donas de um mesmo imóvel Ok se eu não quisesse que isso acontecesse do lado de cá seria um aluga um
locatário pode alugar e números imóveis por exemplo uma casa e o imóvel comercial por exemplo e um imóvel pode ser alugado por apenas um locatário então nessa minha modelagem Eu tenho um relacionamento um para n m para n e um relacionamento um-para-um eu poderia modelar de várias formas diferentes o que não mudaria seriam os atributos é mas eu poderia mudar por exemplo a chave primária da conta poderia mudar os relacionamentos entre as minhas entidades e ainda assim modelar de forma correta o meu banco de dados se você gostou desse vídeo se inscreva no nosso canal
clique em gostei aqui em baixo e Compartilhe o vídeo com seus amigos isso nos ajuda muito não se esqueça também de ativar o Sininho das notificações para ficar por dentro de todos os nossos conteúdos um abraço e bons estudos