55
ABORDAGEM ENTIDADE-RELACIONAMENTO M. Sc. Edgar Gurgel

Abordagem Entidade Relacionamento

Embed Size (px)

DESCRIPTION

banco de dados

Citation preview

  • ABORDAGEM

    ENTIDADE-RELACIONAMENTO

    M. Sc. Edgar Gurgel

  • 2

    Agenda

    Introduo Entidade Relacionamento Atributo Generalizao / Especializao Entidade Associativa Esquemas Grficos e Textuais de modelos ER

  • 3

    Introduo

    w A primeira etapa do projeto de um banco de dados a construo de um modelo conceitual, a chamada modelagem conceitual. w O objetivo da modelagem conceitual obter uma descrio abstrata, independente de implementao em computador, dos dados que sero armazenados no BD. w A tcnica de modelagem de dados mais difundida e utilizada a abordagem entidade-relacionamento (ER). w Nesta tcnica, o modelo de dados representado atravs de um modelo entidade-relacionamento (modelo ER).

  • 4

    Introduo

    w Usualmente, um modelo ER representado graficamente, atravs de um diagrama entidade-relacionamento (DER). w A abordagem ER foi criada em 1976 por Peter Chen e hoje, pode ser considerada como um padro de fato para modelagem conceitual. w Mesmo as tcnicas de modelagem OO, que tm surgido recentemente, baseiam-se nos conceitos da abordagem ER.

  • 5

    Entidade

    w Uma entidade representa um conjunto de objetos da realidade modelada. w Como o objetivo de um modelo ER modelar de forma abstrata um BD, interessam-nos somente os objetos sobre os quais deseja-se manter informaes. w Uma entidade pode representar tanto objetos concretos da realidade (pessoa, automvel, ...), quanto objetos abstratos (departamento, compra, ...).

  • 6

    Entidade

    w Caso seja necessrio referir um objeto particular, fala-se em ocorrncia ou instncia de entidade. w Em um DER, uma entidade representada atravs de um retngulo que contm o nome da entidade.

    ENTIDADE =

    Conjunto de objetos da realidade modelada sobre os quais deseja-se manter informaes no banco de dados.

    PESSOA DEPARTAMENTO

  • 7

    Relacionamento

    w Alm de especificar os objetos sobre os quais deseja-se manter informaes, o modelo ER deve permitir a especificao das propriedades dos objetos que sero armazenados no BD. w Uma das propriedades sobre as quais pode ser desejvel manter informaes a associao entre objetos.

    RELACIONAMENTO =

    Conjunto de associaes entre entidades.

  • 8

    Relacionamento

    w Em um DER, um relacionamento representado atravs de um losango, ligado por linhas s entidades que participam do relacionamento.

    w Este modelo expressa que o BD contm: n Conjunto de objetos classificados como pessoas; n Conjunto de objetos classificados como departamentos; e n Conjunto de associaes, cada uma ligando um departamento

    a uma pessoa.

    PESSOA DEPARTAMENTO LOTAO

  • 9

    Relacionamento

    w Caso seja necessrio referir uma associao particular dentro de um conjunto, fala-se em ocorrncia ou instncia de relacionamento, formado por um par especfico de ocorrncias de entidades. w Isto pode ser facilmente visualizado atravs de um Diagrama de Ocorrncias.

    Entidade PESSOA

    Relacionamento LOTAO

    Entidade DEPARTAMENTO

    p1 p2

    p3 p4

    p5

    p6 p7

    d1

    d2

    d3

    p1, d1

    p3, d1

    p6, d2

    p5, d3

  • 10

    Relacionamento

    w O modelo apresentado permite que: n Uma ocorrncia de entidade no esteja associada a nenhuma

    ocorrncia de entidade atravs do relacionamento. Exemplo: a pessoa p2.

    n Uma ocorrncia de entidade esteja associada a exatamente uma ocorrncia de entidade atravs do relacionamento. Exemplo: a pessoa p1.

    n Uma ocorrncia de entidade esteja associada a mais de uma ocorrncia de entidade atravs do relacionamento. Exemplo: o departamento d1.

  • 11

    Auto-Relacionamento

    w No necessariamente um relacionamento associa entidades diferentes. w Um DER pode conter um auto-relacionamento, isto , um relacionamento entre ocorrncias de uma mesma entidade. w Neste caso, necessrio um conceito adicional, o de papel da entidade no relacionamento. w O papel de uma entidade em um relacionamento define que funo uma instncia da entidade cumpre dentro de uma instncia do relacionamento.

  • 12

    Auto-Relacionamento

    PESSOA CASAMENTO Marido Esposa

    Relacionamento CASAMENTO

    p1, p3

    p6, p8

    Entidade PESSOA

    p1

    p2 p3 p4

    p8

    p6 p7

    p5 marido

    esposa

    marido

    esposa

    Diagrama de Ocorrncias

  • 13

    Cardinalidade

    w Para fins de projeto de banco de dados, uma propriedade importante de um relacionamento a de quantas ocorrncias de uma entidade podem estar associadas a uma determinada ocorrncia atravs do relacionamento. w Esta propriedade chamada de cardinalidade de uma entidade em um relacionamento.

  • 14

    Cardinalidade

    CARDINALIDADE (MNIMA, MXIMA) DE ENTIDADE DE RELACIONAMENTO

    = Nmero (mnimo, mximo) de ocorrncias de entidade associadas a uma ocorrncia da entidade em questo atravs do relacionamento

    w H duas cardinalidades a considerar: n cardinalidade mxima; n cardinalidade mnima.

  • 15

    Cardinalidade Mxima

    PESSOA DEPARTAMENTO LOTAO 1 n

    Expressa que a uma ocorrncia de PESSOA pode estar associada

    ao mximo uma (1) ocorrncia de DEPARTAMENTO.

    Expressa que a uma ocorrncia de DEPARTAMENTO podem estar associadas

    muitas (n) ocorrncias de PESSOA.

    w Apenas duas cardinalidades mximas so relevantes: n A cardinalidade mxima 1; n A cardinalidade mxima muitos, referida pela letra n.

  • 16

    Relacionamentos Binrios

    w A cardinalidade mxima pode ser utilizada para classificar relacionamentos binrios. w Um relacionamento binrio aquele cujas ocorrncias contm duas ocorrncias de entidade. w Classificao dos relacionamento binrios:

    n n:n (muitos-para-muitos); n 1:n (um-para-muitos); n 1:1 (um-para-um);

  • 17

    Relacionamentos Binrios

    MESA EMPREGADO ALOCAO 1 1

    CURSO ALUNO INSCRIO n 1

    PESSOA

    CASAMENTO

    1 1

    Esposa Marido

    EMPREGADO

    SUPERVISO

    n 1 Supervisionado Supervisor

  • 18

    Relacionamentos Binrios

    PROJETO ENGENHEIRO ALOCAO n n

    PRODUTO

    COMPOSIO

    n n Componente Composto

    PACIENTE MDICO CONSULTA n n

    FORNECEDOR PEA PRODUO n n

  • 19

    Relacionamentos Ternrios

    w A abordagem ER permite que sejam definidos relacionamentos de grau maior do que dois (ternrios, quaternrios, ...).

    DISTRIBUIDOR

    PRODUTO

    DISTRIBUIO

    n 1

    CIDADE

    n

  • 20

    Relacionamentos Ternrios

    w O 1 na linha que liga DISTRIBUIDOR ao relacionamento expressa que cada par de ocorrncias (cidade, produto) est associado no mximo a um distribuidor. w A um par (cidade, distribuidor) podem estar associados muitos produtos, isto , um distribuidor pode distribuir em uma cidade muitos produtos. w A um par (produto, distribuidor) podem estar associadas muitas cidades, isto , um distribuidor pode distribuir um produto em muitas cidades.

  • 21

    Cardinalidade Mnima

    w Alm da cardinalidade mxima, uma outra informao que pode ser representada por um modelo ER o nmero mnimo de ocorrncias de entidade que so associadas a uma ocorrncia de uma entidade atravs de um relacionamento (cardinalidade mnima). w Para fins de projeto de BD, consideram-se apenas duas cardinalidades mnimas:

    n A cardinalidade mnima 0; e n A cardinalidade mnima 1.

  • 22

    Cardinalidade Mnima

    w A cardinalidade mnima 1 tambm recebe a denominao de associao obrigatria, j que ela indica que o relacionamento deve obrigatoriamente associar uma ocorrncia de entidade a cada ocorrncia de entidade em questo. w Com base na mesma linha de raciocnio, a cardinalidade mnima 0 recebe a denominao de associao opcional.

    MESA EMPREGADO ALOCAO (0,1) (1,1)

  • 23

    Cardinalidade Mnima

    w A cardinalidade mnima usada para especificar que cada empregado deve ter a ele alocada obrigatoriamente uma mesa (cardinalidade mnima 1); w E que a mesa pode existir sem que a ela esteja alocado um empregado (cardinalidade mnima 0).

    Entidade EMPREGADO

    Relacionamento ALOCAO

    Entidade MESA

    e1

    e3

    e4

    e2

    m1

    m2

    m5

    e1, m1

    e3, m6

    e2, m2

    e4, m5 m6

    m3

    m4

    m7

  • 24

    Exemplo de um DER

    w Um diagrama ER apresentado na forma de um grafo. w A distribuio dos smbolos de DER no papel totalmente arbitrria e no tem maior significado do ponto de vista formal. w Entretanto, para tornar o diagrama mais legvel usual evitar-se cruzamentos de linhas. Para isso, a recomendao geral a de posicionar as entidades que participam de muitos relacionamentos no centro do diagrama.

  • 25

    Exemplo de um DER

    w Exerccio: deseja-se desenvolver uma parte do modelo de dados de um sistema de controle acadmico de uma universidade fictcia. O modelo descreve o seguinte:

    n Deseja-se manter informaes sobre alunos, cursos, disciplinas e departamentos;

    n Deseja-se manter informaes sobre a associao de alunos a cursos, de disciplinas a cursos, de disciplinas a departamentos, bem como de disciplinas a suas disciplinas pr-requisitos.

  • 26

    Exemplo de um DER

    (1,1) CURSO ALUNO INSCRIO

    DISC-CURSO DISCIPLINA

    RESPONSVEL

    DEPARTAMENTO

    PR-REQUIS

    (1,1)

    (0,n)

    (0,n)

    (0,n) (0,n)

    (0,n) (0,n)

    liberada liberadora

  • 27

    Exemplo de um DER

    w Cada disciplina possui exatamente um departamento responsvel e um departamento responsvel por muitas disciplinas, inclusive por nenhuma. w Uma disciplina pode possuir diversos pr-requisitos, inclusive nenhum. Uma disciplina pode ser pr-requisito de muitas outras disciplinas, inclusive de nenhuma. w Uma disciplina pode aparecer no currculo de muitos cursos, inclusive de nenhum e um curso pode possuir muitas disciplinas em seu currculo, inclusive nenhuma. w Um aluno est inscrito em exatamente um curso e um curso pode ter nele inscritos muitos alunos, inclusive nenhum.

  • 28

    Atributo

    w O modelo ER permite a especificao de propriedades de entidades. w Uma propriedade ter um atributo. w O conceito de atributo serve para associar informaes a ocorrncias de entidades ou de relacionamentos.

    ATRIBUTO =

    Dado que associado a cada ocorrncia de uma entidade ou de um relacionamento.

  • 29

    Atributo

    w A figura expressa que cada ocorrncia de PROJETO tem associado exatamente um nome, um cdigo e um tipo. w Dificilmente os atributos so representados graficamente, preferindo a representao textual. w Softwares comerciais encarregam-se do armazenamento da lista de atributos de cada entidade em um Dicionrio de Dados.

    PROJETO

    Nome Tipo

    Cdigo

  • 30

    Atributo w Um atributo pode possuir uma cardinalidade, de maneira anloga a uma entidade em um relacionamento. w A cardinalidade de um atributo define quantos valores deste atributo podem estar associados a uma ocorrncia da entidade/relacionamento a qual ele pertence.

    n Nome e Cdigo so atributos obrigatrios e monovalorados (1,1).

    n Telefone um atributo opcional e multivalorado (0,n).

    CLIENTE

    Nome Telefone (0,n)

    Cdigo

  • 31

    Atributo

    w Assim como as entidades, tambm relacionamentos podem possuir atributos.

    n A funo no pode ser considerada atributo de ENGENHEIRO, j que um engenheiro pode atuar em diversos projetos, exercendo diferentes funes.

    n Tambm no atributo de PROJETO, j que, em um projeto, podem atuar diversos engenheiros com funes diferentes.

    ENGENHEIRO

    Nome

    Cdigo

    PROJETO

    Ttulo

    Cdigo

    ATUAO

    Funo

    (0,n) (0,n)

  • 32

    Atributo

    w Algumas vendas so vista, outras prazo. w Vendas prazo so relacionadas a uma financeira, atravs do relacionamento FINANCIAMENTO. w Os atributos n de parcelas e taxa de juros so atributos do relacionamento.

    w Se estes atributos tivessem sido colocados na entidade VENDA, eles deveriam ser opcionais.

    FINANCEIRA VENDA FINANCIAMENTO

    n de parcelas

    (0,1) (0,n)

    taxa de juros

  • 33

    Identificando Entidades

    w Cada entidade deve possuir um identificador. w Um identificador um conjunto de um ou mais atributos (e possivelmente relacionamentos) cujos valores servem para distinguir uma ocorrncia de entidade das demais ocorrncias da mesma entidade.

    w O caso mais simples o da entidade que possui um nico atributo como identificador.

    PESSOA

    Nome

    Endereo Cdigo

  • 34

    Identificando Entidades

    w O exemplo anterior significa que cada pessoa possui um cdigo diferente, mas o mesmo nome (ou o mesmo endereo) pode ser associado a pessoas diferentes

    w Neste exemplo, o identificador da entidade composto por diversos atr ibutos. Os corredores so numerados sequencialmente a partir de um e as prateleiras so numeradas sequencialmente a partir de um, dentro de um corredor.

    PRATELEIRA

    Capacidade

    Nmero da Prateleira Nmero do Corredor

  • 35

    Identificando Entidades

    w Existem casos em que o identificador de uma entidade composto no somente por atributos da prpria entidade, mas tambm por relacionamentos dos quais a entidade participa (Relacionamento Identificador).

    w Este modelo expressa que um dependente identificado pelo empregado ao qual ele est relacionado e pelo nmero de seqncia.

    POSSUI (1,1) (0,n)

    EMPREGADO

    cdigo nome

    DEPENDENTE

    nmero seqncia

    nome

  • 36

    Identificando Entidades

    w Alguns autores dizem que a entidade DEPENDENTE uma entidade fraca. w O termo fraca deriva-se do fato de a entidade somente existir quando relacionada a outra entidade e de usar como parte de seu identificador, entidades relacionadas. w Autores de livros mais recentes preferem no utilizar o conceito, j que as entidades chamadas fracas por este critrio podem, dependendo da realidade modelada, ser centrais a um modelo.

  • 37

    Identificando Entidades

    (1,1)

    (0,n)

    GRUPO cdigo

    EMPRESA Nmero da Empresa

    FILIAL Nmero da Filial

    (1,1)

    (0,n)

    w Ao considerarmos que a maior p a r t e d a s e n t i d a d e s q u e eventualmente comporiam o restante do modelo estariam ligadas a EMPRESA ou FILIAL vemos que a palavra fraca no adequada para o conceito em questo.

  • 38

    Identificando Entidades

    IDENTIFICADOR DE ENTIDADE =

    Conjunto de atributos e relacionamentos cujos valores distinguem uma ocorrncia

    da entidade das demais.

    w O identificador de uma entidade, seja ele simples, composto por diversos atributos, ou compostos por identificadores externos, deve obedecer duas propriedades:

    n O identificador deve ser mnimo; n Cada entidade deve possuir um nico identificador.

  • 39

    Identificando Entidades

    w O identificador deve ser mnimo: n O identificador de uma entidade deve ser composto de tal

    forma que, retirando um dos atributos ou relacionamentos que o compe, ele deixa de ser identificador.

    w Cada entidade deve possuir um nico identificador: n Em alguns casos, diferentes conjuntos de atributos podem

    servir para distinguir as ocorrncias da entidade e cabe ao modelador decidir qual dos atributos ser usado como identificador da entidade. EMPREGADO

    nome endereo cdigo

    cpf

  • 40

    Identificando Relacionamentos

    w Em princpio, uma ocorrncia de relacionamento diferencia-se das demais ocorrncias do mesmo relacionamento pelas ocorrncias de entidades que dela participam.

    wEm outras palavras, para cada par (engenheiro, projeto) h no mximo um relacionamento de alocao.

    PROJETO ENGENHEIRO ALOCAO n n

  • 41

    Identificando Relacionamentos

    w Existem casos nos quais entre as mesmas ocorrncias de entidade podem existir diversas ocorrncias de relacionamento. w A diferenciao d-se atravs de atributos identificadores de relacionamento.

    PACIENTE MDICO CONSULTA n n

    data/hora

  • 42

    Generalizao / Especializao

    w Alm de relacionamentos e atributos, propriedades podem ser atribudas a entidades atravs do conceito de generalizao / especializao. w Atravs deste conceito possvel atribuir propriedades particulares a um subconjunto das ocorrncias (especializadas) de uma entidade genrica. w No DER, o smbolo para representar generalizao / especializao um tringulo issceles.

  • 43

    Generalizao / Especializao

    PESSOA FSICA

    sexo cpf

    FILIAL (1,1) (0,n) CLIENTE nome cdigo

    cgc

    PESSOA JURDICA

    tipo de organizao

  • 44

    Generalizao / Especializao

    w Associada ao conceito de generalizao / especializao est a idia de herana de propriedades. w Herdar propriedades significa que cada ocorrncia da entidade especializada possui, alm de suas prprias propriedades(atributos, relacionamentos e generalizaes/especializaes), tambm as propriedades da ocorrncia da entidade genrica correspondente. w A generalizao / especializao pode ser classificada em dois tipos: total e parcial, de acordo com a obrigatoriedade ou no de a cada ocorrncia da entidade genrica corresponder uma ocorrncia da entidade especializada.

  • 45

    Generalizao / Especializao

    w Em uma generalizao/especializao total, para cada ocorrncia da entidade genrica existe sempre uma ocorrncia em uma das entidades especializadas.

    PESSOA FSICA

    CLIENTE

    PESSOA JURDICA

    t

    A toda ocorrncia d a e n t i d a d e C L I E N T E corresponde uma ocorrncia em uma das especializaes.

    Indica que todo CLIENTE ou PESSOA FSICA o u P E S S O A JURDICA

  • 46

    Generalizao / Especializao

    w Em uma generalizao/especializao parcial, nem toda ocorrncia de entidade genrica possui uma ocorrncia correspondente em uma entidade especializada.

    MOTORISTA

    FUNCIONRIO

    SECRETRIA

    p Tipo de

    funcionrio

    Indica que nem todo FUNCIONRIO MOTORISTA ou SECRETRIA

    Usualmente, quando h especializao parcial, na entidade genrica, aparece um atributo que identifica o tipo de ocorrncia desta entidade.

  • 47

    Generalizao / Especializao w Uma entidade pode ser especializada em qualquer nmero de entidades, inclusive em uma nica.

    n Exemplo: se na figura anterior, apenas os motoristas possussem propriedades particulares, haveria apenas uma entidade especializada, a de motoristas.

    w No h limite no nmero de nveis hierrquicos da generalizao/especializao. w Uma entidade especializada pode, por sua vez, ser entidade genrica em outra generalizao/especializao. w admissvel a herana mltipla, isto , uma mesma entidade seja especializao de diversas entidades (VEICULO ANFIBIO)

  • 48

    Generalizao / Especializao

    VECULO TERRESTRE

    VECULO

    VECULO AQUTICO

    AUTOMVEL VECULO ANFBIO

    BARCO

  • 49

    Generalizao / Especializao

    w Cada entidade especializada herda o identificador de sua entidade genrica, portanto, no faz sentido definir identificador para entidades especializadas. w Somente pode haver uma entidade genrica em cada hierarquia de generalizao / especializao.

  • 50

    Entidade Associativa

    w Um relacionamento uma associao entre entidades. w Na modelagem ER no foi prevista a possibilidade de associar uma entidade com um relacionamento ou ento de associar dois relacionamentos entre si. w Na prtica, quando est construindo-se ou modificando um modelo ER, surgem situaes em que desejvel permitir a associao de uma entidade a um relacionamento.

    PACIENTE MDICO CONSULTA n n

  • 51

    Entidade Associativa

    w O modelo anterior foi modificado para saber que medicamentos existem e que medicamentos foram prescr i tos para cada consulta.

    PACIENTE MDICO CONSULTA n n

    PRESCRIO

    MEDICAMENTO

    n

    n

  • 52

    Entidade Associativa

    w Uma entidade associativa nada mais que a redefinio de um relacionamento, que passa a ser tratado como se fosse tambm uma entidade. w Graficamente, basta adicionar um retngulo ao redor do prprio losango do relacionamento. w Caso no se deseje utilizar o conceito de entidade associativa, seria necessrio transformar o relacionamento CONSULTA em uma entidade, que ento poderia ser relacionada a MEDICAMENTO.

  • 53

    Entidade Associativa

    (0,n) (0,n)

    PACIENTE MDICO

    PRESCRIO

    MEDICAMENTO

    (0,n)

    (0,n)

    CONSULTA

    (1,1) (1,1)

  • 54

    Esquemas Grficos e Textuais

    w A descrio de um modelo chamada de esquema de banco de dados. w Um esquema de BD pode ser tanto grfico, como mostrado at o momento, quanto textual, como abaixo.

    Esquema: EMP_DEP Entidade: EMPREGADO

    Atributos: CDIGO: inteiro Identificadores: CDIGO

    Entidade: DEPENDENTE Atributos: NMERO-SEQUENCIA: inteiro NOME: texto(50) Identificadores: EMPREGADO via EMP_DEP NMERO-SEQUENCIA

    Relacionamento: EMP_DEP Entidades: (1,1) EMPREGADO (0,n) DEPENDENTE

  • 55

    Esquemas Grficos e Textuais

    w Na prtica, usual combinar as duas formas de representar esquemas ER: a diagramtica e a textual. w Normalmente so representadas de forma grfica:

    n Entidades e Relacionamentos; n Generalizao / Especializao.

    w Normalmente so representadas de forma textual, para no sobrecarregar o diagrama:

    n Atributos das entidades e dos relacionamentos, juntamente com seu tipo e tamanho;

    n Definio dos atributos identificadores.