Modelo Entidade Relacionamento Marcio de Carvalho Victorino www.dominandoti.eng.br Marcio de Carvalho Victorino www.dominandoti.eng.br Abordagem Entidade Relacionamento Técnica para construir modelos conceituais de base de dados. Técnica de modelagem de dados mais difundida e utilizada. Criada em 1976 por Peter Chen. O Modelo E-R é representado graficamente pelo Diagrama Entidade Relacionamento (DER). 2 1 Marcio de Carvalho Victorino www.dominandoti.eng.br Conceitos Centrais Entidade: conjunto de objetos da realidade modelada, sobre os quais deseja-se manter informações na base de dados. Relacionamento: conjunto de associações entre entidades, sobre as quais deseja-se manter informações na base de dados. Atributo: dados ou informação que é associado a cada ocorrência de uma entidade ou de um relacionamento. Generalização/Especialização: permite atribuir propriedades particulares a um subconjunto das ocorrências (especializadas) de uma entidade genérica. Entidade Associativa. 3 Marcio de Carvalho Victorino www.dominandoti.eng.br Entidade Representada através de um retângulo. Retângulo contém o nome da entidade. Para referir um objeto particular fala-se em instância ou ocorrência da entidade. Pessoa Departamento 4 2 Marcio de Carvalho Victorino www.dominandoti.eng.br Relacionamento Este modelo nos diz que o BD mantém informações sobre: um conjunto de empregados; um conjunto de departamentos; e um conjunto de associações que ligam um departamento a um empregado. Pessoa Departamento Lotação 5 Marcio de Carvalho Victorino www.dominandoti.eng.br Relacionamento Pessoa ENTIDADE EMPREGADO RELACIONAMENTO LOTAÇÃO ENTIDADE DEPARTAMENTO Departamento Lotação e3 e7 e1 e2 e1,d1 d1 e4 e6 e2,d1 d2 e4,d2 e8 e5 e5,d3 d3 6 3 Marcio de Carvalho Victorino www.dominandoti.eng.br Auto-relacionamento Normalmente um relacionamento associa entidades diferentes. Há um caso especial no qual há um relacionamento entre a mesma entidade. Nesta situação surge o conceito de PAPEL que identificará o relacionamento. EMPREGADO marido esposa CASAMENTO 7 Marcio de Carvalho Victorino www.dominandoti.eng.br Papel em relacionamentos Função que uma ocorrência de uma entidade cumpre em uma ocorrência de um relacionamento. Relacionamento de casamento: Uma ocorrência de pessoa exerce o papel de marido. Uma ocorrência de pessoa exerce o papel de esposa. Relacionamento entre entidades diferentes não é necessário indicar os papéis das entidades. 8 4 Marcio de Carvalho Victorino www.dominandoti.eng.br Cardinalidade de Relacionamentos CARDINALIDADE MÁXIMA A cardinalidade máxima de uma entidade em relacionamento é o número máximo de ocorrências de entidade associadas à uma ocorrência da entidade em questão através do relacionamento. EMPREGADO DEPARTAMENTO LOTAÇÃO n 1 9 Marcio de Carvalho Victorino www.dominandoti.eng.br Cardinalidade de Relacionamentos Para fins práticos, apenas duas cardinalidades máximas são de nosso interesse, as: - de valor 1; e a - de valor n. EMPREGADO LOTAÇÃO n DEPARTAMENTO 1 10 5 Marcio de Carvalho Victorino www.dominandoti.eng.br Relacionamentos Binários A cardinalidade máxima é usada para classificar os relacionamentos binários, aqueles nos quais os relacionamentos se dão entre duas entidades. TIPOS DE RELACIONAMENTOS BINÁRIOS - 1:1 ( um-para-um ); - 1:n ( um-para-muitos ); e - n:n ( muitos-para-muitos). 11 Marcio de Carvalho Victorino www.dominandoti.eng.br Relacionamentos Binários 1:1 EMPREGADO ALOCAÇÃO 1 BANCADA 1 EMPREGADO marido esposa 1 1 CASAMENTO 12 6 Marcio de Carvalho Victorino www.dominandoti.eng.br Relacionamentos Binários 1:n EMPREGADO DEPENDENTE TEM 1 n EMPREGADO chefia chefiado n 1 CHEFE 13 Marcio de Carvalho Victorino www.dominandoti.eng.br Relacionamentos Binários n:n PACIENTE TEM MÉDICO n n PRODUTO composto componente n n COMPOSIÇÃO 14 7 Marcio de Carvalho Victorino www.dominandoti.eng.br Relacionamentos Ternários A abordagem ER permite que sejam definidos relacionamentos de graus maiores que dois, muito embora não sejam comuns. ANÁLISE A cardinalidade refere-se relacionadas com a terceira. a pares de entidades e 15 Marcio de Carvalho Victorino www.dominandoti.eng.br Relacionamentos Ternários CIDADE DISTRIBUIDOR n 1 TEM n PRODUTO 16 8 Marcio de Carvalho Victorino www.dominandoti.eng.br Relacionamentos Ternários CIDADE DISTRIBUIDOR n 1 TEM n PRODUTO 17 Marcio de Carvalho Victorino www.dominandoti.eng.br Relacionamentos Ternários TABELA PARA ANÁLISE DE RELACIONAMENTOS TERNÁRIOS DISTRIBUIDOR PRODUTO CIDADE TRAMONTINA FACA RIO DE JANEIRO TRAMONTINA COLHER RIO DE JANEIRO EBERLE FACA BRASÍLIA EBERLE COLHER BRASÍLIA INOX FACA SÃO PAULO INOX COLHER SÃO PAULO TRAMONTINA FACA BELO HORIZONTE TRAMONTINA COLHER BELO HORIZONTE EBERLE FACA PORTO ALEGRE EBERLE COLHER PORTO ALEGRE 18 9 Marcio de Carvalho Victorino www.dominandoti.eng.br Relacionamentos Ternários CIDADE DISTRIBUIDOR n 1 TEM n PRODUTO 19 Marcio de Carvalho Victorino www.dominandoti.eng.br Relacionamentos Ternários CIDADE DISTRIBUIDOR n 1 TEM n PRODUTO 20 10 Marcio de Carvalho Victorino www.dominandoti.eng.br Cardinalidade de Relacionamentos CARDINALIDADE MÍNIMA A cardinalidade mínima de uma entidade em relacionamento é o número mínimo de ocorrências de entidade associadas à uma ocorrência da entidade em questão através do relacionamento. EMPREGADO BANCADA ALOCAÇÃO (0,1) (1,1) 21 Marcio de Carvalho Victorino www.dominandoti.eng.br Cardinalidade de Relacionamentos Para fins práticos, apenas duas cardinalidades mínimas são de nosso interesse, a de valor 0 e a de valor 1. A cardinalidade mínima 1 recebe a denominação de associação obrigatória, uma vez que indica que o relacionamento DEVE obrigatoriamente associar uma ocorrência de entidade à cada ocorrência da outra entidade em questão. A cardinalidade mínima 0 recebe a denominação de associação opcional, uma vez que indica que o relaciona-mento PODE ou não associar uma ocorrência de entidade à cada ocorrência da outra entidade em questão. EMPREGADO BANCADA ALOCAÇÃO (0,1) (1,1) 22 11 Marcio de Carvalho Victorino www.dominandoti.eng.br Cardinalidade de Relacionamentos DIAGRAMA DE OCORRÊNCIAS ENTIDADE EMPREGADO e1 e3 e2 RELACIONAMENTO ALOCAÇÃO e1,b1 ENTIDADE BANCADA b1 e4 e2,b2 b2 e3,b6 b3 b4 e4,b4 b5 b6 - os empregados e1, e2, e3 e e4 estão ligados às bancadas b1, b2, b4 e b6, respectivamente; - cada empregado está obrigatoriamente ligado à uma bancada; - uma bancada pode existir sem que esteja ligado a ela nenhum empregado.23 Marcio de Carvalho Victorino www.dominandoti.eng.br VERBO CARDINALIDADE MÍNIMA pode 0 deve 1 RELACIONAMENTO MÁXIMA GRAU TIPO 1 um e inclusive nenhum n muitos e inclusive nenhum 1 um e somente um n muitos ou um opcional obrigatório Leitura de Relacionamentos Cada FUNCIONÁRIO ( 1,1 ) RESPONSÁVEL ( 0,n ) DEPENDENTE Entidade Sujeito funcionário Verbo de Opcionalidade pode Relacionamento ser responsável por Grau de Relacionamento Entidade Objeto muitos e inclusive nenhum dependente 24 12 Marcio de Carvalho Victorino www.dominandoti.eng.br Exemplo 1. Deseja-se manter no BD informações sobre as entidades: - Alunos; - Cursos; - Disciplinas; e - Departamentos. 3. As cardinalidades descrevem que: - cada Disciplina deve possuir um e somente um Departamento responsável, e cada Departamento pode ser responsável por muitas e inclusive nenhuma Disciplina; - cada Disciplina pode possuir muitas e inclusive nenhuma Disciplina prérequisito e cada Disciplina pode ser pré-requisito de muitas e inclusive de nenhuma Disciplina; - cada Disciplina pode aparecer em muitos e inclusive nenhum Curso, e cada Curso pode possuir muitas e inclusive nenhuma Disciplina em seu currículo; - cada Aluno deve estar inscrito em um e somente um Curso e cada 25 Curso pode ter nele inscrito muitos e inclusive nenhum Aluno. Marcio de Carvalho Victorino www.dominandoti.eng.br Exemplo PRÉ-REQUISITO liberada liberadora (0,n) DEPARTMENTO RESPONSÁVEL (1,1) (0,n) DISCIPLINA (0,n) (0,n) DISC/CURSO (0,n) (0,n) ALUNO (1,1) INSCRIÇÃO CURSO 26 13 Marcio de Carvalho Victorino www.dominandoti.eng.br Atributo Dado que é associado a cada ocorrência de uma entidade ou de um relacionamento. REPRESENTAÇÃO EMPREGADO ATUAÇÃO função tipo data código nome ENTIDADE RELACIONAMENTO 27 Marcio de Carvalho Victorino www.dominandoti.eng.br Cardinalidade de Atributos Um atributo pode possuir uma cardinalidade, de maneira análoga à uma entidade num relacionamento. Esta cardinalidade define quantos valores deste atributo podem estar associados com uma ocorrência da entidade ou relacionamento ao qual ele pertence. CARDINALIDADES DE INTERESSE - Cardinalidade (1,1): obrigatória (não precisa representar a cardinalidade no diagrama); - Cardinalidade (0,1): opcional; - Cardinalidade (0,n): opcional e multivalorada; EMPREGADO telefone(0,n) código nome 28 14 Marcio de Carvalho Victorino www.dominandoti.eng.br Identificando Entidades Um identificador é um 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. IDENTIFICADOR SIMPLES Um único atributo é suficiente para distinguir uma ocorrência da entidade das demais ocorrências da mesma entidade. EMPREGADO telefone código nome Somente o atributo código identifica exclusivamente um empregado. 29 Marcio de Carvalho Victorino www.dominandoti.eng.br Identificando Entidades IDENTIFICADOR COMPOSTO Dois ou mais atributos podem ser necessários para distinguir uma ocorrência da entidade das demais ocorrências da mesma entidade, neste caso o identificador é dito composto. PRATELEIRA capacidade número da prateleira número do corredor Os atributos número do corredor e número da prateleira identificam exclusivamente uma dada prateleira. 30 15 Marcio de Carvalho Victorino www.dominandoti.eng.br Relacionamento Identificador Há casos em que o identificador de uma entidade é composto não somente por seu ou seus atributos, mas também através de relacionamentos em que ela participa. código nome seqüência EMPREGADO POSSUI (1,1) nome DEPENDENTE (0,n) A entidade Dependentes é identificada por seu atributo seqüência e pelo relacionamento com a entidade Emprega-do. À semelhança do atributo identificador - que tem a sua bolinha cheia - o relacionamento identificador recebe uma linha espessa no diagrama. 31 Marcio de Carvalho Victorino www.dominandoti.eng.br Relacionamento Identificador GRUPO código GR/EMP EMPRESA número da empresa EMP/FIL FILIAL número da filial 32 16 Marcio de Carvalho Victorino www.dominandoti.eng.br Propriedades dos Identificadores O identificador deverá ser MÍNIMO, isso significa que se o identificador deve ser composto de tal forma que retirando-se um de seus atributos ou relacionamentos que o compõem, ele deixa de ser identificador. EMPREGADO telefone nome código Um identificador composto poderia ser, por exemplo, os atributos código e nome. Mas não forma um identificador mínimo pois somente o código já é suficiente para tal. 33 Marcio de Carvalho Victorino www.dominandoti.eng.br Propriedades dos Identificadores Cada entidade deverá ter um ÚNICO identificador. EMPREGADO CPF telefone nome código A entidade Empregado tem dois atributos que poderiam ser o identificador da entidade: código ou CPF. Caberá então ao modelador decidir qual deles será utilizado como identificador. 34 17 Marcio de Carvalho Victorino www.dominandoti.eng.br Identificando Relacionamentos Um relacionamento é identificado pelas entidades dele participantes, bem como pelos seus próprios atributos identificadores porventura existentes. MÉDICO PACIENTE CONSULTA n n data/hora O atributo identificador de relacionamento data/hora distingue uma Consulta entre um Médico e seu Paciente entre as demais consultas deste Médico com os seus demais Pacientes. 35 Marcio de Carvalho Victorino www.dominandoti.eng.br Generalização/Especialização Através deste conceito é possível atribuir propriedades particulares a um subconjunto das ocorrências especializadas de uma entidade genérica. nome código FILIAL CLIENTE POSSUI (1,1) (0,n) CPF CGC tipo PESSOA JURÍDICA PESSOA FÍSICA sexo A entidade especializada herda as propriedades da entidade 36 genérica. 18 Marcio de Carvalho Victorino www.dominandoti.eng.br Generalização/Especialização 37 Marcio de Carvalho Victorino www.dominandoti.eng.br Generalização/Especialização 38 19 Marcio de Carvalho Victorino www.dominandoti.eng.br Generalização/Especialização 39 Marcio de Carvalho Victorino www.dominandoti.eng.br Disjunção TOTAL quando para cada ocorrência da entidade genérica existe sempre uma ocorrência numa das entidades especializadas. código FILIAL CLIENTE POSSUI (1,1) nome (0,n) t CPF CGC tipo PESSOA JURÍDICA PESSOA FÍSICA sexo O diagrama descreve que os clientes desta filial ou são pessoas jurídicas ou 40 pessoas físicas. 20 Marcio de Carvalho Victorino www.dominandoti.eng.br Disjunção PARCIAL quando nem toda ocorrência da entidade genérica possui uma ocorrência numa das entidades especializadas. código FILIAL nome tipo CLIENTE POSSUI (1,1) (0,n) p CPF CGC tipo PESSOA JURÍDICA PESSOA FÍSICA sexo O diagrama descreve que os clientes desta filial podem ser pessoas 41 jurídicas, pessoas físicas ou outras. Marcio de Carvalho Victorino www.dominandoti.eng.br Generalização/Especialização - Admite-se até que uma mesma entidade seja a especialização de diversas entidades genéricas ( herança múltipla). VEÍCULO VEÍCULO TERRESTRE AUTOMÓVEL VEÍCULO AQUÁTICO VEÍCULO ANFÍBIO BARCO 42 21 Marcio de Carvalho Victorino www.dominandoti.eng.br Sobreposição - A generalização/especialização exclusiva descreve uma ocorrência da entidade genérica no máximo uma vez na generalização/especialização. - A generalização/especialização não exclusiva descreve mais de uma ocorrência da entidade genérica na generalização/especialização. Quando ela ocorrer deverá ser tratada como relacionamentos entre as entidades envolvidas. 43 Marcio de Carvalho Victorino www.dominandoti.eng.br Entidade Associativa Por definição um relacionamento é uma associação entre entidades. Na modelagem ER não é prevista a possibilidade de associar uma entidade a um relacionamento, ou de associar dois relacionamentos entre si. Em certas oportunidades, durante a modelagem surgem situações nas quais é desejável permitir uma associação entre uma entidade e um relacionamento. MÉDICO PACIENTE CONSULTA n n Deseja-se modelar a prescrição de medicamentos receitados aos pacientes, com a criação da entidade Medicamentos. 44 22 Marcio de Carvalho Victorino www.dominandoti.eng.br Entidade Associativa Modelar a prescrição de medicamentos receitados aos pacientes, com a criação da entidade Medicamentos. 1ª SOLUÇÃO Relacionar Medicamento a Médico. Neste caso só se tem a informação de que Médico prescreveu qual Medicamento,não se tem a informação de qual Paciente os teve prescritos. 2ª SOLUÇÃO Relacionar Medicamento a Paciente. Neste caso só se tem a informação de qual Paciente teve prescrito tal Medicamento, não se tem a informação de qual Médico os prescreveu. 3ª SOLUÇÃO Sendo possível relacionar a entidade Medicamento com o relacionamento entre Médico e Paciente o problema estaria resolvido. Mas estaríamos relacionando uma entidade a um relacionamento, algo 45 não previsto no MER. Marcio de Carvalho Victorino www.dominandoti.eng.br Entidade Associativa A solução é então transformar o relacionamento entre Médico e Paciente numa Entidade Associativa e relacioná-la com a entidade Medicamento. MÉDICO n CONSULTA PACIENTE n n PRESCRIÇÃO n MEDICAMENTO 46 23 Marcio de Carvalho Victorino www.dominandoti.eng.br Entidade Associativa Outra solução seria transformar o relacionamento Consulta em entidade e relacioná-la às entidades Médico, Paciente e Medicamento. MÉDICO PACIENTE (1,1) (1,1) PRESCRIÇÃO PRESCRIÇÃO n n CONSULTA n PRESCRIÇÃO n MEDICAMENTO 47 Marcio de Carvalho Victorino www.dominandoti.eng.br Símbolos - DER 48 24 FIM 25