Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estrutura de Dados e Sistemas de Integração Eng. Controle Automação 2°/2013 Modelo Entidade/Relacionamento Prof. Alexandre Wagner C. Faria Material adaptado do Livro: Sistema de Banco de Dados (Silberschatz, Korth, Sudarshan), Prof. Ronaldo C.M. Correia, Vania Bogorny UFSC, Prof. (Me.) Eduardo Tieppo Dom Bosco Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Modelo entidade-relacionamento Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Modelo entidade-relacionamento � Processo de projeto � Modelagem � Restrições � Diagrama ER � Aspectos de projeto Sistema de Banco de Dados, 5/E Modelo Entidade-Relacionamento � Modelo desenvolvido por Chen em 1976 � Diversas extensões e notações foram definidas ao longo do tempo � Provê ao usuário um alto nível de abstração, e por conseguinte facilita a construção de um esquema de BD � A estrutura lógica do BD pode ser expressa graficamente pelo diagrama E-R � Popular � Simplicidade e Expressividade � Um banco de dados representado por um modelo E-R, pode ser representado por uma coleção de tabelas � O mapeamento entre os modelos E-R e Relacional é relativamente simples. � Existem várias ferramentas destinadas a mapear o Modelo E-R para Relacional � É também chamado de esquema E-R ou diagrama E-R Sistema de Banco de Dados, 5/E Modelo Entidade-Relacionamento � Os dados do mundo real são representados por meio de conjuntos de entidades, relacionamentos entre esses e atributos que os caracterizam � Conjunto de Entidades: representa um conjunto de elementos do mundo real que têm a mesma “estrutura” e o mesmo “significado” � Estrutural e semanticamente iguais � Ex: Pessoas � Entidade: elemento do conjunto de entidades identificado por características individuais definidas por meio do conceito de atributos � Ex: “coisas”, objetos, pessoas (Murilo) � Atributos: Propriedades que descrevem a entidade ou o relacionamento entre entidades � Relacionamento: conjunto de associações entre conjunto de entidades; podem ser caracterizados por atributos Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Modelagem � Um banco de dados pode ser modelado como: � Uma coleção de entidades, � Relacionamento entre entidades. � Uma entidade é um objeto que existe e é distinguível de outros objetos. � Exemplo: pessoa, empresa, evento e planta específicos � Entidades possuem atributos � Exemplo: pessoas têm nomes e endereços � Um conjunto de entidades é um grupo de entidades do mesmo tipo que compartilham as mesmas propriedades. � Exemplo: conjunto de todas as pessoas, empresas, árvores, feriados Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Conjuntos de entidades cliente e empréstimo Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Conjuntos de relacionamento � Um relacionamento é uma associação entre várias entidades Exemplo: Hayes depositante A-102 entidade cliente conjunto de relacionamento entidade conta � Um conjunto de relacionamento é uma relação matemática entre n ≥≥≥≥ 2 entidades, cada uma tomada de conjuntos de entidades {(e1, e2, … en) | e1 ∈∈∈∈ E1, e2 ∈∈∈∈ E2, …, en ∈∈∈∈ En} onde (e1, e2, …, en) é um relacionamento Exemplo: (Hayes, A-102) ∈∈∈∈ depositante Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Conjunto de relacionamento tomador Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Conjuntos de relacionamento (cont.) � Um atributo também pode ser uma propriedade de um conjunto de relacionamento. � Por exemplo, o relacionamento depositante entre os conjuntos de entidades cliente e conta pode ter o atributo data-acesso Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Grau de um conjunto de relacionamento � Refere-se ao número de conjuntos de entidades que participam em um conjunto de relacionamento. � Os conjuntos de relacionamento que envolvem dois conjuntos de entidades são binários (ou de grau 2). Geralmente, a maioria dos conjuntos de relacionamento em um sistema de banco de dados são binários. � Os conjuntos de relacionamento podem envolver mais de dois conjuntos de entidades. Exemplo: Suponha que os funcionários de um banco possam ter atividades (responsabilidades) em várias agências, com diferentes cargos em diferentes agências. Então, existe um conjunto de relacionamento ternário entre os conjuntos de entidades funcionário, cargo e ag Os relacionamentos entre mais de dois conjuntos de entidades são rados. A maioria dos relacionamentos é binária. (Mais sobre isso posteriormente.) Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Atributos � Uma entidade é representada por um conjunto de atributos, que são propriedades descritivas processadas por todos os membros de um conjunto de entidades. – Exemplo: cliente = id_cliente, nome_cliente , rua_cliente, cidade_cliente) empréstimo = (número_empréstimo, conta) � Domínio – o conjunto de valores permitidos para cada atributo � Tipos de atributo: � Atributos simples e compostos. � Atributos de valor único e de valores múltiplos � Exemplo: atributo de valores múltiplos: números_telefone � Atributos derivados � Podem ser calculados a partir de outros atributos � Exemplo: idade, dado data_nascimento Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Atributos compostos Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Resumo dos símbolos usados na notação ER Sistema de Banco de Dados, 5/E � Valores que representam propriedades das entidades e relacionamentos no mundo real � Tipos: � Atributo Monovalorado: possui um valor para cada entidade que caracteriza � Atributo Multivalorado: possui mais de um valor para cada entidade que caracteriza � Atributo Composto: quando o atributo tem vários subcampos � Atributo Derivado: quando o valor de um atributo é obtido por meio de valores de outros atributos. Ex: tempo_de_casa pode ser derivado do valor da data_contratação Atributos Idade Telefones Endereço Rua Cidade Estado Tempo_de_casa Sistema de Banco de Dados, 5/E Atributos � Chave = Atributo ou um conjunto de atributos que, com seus valores, consiga identificar uma única entidade dentro do conjunto de entidades � Uma chave deve ser mínima no sentido de que se a chave for composta, nenhum atributo que a compõe poderá ser retirado, e ainda sim, a composição resultante continuar sendo chave � É o principal meio de acesso a uma entidade � Outras possíveis chaves não são indicadas no diagrama, e não são contempladas pelo MER, mas podem ser anotadas separadamente, para efeito de documentação � Chave Composta: mais de um atributo compõe a chave de um conjunto de entidades. A concatenação de todos eles indica a chave única � Notação DER: grifar atributo chave RA Sistema de Banco de Dados, 5/E Tipos de atributos: Banco de Dados: Modelo Entidade-Relacionamento Identifica uma entidade em seu conjunto de entidades. Se em um conjunto fraco, pode-se repetir, visto que é dependente do conjunto de entidades dominante... Identificador Especifica uma determinada situação em um determinado momento (p.ex. a situação de uma conta corrente em uma determinada data), e que não faz parte do conjunto de atributos de uma entidade, e, sim, de um relacionamento. Descritivo Resultante de algum cálculo ou decisão � evitar! (p.ex. idade, tempo de casa, etc.) Derivado Permite conteúdo inexistente (o não preenchimento com algum valor)Nulo Pode-se solucionar isto, tratando-o como uma entidade fraca, a qual depende de outra, chamada dominante (forte). Permite váriosconteúdos simultaneamente (p.ex. dependentes de funcionário, telefone, etc.). Multivalorado Permite unicamente um conteúdo (p.ex. nome, data de nascimento, etc.)Monovalorado Indivisível, atômico (p.ex. peso, altura, valor, etc.)Simples Divisível (p.ex. endereço, que pode ser divisível em logradouro, cep, etc.)Composto BD – Modelagem Sistema de Banco de Dados, 5/E A abordagem Entidade-Relacionamento • Modelo E-R – Entidades – Atributos – Relacionamentos – Cardinalidade Entidade 1 Atributo 1 Atributo 1 Entidade 2 Atributo 2 Atributo 2 Relacionamento 1,1 1,N 18 / 43 Sistema de Banco de Dados, 5/E Tipos de Atributos • Exemplo de tipos de atributos PESSOA �CPF �RG �Nome �Data de Nascimento � Idade �Endereço �Telefone �Sexo �Estado Civil �Profissão �E-mail Todos esses atributos têm o mesmo tipo? 19 / 43 Sistema de Banco de Dados, 5/E Tipos de Atributos • Tipos de atributos – Simples ou compostos –Monovalorados ou Multivalorados – Nulos – Derivados – Chaves 20 / 43 Sistema de Banco de Dados, 5/E Tipos de Atributos • Exemplo de tipos de atributos PESSOA �CPF �RG �Nome �Data de Nascimento � Idade �Endereço �Telefone �Sexo �Estado Civil �Profissão �E-mail CPF Simples Qualquer atributo representado por um dado simples. 21 / 43 Sistema de Banco de Dados, 5/E Tipos de Atributos • Exemplo de tipos de atributos PESSOA �CPF �RG �Nome �Data de Nascimento � Idade �Endereço �Telefone �Sexo �Estado Civil �Profissão �E-mail Endereço Composto Um atributo divisível em outros atributos. Rua N.º CE P 22 / 43 Sistema de Banco de Dados, 5/E Tipos de Atributos • Exemplo de tipos de atributos PESSOA �CPF �RG �Nome �Data de Nascimento � Idade �Endereço �Telefone �Sexo �Estado Civil �Profissão �E-mail Data de Nascimento Monovalorado Atributos que possuem um único valor quando instanciados. 23 / 43 Sistema de Banco de Dados, 5/E Telefone Tipos de Atributos • Exemplo de tipos de atributos PESSOA �CPF �RG �Nome �Data de Nascimento � Idade �Endereço �Telefone �Sexo �Estado Civil �Profissão �E-mail Telefone Multivalorado Atributos que possuem um conjunto de valores para uma mesma instância. 24 / 43 Sistema de Banco de Dados, 5/E Tipos de Atributos • Exemplo de tipos de atributos PESSOA �CPF �RG �Nome �Data de Nascimento � Idade �Endereço �Telefone �Sexo �Estado Civil �Profissão �E-mail E-mail Nulo Atributos que não possuem um valor para uma Entidade instanciada. 25 / 43 Sistema de Banco de Dados, 5/E Tipos de Atributos • Exemplo de tipos de atributos PESSOA �CPF �RG �Nome �Data de Nascimento � Idade �Endereço �Telefone �Sexo �Estado Civil �Profissão �E-mail Idade Derivado Atributos que podem ser obtidos através da relação com outros atributos. 26 / 43 Sistema de Banco de Dados, 5/E Tipos de Atributos • Exemplo de tipos de atributos PESSOA �CPF �RG �Nome �Data de Nascimento � Idade �Endereço �Telefone �Sexo �Estado Civil �Profissão �E-mail CPF Chave Atributos que identificam uma instância da Entidade de maneira ÚNICA. 27 / 43 Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Restrições de cardinalidade de mapeamento � Expressam o número de entidades ao qual outra entidade pode ser associada através de um conjunto de relacionamento. � Normalmente são úteis em descrever conjuntos de relacionamento binários. � Para um conjunto de relacionamento binário, a cardinalidade de mapeamento precisa ser de um dos seguintes tipos: � Um-para-um � Um-para-muitos � Muitos-para-um � Muitos-para-muitos Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Cardinalidades de mapeamento • Um-para-um • Um-para-muitos • Nota: Alguns elementos em A e B podem não ser mapeados para quaisquer elementos no outro conjunto. Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Cardinalidades de mapeamento • Muitos-para-um • Muitos-para-muitos • Nota: Alguns elementos em A e B podem não ser mapeados para quaisquer elementos no outro conjunto. Sistema de Banco de Dados, 5/E Modelo Entidade-Relacionamento (ER) 31 Relacionamento Um para Um – 1:1 � Uma ocorrência de A está associada a no máximo uma ocorrência de B, e uma ocorrência em B está associada a no máximo uma ocorrência em A. João Pedro Paulo Maria Jurídico Contabilidade Financeiro Conjunto A (Empregado) Conjunto B (Departamento) Empregado DepartamentoGerencia 11 Sistema de Banco de Dados, 5/E Modelo Entidade-Relacionamento (ER) 32 Relacionamento Um para Muitos – 1:N � Uma ocorrência de A está associada a várias ocorrências de B, porém uma ocorrência de B deve estar associada a no máximo uma ocorrência em A Conjunto A (Departamento) EmpregadoDepartamento Lotação N1 Contabilidade Financeiro Ana Pedro João Sandro Conjunto B (Empregado) Sistema de Banco de Dados, 5/E Modelo Entidade-Relacionamento (ER) 33 Relacionamento Muitos para Muitos – M:N ou N:N � Uma ocorrência de A está associada a qualquer número de ocorrências de B, e uma ocorrência em B está associada a qualquer número de ocorrências em A Sigmoda MM-TOM Sinpli AATOM Conjunto A (Empregado) Conjunto B (Projeto) Empregado ProjetoAtua NN João Pedro Paulo Maria Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Chaves � Uma superchave de um conjunto de entidades é um conjunto de um ou mais atributos cujos valores determinam unicamente cada entidade. � Uma chave candidata de um conjunto de entidades é uma superchave mínima � Id_cliente é uma chave candidata de cliente � número_conta é uma chave candidata de conta � Embora possam existir várias chaves candidatas, uma das chaves candidatas é selecionada para ser a chave primária. Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Chaves para conjuntos de relacionamento � A combinação de chaves primárias dos conjuntos de entidades participantes forma uma superchave de um conjunto de relacionamento. � (id_cliente, número_conta) é a superchave de depositante � NOTA: isso significa que um par de conjuntos de entidades pode ter no máximo um relacionamento em um determinado conjunto de relacionamento. � Exemplo: Se desejarmos acompanhar todas as datas de acesso a cada conta por cada cliente, não podemos considerar um relacionamento para cada acesso. Entretanto, podemos usar um atributo de valores múltiplos. � Precisam considerar a cardinalidade de mapeamento do conjunto de relacionamento quando decidir quais são as chaves candidatas � Precisam considerar a semântica do conjunto de relacionamento ao selecionar a chave primária no caso de mais de uma chave candidata Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Diagramas ER � Retângulos representam conjuntos de entidades. � Losangos representam conjuntos de relacionamento. � Linhas vinculam atributos a conjuntos de entidades e estes a conjuntos de relacionamento. � Elipses representam atributos � Elipses duplas representam atributos de valores múltiplos. � Elipses tracejadas indicam atributos derivados. � Sublinhados indicam atributos de chave primária (que veremos mais tarde) Sistema de Banco de Dados, 5/E Relacionamentos com Atributos CURSOALUNO frequenta 1,N0,M Nom e Nom e Endereç o Endereç o CP F CP F Nome Carga Horária Nota para Nota para aprovaçã o Média final Data de inscrição Quantidad e de faltas? 37 / 43 Sistema de Banco de Dados, 5/E Relacionamentos com Atributos CURSOALUNO frequenta 1,N0,M Nom e Nom e Endereç o Endereç o CP F CP F Nome Carga Horária Nota para Nota para aprovaçã o Média final Data de inscrição Quantidad e de faltas 38 / 43 Sistema de Banco de Dados, 5/E Relacionamentos com Atributos CURSOfrequenta 1,N0,M Nome Carga Horária Nota para Nota para aprovaçã o Média final Data de inscrição Quantidad e de faltas ALUNO CPF Nome Endereço 39 / 43 Sistema de Banco de Dados, 5/E Relacionamentos com Atributos frequenta 1,N0,M Média final Data de inscrição Quantidad e de faltas ALUNO CPF Nome Endereço CURSO Nome Carga Horária Nota para aprovação 40 / 43 Sistema de Banco de Dados, 5/E Relacionamentos com Atributos ALUNO CPF Nome Endereço CURSO Nome Carga Horária Nota para aprovação ALUNO_CURSO Quantidade de faltas Média final Data de inscrição 41 / 43 Sistema de Banco de Dados, 5/E Relacionamentos com Atributos ALUNO CPF Nome Endereço CURSO Nome Carga Horária Nota para aprovação ALUNO_CURSO ALUNO_CPF CURSO_Nome Quantidade de faltas Média final Data de inscrição 42 / 43 Sistema de Banco de Dados, 5/E Relacionamentos com Atributos ALUNO CPF Nome Endereço CURSO Nome Carga Horária Nota para aprovação ALUNO_CURSO ALUNO_CPF CURSO_Nome Quantidade de faltas Média final Data de inscrição Tipo de Atributo: Chave Estrangeira 43 / 43 Sistema de Banco de Dados, 5/E Relacionamentos com Atributos ALUNO CPF Nome Endereço CURSO Nome Carga Horária Nota para aprovação ALUNO_CURSO ALUNO_CPF CURSO_Nome Quantidade de faltas Média final Data de inscrição 44 / 43 Sistema de Banco de Dados, 5/E Relacionamentos com Atributos ALUNO 012.333.470- 90 Jimmy Five Av. Paraná CURSO Nome Carga Horária Nota para aprovação ALUNO_CURSO ALUNO_CPF CURSO_Nome Quantidade de faltas Média final Data de inscrição 45 / 43 Sistema de Banco de Dados, 5/E Relacionamentos com Atributos ALUNO 012.333.470- 90 Jimmy Five Av. Paraná CURSO Informática 40 8.0 ALUNO_CURSO ALUNO_CPF CURSO_Nome Quantidade de faltas Média final Data de inscrição 46 / 43 Sistema de Banco de Dados, 5/E Relacionamentos com Atributos ALUNO 012.333.470- 90 Jimmy Five Av. Paraná CURSO Informática 40 8.0 ALUNO_CURSO ALUNO_CPF CURSO_Nome Quantidade de faltas Média final Data de inscrição Qual a nota de Jimmy Five no curso de Informática? 47 / 43 Sistema de Banco de Dados, 5/E Relacionamentos com Atributos ALUNO 012.333.470- 90 Jimmy Five Av. Paraná CURSO Informática 40 8.0 ALUNO_CURSO 012.333.470-90 Informática Quantidade de faltas Média final Data de inscrição Qual a nota de Jimmy Five no curso de Informática? 48 / 43 Sistema de Banco de Dados, 5/E Relacionamentos com Atributos ALUNO 012.333.470- 90 Jimmy Five Av. Paraná CURSO Informática 40 8.0 ALUNO_CURSO 012.333.470-90 Informática 2 8.5 06/02/2012 Qual a nota de Jimmy Five no curso de Informática? 8.5 pontos. 49 / 43 Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Resumo dos símbolos usados na notação ER Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Diagrama ER com atributos compostos, derivados e de valores múltiplos Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Conjuntos de relacionamento com atributos Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Funções � Conjuntos de entidades de um relacionamento não precisam ser distintos � Os rótulos “gerente” e “funcionário” são chamados funções; eles especificam como as entidades de funcionário interagem através do conjunto de relacionamento trabalha_para. � As funções são indicadas nos diagramas ER rotulando as linhas que conectam os losangos aos retângulos. � Os rótulos de função são opcionais e são usados para esclarecer a semântica do relacionamento Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Restrições de cardinalidade � Expressamos as restrições de cardinalidade desenhando uma linha direcionada (→→→→), significando “um”, ou uma linha não direcionada (—), significando “muitos”, entre o conjunto de relacionamento e o conjunto de entidades. � Relacionamento um-para-um: � Um cliente está associado, no máximo, a um empréstimo através do relacionamento tomador � Um empréstimo está associado, no máximo, a um cliente através de tomador Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Relacionamento um-para-muitos � No relacionamento um-para-muitos, um empréstimo está associado, no máximo, a um cliente através de tomador, um cliente está associado a vários (inclusive 0) empréstimos através de tomador Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Relacionamento muitos-para-um � Em um relacionamento muitos-para-um, um empréstimo está associado a vários (inclusive 0) clientes através de tomador, um cliente está associado, no máximo, a um empréstimo através de tomador Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Relacionamento muitos-para-muitos � Um cliente está associado a vários (possivelmente 0) empréstimos através de tomador � Um empréstimo está associado a vários (possivelmente 0) clientes através de tomador Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Participação de um conjunto de entidades em um conjunto de relacionamento � Participação total (indicada por uma linha dupla): cada entidade no conjunto de entidades participa no mínimo em um relacionamento no conjunto de relacionamento � Por exemplo, a participação de empréstimo em tomador é total � Cada empréstimo precisa ter um cliente associado através de tomador � Participação parcial: algumas entidades podem não participar em relacionamento algum no conjunto de relacionamento � Exemplo: a participação de cliente em tomador é parcial Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Notação alternativa para limites de cardinalidade � Os limites de cardinalidade também podem expressar restrições de participação Sistema de Banco de Dados, 5/E Modelo Entidade-Relacionamento (ER) 60 Auto-Relacionamento (Relacionamento Unário) • Relacionamento entre ocorrências da mesma entidade Empregado (0,N) supervisiona supervisor (1,1) supervisionado João Pedro Paulo Maria supervisor supervisionada Pessoa (0,1)(0,1) casadoCom EsposaMarido Roberto Pedro Felipe Ana marido esposa Sistema de Banco de Dados, 5/E 61 Relacionamento Binário e Ternário Empregado Departamentotrabalha (1,N ) (1,1 ) Cidade Distribuidor Produto distribuição Binário Ternário (1,1)(1,N) (1,N) Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Diagrama ER com um relacionamento ternário Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Conjuntos de entidades fracos � Um conjunto de entidades que não possui uma chave primária é chamado de conjunto de entidades fraco. � A existência de um conjunto de entidades fraco depende da existência de um conjunto de entidades identificador � Ele precisa se relacionar com o conjunto de entidades identificador através de um conjunto de relacionamento um-para-muitos total, do identificador para o conjunto de entidadesfraco � Relacionamento identificador descrito usando um losango duplo � O discriminador (ou chave parcial) de um conjunto de entidades fraco é o conjunto de atributos que distingue entre todas as entidades de um conjunto de entidades fraco. � A chave primária de um conjunto de entidades fraco é formada pela chave primária do conjunto de entidades forte em que o conjunto de entidades fraco é dependente de existência, mais o discriminador do conjunto de entidades fraco. Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Conjuntos de entidades fracos (cont.) � Representamos um conjunto de entidades fraco por retângulos duplos. � Sublinhamos o discriminador de um conjunto de entidades fraco com uma linha tracejada. � número_pagamento — discriminador do conjunto de entidades pagamento. � Chave primária para pagamento— (número_empréstimo, número_pagamento) Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Mais exemplos de conjunto de entidades fraco � Em uma universidade, um curso é uma entidade forte e uma oferta_curso pode ser modelada como uma entidade fraca � O discriminador de oferta_curso seria semestre (incluindo ano) e número_seção (se houver mais de uma seção) � Se modelarmos oferta_curso como uma entidade forte, modelaríamos número_curso como um atributo. � Então, o relacionamento com curso estaria implícito no atributo número_curso Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Diagrama ER para uma instituição Ex: 100 bancária -Faça o preenchimento de pelo menos 2 instancias (completo) para o modelo apresentado -Liste, em forma de tabelas, os conjuntos de entidades e seus atributos e chaves primárias; -Descreva cada relacionamento, relatando quem está associado a ele; -Formule o problema a partir deste diagrama. Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Resumo dos símbolos usados na notação ER Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Resumo dos símbolos (cont.) Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Diagrama ER - Ex: 101 -Faça o preenchimento de pelo menos 2 instancias (completo) para o modelo apresentado -Liste, em forma de tabelas, os conjuntos de entidades e seus atributos e chaves primárias; -Descreva cada relacionamento, relatando quem está associado a ele; -Formule o problema a partir deste diagrama. Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Figura 6.8 Um para muitos Muitos para um Um para um Sistema de Banco de Dados, 5/E Korth • Silberschatz • Sundarshan Figura 6.16 Empréstimo como um conjunto de relacionamento Sistema de Banco de Dados, 5/E Conjunto de Relacionamentos � Relacionamento é uma associação entre uma ou várias entidades � Conjunto de Relacionamentos é um conjunto de relacionamentos de mesmo tipo � Expressam uma rica semântica entre os conjuntos de entidades por meio dos conceitos como: � Cardinalidade � Restrição de participação (total ou parcial) � Grau de Relacionamento � Esses conceitos impõem restrições aos dados que alimentarão o banco de dados � Notação DER: losango Trabalha Sistema de Banco de Dados, 5/E Conjunto de Relacionamentos � O grau de relacionamento: é o número de entidades participantes � Binário, ternário, etc. � Dependendo do conjunto de entidades associadas entre si, é necessário adicionar atributos em um relacionamento � Ex: Horas em Trabalha_Em entre Funcionário e Projeto � Exemplo MER: Sistema de Banco de Dados, 5/E Cardinalidade � A cardinalidade expressa o número de entidades as quais outra entidade pode estar associada em um relacionamento � Para um � Um para um (1 para 1) � Uma entidade em A está associada no máximo a uma entidade em B, e uma entidade em B está associada a no máximo uma entidade em A � Um para muitos (1 para N) � Uma entidade em A está associada a várias entidades em B. Uma entidade em B, entretanto, deve estar associada no máximo a uma entidade em A � Muitos para um (N para 1) � Uma entidade em A está associada a no máximo uma entidade em B. Uma entidade em B, entretanto, pode estar associada a um número qualquer de entidades em A � Muitos para muitos (N para N) - pode ser substituido por qualquer outra letra, como M, P, Q) � Uma entidade em A está associada a qualquer número de entidades em B e uma entidade em B está associada a um número qualquer de entidades em A Sistema de Banco de Dados, 5/E Cardinalidade 1 para 1 �Exemplos: � Um funcionário gerencia no máximo 1 departamento. Um departamento é gerenciado por no máximo um funcionário Funcionário DepartamentoGerencia1 1 f1 f2 f3 d1 d2 d3 Sistema de Banco de Dados, 5/E Cardinalidade 1 para muitos �Exemplos: � Um funcionário está lotado no máximo em 1 departamento. Um departamento tem até N funcionários lotados nele Funcionário DepartamentoLotadosN 1 f1 f2 f3 f4 f5 d1 d2 d3 1 Sentido da leitura 1 N Sentido da leitura 1 Sistema de Banco de Dados, 5/E Cardinalidade muitos para muitos �Exemplos: � Um funcionário participa de vários projetos. Um projeto pode ter a participação de até N funcionários Funcionário ProjetosParticipaçãoN N f1 f2 f3 p1 p2 p3 Sistema de Banco de Dados, 5/E Cardinalidade máxima e mínima �Indica se a participação das ocorrências de entidades no relacionamento é obrigatória ou opcional Funcionário DepartamentoLotados(1,N) (0,1) notação de par de cardinalidades: (mínima, máxima) Um funcionário pode estar lotado no máximo em 1 departamento. Um departamento obrigatoriamente tem até N empregados lotados nele Sistema de Banco de Dados, 5/E Cardinalidade máxima e mínima Funcionário DepartamentoGerencia(0,1) (0,1) Funcionário ProjetosParticipação(0,N) (0,N) Funcionário ProjetosCoordenação(1,1) (0,2) Sistema de Banco de Dados, 5/E Exercício • Desenhe o DER para uma Locadora de DVDs, usando os símbolos apresentados e as informações abaixo: Entidade Atributos Cliente Nome, CPF, Endereço, Telefone, Data de Nascimento DVD Código, Título, Duração, Gênero Relacionamento Entidades Envolvidas Atributos Aluga Cliente-DVD Data de Saída, Data de Devolução, Preço Sistema de Banco de Dados, 5/E Exercício: Solução Sistema de Banco de Dados, 5/E Exercício 01 • Elaborar um diagrama E-R para uma seguradora de automóveis • Entidades: Cliente, Apólice, Carro e Acidentes. • Requisitos: – a) Um cliente pode ter várias apólices (no mínimo uma); – b) Cada apólice somente dá cobertura a um carro; – c) Um carro pode ter zero ou n registros de acidentes a ele. • Atributos: – a) Cliente: Número, Nome e Endereço; – b) Apólice: Número e Valor; – c) Carro: Registro e Marca; – d) Acidente: Data, Hora e Local; Exercicios extraídos da UNIP – Universidade Paulista Sistema de Banco de Dados, 5/E Exercício 02 • Elaborar um diagrama E-R de um consultório clínico • Entidades: Médico, Paciente e Exame. • Requisitos: – O banco de dados deverá armazenar informações sobre os vários exames de um – determinado paciente, com o resultado e o valor pago (pode-se dar desconto para – determinados pacientes); • Atributos: – a) Médico: Número, Nome e Especialidade; – b) Paciente: Número, Nome, Endereço; – c) Tipo Exame, Aceita Convênio, Requisitos, Valor exame. Exercicios extraídos da UNIP – Universidade Paulista Sistema de Banco de Dados, 5/E Exercício 03 • Elaborar um diagrama para uma Indústria. • Entidades: Peças, Depósitos, Fornecedor, Projeto, Funcionário e Departamento.• Requisitos: – a) Cada Funcionário pode estar alocado a somente um Departamento; – b) Cada Funcionário pode pertencer a mais de um Projeto; – c) Um projeto pode utilizar-se de vários Fornecedores e de várias Peças; – d) Uma Peça pode ser fornecida por vários Fornecedores e atender a vários Projetos; – e) Um Fornecedor pode atender a vários Projetos e fornecer várias Peças; – f) Um Depósito pode conter várias Peças; – g) Deseja-se ter um controle do material utilizado por cada Projeto, identificando inclusive – o seu Fornecedor. Gravar as informações de data de Início e Horas Trabalhadas no Projeto. • Atributos: – a) Peças: Número, Peso e Cor; – b) Depósito: Número e Endereço; – c) Fornecedor: Número e Endereço; – d) Projeto: Número e Orçamento; – e) Funcionário: Número, Salário e Telefone; – f) Departamento: Número e Setor. Exercicios extraídos da UNIP – Universidade Paulista Sistema de Banco de Dados, 5/E Exercício 04 Projetar um Banco de Dados satisfazendo as seguintes restrições e requisitos: • a) Para um Vendedor, armazenar seu código, nome, endereço e comissão; • b) Para um cliente, armazenar o seu código, nome, endereço, faturamento acumulado e limite de crédito. Além disso, armazenar o código e o nome do vendedor que o atende. Um vendedor pode atender muitos clientes, porém um cliente deve ter exatamente um vendedor; • c) Para uma peça, armazenar seu código, descrição, preço quantidade em estoque e o número do armazém onde a peça está estocada. Uma peça somente pode estar estocada num único armazém. Para um armazém, armazenar seu código e endereço; • d) Para um pedido, armazenar seu número, data, código, nome e endereço do cliente, que fez o pedido e o código do vendedor para cálculo da comissão. Além disso, para cada item do pedido armazenar o código da peça, quantidade e preço cotado. Há somente um cliente por pedido e um vendedor; • e) O preço cotado no pedido pode ser mesmo que o preço corrente no arquivo de peças, mas não necessariamente. Sistema de Banco de Dados, 5/E Sistema de Banco de Dados, 5/E Sistema de Banco de Dados, 5/E Sistema de Banco de Dados, 5/E Sistema de Banco de Dados, 5/E 90 Exercício – Formule o problema a partir do diagrama ER Aluno Turma Disciplina Professor Matrícula atuação regência da Codigo nome numeroCreditosCPF Matricula nome CPF Nome Salario Numero Sala horario (0,N) (1,1) (1,1)(1,N) (0,N) (1,1) (1,N) (0,N) Sistema de Banco de Dados, 5/E 91 Identificando Entidades • Cada entidade deve ter um identificador • Identificador (também conhecido como chave): – É o conjunto de um ou mais atributos ou relacionamentos cujos valores servem para distinguir uma ocorrência da entidade das demais ocorrências da mesma entidade – Exemplo: os atributos CPF ou Carteira de Identidade identificam UNICAMENTE um cidadão brasileiro • Representação no Modelo Cliente CPF Nome Endereco Prateleira NumeroCorredor NumeroPrateleira Sistema de Banco de Dados, 5/E Exercícios – Modelo E-R (Fixação De Conteúdo) Hollywood possui diversos estúdios cinematográficos, cada estúdio caracterizado por um nome único, um dono, data de fundação e o faturamento do ano anterior. Estes estúdios produzem filmes que possuem um nome único, o número de meses que levou sendo feito, o ano de lançamento, o número do copyright e o custo total do filme. Em cada filme atuam atores, que possuem um nome artístico único, um número de seguro social (também único), uma nacionalidade, idade, sexo, e um conjunto de tipos de papéis para o qual seu tipo físico é aconselhável (ex: avó, mocinha jovem, galã com idade avançada, adolescente). Estes tipos de papéis não são pré-definidos, constituindo uma lista preenchida a critério de cada ator. Estúdios podem existir mesmo que ainda não tenham produzido um filme, mas só são considerados atores os que já atuaram em pelo menos um filme. 92 / 32 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução ESTÚDIO produz FILME tem tem atuaçã o ATOR 1,1 0,N 1,N 1,N .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. .. . .. . .. . .. . .. . .. . .. . .. . .. .. . .. . .. . .. . .. . .. . Tipo de Papel 93 / 32 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução 94 / 32 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução 95 / 32 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução Quais atores interpretam o papel de “Bruxo”? 96 / 32 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução Quais atores interpretam o papel de “Bruxo”? 97 / 32 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução • Duas soluções: – Modelar o ambiente respeitando o fluxo de dados. – Representar a situação no diagrama através de um símbolo diferente. 98 / 92 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução ESTÚDIO produz FILME tem tem atuaçã o ATOR 1,1 0,N 1,N 1,N .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. .. . .. . .. . .. . .. . .. . .. . .. . .. .. . .. . .. . .. . .. . .. . Solução 1 prefere TIPO DE PAPEL 1,N 1,N Tipo de Papel 99 / 32 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução ESTÚDIO produz FILME tem tem atuaçã o ATOR 1,1 0,N 1,N 1,N .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. .. . .. . .. . .. . .. . .. . Daniel e Daniel Radcliff e .. .. . .. . .. . .. . .. . .. . Solução 1 prefere TIPO DE PAPEL 1,N 1,N Bruxo 100 / 32 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução ESTÚDIO produz FILME tem tem atuaçã o ATOR 1,1 0,N 1,N 1,N .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. .. . .. . .. . .. . .. . .. . Daniel e Daniel Radcliff e .. .. . .. . .. . .. . .. . .. . Solução 1 prefere TIPO DE PAPEL 1,N 1,N Amigo 101 / 32 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução ESTÚDIO produz FILME tem tem atuaçã o ATOR 1,1 0,N 1,N 1,N .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. .. . .. . .. . .. . .. . .. . Daniel e Daniel Radcliff e .. .. . .. . .. . .. . .. . .. . Solução 1 prefere TIPO DE PAPEL 1,N 1,N Mocinho 102 / 32 Sistema de Banco de Dados, 5/E Tipo de Papel Exercício proposto - Resolução ESTÚDIO produz FILME tem tem atuaçã o ATOR 1,1 0,N 1,N 1,N .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. .. . .. . .. . .. . .. . .. . .. . .. . .. .. . .. . .. . .. . .. . .. . Tipo de Papel Solução 2 103 / 32 Sistema de Banco de Dados, 5/E Exercícios – Modelo E-R (Fixação De Conteúdo) Uma firma vende produtos de limpeza e deseja controlar melhor os produtos que vende, seus clientes e os pedidos.Cada produto é caracterizado por um código único, nome do produto, categoria (ex. detergente, sabão em pó, sabonete, etc), e seu preço. A categoria é uma classificação criada pela própria firma. A firma possui informações sobre todos os seus clientes. Cada cliente é identificado por um código único (interno à firma), o nome do cliente, endereço (rua, número, cidade, CEP, UF), telefone, status do cliente (bom, médio, ruim), e o seu limite de crédito. Guarda-se igualmente a informação dos pedidos feitos pelos clientes. Cada pedido possui um número (único), e guarda-se a data de elaboração do pedido. Cada pedido pode envolver de um a vários produtos, e para cada produto, indica-se a quantidade pedida. (...) 104 / 92 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução PRODUTO ... .. . .. . .. . .. . .. . .. . 105 / 32 Sistema de Banco de Dados, 5/E Exercícios – Modelo E-R (Fixação De Conteúdo) Uma firma vende produtos de limpeza e deseja controlar melhor os produtos que vende, seus clientes e os pedidos. Cada produto é caracterizado por um código único, nome do produto, categoria (ex. detergente, sabão em pó, sabonete, etc), e seu preço. A categoria é uma classificação criada pela própria firma. A firma possui informações sobre todos os seus clientes. Cada cliente é identificado por um código único (interno à firma), o nome do cliente, endereço (rua, número, cidade, CEP, UF), telefone, status do cliente (bom, médio, ruim), e o seu limite de crédito. Guarda-se igualmente a informação dos pedidos feitos pelos clientes. Cada pedido possui um número (único), e guarda-se a data de elaboração do pedido. Cada pedido pode envolver de um a vários produtos, e para cada produto, indica-se a quantidade pedida. (...) 106 / 92 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução CLIENTE PRODUTO .. . .. . .. . .. . .. . .. . .. . .. . ... .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . 107 / 32 Sistema de Banco de Dados, 5/E Exercícios – Modelo E-R (Fixação De Conteúdo) Uma firma vende produtos de limpeza e deseja controlar melhor os produtos que vende, seus clientes e os pedidos. Cada produto é caracterizado por um código único, nome do produto, categoria (ex. detergente, sabão em pó, sabonete, etc), e seu preço. A categoria é uma classificação criada pela própria firma. A firma possui informações sobre todos os seus clientes. Cada cliente é identificado por um código único (interno à firma), o nome do cliente, endereço (rua, número, cidade, CEP, UF), telefone, status do cliente (bom, médio, ruim), e o seu limite de crédito. Guarda-se igualmente a informação dos pedidos feitos pelos clientes. Cada pedido possui um número (único), e guarda-se a data de elaboração do pedido. Cada pedido pode envolver de um a vários produtos, e para cada produto, indica-se a quantidade pedida. (...) 108 / 92 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução CLIENTE PEDIDO PRODUTO .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . ... .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . 109 / 32 Sistema de Banco de Dados, 5/E Exercícios – Modelo E-R (Fixação De Conteúdo) Uma firma vende produtos de limpeza e deseja controlar melhor os produtos que vende, seus clientes e os pedidos. Cada produto é caracterizado por um código único, nome do produto, categoria (ex. detergente, sabão em pó, sabonete, etc), e seu preço. A categoria é uma classificação criada pela própria firma. A firma possui informações sobre todos os seus clientes. Cada cliente é identificado por um código único (interno à firma), o nome do cliente, endereço (rua, número, cidade, CEP, UF), telefone, status do cliente (bom, médio, ruim), e o seu limite de crédito. Guarda-se igualmente a informação dos pedidos feitos pelos clientes. Cada pedido possui um número (único), e guarda-se a data de elaboração do pedido. Cada pedido pode envolver de um a vários produtos, e para cada produto, indica-se a quantidade pedida. (...) 110 / 92 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução CLIENTE PEDIDO PRODUTO .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . ... .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . 111 / 32 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução CLIENTE faz PEDIDO tem PRODUTO .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . ... .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . 112 / 32 Sistema de Banco de Dados, 5/E Exercício proposto - Resolução CLIENTE faz PEDIDO tem PRODUTO 1,1 1,N 0,N 1,N .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . ... .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . 113 / 32 Sistema de Banco de Dados, 5/E Telefone CLIENTE faz PEDIDO tem PRODUTO 1,1 1,N 0,N 1,N Endereç o Endereç o Telefon e Telefon e Status Crédito Data N.º Cod Nome Categori a Categori a Preço Qtde Nome Cod ... .. . .. . .. . .. . .. . .. . .. . .. . Exercício proposto - Resolução 114 / 32 Sistema de Banco de Dados, 5/E Telefone CLIENTE faz PEDIDO tem PRODUTO 1,1 1,N 0,N 1,N Endereç o Endereç o Telefon e Telefon e Status Crédito 20/08/2012 1032 11 Limpa Tudo Solvente 10,00 1 Nome Cod ... .. . .. . .. . .. . .. . .. . .. . .. . Exercício proposto - Resolução 115 / 32 Sistema de Banco de Dados, 5/E Telefone CLIENTE faz PEDIDO tem PRODUTO 1,1 1,N 0,N 1,N Endereç o Endereç o Telefon e Telefon e Status Crédito 20/08/2012 1032 37 Detergente x Detergente x Detergent e Detergent e 2,00 2 Nome Cod ... .. . .. . .. . .. . .. . .. . .. . .. . Exercício proposto - Resolução 116 / 32 Sistema de Banco de Dados, 5/E Telefone CLIENTE faz PEDIDO tem PRODUTO 1,1 1,N 0,N 1,N Endereç o Endereç o Telefon e Telefon e Status Crédito 20/08/2012 1032 23 Escovex Escova 1,00 3 Nome Cod ... .. . .. . .. . .. . .. . .. . .. . .. . Exercício proposto - Resolução 117 / 32 Sistema de Banco de Dados, 5/E Telefone CLIENTE faz PEDIDO tem PRODUTO 1,1 1,N 0,N 1,N Endereç o Endereç o Telefon e Telefon e Status Crédito 20/08/2012 1032 23 Escovex Escova 1,00 3 Nome Cod ... .. . .. . .. . .. . .. . .. . .. . .. . Exercício proposto - Resolução 118 / 32 Sistema de Banco de Dados, 5/E Telefone CLIENTE faz PEDIDO tem PRODUTO 1,1 1,N 0,N 1,N Endereç o Endereç o Telefon e Telefon e Status Crédito 20/08/2012 956 23 Escovex Escova 1,00 3 Nome Cod ... .. . .. . .. . .. . .. . .. . ... .. . Exercício proposto - Resolução 119 / 32 Estrutura de Dados e Sistemas de Integração Eng. Controle Automação 2°/2013 Modelo Entidade/Relacionamento Prof. Alexandre Wagner C. Faria Material adaptado do Livro: Sistema de Banco de Dados (Silberschatz, Korth, Sudarshan), Prof. Ronaldo C.M. Correia, Vania Bogorny UFSC, Prof. (Me.) Eduardo Tieppo Dom Bosco
Compartilhar