Bases de dados: Propriedades da relação erelações [1:1]Carlos SantosLabMM 4 - NTC - DeCA - UAAula 05, 28-02-2013
Muitos para muitos [M:M]     Encomendas                           Encomendas_has_Produtos                     ProdutosnrEn...
Propriedades de uma relação                                                        Clientes                               ...
Muitos para muitos [M:M] + prop. de relação     Encomendas                              Encomendas_has_Produtos           ...
Quanto custa?              Encomendas_has_Produtos                                      ProdutosEncomendas_nrEncomenda   P...
Um para um [1:1]Novo cenário: uma empresa tem necessidade de gerir a ocupação degabinetes por administradores, sendo que: ...
Um para um [1:1]  • Cada administrador possui apenas um gabinete  • Cada gabinete está atribuído apenas a um administrador...
Um para um [1:1]  • Cada administrador possui apenas um gabinete  • Cada gabinete está atribuído apenas a um administrador...
Um para um [1:1]Solução: Criar uma tabela de relação que torne as entidades independentes.Pode existir um administrador se...
Um para um [1:1]Para evitar valores repetidos nas FK que constituem a PK composta databela de relação, as FK são configurad...
QuestãoComo podemos evitar a criação de nulos numa relação de 1:M?  • numa situação: 1 ou muitos  • numa situação: 0 ou mu...
MySQL WorkbenchMais importante que tudo... o MySQL Workbench não é um SGBDR!  • É uma aplicação com várias ferramentas que...
MySQL Workbench: Data modelingDiagrama Enhanced Entity-Relationship (EER)  • Modelação da BD: entidades, propriedades e su...
MySQL Workbench: Data modeling: Export                           Antes de criar, apaga objetos que já                     ...
MySQL Workbench: Data modeling: Export                              O que é?                              Para que serve?
MySQL Workbench: SQL DevelopmentPara que serve?  • Ligação a uma base de dados  • Executar SQL Queries  • Executar SQL Scr...
Upcoming SlideShare
Loading in …5
×

LabMM4 (T05 - 12/13) - Relações 1:1

363
-1

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
363
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
56
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

