Curso MySQL #14 - Modelo Relacional

434.15k views7994 WordsCopy TextShare
Curso em Vídeo
Você conhece o Modelo Relacional e sabe riar o Diagrama Entidade Relacionamento ou DER no Projeto de...
Video Transcript:
Hum [Música] [Música] Hum olá pequeno gafanhoto seja bem-vindo a mais uma aula do seu curso em vídeo de banco de dados com aql o meu nome é Gustavo Guanabara eu sou seu professor e agora nessa 14ª aula do curso de banco de dados com SQL a gente vai dar uma pausa na parte prática e vamos falar um pouco sobre teoria falando um pouco sobre relacionamento entre tabelas e essa é a parte um dessa aula e calma você que tá pensando aí Ah não lá vem ele com teoria vou pular pra próxima aula se você pular
pra próxima aula você não vai entender nada da 15ª eu te garanto eu tenho uma proposta um pouco diferente quando eu ensino o banco de dados normalmente você fez no colégio ou na faculdade com certeza o professor de banco de dados começou falando o quê do modelo relacional falou sobre aquele monte de teoria e lá no meio do curso Ele começou a fazer banco de dados eu inverti um pouco as coisas eu comecei fazendo um banco de dados a gente fez um banco de dados com duas tabelas simples e agora nós vamos começar a conectar
as tabelas eu vou falar um pouco agora sobre o modelo relacional e antes de mais nada é importante que eu te diga o seguinte eu não vou me aprofundar no modelo relacional isso porque isso é um curso introdutório de banco de dados na minha opinião se você é um aluno e iniciante você não precisa saber exatamente como funciona o modelo relacional logo de início e é claro que quanto maior o seu banco de dados melhor ele fica se você utilizar conceitos de banco de dados Como por exemplo o modelo relacional projeto de banco de dados
normalizações e muito mais o que eu quero deixar claro aqui é de que nenhuma dessas técnicas que eu acabei de citar são inúteis elas são sim muito úteis mas para quando o usuário é iniciante para quando o gafo tá começando a aprender eu Gustavo Guanabara seu professor acho melhor começar com a parte prática crio uma ou duas tabelinhas básicas e depois a gente entra mais aprofundadamente no modelo relacional e é exatamente isso que eu propus e tô utilizando no curso em vídeo de banco de dados e se você é daqueles que gosta de pular teoria
Com certeza você pulou a aula um do curso de banco de dados não foi você criou lá a história de banco de dados não quero saber isso eu vou voltar aqui e vou te falar um pouquinho só nesse iniciozinho sobre o que a gente tinha falado lá na aula 1 então se você perdeu o que importa da aula 1 para essa aula É exatamente esse conceito que eu vou passar agora você deve se lembrar muito bem que lá na década de 60 o Governo dos Estados Unidos no departamento de defesa e a IBM fizeram um
evento chamado codazo de onde nasceu a linguagem cobol e os primeiros conceitos de banco de dados nessa época surgiram os modelos hierárquico e em rede que eram muito bons pra época mas com o passar dos anos eles acabaram se mostrando pouco eficientes foi quando na década de 70 um dos Engenheiros da ebm o Edgar cod propôs a criação de um modelo um tanto quanto diferenciado onde os dados muito mais do que apenas ligações eles seriam relações entre eles surgiu então o modelo relacional nos modelos hierárquicos em rede você tinha simples ligações entre dados o modelo
relacional trouxe essa ligação a um outro patamar Ele criou relações onde eu não tenho apenas uma ligação eu posso ter várias ligações e essas ligações T significado graças ao modelo relacional Hoje em dia a gente pode ter um banco de dados Onde por exemplo exemp eu cadastro uma pessoa e aí acaba que eu tenho um registro a partir do acesso a esses dados dessa pessoa eu posso por exemplo ver onde ela mora ou Que tipo de compras ela fez no meu estabelecimento uma vez que ela tenha feito compras eu consigo ter acesso à data e
a Quanto isso afetou no meu estoque e eu posso até fazer com que o meu sistema Decida se o quanto que ele afetou o meu estoque é o necessário para eu ter que entrar em contato com o meu fornecedor e pedir uma reposição tudo isso é possível hoje em dia nos sistemas de forma simplificada graças ao modelo relacional e eu não tô falando aqui que o modelo relacional é o ápice é o auge da tecnologia não já surgiram outros modelos Como por exemplo o modelo orientado a objeto que é bastante útil tem vantagens em relação
ao modelo relacional Só que infelizmente eleina não foi adotado em grande escala até o momento em que eu tô gravando esse vídeo o modelo relacional reina dentro do mercado brasileiro do mercado mundial Então é nele que a gente vai se basear e você deve se lembrar das aulas anteriores também quando eu apresentei o Godofredo para vocês Tu lembra né Tu lembra do Godofredo o Godofredo que tinha uma esposa uma filhinha aquele negócio lá do início Então a gente vai vai voltar a esse tipo de conceito porque ele é de suma importância para que você entenda
o ponto desse curso daqui pra frente então a gente apresentou além de Godofredo outras pessoas aí que a gente tinha cadastrado o que eu propus numa das aulas iniciais do curso era pegar todo mundo e colocar num contêiner lembra disso peguei esse contêiner escrevi um nome nele por exemplo gafanhoto e dentro eu posso colocar gafanhotos eu posso colocar pessoas que são estudantes do curso em vídeo Além de armazenar eles dentro de um contêiner eu coloquei todas as informações que são necessárias para identificar cada um deles como por exemplo aí identifica nome profissão Nascimento sexo peso
altura e nacionalidade você deve se lembrar dessa relação conceitual que eu inventei aí loucamente no início Mas acontece que ela vai fazer mais sentido agora esse contêiner é como se fosse um retângulo que cabe dado dentro não é isso só que em vez de desenhar um contêiner eu vou desenhar de maneira mais simplificada Beleza eu vou transformar esse contêiner Num simples retângulo e vou escrever da mesma maneira gafanhoto e eu também vou parar de chamar esse contêiner de contêiner eu vou passar a chamar ele de entidade então de forma resumida o uma entidade para um
banco de dados é como se fosse um contêiner onde eu vou colocar dados sobre alguma coisa ou sobre alguma pessoa nesse meu caso aqui o meu contêiner gafanhoto vai conter dados de alunos dados de gafanhotos que são alunos do curso em vídeo Então sempre que você vira um entidade escrito gafanhoto Imagine que essa entidade é como se fosse um contêiner e dentro desse contêiner a gente tem vários gafanhotos porque tá identificado na etiqueta que tá logo abaixo então se você olha por exemplo um contêiner uma entidade escrito produto Com certeza você vai vai imaginar o
quê dentro desse contêiner tem um monte de dados sobre produtos tem lá o nome do produto quem fabricou quanto ele custa quanto ele pesa com a cor da embalagem o que for necessário para armazenar dados sobre esse produto e esses dados eu vou parar de chamar de dado também eu vou passar a chamar de atributo então toda entidade possui uma coleção de atributos definidos esses atributos vão compor os dados que compõem cada um dos elementos que estão dentro dessa entidade ficou confuso para você você volta um pouquinho o vídeo Assiste esse pedaço de novo e
com certeza você vai entender no momento do nosso curso até agora a gente criou duas entidades A Entidade gafanhoto e a entidade curso a entidade gafanhoto possui atributos relacionados apenas a alunos e a entidade curso possui dados relativos apenas a cursos como identificação dele o nome descrição carga total de aulas e o ano em que ele foi criado Deu para entender que eu não consigo pegar um aluno e colocar dentro do contêiner do curso Deu para entender que eu não consigo pegar um curso e coloco dentro do contêiner de aluno Então são coisas diferentes que
eu vou colocar em contêiners diferentes e guardar dados diferentes de forma mais técnica eu vou dizer o seguinte dados são representados em forma de atributos esses conjuntos de atributos vão identificar tuplas vão identificar registros vão identificar coisas que estão armazenadas dentro de entidades e tudo isso já existia nos outros modelos como o modelo em rede ou o modelo hierárquico a diferença do modelo relacional Como eu disse anteriormente é que eu consigo fazer ligações entre essas entidades outra coisa que nós vimos nas aulas anteriores é que um desses atributos ou um conjunto desses atributos servem para
identificar cada uma das tuplas isso é eu sou uma pessoa você é uma pessoa alguma coisa diferencia a gente de forma que não exista duas pessoas com a mesma coisa por exemplo o meu CPF Eu tenho um CPF você tem um CPF eu não posso te me identificar e te identificar por altura por exemplo pode ser que a minha altura seja de diferente da sua mas Pode ser que a minha altura seja a mesma de outra pessoa pode existir outra pessoa que se chame Gustavo Guanabara pode acontecer mas com certeza duas pessoas não têm o
mesmo CPF e nós vimos que existem atributos específicos chamados atributos chave primária no caso aqui da minha entidade de gafanhoto eu tenho o ID como chave primária e no caso de curso eu tenho o ID curso como chave primária não existem dois gafanhotos com o mesmo id e nem dois cursos com o mesmo ID de curso e é aí que o modelo relacional começa a se di diferenciar dos modelos mais antigos a presença de Chaves é algo muito importante e você vai entender já já por que isso precisa acontecer Então a primeira base do modelo
relacional foi o uso de Chaves e essas chaves primárias elas servem para identificar as tuplas e elas vão servir também para relacionar as entidades isso porque Como o próprio nome sugere o modelo relacional relaciona essas entidades Então quando você cria o modelo relacional você se pergunta a entidade tal pode se relacionar com a outra entidade por exemplo um gafanhoto pode se ligar a algum curso de alguma maneira e eu te pergunto existe uma ligação entre gafanhoto e Curso E aí eu te digo Claro que existe uma ligação um gafanhoto assiste um curso percebe aí que
eu representei em forma de um losango e coloquei uma palavra que identifica Qual é a relação entre gafanhoto e Curso gafanhoto assiste curso curso é assistido por gafanhoto Então existe uma relação entre um e outro e é claro existe uma entidade dominante e uma entidade relacional nada a ela mas nada impede que eu faça a leitura nos dois sentidos eu só vou ter que mudar um pouquinho a palavra cada livro de banco de dados dá uma regra um pouco diferente pra nomeação desses losangos eu vou utilizar um modelo relacional um pouquinho mais livre Isso porque
o nosso curso não é focado diretamente no ensino de modelo relacional eu só tô fazendo aqui de uma forma simples de uma forma um pouco mais didática apenas Relembrando todo retângulo que vai aparecer aqui entidade Então eu tenho duas entidades A Entidade gafanhoto e a entidade curso apareceu um losango aqui no meio todo losango a gente vai chamar de relacionamento Então pode acontecer de duas entidades duas ou mais entidades se relacionarem entre si Nós também não vamos falar sobre relacionamentos ternários e quaternários ená nós não vamos falar de relacionamentos múltiplos nós vamos falar aqui nesse
curso introdutório apenas de relacionamentos duplos que são aqueles que envolvem apenas duas entidades Então o que nós podemos dizer já que entidade é um retângulo e o losango é o relacionamento que esse diagrama tem um nome esse diagrama se chama diagrama entidade relacionamento Você pode escrever diagrama entidade traço relacionamento ou diagrama e traço r ou de forma mais simplificada ainda você pode simplesmente colocar der então o der que é o diagrama entidade relacionamento ele vai mostrar como o modelo relacional está sendo aplicado dentro desse meu Minimundo dentro dessa minha possibilidade dentro dessa minha situação que
eu quero criar um banco de dados Então nesse nosso curso a gente tá um banco de dados para cadastrar aluno e para cadastrar cursos só que eu posso relacionar aluno com curso porque aluno assiste curso e eu posso simplesmente falar isso de forma verbal e isso pode causar uma certa dúvida para você ou então eu crio um diagrama idade de relacionamento que essa maneira gráfica de representar como o modelo relacional vai funcionar dentro do meu banco de dados Ficou claro isso para você então antes de criar um banco de dados pequenininho você não precisa se
preocupar com o modelo relacional se o seu banco tem duas tabelas uma tabelinha só e você não precisa ligar uma tabela com a outra Relaxa Filho você vai criar seu banco quero cadastrar uma agenda só quero cadastrar pessoas Beleza você não precisa saber o modelo relacional para isso agora se o seu banco começar a crescer se você precisar ligar um dado de uma tabela com o dado de outra tabela em vez de ficar colocando tudo dentro de uma tabela só aí sim você vai precisar estudar um pouco mais sobre o modelo relacional e até um
pouco mais do que eu tô te passando aqui não acho que o que eu vou falar nessa aula teórica de modelo relacional vai suprir toda a necessidade que você tem de ouvir um pouco pouquinho mais sobre banco de dados o que eu quero fazer aqui é apenas o papel legal é apenas o papel Inicial Se você quiser se aprofundar você vai ter que ler um livro você vai ter que procurar um professor procurar um profissional responsável e aí sim você vai se aprofundar no estudo de banco de dados Então esse diagrama que tá aparecendo aí
na sua tela nada mais é do que um diagrama de entidade de relacionamento ou um der Então as entidades se relacionam uma com as outras através de losangos através de relacionamentos E como eu já falei 1 milhão de vezes sempre que a parecer uma entidade veja como se fosse um contêiner isso é eu vou botar um espaço um pouco maior para poder representar aqui para você sempre que você vira uma entidade gafanhoto por exemplo Imagine como se fosse um grande contêiner onde Dentro eu coloco gafanhotos coloquei aí ó um Senhorzinho da mesma maneira quando falar
de curso Fica imaginando que dentro desse contêiner tem dados sobre um determinado curso por exemplo o curso de HTML5 que a gente tem aqui você não sabia que o curso em vídeo tem mais do que isso olha aqui ó dá uma olhada aqui em cima aqui em cima tem algumas playlists você clica aqui ó tem esse izinho interativo aqui que aparece até no celular aperta esse izinho dá uma olhada pode apertar agora não tem problema nenhum o aula não vai parar você não vai fechar não vai nada aperta aqui o izinho apareceu aqui do lado
não apareceu Então você tem um monte de curso aqui você pode clicar aqui e acessar ou então você acessa o cursoemvideo.com ou então a nossa playlist do YouTube é só procurar no YouTube por curso em vídeo a gente vai aparecer logo em primeiro é só fazer o seguinte procura por curso de HTML5 no YouTube você vai ver que vai ser uma dominação mundial e não pense que dentro de gafanhoto só tem um aluno e dentro de de curso só tem um curso não eu posso ter vários gafanhotos e eu posso ter vários cursos esses dados
podem coexistir de forma isolada como tá acontecendo até o momento nesse curso Então eu tenho o cadastro de gafanhotos e eu tenho o cadastro de cursos o que não tá acontecendo é eu não posso fazer um aluno assistir um curso ainda isso porque eu não falei de relação ainda e agora que a gente tá vendo isso Deu para entender que se você não prestar atenção nessa aula Se você não entender essa aula 100% você não vai conseguir prosseguir no curso de banco de dados então a dica que eu te dou é assiste essa aula mais
de uma vez se você já é um gafanhoto experiente Com certeza tudo que eu tô falando aqui você já conhece mas acaba que a galera se diverte e vê minha maneira maluca de explicar as coisas isso é bem legal a partir do modelo relacional eu posso dizer que existe relacionamento entre as tuplas das entidades então por exemplo o primeiro gafanhoto ali o Senhorzinho ele pode por exemplo assistir o curso de html pode mas ele também pode assistir o curso de PHP nada impede eu tenho também por exemplo a Senhorinha lá embaixo tá assistindo o curso
de Word mas ela também assiste o curso de HTML e o de PHP o God fro o Godofredo faz Java só Java que o Godofredo tá limitado na parada tá trabalhando demais Sabe como é que é essa coisa tomar conta de uma menininha bonitinha cutcut e o rapazinho de cabelo encaracolado Ali vai fazer o curso de HTML5 e o curso de Word Por exemplo percebe aí que cada uma das cores representa qual curso que cada um tá assistindo Então vamos prestar atenção aqui ó o primeiro gafanhoto tá fazendo dois cursos o segundo gafanhoto também tá
fazendo dois cursos o terceiro tá fazendo um curso só e a última tá tá fazendo três cursos então a gente chega à conclusão de que um mesmo gafanhoto ele assiste vários cursos então eu venho aqui ó e coloco um n então cada gafanhoto assiste vários cursos Olha o sentido da Leitura um gafanhoto assiste n cursos Deu para ler é muito importante que você entenda esse sentido de leitura vamos fazer do outro lado agora cada curso daqui pode ser assistido por exemplo HTML5 tá sendo assistido por quantos por três aqui não é que são o Senhorzinho
o rapaz de cabelo encaracolado e a mocinha lá no final então cada um dos cursos pode ser assistido por n gafanhotos Então você sempre vai partir de um lado um desse daqui assiste quantos do lado de lá vários um do lado de lá é assistido por quantos desse lado vários Então você vai botar n de um lado n do outro e isso tudo tem um nome é cardinalidade então até o momento a gente viu alguns conceitos entidades atributos relacionamentos e agora cardinalidade a cardinalidade ela pode ser simples ou múltipla um ou n eu não vou
ficar me aprofundando aqui existe a cardinalidade nula existe a cardinalidade mínima e máxima eu vou trabalhar nesse curso apenas com o modelo simples de cardinalidade o modelo de cardinalidade máxima representado no diagrama entidade de relacionamento mas se você se aprofundou no curso se você estudou com uma outra bibliografia você vai ter o conceito de cardinalidade mínima cardinalidade máxima vai ver que existem tuplas que não são relacionadas com outras Mas a gente não vai se aprofundar aqui eu vou ser chato falando isso várias vezes porque com certeza lá no final vai ter gente comentando assim ah
você não falou do conceito de por exemplo entidade fraca você não viu ah você disse que toda entidade tem que ter uma chave mas existem as entidades fracas que são aquelas entidades que não possuem dados suficientes para ter uma chave eu sei isso tudo que já foi outro mas o que eu quero deixar claro aqui é que esse curso é um curso introdutório o meu objetivo aqui não é me aprofundar até porque o curso é curso básico de banco de dados é para criar banco de dados básicos mas ainda assim eu vou criar relações entre
as tabelas lá no meu MySQL mas eu preciso que você entenda isso aqui antes a partir da cardinalidade a gente pode classificar um relacionamento esse relacionamento que você tá vendo aí ele tem um gafanhoto para n cursos e um curso para n gafanhotos então cada um dos gafanhotos pode assistir n cursos e cada um dos cursos pode ter n gafanhotos assistindo isso vai fazer com que a classificação do meu relacionamento seja muitos para muitos E aí você pode chamar de n para n muitos para muitos escolhe a maneira que você achar melhor aí você vai
falar ah mas bar bara todo o relacionamento é de muito para muitos não é não vamos ver alguns exemplos aqui vamos ver um outro exemplo aqui de relacionamento por exemplo marido casa com esposo Então você se lembra aí sempre que você encontrar entidades você expande ela na sua mente imagina que ela tá expandida dentro da entidade marido eu tenho vários maridos dentro da entidade esposa eu tenho várias esposas E aí a gente pode traçar uma relação entre essas pessoas por exemplo o Godofredo é casado com a Dolores lembra disso eu tenho por exemplo ali o
último Senhorzinho o de baixo é casado com a moça japonesa ali percebe que o marido do meio ali ele não tem relação com nenhuma tupla da entidade esposa que tá do lado direito isso significa que ele tá solteiro Isso é uma tupla não tem obrigatoriedade de ter uma outra tupla e antes de continuar antes que eu seja enchurrada de várias mensagens falando que eu sou homofóbico senhores Olha só eu sei que hoje em dia pode homem casar com homem mulher casar com mulher o marido casar com marido uma esposa casar com esposa existe esse tipo
de coisa só que olha só nós não estamos num curso preconceituoso nós estamos num curso básico se eu começar a dificultar as coisas se eu começar a criar possibilidades eu não explico um conceito que é básico Então vamos ficar com esse conceito de casamento Não tô dizendo que esse é o modelo certo esse é o modelo mais simples da gente entender certo é o modelo mais simples para eu poder te explicar Então aceita isso não é uma questão de preconceito é uma questão de didática Beleza então vamos analisar aqui ó uma tupla desse lado por
exemplo um cara daqui só pode se casar com uma esposa então ó um cara desse se casa com um cara desse aqui então Então vou escrever lá ó um isso é cada marido casa com apenas uma esposa vamos fazer o sentido contrário cada esposa casa com apenas um marido e aí mais uma vez não é uma questão de preconceito cultural porque sabe--se que existem culturas que aceitam que um cara case com várias mulheres uma mulher case com vários caras enfim é uma questão didática é uma questão de simplificação das coisas para que tudo fique mais
fácil de compreender então pro nosso modelo cultural uma pessoa só pode casar com uma pessoa isso me gera um relacionamento de cardinalidade um pouco diferente da cardinalidade que a gente viu antes então a classificação desse relacionamento vai ser diferente em casos onde um marido casa com apenas uma esposa e uma esposa casa com apenas um marido a gente tem um relacionamento um pouco diferente é um relacionamento onde a cardinalidade tá um de um lado outro do outro então a classificação desse relacionamento casacom é a classificação um para um e então a gente acabou de ver
mais um tipo de relacionamento nós tínhamos anteriormente o relacionamento de muitos para muitos agora nós temos o relacionamento de um para um pronto agora acabou ainda não tem mais um tipo de relacionamento aqui vamos ver mais um exemplo por exemplo funcionário cuida de dependente dependente é cuidado por funcionário Mais Uma Vez vamos dar uma ampliada na nossa mente colocar vários funcionários do lado esquerdo e vários dependentes do lado direito então vamos lá o Gofredo ele tem um dependente que é a godol Lores tá aqui embaixo aqui sim godol Lores é o filho do Godofredo godol
Lores você já deve ter visto isso no curso de banco de Dad você esqueceu Vou colocar ali ó o Senhorzinho ali de baixo que é casado com aquela japonesinha ele tem um dependente que é o menino capadinho e também tem outro que é o rapazinho lá de cima então percebeu aí o terceiro funcionário ele tá relacionado a dois dependentes S ele tem dois filhos por exemplo o primeiro só tem um o do meio mais uma vez tá sozinho Tadinho ele não tem filho nenhum ele não tem dependente nenhum então mais uma vez eu digo pode
ter nenhum pode ter um ou pode ter vários E aí vem os conceitos de cardinalidade nula cardinalidade simples múltipla e tudo mais então vamos analisar aqui ó um funcionário pode ter um dependente vários dependentes ou nenhum dependente que é o caso desse aqui tá E aí o que que eu escrevo 0 1 ou n vai pelo maior Qual é o maior o maior caso aqui é esse último caso que ele tem vários então eu digo que cada funcionário pode cuidar de n dependentes e cada um dependente pode ter vários funcionários relacionados a gente sabe que
não né mas aí você vai falar ah mas na minha empresa pode é uma situação adersa mas normalmente um dependente existe apenas um funcionário tomando conta dele então eu tenho aqui ó cada dependente é cuidado por apenas um funcionário mas Guanabara se no meu sistema for esse modelo mais moderno esse modelo que aceita que o mesmo dependente tenha dois funcionários é só você fazer um relacionamento muitos para muitos nesse esse meu caso aqui na minha empresa fictícia que eu tô colocando aqui um funcionário pode ter vários dependentes mas cada dependente só pode estar relacionado a
um funcionário isso me gera um outro tipo de relacionamento onde cada funcionário pode ter n dependentes e cada dependente pode ser apenas de um funcionário temos agora um relacionamento que a gente classifica como de um para muitos e tem livros que classificam um para muitos muitos para um na verdade é só o sentido que você lê Então eu tenho três maneiras de classificar os meus relacion um para um um para muitos e muitos para muitos então o seu primeiro passo deve ser modelar as entidades com seus atributos e seus relacionamentos e depois classificar cada um
dos relacionamentos ó esse relacionamento aqui é um para um esse é um para muitos Esse é muito para muitos Então vai botando cardinalidade aí pertinho das suas entidades isso é de suma importância porque aí a gente vai ver uma regrinha bem básica que é a regra principal do modelo relacional antes vamos fazer um exemplo aqui por exemplo cliente compra produto e aí classifica aí para mim cliente compra produto qual seria a cardinalidade vamos pra tela aqui então eu tenho cliente e tenho produto amplifica aí na sua mente amplifica aí na sua cabeça cliente imagina vários
clientes produto imagina vários produtos e faz a relação faz a cardinalidade e classifica esse relacionamento para mim pausa o vídeo agora e tenta fazer isso mentalmente a sua resposta Já já eu te dou faz esse exercício faz isso pausa o vídeo agora e diz qual é a classificação desse relacionamento então vai lá pausa eu espero que você tenha pausado e tenha feito esse exercício mental que eu tinha falado anteriormente vamos ampliar aqui ó então eu vou amplificar cliente e produto vou colocar vários clientes aqui na minha entidade cliente e vou colocar várias ocorrências de produtos
dentro da minha área de produtos dentro da minha entidade de produtos agora vamos fazer o seguinte vamos fazer os clientes comprarem produtos por exemplo o Godofredo ali ó comprou uma bola e também comprou um telefone ó lá e Comprou duas coisas o Senhorzinho lá de baixo ele comprou um tênis comprou uma bola e comprou um telefone Senhorzinho é da Ostentação aí tá cheio da grana e a Dolores ela também comprou uma bola e um tênis provavelmente a Dolores vai querer jogar bola com esse tênis percebe aí cada cliente comprou vários produtos Então vamos começar a
classificar aqui ó vamos pegar um cliente aqui um cliente pode comprar quantos produtos Qual é o máximo ó são vários ó então eu vou colocar aqui em cima um n isso é cada da cliente pode comprar N produtos Agora vamos pegar o seguinte aqui ó a bola a bola foi comprada por quantos clientes ó três clientes Ó tem três setinhas chegando a bola então cada produto pode ser comprado por n clientes temos aí mais uma vez um relacionamento muitos para muitos que é o terceiro forma de relacionamento que a gente viu anteriormente Beleza agora que
você exercitou uma dúvida pode estar na sua cabeça beleza eu entendi que as entidades se relacionam eu entendi que eu posso ter tuplas ligadas a várias a uma nenhuma tupla Do outro lado e criando esse relacionamento Tá mas isso na prática na prática como é que eu faço a ligação entre uma entidade e outra e aí a gente vai ter que lembrar de uns atributos muito especiais que a gente já viu inclusive no início dessa aula é muito importante que a gente lembre que existem as chaves a gente viu o conceito de chave primária Não
vimos só dando uma pequena relembrada chave primária é um atributo específico que identifica tuplas é um atributo que vai fazer com que nenhuma das tuplas por exemplo marido nenhum dos maridos tem um atributo igual ao outro Qual é o atributo que não pode ter um marido igual ao outro CPF por exemplo então CPF seria a chave primária da entidade marido por exemplo produto o que que um produto não tem igual ao outro são várias coisas que não tem igual mas acaba que algumas coisas podem se repetir mas por exemplo o código de barra de um
produto o código de barra não tem dois produtos com o mesmo código de barra se eles tiverem o mesmo código eles são produtos iguais então o código de barra é um identificador do produto Ficou claro isso então nós vamos colocar CPF código de barra como a minha chave primária dentro das entidades de cada um dos produtos ou de cada um das pessoas do marido Enfim enfim e eu venho aqui te mostrar que existe um outro tipo de chave que é a chave estrangeira e muita gente se enrola com conceito de chave estrangeira eu tenho uma
maneira muito simples de explicar isso daquele meu jeito de sempre mas é simples vamos entender aqui o conceito de de chave estrangeira imagina o mundo num lado do mundo eu tenho uma entidade x e essa entidade X tem sua chave primária no outro lado do mundo eu tenho uma entidade y e essa entidade Y também tem sua chave primária se eu quiser fazer uma relação entre uma entidade e outra relações teóricas na forma prática nada mais são do que troca de Chaves então eu vou pegar a chave de um lado jogar pro outro pegar a
chave do outro jogar para um então basicamente por exemplo eu tenho que relacionar a entidade x com a entidade Y vamos supor que para relacionar essas duas eu tenha que botar a chave de X criar uma cópia lá para Y percebe que essa chave de baixo já era a chave primária de y essa aqui foi a chave que veio de X então ela não é chave primária de y ela é a chave primária de x que veio para cá então eu chamo essa chave primária de x de chave estrangeira isso é chave estrangeira era a
chave primária de alguém só que ela veio de um lugar pro outro e o que vem de um lugar pro outro é o quê é estrangeiro quando o cara do Estados Unidos Vem pro Brasil ele é o quê ele é estrangeiro então chave estrangeira é uma chave primária de algum lugar que veio para outro lugar Ah Guanabara você tá me dizendo que relação entre tabelas é só troca de Chaves na prática sim na prática você vai começar a pegar chave de um lado jogar pro outro seguindo algumas regras é claro não adianta Só Ah tá
beleza então vou pegar todas as chaves vou jogar que tá tudo relacionado não existe uma técnica existem regras para isso e a gente vai ver daqui alguns segundos mas basicamente criar relacionamentos entre tabelas é fazer troca de Chaves é pegar a chave primária de um lado e jogar para outro lado e quando eu jogo essa chave primária para outro lado ela não vira mais uma chave primária ela é uma chave estrangeira eu espero que se você se enrolasse com isso você não se enrole mais então o que que é uma chave estrangeira é a chave
primária de alguém não é minha mas é de alguém veio de algum lugar tá ag na bara Mas beleza mas que regras são essas essas Regras São baseadas nas classificações dos relacionamentos Tá vendo como uma coisa se liga na outra você precisa modelar uma entidade vê Quais são os atributos dela definir lá qual é a chave primária para que que eu preciso de a chave primária vou precisar para identificar as tuplas para você não ter registos duplicados mas também vou precisar dela porque eu preciso relacionar Deu para entender o negócio sem chave primária não existe
relação Então eu preciso pegar a chave primária de um lugar jogar em outro lugar para poder fazer essa relação água na bara Mas e se eu não tiver chave primária se não tiver chave primária não tem relação porque eu não vou poder pegar uma chave primária daqui e jogar como chave estrangeira lá ficou simples e a regra para você pegar uma chave e jogar de um lado pro outro depende da classificação do relacionamento então a gente viu três classificações um para um um para muitos e muitos para muitos vamos ver a regra para cada um
desses casas Então vamos começar com o relacionamento um para um aquele relacionamento que a gente viu anteriormente marido casa com esposa um marido casa apenas com esposa uma esposa é casada apenas com um marido quando o relacionamento é de um para um a gente tem que começar a pensar porque é o seguinte existe uma regra dizendo quando é relacionamento de um para um você pode juntar as tabelas numa tabela só já que um registro só se relaciona com um você pode juntar Só que essa regra també diz o seguinte você tem que ver se faz
sentido manter esses dados separados nesse nosso caso marido e esposa faz todo sentido porque são duas pessoas que são casadas tem um relacionamento mas cada um tem a sua própria vida então elas são separadas Então nesse nosso caso aqui eu vou manter a relação entre duas tabelas quando você tiver um relacionamento um para um que quase não acontece você vai analisar posso Será que eu posso juntar essas duas tabelas numa tabela só se a tua resposta for sim junta se a tua resposta for não Deixa separada tá deixo separado e faço o quê aí vamos
lá nós vamos pegar aqui marido e esposa vou colocar aqui os atributos de marido marido tem CPF do marido o nome a data de nascimento e a nacionalidade pra esposa eu também tenho o CPF da esposa o nome o nascimento e a nacionalidade na verdade aqui eu posso chamar só de CPF e CPF mas por questões didáticas só para simplificar eu chamei de CPF marido CPF esposa para relacionamentos um para um é o mais fácil de fazer escolhe uma entidade geralmente o que a gente chama de entidade dominante e antes que a galera do preconceito
senhores não é uma questão ética não é uma questão cultural é uma questão didática para de ser chato então vou escolher aqui por exemplo marido vou basear aqui em marido que que a regra diz pegue a chave primária da outra entidade e transfira para o lado marido colocando ele como chave estrangeira eu poderia por exemplo fazer o contrário pegar a chave CPF marido e jogar aqui em esposa como chave estrangeira como eu representei ele aqui na esquerda geralmente a gente representa na esquerda as entidades dominantes Então o que eu fiz foi o seguinte decidi aqui
que a minha entidade dominante é marido peguei a chave primária de esposa e transferi para cá ó tá vendo CPF esposa veio para cá esse nome não precisa ser o mesmo tá mas os dados precisam ser os mesmos então por exemplo se isso aqui é um dado inteiro esse aqui também tem que ser um dado inteiro se esse aqui é varchar esse aqui também precisa ser vaixar então eu preciso que os atributos sejam compatíveis Eles não precisam ter o mesmo nome mas que eles sejam compatíveis Essa é a regra para relacionamentos um para um eu
pego Qual a entidade dominante decido Qual a entidade dominante pego a chave primária da que não é dominante e jogo como chave estrangeira pra minha entidade dominante vamos agora a outro tipo de relacionamento relacionamento de um para muitos pro relacionamento de um Para muitos o exemplo que a gente viu foi funcionário dependente né Cada funcionário tem vários dependentes cada dependente depende apenas de um funcionário vamos ver os atributos de funcionário que eu coloquei aqui ó CPF nome cargo e especialidade e para dependente eu coloquei ali ID nome Nascimento e nacionalidade eu não botei CPF aqui
no dependente porque pode ser que o dependente não tenha CPF apesar de hoje em dia ter muita criança que já tem CPF a regra do relacionamento um para muitos ou muitos para um né você chama do jeito que você quiser também é simples basicamente O que você vai fazer a regra para relacionamentos de um Para muitos é o seguinte você pega a chave primária do lado um e joga no lado muitos como chave estrangeira é sempre assim você não vai precisar decidir nada é um relacionamento de um para muitos pega a chave primária do lado
um e joga no lado muitos como chave estrangeira vamos fazer isso daqui então a regra é pegue a chave primária do lado um e jogue do lado n como chave estrangeira então tenho ali ó o CPF do funcionário percebe ó aqui eu chamei de CPF e aqui eu já chamei de CPF do funcionário não precisa ter o mesmo nome mas por exemplo se CPF aqui é varchar de 12 aqui também é varchar de 12 o tamanho tem que ser o mesmo pra gente não ter incompatibilidades então a regra é eu vou pegar o CPF daqui
e vou jogar lá no dependente como chave estrangeira viu esse passo na próxima aula a gente vai aprender como define uma chave estrangeira na prática nós vamos abrir o MySQL lá e vamos definir Chaves estrangeiras que são a base do relacionamento Vamos partir agora pra terceira forma de classificação dos relacionamentos que é o relacionamento muitos Para muitos o relacionamento muitos para muitos que a gente viu a gente viu dois exemplos né o último foi cliente e produto um cliente compra vários produtos o mesmo produto pode ser comprado por vários clientes o relacionamento muitos Para muitos
é o que é mais entre aspas complicado é o que a galera mais se enrola mas não é difícil a regra é simples para você criar uma relação muitos Para muitos o que você vai fazer vou colocar aqui os atributos de cliente então o cliente tem CPF nome endereço telefone e vou colocar os atributos de produto código do produto nome fabricante e preço percebe a que eu não botei acentuação em nada por exemplo endereço e preço não tem acento não tem nada Tudo em letra minúscula Essa é a regra PR os atributos se você precisar
usar o espaço ó usa o tracinho para representar o relacionamento entre entidades muitos para muitos nós vamos fazer o seguinte o relacionamento que é aqui no meio vai virar uma entidade Olha aí só vou dar uma afastada o meu relacionamento compra virou uma entidade percebe que o n que estava perto do cliente de produto andou para essa entidade aqui vou fazer de novo o movimento voltei aqui ó percebe o movimento do n ó o n que estava colado em cliente e o n que estava colado em produto vão andar pra compra esse andar para cá
e esse vai andar para cá percebe aí ó Olha a animação Beleza então o n ficou mais próximo da compra e compra também tem seus atributos por exemplo Qual foi o identificador da compra Qual foi a data que o cara comprou qual foi a forma de pagamento que ele utilizou então não vou botar forma de pagamento em produto nem em cliente eu vou deixar em Compra ele também tem sua chave primária e aí eu tenho três entidades agora faltou os relacionamentos eu vou criar dois Mini relacionamentos aqui ó tá vendo criei dois Mini relacionamentos e
falta a cardinalidade desse lado você não precisa nem pensar é só colocar um e um então eu coloquei um aqui e coloquei um aqui então o que eu tinha de relacionamento muitos para muitos se transformou nesse conjunto relacional aqui mais uma vez eu te digo tá com dúvida volta um pouquinho volta um pouquinho dá uma olhada na descrição do vídeo eu sempre boto os os minutos a minutagem dos Dados importantes volta e assiste de novo você não pode sair dessa aula com dúvidas Então percebe agora que o que eu tenho são três entidades ligadas duas
a duas com um relacionamento um para muitos e qual é a regra de relacionamentos um para muitos a chave primária do lado um vai pro lado muitos como chave estrangeira Não foi isso que eu te ensinei é só aplicar basicamente o que eu vou fazer aqui ó vou pegar o CPF que é a chave do lado um ó lado um pego a chave primária e jogo do lado muitos Então vou pegar o CPF vou jogar para lá como o CPF do cliente como eu também tenho um relacionamento aqui vou pegar o código do produto vou
jogar aqui para minha entidade compra também como chave estrangeira então basicamente o que eu fiz foi pegar a chave primária desse lado jogar para cá como chave estrangeira e a chave primária desse lado jogar para cá como chave estrangeira isso porque são relacionamentos ó esse relacionamento é o quê um para muitos a regra é pega a chave daqui joga para cá e aqui ó também tem ó um para muitos na verdade muitos para um né eu pego a regra e aplico eu vou pegar a chave primária do lado um e jogar do lado muitos aqui
ó eu peguei o código do cliente virou chave estrangeira e o código do produto também virou chave estrangeira então a regra para relacionamentos muitos Para muitos é desmembrar esse relacionamento muitos para muitos em vários relacionamentos de um para muitos e com isso chegamos ao final dessa aula teórica você gostou eu espero que você tenha gostado eu espero que a forma de eu explicar tenha sido um pouco diferente da do seu professor porque se eu falei a mesma coisa que seu professor ficou chata PR mas eu tentei ilustrar tentei mostrar de forma prática de forma bem
didática para você que é aquele jeito que vocês gostam que eu faça sempre durante as nossas aulas mais uma vez eu venho pedir se você não entendeu ou se ficou um pouquinho de dúvida assiste essa aula de novo antes de assistir a próxima aula a 15ª aula do curso de banco de dados é exatamente a parte prática disso que eu falei então por exemplo se você não sabe essas regras de jogar chave criar chave estrangeira se você não sabe nem o que significa chave estrangeira para que que você vai seguir no curso porque na próxima
aula eu vou te mostrar como criar Chaves estrangeiras E com isso criar relações entre tabelas e fazer com que o dado funcione com o outro na 16ª aula nós vamos trabalhar joints nós vamos trabalhar junções um select com join Lembra que você aprendeu join tomou uma surra absurda é porque você não tinha a classificação de relação porque acaba que no seu curso o conceito de classificação de relação e o conceito de join tão muito distantes geralmente no início do curso você vê modelo relacional e lá no final do curso você vê joints e aí você
não acaba não juntando eu vou dar jo bem pertinho do modelo relacional então você vai entender melhor acredita em mim mas para isso Você precisa estudar e sabe outra coisa que você precisa fazer compartilhar isso tudo mostrar pro maior número de pessoas aqui ó agora tem na mãozinha você pensou que isso aqui fosse digital aqui né não rá agora aqui ó então o que você tem que fazer ó primeiro se inscrever no canal se inscreve aqui no canal ó clica aqui ó sempre que tiver umaa você vai ser avisado se você marcar lá o o
o negocinho lá da engrenagem você vai dizer ó quero receber e-mail desse canal que esse canal é bem legal nunca se esqueça também ó aqui você vê o curso completo Aqui você vê todas as aulas uma playlist completa e aqui no meio a experiência completa aqui é o curso em vídeo que a gente vai poder ver todas as informações inclusive com esses slides disponíveis nunca se esqueça também ó aqui em cima com a interatividade você tem acesso ao que a gente julga Eu e minha equipe julgamos como importantes para você assistir essa aula e nunca
se esqueça pequeno gafanhoto Estude bastante estude muito porque é só estudando que a gente consegue aprender muita coisa e a gente consegue evoluir na vida Conto com a ajuda de vocês Conto com a divulgação de vocês divulga esse vídeo aí nas redes sociais essa aula ficou caprichada mostra pras pessoas queria agradecer queria mandar um grande abraço para todos os professores eu recebo muita foto de professores dando aula usando meus vídeos professores dando aula usando meus slides eu fico muito feliz em poder ajudar você Professor Eu só peço que você mantenha a fonte e mostre pros
seus alunos que existe uma maneira deles estudarem na sua própria casa no conforto do Lar é muito importante a sua aula mas é muito importante a minha também o seu trabalho é complementado pelo meu o o meu serviço é ajudar você sendo professor ou sendo aluno Então é isso pequeno gafanhoto assiste essa aula mais de uma vez para você poder entender tudo bonitinho Antes de Partir pra 15ª aula Ok combinado um forte abraço e até a próxima então eu tenho o cadastro de gafanhotos e eu tenho o [Música] cadastro
Copyright © 2025. Made with ♥ in London by YTScribe.com