Universidade Paulista Ciência da Computação Sistemas de Informação Engenharia de Software Modelo Entidade Relacionamento Sergio Petersen 22/4/2012
Sumário 1. Modelo Entidade-Relacionamento 3 1.1.Entidade 3 1.2.Relacionamentos 4 1.3.Cardinalidade 4 1.4.Chaves de Entidade 6 1.4.1.Chave Candidata 6 1.4.2.Chave Primária (PK - Primary Key) 6 1.4.3.Chave Secundária 6 1.4.4.Chave Estrangeira (FK - Foreign Key) 7 1.5.RELACIONAMENTO OBRIGATÓRIO / OPCIONAL 7 1.5.1.Relacionamento Obrigatório 7 1.5.2.Relacionamento Opcional 7 1.5.3.Auto-relacionamento 8 1.5.4.Relacionamento ternário 8 1.5.5.Agregação 9 1.6.GENERALIZAÇÃO E ESPECIALIZAÇÃO 10 1.6.1.Generalização 10 1.6.2.Especialização 11 2
1. Modelo Entidade-Relacionamento Também conhecido como diagrama DER ou E-R, é um modelo em rede que descreve a diagramação dos dados armazenados de um sistema em alto nível de abstração. São úteis principalmente nos casos em que as estruturada de dados e relacionamentos podem ser tão complexos que desejamos evidenciá-los e examiná-los independentemente do processamento que ocorrerá. São úteis no contato com: O grupo de administração de dados responsável pelo gerenciamento e controle das informações essenciais da empresa. O grupo de administração de banco de dados cuja principal tarefa é assegurar que os bancos de dados computadorizados sejam organizados, gerenciados e controlados de modo eficiente. Para o analista de sistemas o DER realça os relacionamentos entre os depósitos de dados de um DFD que de outro modo só seriam percebidos nas especificações de processos. 1.1. Entidade Representado por um retângulo, ele representa uma coleção ou um conjunto de objetos (coisas) do mundo real cujos membros individuais (exemplares ou instâncias) têm as seguintes características: o Cada um deles só pode ser identificado de uma única forma. Ex.: Se tivermos um tipo de objeto chamado CLIENTE, precisamos ser capazes de distinguirmos um cliente de outro. Se todos os clientes forem iguais, CLIENTE será um tipo de objeto sem significado. o Cada um exerce um papel no sistema em construção. O sistema não deve funcionar sem acesso aos membros desse tipo, de objeto. EX.: Se estivermos desenvolvendo um sistema de entrada de pedidos para nossa loja, por exemplo, pode ocorrer-nos que além dos clientes, a loja tem um grupo de serventes, cada um dos quais é identificado individualmente pelo nome. Embora os serventes exerçam um papel útil na loja, o sistema de entrada de pedidos pode funcionar perfeitamente sem eles. o Cada um pode ser descrito por um ou mais elementos de dados. 3
Por questões de padronização, o nome da entidade deve estar no singular, pois o plural é conseqüência da quantidade. Tipo de entidade CLIENTE 1.2. Relacionamentos Os objetos são interligados por relacionamentos que são representados por um losango. Representa um conjunto de conexões entre os objetos. Cada instância do relacionamento representa uma associação entre zero ou mais ocorrências de um objeto e zero ou mais ocorrências de outro objeto. CLIENTE compra ITEM 1.3. Cardinalidade Dada duas entidades X e Y, cardinalidade é quantidade de ocorrências da entidade X que estão associadas com uma ocorrência da entidade Y, e vice-versa. Um-para-Um (1:1) Uma ocorrência da entidade X está associada no máximo a uma ocorrência da entidade Y e uma ocorrência da entidade Y está associada com no máximo uma ocorrência da entidade X. Chefia Departamento NOMDPT CHF 4
Um-para-Muitos (1:N) ou (N:1) Uma ocorrência da entidade X está associada a várias ocorrências da entidade Y e uma ocorrência da entidade Y está associada com no máximo uma ocorrência da entidade X.. Tem Dependente NUMDEP NOMDEP Trabalha Departamento NOMDPT CHF Muitos-para-Muitos (N:N) Uma ocorrência da entidade X está associada a várias ocorrências da entidade Y e uma ocorrência da entidade Y está associada a várias ocorrências da entidade X. Equipe Projeto CODVRB MESREF VALVRB CODPRJ Contra Cheque CODPRJ NOMPRJ DTAINI DTAFIM Verba (Proventos e Descontos) CODVRB DESVRB VALVRB 5
1.4. Chaves de Entidade Chave é um atributo ou conjunto de atributos pelo(s) qual(is) selecionamos uma ou várias ocorrências de uma entidade. 1.4.1. Chave Candidata A chave candidata identifica unicamente uma ocorrência de uma entidade. Por definição, uma entidade deve ter pelo menos uma chave candidata. Na prática, em geral, uma entidade possui exatamente uma chave candidata. Exemplo: Para a entidade FUNCIONÁRIO: () ( + + ) 1.4.2. Chave Primária (PK - Primary Key) Chave primária é a chave candidata escolhida como mecanismo principal para identificação de uma ocorrência na entidade. Representação gráfica: Colocar um @ à frente do atributo PK. Quando a PK for um conjunto de atributos colocar o @ à frente de cada um, acrescentando um número que identifica a ordem do atributo no conjunto (@1, @2, @3,...). @ 1.4.3. Chave Secundária Chave secundária é o atributo ou conjunto de atributos utilizado(s) para recuperar ocorrências de uma entidade de interesse de uma certa rotina. Não é representada graficamente no modelo de dados. 6
1.4.4. Chave Estrangeira (FK - Foreign Key) Chave estrangeira é o atributo ou conjunto de atributos de uma entidade cujos os valores correspondem a valores de chave primária de outra entidade. Chave estrangeira não necessariamente precisa ser uma chave secundária. 1.5. RELACIONAMENTO OBRIGATÓRIO / OPCIONAL 1.5.1. Relacionamento Obrigatório Dado um relacionamento entre uma entidade X e uma entidade Y, o relacionamento é obrigatório para X quando uma ocorrência de X estiver associada a pelo menos uma ocorrência de Y. Isto é representado no modelo através do limite inferior da cardinalidade igual a 1. Trabalha Departamento @ @ NOMDPT Neste relacionamento, cada deve estar necessariamente relacionado a um Departamento, e cada Departamento pode estar relacionado a vários s, contudo não precisa possuir nenhum. 1.5.2. Relacionamento Opcional Dado um relacionamento entre uma entidade X e uma entidade Y, o relacionamento é opcional para X quando a existência de uma ocorrência em X não precisa, necessariamente, estar associada a nenhuma ocorrência de Y. Projeto Possui Equipamento @ NUMPRJ NOMPRJ DATINIPRJ DATFINPRJ @ NUMEQP NOMEQP NUMPRJ 7
Neste relacionamento, cada Projeto pode estar relacionado com vários Equipamentos, contudo também pode não estar, e cada Equipamento pode estar relacionado a vários Projetos, mas não precisa necessariamente estar relacionado a um. 1.5.3. Auto-relacionamento São relacionamentos entre ocorrências de uma mesma entidade. Também é chamado de relacionamento RECURSIVO ou REFLEXIVO. @ CODPRO DESPRO VALPRO Produto Produto Similar @1 CODPRO @2 CODPROSML Departamento Hierarquia @ NOMDPT SUP 1.5.4. Relacionamento ternário É um relacionamento que acontece simultaneamente entre 3 (três) entidades. 8
Doença @ CODDOE NOMDOE Médico Atestado 1 Paciente @ CRMMED NOMMED ENDMED @1 CODPAC @2 CRMMED @3 CODDOE @4 DTAINI DTAFIM @ CODPAC NOMPAC ENDPAC 1.5.5. Agregação Agregação é uma abstração através da qual relacionamentos são tratados como entidade de nível mais alto. É também chamada de Entidade Associativa. Equipe Projeto @ CODPRJ NOMPRJ DTAINI DTAFIM @ @1 CODPRJ @2 @1 CODPRJ @2 @3 CODREC Recurso Equipe 0 Recurso Informática @ CODREC DESREC 9
1.6. GENERALIZAÇÃO E ESPECIALIZAÇÃO 1.6.1. Generalização É o resultado da união de duas ou mais entidades de nível mais baixo produzindo uma entidade de nível mais alto. Existe um atributo na entidade de nível mais alto que qualifica cada ocorrência de acordo com as entidades de nível mais baixo. Quando ocorre uma Generalização as entidades de nível mais baixo, normalmente, não são implementadas fisicamente. Homem Mulher 10
1.6.2. Especialização É o resultado da separação de uma entidade de nível mais alto, formando um conjunto de entidades de nível mais baixo. A implementação física das entidades dependerá do contexto da aplicação. Conta Bancária Conta Corrente Conta Poupança Leitura YOURDON, Edward, Análise Estruturada Moderna, Editora Campus, 1990 Capítulo 12, Modelo Entidade-Relacionamento. CHEN, Peter, Gerenciando Banco de Dados A Abordagem Entidade- Relacionamento para Projeto Lógico, McGraw-Hill, 1990. 11