Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Modelagem Conceitual de Banco de Dados Banco de Dados I Projeto de Banco de Dados • Modelo Conceitual • Independente de modelo de dados • Independente de SGBD • Independente de plataforma de hardware ou sistema operacional • Ex.: Diagrama entidade- relacionamento (E-R) e diagrama de classes • Modelo Lógico • Independente de SGBD dentro do modelo de dados • Independente de plataforma de hardware ou sistema operacional • Específico para cada modelo de dados. • Ex.: Modelo relaciona, XML e orientado a objetos 2 • Modelo Físico • Scripts de geração do BD. • Específico para cada SGBD • Algumas dependências em função de sistema operacional e de hardware (centralizado x distribuido, cluster, grid, etc.) • Ex.: SQL Modelagem conceitual • Primeira etapa do projeto de banco de dados • Objetivo: Representar os elementos do mundo real que são do interesse da aplicação para a qual o banco de dados está sendo gerado, com suas características e seus relacionamentos. • Não considera nenhum aspecto de implementação. – Mais fácil de uma pessoa não técnica entender; – Mais fácil de dar manutenção (acrescentar elementos ou corrigir erros); – Não depende de modelo de dados (se hoje eu uso BD relacional e amanhã resolvo usar BD XML, o modelo conceitual é o mesmo) 3 Diagrama Entidade-Relacionamento (ER) • Proposto por Peter Chen • Mais popular forma de modelagem conceitual • Construtores (componentes) – Entidades – Atributos – Relacionamentos 4 Diagrama E-R: Entidades • Construtor principal do E-R: – Representa qualquer conjunto de elementos semelhantes do mundo real que deve ter suas informações armazenadas para serem manipuladas pela aplicação. • Notação gráfica: 5 Nome • Exemplo: Para uma loja, temos: Diagrama E-R: Entidades 6 Produto Vendedor CamisaCamisa CalçaCalça CamisetaCamiseta PedroPedro LuizaLuiza instâncias instâncias Diagrama E-R: Atributos • Construtor auxiliar do E-R – Representa uma característica da entidade (ou relacionamento) de interesse da aplicação sendo desenvolvida. – É um dado que é associado a cada ocorrência (instância) de uma entidade (ou relacionamento) – Somente existe se associado a uma entidade (ou relacionamento) • Notação gráfica: 7 • Exemplo: Para os produtos da loja, temos: Diagrama E-R: Atributos 8 Camisa 29,90 Azul Camisa 29,90 Azul Calça 39,50 Preto Calça 39,50 Preto Camiseta 15.90 Amarelo Camiseta 15.90 Amarelo instâncias item preco Produto cor Diagrama E-R: Atributos • Atributo identificador – Identifica unicamente cada indivíduo (instância) de uma entidade. – Não pode ter seus valores repetidos • CPF de uma entidade pessoa • Matricula de uma entidade aluno • Código de uma entidade produto • Atributo identificador composto – Ocorre quando o identificador de uma entidade é compostos de mais de um atributo. – Neste caso, o que não pode se repetir é a combinação dos valores dos atributos que compõem o identificador. • Importante: Cada entidade tem somente 1 identificador, que pode ser simples (1 atributo) ou composto (mais de 1 atributo) 9 • Exemplos de atributos identificadores Diagrama E-R: Atributos item preco Produto codigo Codigo Item Preco Prod1 Camiseta 15,90 Prod2 Camisa 29,90 Prod3 Camisa 15,90 Prod3 Bermuda 25,90 Errado, pois repete o valor de código, que é identificador RG orgao Cliente nome RG Orgao Nome 123 SJS João 123 SSP Maria 357 SJS Pedro 123 SJS Carlos 468 SSP Maria Errado, pois repete o valor do par (RG,orgao), que é o identificador de cliente Diagrama E-R: Atributos • Atributo composto 11 Nome Cliente CPF email CEP endereco codigo bairro rua Não possuem equivalentes no modelo relacional deverão virar entidades Nome Cliente CPF email endereco rua Bairro CEP Diagrama E-R: Atributos • Atributo multivalorado 12 Nome Cliente CPF Email (N) Telefone (0..N) Não possuem equivalentes no modelo relacional deverão virar entidades Nome Cliente CPF Email (N) codigo numero Telefone 1 n Diagrama E-R: Relacionamentos • Construtor auxiliar do E-R – Representa uma associação, ou relação, entre entidades. • Venda TEM cliente • Vendedor FAZ venda • Notação gráfica: 13 nome Diagrama E-R: Relacionamentos • Relacionamento binário – Tipo mais comum de relacionamento, e único implementado no modelo relacional – Tem sempre duas extremidades, cada uma ligada a uma (ocorrência de) entidade • Exemplos 14 Cliente CPF codigo possui endereco Cliente codigo NF Venda Diagrama E-R: Relacionamentos • Auto relacionamento – Caso particular de relacionamento binário – As duas extremidades estão ligadas à mesma entidade • Exemplo CPF gerenciaFuncionário Diagrama E-R: Cardinalidades • Quantificam os relacionamentos – Para cada instância da entidade A, quantas instâncias da entidade B podem estar associadas e vice-versa temA B 1..1 0..N mínimo máximo Diagrama E-R: Cardinalidades • Mínimo – Número mínimo de ocorrências de instâncias da entidade para cada ocorrência de instâncias da entidade associada – 0 Opcional – 1 Obrigatório • Máximo – Número máximo de ocorrências de instâncias da entidade para cada ocorrência de instâncias da entidade associada – 1 Único – N Múltiplo (vários) Diagrama E-R: Cardinalidades • Nome das cardinalidades – Somente considerar cardinalidades máximas de cada lado temA B 1 1 temA B 1 N temA B N N Um-para-um Um-para-N N-para-N Diagrama E-R: Relacionamento Identificador • Ocorre somente em relacionamentos de cardinalidade 1-para-N – Usado quando, para identificar unicamente um indivíduo da entidade do lado N, somente seu identificador não basta – Nem todo 1-para-N é identificador • Exemplo temPredio Sala 1 N codPredio numSala Diagrama E-R: Equivalência de relacionamentos EQUIVALE A Funcionario FuncProj 1 N CPF codProj participaFuncionario Projeto N N CPF Projeto CodProj N 1 Diagrama E-R: Atributos em relacionamentos • Ocorre, em geral, em relacionamentos de cardinalidade N-para-N – Pode ocorrer em 1-para-N, mas não é usual • Serve para caracterizar uma ocorrência de uma associação entre as entidades relacionadas – Muito usado para armazenar históricos Diagrama E-R: Atributos em relacionamentos • Exemplo – Como saber a nota que um determinado aluno tirou em uma determinada disciplina? – Como fazer para que um aluno possa cursar uma disciplina mais de uma vez (por exemplo, se for reprovado?) temAluno Disciplina N N Matricula codDisciplina nomeDisciplinacreditos nome Diagrama E-R: Atributos em relacionamentos • Exemplo – O atributo do relacionamento pode ser identificador ou não identificador temAluno Disciplina N N Matricula codDisciplina nomeDisciplinasemestre nome nota Exercício 1 • Um aeroporto deve modernizar seu sistema de controle de partidas e chegadas e aeronaves. Devem estar cadastradas as companhias aéreas que nele operam, contendo as informações de nome da companhia, telefone de contato e nome do contato. Cada vôo pertence a uma companhia aérea, e possui um número de vôo, horário (chegada se o aeroporto for o destino, ou partida se o aeroporto for a origem) e a cidade/aeroporto de onde ele vem ou para onde ele vai. Para tanto, um simples campo na tabela vôo chamado “tipo” é suficiente. As cidades/aeroportos de destino/origem dos vôos devem estar cadastradas. Cada uma possui um nome e telefone de contato. Não esqueça que um vôo pode ter escalas. Para cada escala, é suficiente saber a cidade/aeroporto. 24 Relacionamentos de grau maior que 2 • Como ler as cardinalidades? – Sempre fixa-se uma entidade e confronta-se ela contra todas as outras – Vale para relacionamentos de qualquer grau 25 temProduto Distribuidor N 1 codProd codDistribuidor nome descricao Cidade N codCidade nome Relacionamentos de grau maior que 2 • Para cada par (cidade, produto), tem-se 1 distribuidor • Para cada par (distribuidor, cidade), tem-se vários (N) produtos • Para cada par (distribuidor, produto) tem-se várias (N) cidades 26 temProduto Distribuidor N 1 codProd codDistribuidor nome descricao Cidade N codCidade nome Relacionamentos de grau maior que 2 • Não representado no modelo relacional • Equivalente (+/-) 27 Produto Distribuidor 1codProd codDistribuidor nomedescricao Cidade N codCidade nome venda N N N Entidade Associativa • Sistema funciona OK, mas agora é preciso guardar os medicamentos prescritos em uma consulta 28 consultaMedico Paciente N CREMERS CPF nome nome N Medicamento codAnvisa nome prescreve? Entidade Associativa • Só fazer isso em caso de manutenção! 29 consultaMedico Paciente N CREMERS CPF nome nome N Medicamento codAnvisa nome prescreve N N Entidade associativa Entidade Associativa • Equivalente 30 atendeMedico Paciente N CREMERS CPF nome nome N Medicamento codAnvisa nome prescreve N N fazconsulta1 1 Generalização / especialização • Útil quando – (a) Há 1 ou mais entidades que possuem todos os atributos e relacionamentos de uma outra entidade e, adicionalmente, alguns atributos e/ou relacionamentos próprios – (b) Há 2 ou mais entidades que têm grande parte dos atributos e relacionamentos iguais, e alguns diferentes 31 Generalização / Especialização Funcionario matricula nome Professor horas titulacao (a) Setor email telefone trabalha N 1 codSetor nome nivel disciplinaleciona N N nome codDisc creditos especializaçã o Entidade especializada Entidade genérica Generalização / Especialização Pessoa matricula nome Professor horas titulacao (b) email telefone nivel disciplina leciona N N nome codDisc creditos especializaçã o Entidades especializada s Entidade genérica Aluno anoIngresso curso Generalização / especialização • Uma entidade especializada HERDA todos os atributos e relacionamentos da entidade genérica • Uma entidade especializada NÃO tem atributo identificador próprio. É o mesmo da entidade genérica 34 Generalização / Especialização Pessoa Professor Qual a diferença? Aluno Pessoa JurídicaFísica Especialização não-exclusiva Especialização exclusiva Exercício 2 36 Deseja-se criar um banco de dados para uma pet shop. Cada animal recebe um código. Além disso, de cada animal é necessário saber seu nome, espécie, idade, dono e telefone. Cada espécie tem um código, um nome, informação de porte e temperamento (dócil, agressivo, etc.) Cada vez que um animal vai à pet shop ele faz um atendimento, do qual deve-se saber a data, hora e preço. No caso do atendimento ser estético, deve-se saber o shampoo a ser utilizado, o tipo de tosa (se for o caso) e alguma observação. Se o atendimento for veterinário, é necessário saber o motivo (descrição) e o encaminhamento (se houver), além do veterinário responsável. De cada veterinário é deve-se saber o nome e o CRV (número no conselho regional de veterinária). Exercício 3 37 Deseja-se controlar as avaliações de disciplinas. Uma disciplina possui um código que a identifica unicamente, um nome, e o número de créditos. Uma disciplina faz parte de pelo menos um curso, assim como um curso possui várias disciplinas. Cada curso possui um identificador único, um nome e número de semestres. Uma disciplina possui ao menos uma turma, a qual é identificada por um código. Cada turma de uma disciplina é dada por um único professor em um determinado semestre. Adicionalmente, possui informações de capacidade de alunos. O professor que ministra uma turma de uma disciplina (pode ministrar várias) possui um número de matrícula, o qual é único por professor, um nome, uma titulação e um endereço de e-mail. A cada turma corresponde uma ou mais avaliações, identificadas pela turma da qual é parte e pela data na qual ocorre. Uma avaliação consiste em um número de questões, cada qual com um número seqüencial, um enunciado e um peso (pontuação). Finalmente, uma avaliação pode ser teórica ou prática. No caso de ser prática, deve ocorrer em um laboratório, o qual possui informações de número da sala e número do prédio, capacidade e uma descrição sobre sua utilidade (por exemplo, física, química, eletrônica, etc.). Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37