Banco de Dados Diagramas de Entidade Relacionamento (DER) - Complementos Ref. Prof. Renato de Oliveira Violin - UFSCar
Tipo de Entidade Fraca ou Dependente É a entidade cuja identificação não pode ser feita por seus próprios atributos. Para sua identificação completa é necessário o uso de atributos de outra entidade. Exemplo A entidade DEPENDENTE é uma entidade fraca pois para a sua identificação há que se utilizar atributos da entidade EMPREGADO (A Matrícula do empregado, por exemplo). Ou seja, quando falamos, João Viera (Dependente) precisamos dizer de quem ele é dependente (Empregado) para que se possa identifica-lo completamente. Assim: João Vieira é dependente de Francisco da Rocha (Empregado) Observe a notação da entidade e da linha do relacionamento
Tipo de Entidade Fraca ou Dependente É a entidade cuja identificação não pode ser feita por seus próprios atributos. Para sua identificação completa é necessário o uso de atributos de outra entidade. Como pode existir uma entidade Exemplo A entidade DEPENDENTE fraca, é uma tem-se entidade também fraca pois para a sua identificação há que se utilizar atributos relacionamento da entidade EMPREGADO com tipo de (A Matrícula do empregado, por exemplo). Ou seja, entidade quando fraca. falamos, Nesses João casos, os Viera (Dependente) símbolos precisamos são os dizer mesmos, de quem apenas ele é dependente (Empregado) possuem duplas linhas nas suas respectivas representações. para que se possa identifica-lo completamente. Assim: João Vieira é dependente de Francisco da Rocha (Empregado) Observe a notação da entidade e da linha do relacionamento
Entidade Associativa É a entidade que não se identifica por si mesma e sua existência depende da existência de duas ou mais outras entidades. Compõem seu identificador, os identificadores das entidades que se associaram para lhe dar origem. Exemplo No diagrama abaixo a entidade, APROVEITAMENTO é uma entidade associativa porque a sua identificação só é possível a partir da Matrícula, identificador da entidade ALUNO e de Código, identificador da entidade DISCIPLINA. Ou seja, quando nos referimos ao aproveitamento 7,3, por exemplo, ele só tem sentido quando associado a uma aluno e a uma disciplina. Assim: João Ribeiro Ferraz (Aluno) obteve a nota 7,3 (Aproveitamento) em Banco de Dados (Disciplina).
Atributos São partes específicas de uma determinada entidade. São as informações que caracterizam a entidade. Exemplos de Atributos Poderiam ser atributos de uma entidade Aluno: nome, número da matrícula, cpf, data de ingresso no curso, endereço, telefone e data de nascimento. Uma entidade Fornecedor poderia Ter como atributos: Cnpj, nome, Razão Social, Endereço, e Capital Social. Cada entidade tem valores específicos para seus atributos que pode diferir ou ser iguais aos valores dos atributos de outras entidades de um mesmo tipo de entidade. Valor de um Atributo Chamamos valor de um atributo ao conteúdo que um atributo pode ter. Marcos Ferreira, Rosa Cristina e Deusdete da Cunha poderiam ser valores da entidade Aluno. Casa do Barata e Lojas X seriam valores do atributo nome da entidade Fornecedor.
Atributos (cont.) Domínio de um Atributo É o conjunto de valores que um atributo pode assumir. Exemplos: Masculino e Feminino são o domínio do atributo Sexo da entidade Aluno. O atributo Nota da entidade aluno tem o domínio: {números reais de 0 a 10). Tipos de Atributos de uma Entidade Único Cada entidade tem um valor diferente para este atributo. A matrícula de um aluno em um curso é um atributo único porque não existe outro aluno matriculado com o mesmo número de matrícula. Não-Único Quando o valor pode se repetir em várias entidades. Por exemplo, o aproveitamento de um aluno. Mais de um aluno pode ter a mesma nota.
Atributos (cont.) Derivado Quando o seu conteúdo depende do conteúdos de outros atributos. Por exemplo, o total de uma nota fiscal é formado pela soma dos totais de cada item componente da nota fiscal (apesar que não se deve armazenar o total de uma nota no banco de dados) Não derivado Quando ele não pode ser obtido a partir de outros atributos. Por exemplo, nome de um aluno. Identificador É o atributo ou atributos que identificam uma entidade de um tipo de entidade de maneira única. Por exemplo a matrícula do estudante. Ou a matrícula do aluno e o código da disciplina no tipo de entidade APROVEITAMENTO. Não Identificador Quando o identificador não identifica por si só uma entidade dentro de um tipo de entidades. Por exemplo, o nome do aluno não identifica o aluno na entidade ALUNO, pois pode ter mais de um aluno com o mesmo nome, neste caso deve-se referenciar mais de um atributo para auxiliar na respectiva identificação.
Atributos (cont.) Derivado Quando o seu conteúdo depende do conteúdos de outros atributos. Por exemplo, o total de uma nota fiscal é formado pela soma dos totais de cada item componente da nota fiscal (apesar que não se deve armazenar o total de uma nota no banco de dados) Não derivado Quando ele não pode ser obtido a partir de outros atributos. Por exemplo, nome de um aluno. Identificador É o atributo ou atributos que identificam uma entidade de um tipo de entidade de maneira única. Por exemplo a matrícula do estudante. Ou a matrícula do aluno e o código da disciplina no tipo de entidade APROVEITAMENTO. Não Identificador Quando o identificador não identifica por si só uma entidade dentro de um tipo de entidades. Por exemplo, o nome do aluno não identifica o aluno na entidade ALUNO, pois pode ter mais de um aluno com o mesmo nome, neste caso deve-se referenciar mais de um atributo para auxiliar na respectiva identificação.
Auto Relacionamento Ocorre quando uma entidade se relaciona consigo mesma.
Complementos Uma entidade no modelo conceitual corresponde a uma tabela no banco de dados. Uma tabela é também denominada de relação e possui linhas e atributos (ou colunas). Uma linha em uma tabela é também denominada de tupla ou registro. Assim, uma consulta específica em uma tabela poderá apresentar n- tuplas ou n registros. Uma consulta poderá referenciar um, alguns ou todos os atributos (ou colunas) de uma tabela. Podendo, no entanto, apresentar somente colunas resultantes de cálculos. O termo chave candidata é apenas conceitual, mas podemos ter atributos que possuem a característica de chave candidata, pois podem ser chave primária por possuírem, por natureza, a identificação única. Por exemplo: Os atributos matricula, cpf e titulo de eleitor podem ser chaves candidatas em uma entidade pessoa. Deve-se analisar qual delas representa melhor a chave primária.
Complementos funcionario projeto funcionario projeto É alocado alocação função função Representação segundo Peter Chen Representação segundo James Martin
Complementos- Relacionamentos Condicionais Até o momento foi apresentado o grau de relacionamento entre duas entidades. Mas, é importante conhecer dois tipos de grau: mínimo e máximo. O grau máximo já foi visto como 1:1, 1:N e N:N. O grau mínimo permite estabelecer o menor valor possível de participação dos elementos do conjunto A e B no relacionamento. Assim, um relacionamento, por exemplo, de grau 1:N, tal como o de ESCOLA ATENDE ALUNOS, poderá ser qualificado como 1,1:1,N, como indicado: escola 1,1 1,N atende Grau mínimo Grau máximo aluno Uma ESCOLA deve atender a pelo menos 1 ALUNO e até N ALUNOS Um ALUNO obrigatoriamente é atendido por 1 ESCOLA
Complementos- Relacionamentos Condicionais escola 1,1 30,200 atende Grau mínimo Grau máximo aluno Essa representação indica que a ESCOLA deve atender a, no mínimo, 30 ALUNOS e, no máximo, 200 ALUNOS escola 1,1 1,n=200 atende Grau mínimo aluno Essa representação indica que a ESCOLA deve atender a, no mínimo, 1 ALUNO e, no máximo, N ALUNOS, com N igual a 200
Complementos- Relacionamentos Independentes Relacionamento independente pode ser estabelecido entre duas entidades ou com a mesma entidade, mesmo que possuam outro relacionamento. Um exemplo disso é a situação dos relacionamentos entre CLIENTE e FORNECEDOR: a) um CLIENTE é visitado por vários FORNECEDORES ; b) um CLIENTE faz cotação de preços com vários FORNECEDORES. São dois relacionamentos distintos entre as mesmas entidades e são independentes. Cliente 0,N 0,N é visitado fornecedor 0,N 0,N faz cotação
Complementos- Relacionamentos Contingentes Há situações em que há associações que processam com uma mesma finalidade, que pode ou não possuir o mesmo nome, mas envolvem elementos diferentes. É o caso do exemplo a seguir: Cliente 0,N 1,N segue Norma ISO9000 0,N 1,N Critério de segue segurança Processos executados devem seguir normas ISO 9000 e também CRITÉRIOS DE SEGURANÇA. Processos e normas ISO 9000 irão ocorrer concorrentemente, mas por serem elementos diferentes não podem ser um só relacionamento.
Complementos- Relacionamentos Contingentes Há situações em que há relacionamentos com o mesmo nome e não são contingentes. É o caso de CLIENTE compra PRODUTOS e CLIENTE compra AÇÕES Cliente 0,N 1,N compra produtos 0,N 1,N compra ações Por outro lado, podemos ter PROJETO aloca ENGENHEIRO ao ser iniciado e PROJETO atende a uma REGIÃO da cidade. Ambos ocorrem ao mesmo tempo. Por isso são contingentes. projeto 0,N 1,N é alocado engenheiro 0,N 1,N atende região
Complementos- Relacionamentos Mutuamente Exclusivos Relacionamentos mutuamente exclusivos podem ocorrer entre objetos de um modelo em função de características próprias do ambiente observado. Neste caso, quando uma associação de um elemento for estabelecida através de um relacionamento, não poderá ser estabelecida pelos demais. Essa exclusividade se processa a nível de elemento individualizado dentro do conjunto de elementos. a1 a2 a3 b1 b2 b3 c1 c2 c3 Se um elemento a1 do conjunto A estabelece um relacionamento com um elemento b1 do conjunto B, não poderá estabelecer relacionamento com o elemento c2 do conjunto C e vice-versa. Sendo que os relacionamentos podem ou não possuir a mesma identificação. produto 0,N é isento Decreto lei 0,N 1,N Paga imposto instituição
Complementos- Generalização e Especialização Considere um ambiente hospitalar com médicos, pacientes, quartos e salas de cirurgia. Consideremos que temos médicos efetivos e médicos residentes, sendo que cada um deles, apesar de possuírem diversos atributos em comum, possuem outros distintos para cada um. Observe o quadro: Atributo Médico Residente Médico Efetivo Especialidade X X Nome do médico X X Local de atuação Tempo de permanência Data de efetivação Data inicio da residência Nome do orientador Data de avaliação prevista Tempo de experiência na função X X X X X X X X Como cada atributo seria apropriado a um e outro tipo de médico? Todos os atributos poderiam ser utilizados a todos os tipos de médicos? Como resolver esse tipo de situação? Do ponto de vista da modelagem, utiliza-se a estrutura Generalização- Especialização (Gen- Espec).
Complementos- Generalização e Especialização A generalização-especialização estabelece que: Dado um conjunto de elementos pertencentes a subconjuntos de um conjunto maior, cada um deles deve ser capaz de ser visto como um elemento tanto pertencente aos subconjuntos distintos como ao outro conjunto completo médico Essa representação não denota três entidades. Mas, podemos considerar o triângulo como sendo um prisma que reflete de um médico ou um residente ou um médico efetivo. Assim, médico é a generalização de médico residente e médico efetivo. E esses dois últimos são especializações de médico. Assim, essa representação destaca dois grupos de médicos: Médico Residente e Médico Efetivo. Generalização Especialização Médico residente Médico efetivo Veículos automotor Animal Carro, caminhão, trator Animal doméstico, animal selvagem Outros exemplos Item de estoque Hardware Item perecível, item não perecível HD interno, HD externo, Monitor
Complementos- Especializações mutuamente exclusivas Geralmente a estrutura Gen-Espec estabelece subconjuntos mutuamente exclusivos (um médico residente não pertence ao conjunto dos médicos efetivos). No entanto, se considerarmos animais domésticos e animais selvagens como subgrupos de animais e, dependendo da situação, um animal selvagem, caso seja estimação, poderá pertencer aos dois grupos. Isso implica a definir dois tipos de especialização: Especialização mutuamente exclusiva Especialização não mutuamente exclusiva médico C Representação para Especialização mutuamente exclusiva Médico residente Médico efetivo C de Categorias
Complementos- Especializações não mutuamente exclusivas Considere um ambiente empresarial que apresenta os elementos: funcionários, automóveis, produtos, agendamento de entregas e pedidos. Dentre os funcionários há os grupos de funcionários administrativos e funcionários entregadores. Os funcionários entregadores são alocados para efetuar entregas dos pedidos usando certo automóvel. Os funcionários administrativos são alocados para gerenciar a venda de produtos, gerando pedidos. No entanto, ocorre que em certas épocas o volume de vendas aumenta (natal, promoções e outras). Nestes casos, os funcionários administrativos são designados para entregas e os entregadores poderão auxiliar nas vendas. Há portanto, uma mudança de papéis. Neste caso, temos especialização não mutuamente exclusiva. produto funcionário automóvel Papéis P atende administrativo entregador usa entrega gera pedido
Complementos- Agregação Considere o seguinte seguinte esquema: funcionário projeto M alocado M função N Esse esquema apesar de correto, fica confuso: entre funcionário e função há um relacionamento MxM, ou seria entre projeto e função NxM? Há uma mistura de informações nesses relacionamentos. Nesse tipo de situação, o correto é utilizar agregação. Agregação é uma estrutura que denota a existência de uma função de elementos através de um relacionamento, e que permite que essa junção seja percebida como um novo elemento a ser, por sua vez, relacionado a outro elemento.
Complementos- Agregação Usando agregação, temos: funcionário M alocado M exerce 1 função projeto N Com o novo esquema um funcionário pode exercer várias funções em vários projetos, mas somente uma em determinado projeto. Assim, cada par da associação FUNCIONÁRIO X PROJETO pode estar ligado a uma só FUNÇÃO, denotando que um FUNCIONÁRIO, apesar de poder participar de vários PROJETOS, quando estiver alocado a um deles, estará somente em uma FUNÇÃO.
FIM