oi bom dia pessoal tudo bem com vocês vamos começar a nossa aula de modelagem de dados hoje sexta-feira 29 de maio de dois mil e cliente vamos dar continuidade aos nossos assuntos de modelo entidade-relacionamento ontem a gente trabalhou com os atributos e relacionamentos já temos trabalhado com as entidades anteontem então a gente vai dar para o segmento falando sobre outros assuntos pertinentes como por exemplo as cardinalidades são muito importantes mas antes gente vai começar estudando as chaves a gente falar um pouquinho sobre chaves já nas últimas aulas mas agora a gente vai se aprofundar nesse
assunto e no final da aula quando eu postar esses materiais as apresentações lá no play on the quando o vídeo tiver online depois de gravado eu também vou deixar o exercício na forma de um questionário para vocês verem todos os conceitos que foram vistos essa semana mas depois a gente poder começar a criar diagrama a é legal a gente vai começar a falando sobre chaves conserto de chave em bancos de dados de um pouquinho sobre isso já gente falou sobre primária pega sp tava estrangeira também mas vamos ver mais a fundo agora para entender exatamente
do que se trata de uma chave mas a chave é uma coluna na verdade pode ser mais de uma coluna pode ser uma combinação de colunas também dentro de uma relação que você vai lembrar que a palavra relação à obra relação significa a basicamente tabela entidade oi e a chave é uma é uma ou mais colunas dentro de uma relação cujos valores são usados para identificar uma linha ou um conjunto deles então o papel da chave basicamente está relacionado a identificação das linhas e as minhas são os registros que você vai lembrar disso e a
chave elas podem ser classificadas como única ou seja identifica uma única linha e não se repete para as demais linhas ou ainda uma chave não única que vai identificar conjuntos de linhas relacionadas oi e a esses tem homens para esses tipos de chaves então a chaves do tipo única elas podem ser candidata composta primária ouço rodada oi e a chave não única é sempre a chave estrangeira tô achando a única não tem problema é estrangeira e acabou já chave única ela pode ser mais candidato mas não posso mário machado e sua vaga na prática o
que interessa é a chave primário o andré que as outras chaves na verdade elas são usadas para você criar a chave primária só achar principal é a primária que vai sempre se conectar com uma chave estrangeira para compor um relacionamento entre duas tabelas ou seja mais ligação entre duas tabelas no seu mano e como estudar cada um dos tipos para vocês entenderem as diferentes começando pela chave candidato com a chave candidata é um atributo ou um grupo já friburgo porque acontecer uma combinação de atributos que tem o potencial potencial de se tornar uma chave primária
se ela pode vir a ser uma chave primária por isso o nome candidata é uma chave que é candidata a ser chave primária tomando que você tá fazendo analise a tabela você vai descobrir algumas colunas que podem ser chave primário não significa que serão ação candidato a gente classifica essa chave dessa forma se você usar chave candidata como chave primária ok você tem a chave primária da tabela se você não usar uma chave candidata como chave primária essa chave ela vai se conhecida como chave alternativa porque é uma alternativa a chave primária que a tabela
bom então por exemplo imagina uma tabela de registro de alunos nessa tabela eu tenho vários campos e era campo e atributo e coluna é a mesma coisa para gente então eu tenho lá vários campos o colups nome endereço cep número de matrícula do aluno cpf do aluno e assim por diante você vai notar ao fazer a análise dessa tabela que o campo número de matrícula é uma chave candidata porque ele pode ser uma chave primária afinal de contas o campo número de matrícula um número que não se repete entre os alunos cada um tem o
seu número de matrícula é exclusivo o porém o campo cpf também poderia se machucar primário porque ele também não se repete a cada aluno tem o seu cpf são todos diferentes então veja aquele nessecita tabela eu queria duas chaves candidatos número de matrícula e cpf e eu posso escolher uma delas para se a chave primária se eu escolher o número de matrícula para se a chave primária você é ficar sendo machado alternativo seu escolheu cpf para se a chave primária o número de matrícula que vai se achava alternativa como que eu escolho um outro que
depende muito da regra de negócio mas em muitos casos como nesse caso fica a seu critério fica sobre se você prever que algum aluno não tenha cpf do seu uso número de matrícula eu não sei não tanto faz usar um usar o é muito bem é só sabe candidato ela vai ser usada para você definir a chave primária e o que é sim ah essa tal de chave primária eles tanto fala a chave primária da machada que foi escolhida para ser a chave principal na relação ao seja o campo principal na tabela e para que
ela serve para identificar de forma única e exclusiva os registros as linhas da tabela sendo que não vai existir repetição de valores e também não vai ter valor do muro nessa chave é essa chave não pode ficar em branco essa coluna e não pode ter repetição de valor também tá e por quê porque essa chave é utilizado justamente para identificar cada um dos registros em inglês a gente chama a chave primária de primeiro aqui ou pelas filho apk então bastante como você vê essa siga até caindo diagramas ou até mesmo dentro de software de banco
de dados então você já sabe e carta indicando a chave da da relação o valor que identifica a relação e às vezes a gente usa este símbolo aqui o hashtag ou sustenido para identificar uma chave primária no diagrama a uma descrição pessoal fazer só para identificação mesmo então a chave primária é a chave principal é o que a gente vai sempre utilizar para identificar cada uma das linhas cada uma cada um dos conjuntos de dados que você tem na sua câmera tá prendendo todo o conjunto de dados que identificam aluno ou produto ou uma venda
vai ter uma chave primária para fazer a diferenciação desse conjunto em conjuntos e agora a chave primária também tem outros ela é empregada para fazer o relacionamento em que uma tabela com outra tabela a conectar as tabelas e esse relacionamento é feito assim numa tabela você tem a chave primária na outra tabela relacionada você tem a chave estrangeira bom então a chave estrangeira também é uma coluna dentro de uma tabela que vai ser usada para estabelecer o relacionamento ou a chave primária de uma outra tabela tá então a partir desta chave estrangeira que a gente
vai saber é que registro de uma tabela está relacionado com qual registro de outro por exemplo que cliente comprou qual o produto ou o produto foi comprado por qual cliente a gente vai saber qual o professor que dá aula para qual aluno gorro em qual curso o aluno tá matricular são informações que estão em tabelas diferentes mas que vão estar conectados por meio da relação chave primária chave estrangeira que são duas colunas uma coluna em cada tabela e a chave estrangeira inglês é for link ou é ficar não sei que vocês virem a sigla é
ficar já sabe que é uma chave estrangeira acho que a estrangeira pode repetição porque imagina que que eu tenho um produto uma tabela e esse produto pode ser comprado por várias pessoas por vários clientes então esse mesmo produto ele vai aparecer várias vezes numa tabela de vendas então e ele acha refrigerante caso pode ter repetição já a chave marca que seria o código do produto produto não pode cada tudo tem o seu código e não se repete com a chave estrangeira ela pode ser usada para ele ficar um ou mais registros um grupo registros relacionados
com um o registro de uma outra tabela e seria a chave prima depois quando vocês começaram a fazer exercícios de criar diagramas vai ficar mais claro e nós temos outros tipos de chaves também nós temos a chave composta a chave composta como o nome diz ele é composta por dois ou mais atributos duas ou mais colunas com as vezes a gente precisa combinar duas três ou mais colunas para formar uma chave primária o objetivo é sempre formar a chave primária é essa chave primeira geralmente é uma coluna com o cpf ou código de produto mais
às vezes eu preciso combinar duas colunas a tabela para conseguir criar essa chave primária aí a gente vai chamar essa chave de chave primária composta e a gente faz isso quando a gente não consegue usar uma única coluna para identificar os registros vezes acontece a tabela não tem ali uma coluna específica que nunca se repete então você precisa combinar duas colunas para ter uma combinação que nunca se repita aquela combinação nunca se repete mesmo que o valor de uma ou o valor de outro apareça repetido às vezes mas as duas colunas juntas o as três
colunas judas nunca se repete a gente chama isso de chave como pó e por conta disso a gente já pode raciocinar o seguinte se eu posso combinar mais de uma coluna para formar formar uma chave primária quantas chaves e eu posso ter uma tabela a resposta é uma apenas uma cada tabela cada relação só vai ter uma única chave maré sempre jamais você vai ter mais de uma chave primária de uma tabela mas a chave primária pode ser composta por mais de uma coluna não tem que ficar esperto com isso eu posso ter duas três
quatro colunas formando uma chave primário mas a chave primária esse é uma só certo mesmo que seja composta por várias produtos e quando a gente vai codificar isso criar o código sql a gente dá um nome para a chave primária então independente de quantas colunas eu usei para fazer essa chave primeira ela vai ter um nome identificadora por quê que o que é só uma chave primária que eu tenho na tabela aí vocês vão aprender depois o comando exato para você dar esse nome com a chave prima tá então chave composta é uma chave primária
que usa duas ou mais comuns é um outro tipo de chave que às vezes a gente vai utilizar é a chave isso rodada também chamada de sábio substituta que rodada substituta são sinônimos o que que é essa chave sua jogada ou substituta essa chave ele é um balão numérico geralmente no médico tá é um valor no único que não se repete que é adicionado numa relação numa tabela para servir como chave primária então vamos supor que o seguinte caso eu tenho uma tabela alguma coisa qualquer um assunto qualquer e não consigo identificar essa tabela nenhuma
coluna que sirva como chave primária e aí eu vou pensar legal eu vou combinar duas ou mais formas para fazer uma chave composta e aí quando você vai combinar as colunas você também não consegue uma combinação que nunca se repita e que você faz nesse caso nesse caso você queria machado isso rodado o que é muito simples de fazer basicamente você cria uma coluna nova chama essa coluna por exemplo de código e bota o número lá dentro acabou você tem uma chave surrogado basta você garante que os números nunca se repitam e você tem uma
chave primária para identificação e não é muito legal utilizar esse sistema porque no geral acha que sou rodada não tem significado nenhum os dados da tabela é o número que você tá colocando ali mas pode ser mais simples trabalhar com chato surrogado do que com chave de malha composta por quê porque é uma coluna só é mais fácil de se gerenciar e administrar uma coluna que combinações de duas ou mais colunas são as vezes mesmo que você consiga combinar duas colunas para fazer uma chave composta talvez você prefira usar uma chave sua jogada pode ser
fique mais simples e a chave do seu rodada por usuário não tem significado nenhum porque isso é uma sequência numérica para diferenciar os registros eles número 1 2 3 4 assim por diante então quando o usuário faz uma consulta mas verificar informações do banco geralmente o valor dessa chave nunca aparece para ele e diferentemente de uma chave primária comum como cpf o número de matrícula que é um valor que é importante e tem significado usuário do cliente da sua aplicação é só às vezes a gente vai utilizar chato sua jogada não tem jeito você mete
lá um ódio o número de código e acabou beleza gente essa é um outro tipo de chave que é bastante utilizado também e quando a gente vai criar chaves primárias de chaves estrangeiras que são os meus principais chaves a gente tem umas as instruções aqui em porto eu pedi lembra sempre disso aqui primeiro não pode ter valor duplicado na chave primária então essa coluna que a gente vai chamar de primária ela vai ter dados armazenados e nunca podem ser repetidos se você notar que ao cadastrar dados o valor nessa coluna chave que mais se repete
tem alguma coisa errada talvez o que você escolheu para si a chave primária aquele campo não circula ou o dado está sendo cadastrado errado e toma cuidado com isso e no geral também não dá para alterar o valor da chave mar uma vez que você tenha criado o registro inserido os dados é muito difícil você alterar o valor que foi colocado na coluna de chave primária mas dá para alterar os valores das outras colunas para cada sei o nome de usuário errado eu posso com comandas que era alterar esse nome tranquilamente mas a chave primária
mais complicado a esperto com o valor que você escolhe oi e a chave estrangeira é baseada em valores de gatos ou seja a chave estrangeira de henry um valor que já exista no banco de dados então quando a gente vai cadastrar um registro que tem uma coluna de chave estrangeira o valor que vai ser colocado naquela coluna ele já tem que existir na outra tabela relacionada na forma de chave primária então o valor da chave estrangeira não caiu o valor novo ele é um valor que sempre já existe eu coloco ele classificada como ponteiro lógico
porque o a chave estrangeira aponta o conectar com a chave primária de outra tabela e a por exemplo vamos supor que eu tenha eu tenho uma tabela de livros eu cadastrar os meus livros e nessa tabela de livros eu tenho uma coluna para colocar o nome do autor do livro no mesmo banco de dados eu posso ter uma tabela com os autores estavam nessa tabela de altura e eu coloco os nomes dos autores que vai acontecer seguinte na hora de cadastrar um livro quando chegar na coluna de altura eu só posso escrever o nome de
um autor que eu já tenha cadastrado na tabela de autores porque ali vai ser uma chave estrangeira se eu não tiver saltou na tabela de autores eu não posso cadastrar esse nome direto na tabela de livros senão vai acontecer um erro de integridade você uma tabela com o valor inserido que não está na tabela original de autores eu vou perguntar cadastrado ele não pode estar na tabela dele que o primeiro tem que cadastrar o autor na tabela de autores para depois poder utilizar esse autor na tabela de livros na tabela de autores antigos mar da
tabela de livros a chave estrangeira fazendo relacionamento e não se preocupe se não ficou muito claro que vocês vão fazer esse banco de dados com livros autores e editoras que é o exemplo que a gente vai usar durante o curso exemplo prático tá mas a ideia é basicamente é essa as outras instruções interessantes a então o valor da chave estrangeira tem que corresponder ao valor existente na chave primária associado que é exatamente esses dentro eu acabei de dar autor com o livro então cadastrou planta casa dele já tem desistir o valor na tabela de autores
senão ele vai acabar sendo o valor gente uma de nulo e geralmente o valor no incômodo chave estrangeira é um erro de concepção no banco de dados não deve ocorrer tá e a chave estrangeira sempre vai fazer referência a chave primária ou em alguns casos a uma coluna especial que a gente chama de chave única uma consequência mal nenhum mas não se preocupe com isso por enquanto está mais para frente por enquanto pensa em bruno para tava estrangeira com chave primária uma coluna da tabela conectando as duas tabelas contendo o mesmo dado nas duas tabelas
e pra ficar mais claro a gente pode olhar esse diagrama aqui um exemplo de conexão chave primária chave estrangeira e vamos estudar essas três cadelinhas e clica aqui tem três tabelinha clientes produtos e vermes e na tabelinha de clientes eu tenho os campos e de cliente nome cliente cpf e data de nascimento em 4 ou um na tabela de produtos eu tenho e de produto nome produto categoria do produto e preço do produto ball essas duas cadelas tem chave primária a chave primária da tabela e por isso você é o id do produto o código
do produto eu nunca marquei com o pecado então esse de nunca se repete a cada produto tem o seu e na tabela de clientes o id do cliente é que a chave primária pecar note que aqui eu também tenho cpf do cliente que poderia ter sido acharam primário mas não foi então aqui é uma chave alternativa a chave primária foi escolhido como ingrediente e tá grifado sublinhado aqui e aí o cliente compra produto produto é comprado pelo cliente é vendido que o cliente um cliente ele pode comprar vários produtos numa loja e um produto ele
pode ser adquirido por vários clientes então a gente tem aquele caso do relacionamento muitos-para-muitos que a gente ainda vai estudar mas ele aparece aqui já nesse caso você já sabe a gente precisa desmembrar criando uma tabela associativa e a tabela associativa essa aqui que tá no meio tbl vendas ele que usei o prefixo tbl para gente passar uma tabela e coloquei o nome de vem então essa tabela que representa as bençãos ou as compras aí fica a seu critério realizadas na loja essa tabela ela tem de estar associada com o cliente com produtos para eu
saber que cliente comprou qual o produto e como é que eu faço isso por mim da relação chave primária chave estrangeira do a tabela de vendas para entender como é que foi feito o nome da tabela de vendas ela tem aqui cinco campos e de venda e de cliente e de produto quantidade e data de velho a chave primária dela é id da vem p cá então em seu código da venda porque se o número da nota fiscal por exemplo e nunca se repete ou o código interno de vendo ó digo que vem na notinha
quando você compra qualquer coisa aí no mercadinho e etc então é o id da venda a tabela de vendas como é que eu sei qual o cliente que que fez essa compra ou seja para qual cliente foi vendido o produto eu sei porque aqui eu tenho esta coluna e de cliente que é uma chave estrangeira é ficar que está conectada com e de cliente na tabela de clientes então este cliente aqui é o cliente que tá cadastrado na tabela de clientes então se o joãozinho tá cadastrado aqui ele pode aparecer na tabela de ventre se
o cliente não tiver cadastrado aqui na tabela de clientes eu não consigo fazer uma venda para ele porque não tem como preencher esse dado aqui na coluna é ficar tão primeiro preenche os clientes faz o cadastro do cliente para depois poder fazer a venda para ele os cálculos como é que é feito isso na prática tem um código sql que vocês executa e que faz essa conexão de uma tabela com o pote e como é que eu sei qual é o produto que o cliente comprou eu sei qual é o produto porque eu também tenho
esta coluna e ver produto e esse de produto também é um machado estrangeiro que está conectada com o id produto da tabela de produtos olha que legal então os produtos que eu tenho cadastrados nesta tabela poderiam aparecer nessa tabela de bem se eu não tiver o produto cadastrado aí direito que eu não posso fazer a pena dele tem como como registrar o produto aqui nessa lei então assim que a gente faz o relacionamento entre as tabelas entre a primária chave estrangeira e chave primária chave estrangeira veja que eu posso ter mais de uma chave estrangeira
diferente em uma tabela se eu tiver um relacionamento com várias tabelas aqui a tabela de vendas se relaciona com duas com clientes e comprou e já produtos se relaciona só com vendas e clientes se relaciona somente convém e finalmente eu tenho essas outras duas colunas da tabela de verniz que são colunas comuns dados comuns não são chaves só quantidade ea data de mim assim como na categoria e preços do produto na tabela de produtos nome cpf e data de nascimento do cliente na tabela de pia legal gente então isso aqui é um exemplo de como
a gente usa sabe primária estado estrangeiro claro que para fazer esse rastante primeiro você tem que determinar quais são achar tá numa fase anterior não acho que é um modelo conceitual quando você vai dizer olha eu vou usar ele cliente como chave primária vou sair bem na primária vou sair de produto como chave primária para depois você poder fazer a relacionamentos as ligações com a chave estrangeira tá um monte conselho importante é o conceito de domínio daqui é o conceito que tem a ver com a definição dos tipos de dados então na verdade você quer
um extra né eu tenho exatamente muito a ver com chave mas é importante que você já tem em mente essa ideia de que quando você cria um campo seja ele sabe ou não esse campo ele vai armazenar um tipo de dado específico com um tamanho específico só para não perder o cliente a gente tá catando como o número aqui a chave primária numérica tamanho 4 caracteres o que significa posso até quatro dígitos para armazenar esse número de cliente e esse tamanho vai digitar o número de clientes máximo que eu posso ter então você são quatro
caracteres poderia de 0 a 9999 por exemplo já o nome do cliente vai ser caractere com até 40 caracteres para caber o nome do cliente completo cpf do que nem do cliente caracter também até 11 caracteres para caber o cpf completo dele oi e a data de nascimento é o tipo de dado data e hora esse tipo não apareceu para vocês ainda não viu o tipo da que hora em lógica de programação mas e bancos de dados em linguagens existe um tipo especial de data e hora ou fad data ou só de hora ou data
e hora junto que vai ter um tamanho variado que eu coloquei cara 8 caracteres mas é só dizem pode ser quatro caracteres podem ser seis pode ser hoje pode ser 16 depende da linguagem e do sistema o importante lembrar agora é existem tipos especiais para você armazenar data hora ou ambos juntos daqui ó legal isso a gente também específica na hora de criar o nosso banco de dados bicho aqui mais para frente um pouquinho na hora de fazer o modelo físico olá tudo bem então a gente acabou de estudar o conceito de chaves de nos
tipos de chaves que podem existirmos como é que é feito o esquema de relacionamento de chave primária com chave estrangeira entre tabelas é o que a gente vai estudar agora na sequência é o conceito de cardinalidade agora eu vou falar sobre cardinalidade na segunda parte da nossa então vamos falar sobre cardinalidade a cardinalidade a cardinalidade diz respeito ao número de itens de elementos que se relacionam nas entidades como assim número de quantos clientes quantos produtos cliente ele comprar um ou mais produtos o produto pode ser comprado por um cliente só por vários clientes por nenhum
isso é a cardinalidade é o número de ocorrências dos elementos também tá tá um pouquinho aqui ó bom então a ela pode a gente tem dois números de carnalidade na verdade ela pode ser máxima ou mini ou seja número mínimo de elementos que vão interagir para você ter um relacionamento e o número máximo de elementos que interagem para você ter um relacionamento então para que possa ocorrer por exemplo uma venda eu tenho que ter o número mínimo de elementos interagindo se eu tiver 10 clientes ou zero produtos não tem vendo então não tem relacionamento tem
que ter um número dele pelo menos um cliente pelo menos um produto e tem um valor máximo também qual o máximo de produtos que o cliente pode comprar qual o máximo de clientes que podem adquirir o produto isso a gente chama de cardinalidade e isso que a gente vai estudar nesse momento então cardinalidade máxima agora colocando aqui à especificamente é o número máximo de instâncias entidade que são os registros que pó a participar do relacionamento pode ser um ou e eu tô máximo vai ser um ou máximo vai ser ele o ele em banco de
dados n significa muitos quando aparece a letra n significa que é um número grande de 2 o max a igreja cardinalidade máxima ela vai ser um ou ele não pode ser zero o máximo não pode ser é porque se o máximo for zero não tem relacionamento no máximo nenhum então não tem relacionamento então a carne da cardinalidade máxima começa sempre um pode ser um ou podem ser vários então o cliente pode poder comprar um produto ou vários produtos e ele não pode comprar 10 produtos e se não tem compra tem não tem transação ocorrer já
a cardinalidade mínima é o número mínimo de instâncias de entidades de registros que devem mas aqui o verbo deve obrigatoriamente estar num relacionamento então tem que ter aquilo obrigatoriamente no mínimo não não ocorre o relacionamento e o mínimo pode ser zero pode ser um podem ser muitos zero um ou muitos e como é zero a gente disse que a participação é opcional tá é opcional ter aquele valor ter aquele registro ou não quando é um significa que é obrigatório tem que ter um item que é o mais comum o cliente vai comprar um produto se
ele vai comprar no mínimo tem que ter um produto nesse caso o mesmo seria um e a cardinalidade mínima também pode ser muitos na dependendo do tipo de relacionamento pode ser que seja muitos ao professor vai dar aula numa sala quantos alunos têm na sala muitos alunos pela regra de negócio da escola por exemplo não posso fechar turma com menos de dez alunos estão mínimo dez alunos máximo 30 alunos então é isso é diz que vai tratar a cardinalidade número mínimo de ocorrência e máximo também e como é que a gente indica a cardinalidade no
diagrama estão usando a lotação do peter chen que você já conhece e você vai ter entidade aqui no retângulo você vai ter a linha conectando a entidade com outra entidade por meio de um relacionamento e aí para indicar a cardinalidade você vai acrescentar esses números vinhos você tava em verde aqui entre parênteses junto à entidade você vai escrever a cardinalidade mínima e a cardinalidade máxima ou seja o número mínimo de itens daquela entidade e o número máximo de linhas daquela entidade que participam relacionamento o número mínimo sempre vai aqui do lado direito da vírgula e
o número máximo do lado esquerdo aqui por exemplo significa que essa entidade participa do relacionamento domínio com um registro no máximo com um registro então é só um registro participção registro de fax em alguns casos é só um que vai participar você vai ter só um registro se relacionando com a outra tabela é legal podia ser um giro a n no mínimo um no máximo muito ou poderia ser m vírgula e me no mínimo muito no máximo muito ou ainda 0,10 no máximo tem várias combinações que você pode fazer a análise que você passa na
hora de criar a modelagem justamente para isso para descobrir esses valores e colocar no diagrama e a isso aqui é a notação peter chen padrão a outra anotação que que você tem para vocês que a calda pé de galinha ela tem uma simbologia diferente para ficar de na idade que essa que você também você vai ter identidade ainda no retângulo você vai ter a linha de conexão só que aí você vai ter esse símbolos aqui para indicar cardinalidades máximas você vai ter 102 desenhos o tracinho vertical significa um e já esse tracinho aqui na diagonal
simboliza um sinal de maior que na verdade da impressão do pé de galinha daí o nome dessa essa cara dessa simbologia significa muitos e um círculo significa zero tô aqui por exemplo minimum-maximum o menino sempre está do lado esquerdo e o máximo do lado direito mínimo um máximo muitos um-para-muitos mínimo 10 máximo um mínimo 10 máximo muito assim a gente vai fazer a cardinalidade usando essa simbologia nesse exemplo aqui embaixo a cardinalidade de mim não é um e a massa é muito eu posso ter uma ou mais entidades participantes do relacionamento cliente pode comprar um
ou mais produtos é isso que tá escrito aí que essa entidade vamos supor que seja entidade produto significa em um relacionamento um ou mais produtos participam da dengue é um ou mais alunos participam da aula se fosse zero em vez de se tracinho interior o círculo aqui nesse lugar tá então essa ideia de a gente utilizar essa simbologia tranquilo pessoal não se preocupe também não tá muito louco muito claro que vocês vão fazer exercício mais para frente e vão criar vários diagramas mas a gente vai ver outros exemplos agora agora a gente vai ver exemplos
mais concretos e acho que vai ficar mais em bom então exemplo de cardinalidade eu tenho aqui uma entidade cliente e uma entidade é encomenda oi e o nome do relacionamento é esse aqui é o solicita veja que eu não estou usando a notação peter chen tô usando a pé de galinha então não tem aquele losango aqui no meio para tá escrito solicitar dentro é só escrever solicita em cima da linha é a mesma coisa tá só mudou a notação graf e como é que funciona isso aqui ó e a carne na idade ela sempre deve
ser contada nos dois sentidos ou seja tem a cardinalidade da entidade cliente também tem a cardinalidade da entidade encomenda tabela cliente tabela em comer toda a tabela toda a entidade tem a sua cardinalidade não é uma cardinalidade por relação é porque o relacionamento por tabela tá não tem que fazer os dois lados e como é que agente faz para contar essa começando pelo lado do cliente você vai fazer sempre a seguinte pergunta um cliente pode solicitar quantas em colmeias isso é uma análise essa pergunta é uma análise que você tá fazendo então o cliente ele
pode solicitar quantas encomendas a resposta dessa pergunta vai te dar a cardinalidade vai te dar a cardinalidade nós estávamos o corpo de acordo com a regra de negócio da empresa um cliente ele possa solicitar uma ou mais encomendas e eu sei que pode solicitar uma mas encomendas se eu tô olhando o cliente o gol do outro lado e coloco uma ou mais encomendas olha só então se eu tô analisando o cliente com relação encomenda aí na verdade eu vou jogar do outro lado que é cliente para encomenda uma ou mais encomenda uma ou muitas aí
só termo correto oi isa salles e agora análise tem que ser feita sempre nos dois sentidos então agora eu vou pegar encomenda e pergunto uma encomenda pode ser realizada por quantos clientes isso sempre depende da regra de negócio da empresa que como a empresa trabalha não é você que determina isso é o seu cliente que te dizer isso vamos porque nessa empresa a encomenda só possa ser realizada por um ambiente eu não posso ter dois clientes fazendo a mesma encomenda então cada encomenda para um único cliente a nesse caso a encomenda vai ser regada no
mínimo por um cliente e no máximo por um cliente então eu vou lá do outro lado e coloco minimum-maximum beleza tá feita a cardinalidade deste relacionamento bom então cardinalidade mínima com o cliente para uma encomenda ea máxima um cliente para muitas encomendas é isso aqui é uma cardinalidade um-para-muitos esse é o tipo de cardinalidade que é perfeita para a gente pode ficar colocar no banco de dados isso aqui não vai gerar a tabela associativa pa agora se você tiver só quando foram muitos para muitos que a gente vai ver um exemplo já já também beleza
então isso aqui é notação peter ah desculpa pé de galinha a anotação que o teu cheiro tá aqui é para vocês nos confundir e aprenderem as duas formas e se eu fosse fazer uma fita assim seria isso aqui o solicita que o meu relacionamento fica dentro do los amo em vez de usar os símbolos do pé de galinha coloca os números vinhos dentro de parentes e a mesma coisa tal cliente pode realizar uma ou mais encomendas então lá do outro lado entre parênteses eu coloco o mínimo ele é o máximo e mínimo encomenda no máximo
muito oi e a encomenda só pode ser realizada por um único cliente então lá do outro lado óculos paredes 1,1 que é a genialidade de encomenda para cliente tá então são as duas formas de fazer de água ó jogando vocês vão fazer o que vocês gostarem mais aqui no brasil ambos são usados pelas empresas tanto pé de galinha quanto o peter chen então é importante você conhecer as duas formas de fazer diagramas para quando você for trabalhar na área por exemplo você já tá preparado beleza se você tem um relacionamento um-para-muitos fazer outro tipo de
relacionamento vamos supor o relacionamento um-para-um agora como que é um relacionamento um-para-um em relação as cardinalidades esse relacionamento aqui o seguinte ele ocorre quando uma entidade é uma instância a gente dá de um registro de uma tabela só pode se relacionar com o único registro na outra entidade não não é um para muitos é um para um é que eu tô sempre bem clássico mas em todo mundo real inclusive professor e armário é tão lá no senac por exemplo os professores tem lá na sala dos professores um armário é um armário grande dividido com portx
com os números de cada professor tem seu armário para guardar suas coisas seus livros apostilas etc só que a regra é a seguinte cada professor tem um armário um só professor não pode ter mais de um armário não falta armário que os professores e cada armário só pode ser usado por um o único professor depois não falar mais número 13 é o meu e o treze é só meu outra professora não pode colocar na água lá dele eu tenho a minha chave só eu abro em compensação eu também só tenho esse armário 13 não posso
usar o outro se eu tiver muita coisa que aguardar eu não tenho de guardar se não couber naquele armário então como é que eu modelar isso no banco de dados entidade com a lista dos professores tabela com a lista dos números de armários e aí a gente faz as perguntas começando pelo professor nesse caso um professor ele pode usar quantos armários bom no mínimo um que todo professor atenção armário no máximo um porque só um armário do professor então vou lá do outro lado do usa é o nome do nosso relacionamento e me máximo a
beleza e aí eu preciso obrigatoriamente fazer a pergunta no sentido inverso e um armário ele pode ser usado por quantos professores ao mesmo tempo o armário que a portinha a gente tá sempre na portinha com um uber ele pode ser usado no mínimo por um no máximo porém é porque todos os armários estão ocupados então minimum-maximum do lado de cá também três fizemos o relacionamento entre professor e armar e essa ideia aqui ainda com os dados modelagem vem lá da matemática bem na teoria de conjuntos da matemática quem criou isso que vazou na querido da
teoria de conjuntos da matemática para criar esse esquema de modelagem e na teoria de conjuntos seria isso aqui ó tem um diagrama de fé que é um diagrama da conjunto lado primário escola no qual eu criei uma um conjunto professores e um conjunto armários e olha só fica bem claro ali no presente diagrama como é que funciona esse relacionamento um-para-um para cada professora professor um profissão 2 pessoas 3 pessoas 4 eu tenho apenas e tão somente um armário armário um número 2 número 3 número 4 e para cada armário e apenas e tão somente um
professor então isso que a gente chama de relacionamento um-para-um a cardinalidade um para um que a gente vê nota assim ó um dois pontos muito bem legal isso não e aí a gente sempre faz a da esquerda para a direita e da direita para a esquerda sempre em ambos os sentidos se você quiser essas perguntas para determinar a cardinalidade só de um lado você vai errar chupando cuidados vai tá errado tem problema fazer sempre nos dois sentidos tá oi e aí usando a notação que seria isso aqui ó o professor é um armário no mínimo
no máximo então lá do outro lado que se inscreve no violão e o armário é um professor no mínimo no máximo 1,1 também quando é 1,1 ó mínimo o máximo um a gente pode abreviar colocando só o número um a dentro até mais simples também o professor usa armário um professor usa um ar só quando for 1,1 se escreve só um e a gente já sabe que se trata de mínimo um máximo fica um pouquinho mais frente do seu diagrama fazendo assim tá então tranquilo é a que mais um para muitos mas vamos ver o
relacionam com pra mim esse é o relacionamento mais comum que vai aparecer nas tabelas e nesse caso de uma instância de tirar um registro de uma instância pode se relacionar com vários registros em outra tabela o significado que um cliente pode comprar vários produtos o tio não pode estar matriculado em vários cursos ao mesmo tempo então aqui gente uma diariamente um para muito que vai ser deslocado por 12 pontos ele com ele significa muitos tô aqui temos exemplo entidade funcionário e entidade departamento de dentro de uma empresa tem empresa tem lá uma tabela com as
informações dos seus departamentos em uma outra tabela faz informações sobre funcionários e o relacionamento que existe dessas tabelas é o verbo trabalhar funcionário trabalha no departamento ou no departamento trabalho os funcionários como é que a gente faz a cardinalidade disso eliminar os números eu não quebro e começa aqui pelo funcionário e a gente faz aquela pergunta um funcionário trabalha enquanto os departamentos é lógico que isso depende da regra da empresa não era sua cabeça que vai sair é da análise de requisitos que você fez lá no comecinho vamos supor aqui nessa empresa que vão empresa
bem tradicional e o funcionário só pode trabalhar em um único departamento e depois do trabalho no departamento de tecnologia então eu não tô no departamento de tecnologia e nos administração ao mesmo tempo sou só tecnologia então funcionário que trabalha no mínimo um e no máximo em um departamento é porque no mínimo um porque se ele não tiver em um lugar para caminho ele não tá na empresa por esse caso o mínimo vai ser um tão mínimo máximo eu vou lá do outro lado escrevo mínimo máximo um é sempre do outro lado que a gente coloca
a casa de nalidade ok e aí eu preciso fazer perguntas no sentido inverso em um de para também trabalham quantos funcionários aí você já deve imaginar que não departamento pode ter um funcionário mas pode ter vários pelo trabalho no departamento de tecnologia mas eu não trabalho sozinho em outros funcionários lá separadamente o cro no mínimo no máximo muitos e quando quiser um departamento não se tiver 0m departamento não tem ninguém trabalhando o tenho departamento funciona tá então nessa empresa no mínimo vai ser um no máximo muito então vou lá do outro lado e coloco mesmo
máximo muito o mínimo sempre fica do lado de fora é a do lado de fora aqui da representação e o máximo fica aqui do lado de dentro quando você usar o pé de galinha então o máximo tá sempre conectado direto grudado na entidade menino tá do lado de fora mesma coisa aqui o menino tá no lado de fora e o máximo tá mais próximo da entidade para você não se confundir e em teoria de conjuntos como é que seria isso diagrama de venn tá tabela de conjunto de funcionários funcionários um dois três quatro ou junto
de departamentos de apartamento 12 b um funcionário trabalha em apenas um departamento funcionário um plano de pagamento um funcionário do estado departamento um funcionário três departamento 2 e funcionário quatro departamento do mas ele um departamento eu posso ter olha só dois funcionários seja mais de um funcionário e o mínimo um no máximo muito porque eu tenho dois estão no departamento um tem esses dois caras e o departamento dois tem esses dois caras aqui funcionário crescer funcionário quatro então isso a gente chama de relacionamento um-para-muitos um para ele na representação que deus tem a gente faz
assim e se o funcionário trabalha num único departamento é um vírgula um senão departamento podem trabalhar mesmo no máximo funcionários é um virgula.na e aí no twitter sem a gente pode simplificar sempre que for um vídeo lá em você escreve só ele é como se escreve só ele no peter assim a gente já sabe é mesmo no máximo muito e quando for 1,1 já sabe se tiver um e aí a gente tem então aqui bem claro um relacionamento um-para-muitos um departamento para muitos funcionários ou muitos funcionários para um departamento tá beleza a gente fez a
cardinalidade e nós estávamos aqui falando do relacionamento binário um-para-muitos usando a notação do peter chen então só recuperando esse slide e a um funcionário pode trabalhar em mim e no máximo um departamento mínimo máximo para você escreve 1,1 e o debate no departamente pode ter um ou mais funcionários um vírgula ele então a gente pode abreviar isso o n quando foram de guarani e um quando for 1,1 pelos esse é um para muitos esse é o relacionamento muito comum vai acontecer na maior parte dos casos ele é perfeito na hora de se codificar funciona tranquilamente
não precisa fazer nada com relação a isso e agora não existe um outro tipo de relacionamento que às vezes os vai aparecer que ao relacionamento muitos-para-muitos que é denotado por n2.com a gente usa a letra m por convenção n mgn2 ponto zeni tão nesse caso é quando a muitas instâncias muitos registros de uma tabela se ela podem se relacionar com muitos registros de outra tabela e vice-versa um exemplo clássico é esse aqui ó cliente e pacote o produto é um cliente pode adquirir quantos pacotes aí pode crer um ou mais pacotes de produtos qualquer pacote
de salgadinho por exemplo tanto faz então um para muitos então vem aqui no diagrama coloco no mínimo um no máximo muitos no mínimo no máximo muitos beleza e aí eu posso fazer o processo inverso um pacote era adquirido por quantos clientes um pacote vamos supor que na regra da empresa o pacote possa ser adquirido por mais de um cliente mais uma pessoa bem paga pelo pacote então é no mínimo um no máximo um também neste caso eu também coloco aqui mesmo um máximo 1 bom então ficou um n de um lado e uma ilha do
outro também material dos conjuntos ser esse aqui ó os clientes um dois e três pacotes um dois três e quatro vejo o cliente um ele poderia adquirir canto o pacote um quanto o pacote 2 e olha o cliente três ele adquire os pacotes 2 3 e 4 oi e o pacote em si a um pacote o pacote dois ele pode ser adquirido pelo cliente um e pelo cliente dois e até mesmo pelo cliente três ao mesmo tempo e aí então nesse caso a gente tem o que é chamado de relacionamento muitos-para-muitos hino do real no
geral a gente não implementa isso diretamente a gente tem que quebrar ele colocando uma terceira a tabela intermediária que a calda a tabela associativa eu colocar em uma tabela aqui no meio ligarei o cliente nessa tabela ligarei o pacote nessa tabela essa tabela seria por exemplo uma tabela de bem e que vocês vão aprender a fazer essa tabelinha também a notação peter chen eu não escrevo tinha um cliente pode adquirir no mínimo no máximo muitos pacotes do outro lado você escreve um vírgula ele e vice-versa tim pacote pode ser adquirido por uma mais clientes do
outro lado você põe um dele lá ele e aí você já sabe o que pode abreviar isso então com vírgula n vira n e do outro lado a gente com a letra m por convenção a n e m é só para indicar os 21 dias com muitos um número grande de enjoo muitos itens o ele pode ser que muitos a então ele cai esse é um relacionamento que é complicadinho a gente tem que fazer umas coisinhas extras ela poder trabalhar com ele e por exemplo fazer isso aqui como é que eu desmembre um relacionamento muitos-para-muitos
eu desmembro criando uma nova entidade na entidade associativa que vai ter relação com as duas entidades originais mais o relacionamento um-para-muitos é o transforma muitos-para-muitos em dois relacionamentos um-para-muitos toque o cliente e pacote e mais a nova entidade que eu chamei de cliente underline pacote está muito comuns a esse nome pegar o nome de uma entidade nome da outra e juntar os dois tá para criar entidade associativa então um cliente ele pode compor vários kit pacote ou venda e um pacote pode compor vários clientes pacote beleza porém uma entidade um registro na entidade cliente pacote
pertence a um único cliente e esse registro possui apenas um único pacote então desse lado virou um conseguimos lembrar o pão para muito dois relacionamentos um-para-muitos então a ideia fazer sempre isso toda vez que acontecer um relacionamento muito para nós e que eliminar esse problema beleza e tem na notação filhas na anotação pé de galinha ser isso aqui ele era muito para muitos virou comprar muitos sombra muito dos relacionamentos um para ele e aí cliente pacote o vírus o nome a gente eu costumo usar assim mas você pode vir aqui me dar um nome diferente
poderia ter escrito aqui por exemplo venda ou compra pedido depende o nome que você quer dar o ou do nome mais comum para essa transação que a empresa costuma utilizar no dia a dia e sua análise de requisitos ela é importante tranquilo pessoal futebol conseguimos terminar a apresentação de cardinalidades tá e também esse outro assunto que foram as chaves que a gente anteriormente a e no próximo na próxima a gente vai fazer diagramação vocês vão aprender a criar os diagramas e vão começar a criar diagrama baseados em probleminha antes disso hoje eu vou deixar uma
lista com alguns exercícios é verdade é uma mais um questionário de revisão de todos esses conselhos que a gente viu parece ficarem bem bem claro na mente de vocês para a gente poder começar a criar os nossos diagramas e a volta para cá e vocês têm você tem alguma dúvida que só com relação ao que foi apresentado na aula de hoje e então podemos encerrar na sala hoje eu agradeço mais uma vez a todos que compareceram à aula fiquem espertos mais tarde para pegar os materiais de estudo e a gente se vê na nossa próxima
aula que você na segunda-feira nesse mesmo horário 9:30 da manhã e claro se tiverem alguma dúvida no meio tempo pode mandar por e-mail manda no whatsapp que vez em quando dá uma olhada e posso responder agora gente então é isso aí obrigado a todos um bom final de semana