05 LabMM4 - Bases de dados

984 visualizações

Publicada em

Bases de dados: identify e non-identify, Relações [1:1], MySQL Workbench

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
984
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
124
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

05 LabMM4 - Bases de dados

  1. 1. Bases de dados: identify e non-identify, Relações[1:1], MySQL WorkbenchCarlos SantosLabMM 5 - NTC - DeCA - UAAula 05, 01-03-2012
  2. 2. Um para muitos [1:M] - identify • Cada cliente poderá realizar várias encomendas • Cada encomenda tem que ser realizada apenas por um cliente[1:n] Identifying Relationship ________ PK Composta • Não pode existir uma encomenda sem um cliente • FK Clientes_idCliente não pode conter nulos pois pertence à PK • Pode existir um cliente sem uma encomenda • PK IdCliente pode conter valores inexistentes na FK Clientes_idClienteIdentifying -> Existe dependência entre as entidades!
  3. 3. Um para muitos [1:M] - identify Clientes Encomendas idCliente nomeCliente nrEncomenda dataEncomenda Clientes_idCliente 1 João 1 2010-­‐02-­‐23 1 2 Maria 2 2010-­‐04-­‐11 2 3 Manuel 3 2010-­‐03-­‐13 2 4 2010-­‐05-­‐21 1 1 2010-­‐06-­‐25 2NÃO PODEM existir PARES REPETIDOS na PK composta da tabela EncomendasMAS PODEM existir valores repetidos em cada uma das colunas que constituem aPK composta... (qual o problema?)
  4. 4. Um para muitos [1:M] - identify PROBLEMA: Tal como é mostrado PODEM existir vários clientes a realizar a mesma encomenda! Clientes Encomendas idCliente nomeCliente nrEncomenda dataEncomenda Clientes_idCliente 1 João 1 2010-­‐02-­‐23 1 2 Maria 2 2010-­‐04-­‐11 2 3 Manuel 3 2010-­‐03-­‐13 2 4 2010-­‐05-­‐21 1 1 2010-­‐06-­‐25 2SOLUÇÃO: configurar nrEncomenda com AUTO INCREMENT (AI) ou com UNIQUE
  5. 5. 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
  6. 6. 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 Administradores_idAdministrador não pode conter nulos pois também é PKExiste dependência entre os administradores e os gabinetes!
  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!Problema: O que acontece se existirem gabinetes vazios?
  8. 8. 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
  9. 9. Um para um [1:1]Para evitar valores repetidos nas FK que constituem a PK composta databela de relação configura-se com o parâmetro UNIQUE na definiçãodessas colunas 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
  10. 10. MySQL WorkbenchMais importante que tudo... o MySQL Workbench não é um SGBDR! • É uma aplicação com várias ferramentas qye facilitam algumas tarefas inerentes ao desenvolvimento e manutenação de BDs e SGBRs • O MySQL Server é que é um SGBDRFerramentas • Server Administration • Data Modeling • SQL Development
  11. 11. MySQL Workbench: Data modelingDiagrama Enhanced Entity-Relationship (EER) • Modelação da BD: entidades, propriedades e suas relaçõesPhysical Schemata • Schema: conjunto de objectos 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
  12. 12. 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
  13. 13. MySQL Workbench: Data modeling: Export O que é e para que serve?
  14. 14. 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

×