LabMM4 (T05 - 12/13) - Relações 1:1

  1. 1. Bases de dados: Propriedades da relação erelações [1:1]Carlos SantosLabMM 4 - NTC - DeCA - UAAula 05, 28-02-2013
  2. 2. Muitos para muitos [M:M] Encomendas Encomendas_has_Produtos ProdutosnrEncomenda DataEncom Encomendas_nrEncomenda Produtos_idProduto idProduto nomeProd 1 2008-­‐01-­‐16 1 2 1 Cadeira 2 2008-­‐02-­‐02 1 3 2 Mesa  de  Sala 3 2008-­‐03-­‐09 2 2 3 Aparador 4 2008-­‐04-­‐12 4 Sofá 3 1 5 2008-­‐05-­‐26 3 2 3 3 5 2 5 3 PROBLEMA: Como podemos adicionar uma “Cadeira” à encomenda 3?
  3. 3. Propriedades de uma relação Clientes idCliente NomeCliente ApelidoCliente MoradaCliente Vendedores Encomendas ContactoCliente Tipo (priv/empr)idVend nrEncomendaNomeVend DataEncomendaApelidoVend DataPagamentoMoradaVendSexoContatoVendDataNascimentoDataEntradaEmpresa Produtos idProduto NomeProd Quantidade DescricaoProd Preco Peso Dimensoes
  4. 4. Muitos para muitos [M:M] + prop. de relação Encomendas Encomendas_has_Produtos ProdutosnrEncomenda DataEncom Encomendas_nrEncomenda Produtos_idProduto quanFdade idProduto nomeProd 1 2008-­‐01-­‐16 1 2 1 1 Cadeira 2 2008-­‐02-­‐02 1 3 3 2 Mesa  de  Sala 3 2008-­‐03-­‐09 2 2 4 3 Aparador 4 2008-­‐04-­‐12 4 Sofá 3 1 5 5 2008-­‐05-­‐26 3 2 1 3 3 2 5 2 5 5 3 4
  5. 5. Quanto custa? Encomendas_has_Produtos ProdutosEncomendas_nrEncomenda Produtos_idProduto quanFdade idProduto nomeProd preco 1 2 1 1 Cadeira €50 1 3 3 2 Mesa  de  Sala €800 2 2 4 3 Aparador €3000 3 1 5 4 Sofá €1200 3 2 1 Encomendas 3 3 2 nrEncomenda DataEncom 5 2 5 1 2008-­‐01-­‐16 5 3 4 2 2008-­‐02-­‐02 3 2008-­‐03-­‐09 4 2008-­‐04-­‐12 5 2008-­‐05-­‐26
  6. 6. Um para um [1:1]Novo cenário: uma empresa tem necessidade de gerir a ocupação degabinetes por administradores, sendo que: • Cada administrador possui apenas um gabinete • Cada gabinete está atribuído apenas a um administrador Administradores Gabinetes idAdmin idGabinete NomeAdmin Localizacao ApelidoAdmin
  7. 7. Um para um [1:1] • Cada administrador possui apenas um gabinete • Cada gabinete está atribuído apenas a um administrador FK que também é PK!1:1 Identifying Relationship ________ • Pode existir um administrador sem um gabinete • PK IdAdministrador pode conter valores que não existem ainda na FK Administradores_idAdministrador • Não pode existir um gabinete sem um administrador • FK idGabinete não pode conter nulos pois também é PKExiste dependência entre os administradores e os gabinetes!
  8. 8. Um para um [1:1] • Cada administrador possui apenas um gabinete • Cada gabinete está atribuído apenas a um administrador FK que também é PK!Problema: O que acontece se existirem gabinetes vazios?
  9. 9. Um para um [1:1]Solução: Criar uma tabela de relação que torne as entidades independentes.Pode existir um administrador sem um gabinete • PK IdAdministrador pode conter valores que não existem ainda na FK Administradores_idAdministradorPode existir um gabinete sem um administrador • PK IdGabinete pode conter valores que não existem ainda na FK Gabinetes_idGabineteA tabela de relação Administradores_has_Gabinetes conterá apenas assituações em que a um administrador foi atribuído um gabinete
  10. 10. Um para um [1:1]Para evitar valores repetidos nas FK que constituem a PK composta databela de relação, as FK são configuradas com o parâmetro UNIQUE Administradores Gabinetes idAdministrador NomeAdmin idGabinete Localizacao 1 João 1 101 2 Maria 2 102 3 Manuel 3 103 Administradores_Gabinetes Administradores_idAdministrador Gabinetes_idGabinete 1 2 2 3
  11. 11. QuestãoComo podemos evitar a criação de nulos numa relação de 1:M? • numa situação: 1 ou muitos • numa situação: 0 ou muitosPor vezes pode não ser admissível implementar relações 1:M sem utilizaruma tabela de relação!
  12. 12. MySQL WorkbenchMais importante que tudo... o MySQL Workbench não é um SGBDR! • É uma aplicação com várias ferramentas que facilitam algumas tarefas inerentes ao desenvolvimento e manutenção de BDs e SGBRs • O MySQL Server é que é um SGBDRFerramentas • Server Administration • Data Modeling • SQL Development
  13. 13. MySQL Workbench: Data modelingDiagrama Enhanced Entity-Relationship (EER) • Modelação da BD: entidades, propriedades e suas relaçõesPhysical Schemata • Schema: conjunto de objetos e regras que estruturam a BD • A ter em atenção: • Verificar se a Collation de todas as tabelas está definida como utf8 - utf8_general_ci (suporte caracteres PT) • Nome do schema deve ser igual ao nome da BD destino • Verificar se o Engine de todas as tabelas está definido como InnoDBExportar o schema da BD • File -> Export -> Forward Engineer SQL CREATE Script… • Gera um ficheiro SQL com o código necessário para a criação da BD
  14. 14. MySQL Workbench: Data modeling: Export Antes de criar, apaga objetos que já existam com o mesmo nome Mostra eventuais mensagens de erro/ alerta durante o processo de criação Permite inserir dados na BD no momento da sua criação
  15. 15. MySQL Workbench: Data modeling: Export O que é? Para que serve?
  16. 16. MySQL Workbench: SQL DevelopmentPara que serve? • Ligação a uma base de dados • Executar SQL Queries • Executar SQL Scripts • Editar dados de tabelas • alternativa: phpMyAdmin

×