Buscar

Capitulo 2 Modelo Entidade Relacionamento

Prévia do material em texto

  
CEUT 
PROF. HELTON MATOS 
 
 Transformar aspectos do mundo real em elementos de um 
modelo de dados formal 
 Temos três componentes: 
Estruturas 
o Uma coleção de tipos de objetos 
o Blocos básicos de construção de modelos 
• Ex: Relações, Domínio (Modelo Relacional) 
 
o Representam valores que são interpretações de 
objetos do mundo real e suas propriedades 
Operadores 
o Meio de manipular e atualizar os tipos de 
objetos 
• Ex: Álgebra Relacional (Modelo Relacional) 
Operações 
o Especificam uma ação - O que é para ser feito 
o Transformam um estado de BD em outro estado 
 
Preservando propriedades do esquema do BD 
e do modelo de dados 
 Operações no Banco de Dados 
Regras de integridade (Restrições) 
o Restringem o conjunto de estados válidos 
dos tipos de objetos (conteúdo) 
• Ex: Valores de chave primária devem ser 
únicos e não nulos (Modelo Relacional) 
  
Ceut 
Prof.: Helton Matos 
 Tem por base a percepção de que o mundo real é formado 
por um conjunto de objetos chamados entidades e pelo 
conjunto dos relacionamentos entre esses objetos. 
 
 Permite especificar o esquema da empresa e é um dos 
modelos com maior capacidade semântica. 
 Conjunto de entidades; 
 
 Conjunto de relacionamentos e; 
 
 Atributos. 
 Entidade é uma “coisa” ou “objeto” no mundo real que 
pode ser identificado de forma unívoca em relação a todos 
os outros objetos. 
 
 Por exemplo, cada pessoa na empresa é uma entidade. 
 
 Uma entidade tem um conjunto de propriedades, e os 
valores para alguns conjuntos dessas propriedades devem 
ser únicos. 
 Um conjunto de entidades é um conjunto que abrange 
entidades de mesmo tipo que compartilham as mesmas 
propriedades: os atributos. 
 
 O conjunto de todas as pessoas que são clientes de um 
dado banco, por exemplo, pode ser definido como o 
conjunto de entidades cliente. 
 Analogamente, o conjunto de entidades empréstimo 
poderia representar o conjunto de todos os empréstimos 
que o banco em questão viabiliza. 
 
 As entidades individuais que constituem um conjunto são 
chamadas extensões do conjunto de entidades. 
 
 Assim, todos os clientes do banco são as extensões do 
conjunto de entidade cliente. 
 Uma entidade é representada por um conjunto de 
atributos. 
 
 Atributos são propriedades descritivas de cada membro de 
um conjunto de entidades. 
 
 Um banco de dados inclui uma coleção de conjuntos de 
entidades, cada qual contendo um número de entidades de 
mesmo tipo. 
 Um atributo de um conjunto de entidades é uma função 
que relaciona o conjunto de entidades a seu domínio. 
 
 Um atributo, como é usado no modelo E-R, pode ser 
caracterizado pelos seguintes tipos: 
 
o Atributos simples ou compostos 
o Atributos monovalorados ou multivalorados 
o Atributos nulos 
o Atributos derivados 
 Atributos simples não é dividido em partes, enquanto os 
compostos, podem. 
 
 Por exemplo: nome_cliente pode ser dividido em prenome, 
nome_intermediário e sobrenome. 
 
 Um atributo número_emprestimo de uma entidade 
específica refere-se apenas a um número de empréstimo. 
Esses atributos são monovalorados. 
 
 Considere o conjunto de entidades empregado com o 
atributo nome_dependente. 
 Qualquer empregado pode ter um, nenhum ou vários 
dependentes; entretanto, diferentes entidades empregado 
dentro do conjunto de empregados terão diferentes 
números de valores para o atributo nome_dependentes. 
 Esse tipo de atributo é dito multivalorado. 
 
 É usado quando uma entidade não possui valor para 
determinado atributo. 
 
 Por exemplo, se um empregado em particular não possui 
dependentes, o valor de atributo nome_dependente para 
esse dependente deverá ser nulo. 
 
 Nulo também pode significar que o valor é desconhecido. 
 O valor desse tipo de atributo pode ser derivado de outros 
atributos ou entidades a ele relacionados. 
 
 Por exemplo, digamos que o conjunto de entidades cliente 
possui o atributo empréstimos_tomados, que representa o 
número de empréstimos tomados do banco por um cliente. 
 Podemos derivar o valor desse atributo contando o número 
das entidades empréstimos associadas ao cliente em 
questão. 
 Um relacionamento é uma associação entre uma ou várias 
entidades. 
 
 Por exemplo, podemos definir um relacionamento que 
associa o cliente Hayes com o empréstimo L15. 
 Um conjunto de relacionamentos é um conjunto de 
relacionamentos de mesmo tipo. 
 
 Por exemplo, consideremos dois tipos de conjunto de 
entidades, empréstimo e agência. Podemos definir o 
conjunto de relacionamentos agência_empréstimo 
denotando a associação entre empréstimo bancário e a 
agência onde esse empréstimo é mantido. 
 Papel: a função que uma entidade desempenha. 
 
 Um conjunto de entidades e um conjunto de 
relacionamentos não são noções precisas e é possível 
definir um conjunto de entidades relacionadas entre eles 
de várias formas diferentes. 
 Considere o conjunto de entidades empregado com os 
atributos nome_empregado e número_telefone. 
 
 Pode ser facilmente verificado que o telefone é uma 
entidade sujeita a seus próprios atributos, como 
número_telefone e localização. 
 Sob este ponto de vista, o conjunto de entidades deve ser 
redefinido, como segue: 
 
o O conjunto de entidades empregado com o atributo 
nome_empregado. 
 
o O conjunto de entidades telefone com os atributos número_telefone 
e localização. 
 
o O conjunto de relacionamentos emp_telefone, o qual denota a 
associação entre os empregados e os telefones que podem ter. 
 
 Nem sempre fica claro se um objeto é melhor expresso por 
um conjunto de entidades ou por um conjunto de 
relacionamentos. 
 Expressa o número de entidades às quais outra entidade 
pode estar associada via um conjunto de relacionamentos. 
 
o Um para um 
o Um para muitos 
o Muitos para um 
o Muitos para muitos 
 Quando a existência da entidade x depende da entidade y. 
 
 Operacionalmente, se y for excluído, o mesmo deve 
acontecer com x. 
 
 A entidade y é chamada entidade dominante e a x é 
chamada entidade subordinada. 
 Considere o conjunto de entidade empréstimo e o conjunto 
de entidades pagamento, que mantém todas as 
informações dos pagamentos realizados para um 
determinado empréstimo. 
 Superchave é um conjunto de um ou mais atributos que, 
tomados coletivamente, nos permite identificar de maneira 
unívoca uma entidade em um conjunto de entidades. 
 
 Por exemplo, o atributo seguro_social do conjunto de 
entidades cliente é suficiente para distinguir uma entidade 
cliente de outra. 
 É possível que vários conjuntos diferentes de atributos 
possam servir como superchave. Essas superchaves são 
chamadas de chaves candidatas. 
 
 Podemos usar o termo chave primária para caracterizar a 
chave candidata que é escolhida pelo projetista do banco 
de dados como de significado principal para a identificação 
de entidades dentro de um conjunto de entidades. 
 Seja R um conjunto de relacionamentos envolvendo os 
conjuntos de entidades E1, E2, ..., En. 
 
 Seja uma chave primária (Ei) denotando o conjunto de 
atributos que formam a chave primária do conjunto de 
entidades Ei. 
 
 Assume-se que os nomes dos atributos de todas as chaves 
primárias sejam únicos. 
 A composição da chave primária para um conjunto de 
relacionamentos depende de uma estruturade atributos 
associada ao conjunto de relacionamentos R. 
 A relativa simplicidade e a clareza gráfica dessa técnica 
de diagramação pode explicar a ampla disseminação 
desse modelo. 
 
 A seguir são apresentados seus principais 
componentes: 
 
o Retângulos: representam um conjunto de entidades. 
 
o Elipses: representam os atributos. 
 
o Losangos: representam os conjuntos de relacionamentos. 
 
o Linhas: unem os atributos aos conjuntos de entidades e os 
conjuntos de entidades aos conjuntos de relacionamentos. 
 
o Elipses Duplas: representam atributos multivalorados. 
 
Diagrama E-R correspondente a clientes e empréstimos. 
 
Um para muitos. 
Muitos para um 
 
Relacionamento um para um 
Diagrama E-R com um atributo atrelado ao conjunto de relacionamentos 
 
Diagrama E-R com indicadores de papéis. 
 
Diagrama E-R com relacionamentos ternários. 
 É quando um conjunto de entidades pode não ter atributos 
suficientes para formar uma chave primária. 
 
 O conjunto de entidades que tem uma chave primária é 
chamado de conjunto de entidades fortes ou regulares. 
 
 
 
 Embora cada entidade pagamento seja distinta, os 
pagamentos de empréstimo diferentes podem compartilhar 
um mesmo número. 
 
 Para ser significativo, tem que fazer parte de um conjunto 
de relacionamentos um para muitos. 
 
 O identificador de um conjunto de entidades fracas é o 
conjunto de atributos que permite que a distinção seja feita 
entre as entidades 
 No exemplo, o identificador (chave parcial) é o número do 
pagamento, assim, para cada empréstimo, um número de 
pagamento identifica um determinado pagamento para 
aquele empréstimo. 
 
 A chave primária de entidades fracas é formado pela chave 
primária do conjunto de entidades fortes ao qual a 
existência do conjunto de entidades fracas está vinculado 
mais o identificador do conjunto de entidades fracas. 
 O conjunto de entidades dominantes é dito proprietário do 
conjunto de entidades fracas por ele identificado. 
 
 O relacionamento que associa o conjunto de entidades 
fracas a seu proprietário é o relacionamento identificador. 
 Um conjunto de entidades fracas é identificado no 
diagrama E-R pela linha dupla usada no retângulo e no 
losango do relacionamento correspondente. 
 
  
 Um conjunto de entidades pode conter subgrupos de 
entidades que são, de alguma forma, diferentes de outras 
entidades do conjunto. 
 
 Considere o conjunto de entidades conta com os atributos 
número_conta e saldo. Um saldo pode ser classificado 
como um dos seguintes grupos: 
o conta_poupança 
o conta_movimento 
 Cada um desses tipos de contas é descrito como um 
conjunto de atributos que, além de todos os atributos do 
conjunto de entidades conta, possui outros atributos 
adicionais. 
 
 O processo de projetar os subgrupos dentro de um conjunto 
de entidades é chamado especialização. 
 Um banco pode oferecer três tipos de conta (padrão, 
especial e sênior). 
 
 Em termos de diagrama E-R, a especialização é 
representada pelo triângulo rotulado de ISA (de “is a”- é 
uma em inglês). 
 
 O refinamento do conjunto de entidades em níveis 
sucessivos de subgrupos indica um processo top-down de 
projeto. 
 
 O projeto pode ser realizado de modo bottom-up, no qual 
vários conjuntos de entidades são sintetizados em um 
conjunto de entidades em alto nível, com base em atributos 
comuns. 
 Propriedade decisiva das entidades de níveis superior e 
inferior criadas pela especialização e pela generalização. 
 
 Os conjuntos de entidades de nível inferior (subclasses) 
também herdam a participação em conjuntos de 
relacionamentos dos quais participam seus conjuntos de 
entidades superior (ou superclasses). 
 
 Existe uma hierarquia nos conjuntos de entidades. 
 Um tipo de restrição envolve a determinação das entidades 
que podem participar de um dado conjunto de entidades 
de nível inferior. 
 
 Tais escolhas podem ser uma das seguintes: 
 Considere que o conjunto de entidades de nível superior 
conta possui o atributo tipo_conta. 
 
 Todas as entidades conta evoluem para um dos atributos 
tipo_conta. 
 
 Somente aquelas entidades que satisfaçam a condição 
tipo_conta=“conta_poupança”, podem pertencer ao 
conjunto de entidades de nível inferior conta_poupança. 
 Todas as entidades que satisfaçam a condição 
tipo_conta=“conta_movimento” são incluídas em conta 
movimento. 
 
 Desde que todas as entidades de nível inferior sejam 
classificadas com base nos mesmos atributos (neste caso, 
tipo_conta), esse tipo de generalização é chamada 
definida_por_atributo. 
 Suponha que, depois de três meses de trabalho, os 
empregados do banco sejam convocados para compor um 
dentre os quatro grupos de trabalho existentes. 
 
 Esses grupos são representados por quatro conjuntos de 
entidades de baixo nível, derivados do conjunto de 
entidades de alto nível empregado. 
 Outro tipo de restrição determina se uma entidade pode ou 
não pertencer a mais de um conjunto de entidades de nível 
inferior dentro de uma generalização simples. 
 
 Os conjuntos de entidades de nível inferior podem ser um 
dos seguintes: 
 Exigem que uma entidade pertença a apenas um conjunto 
de entidades de nível inferior. 
 
 Em nosso exemplo, uma entidade conta pode ser tanto 
uma conta poupança como uma conta movimento, mas 
nunca ambas. 
 Uma mesma entidade pode pertencer a mais de um 
conjunto de entidades de nível inferior dentro de uma 
generalização simples. 
 
 Para ilustrar, retornemos ao exemplo dos grupos de 
trabalho dos empregados do banco e suponhamos que 
determinados gerentes participem de mais de um desses 
grupos. 
 Total: cada entidade do conjunto de entidades de nível 
superior deve pertencer a um conjunto de entidades de 
nível inferior. 
 
 Parcial: qualquer entidade de nível superior pode pertencer 
a qualquer um dos conjuntos de entidades de nível inferior. 
 Uma das limitações do modelo E-R é que não é possível 
expressar relacionamentos entre relacionamentos. 
 
 Considere novamente um banco de dados descrevendo 
informações sobre clientes e seus empréstimos supondo 
que cada par empréstimo-cliente possui um bancário, ou 
agente-empréstimo, responsável pelo acompanhamento de 
determinado empréstimo. 
 
 O modelo E-R nos dá uma flexibilidade substancial para o 
projeto de um esquema de banco de dados. 
 
 Iremos considerar quais as opções possíveis para o 
projetista dentre o grande número de possibilidades. 
 
 Algumas das possíveis são: 
 
 Optar pelo uso de um atributo ou de um conjunto de 
entidade para representar um objeto. 
 
 Se uma concepção real é expressa de modo mais preciso 
por um conjunto de entidade ou por um conjunto de 
relacionamentos. 
 
 Optar por um conjunto de relacionamentos ternários ou por 
um par de relacioamentos binários. 
 Se se deve usar um conjunto de entidades fortes. 
 
 Se o uso da generalização é apropriada. 
 
 Se o uso da agregação for apropriada. 
 A fase inicial de um projeto é caracterizar todos os dados 
necessários na perspectiva do usuário. 
 
 O resultado dessa fase é a especificação das necessidades 
do usuário (ou levantamento de requisitos). 
 A seguir, o projetista escolhe o modelo de dados e, por 
meio da aplicação de seus conceitos, transcreve as 
necessidades especificadas em um esquema conceitual de 
banco dedados (projeto conceitual), objetivando uma visão 
detalhada da empresa. 
 
 Como só estudamos o modelo E-R até agora, iremos usá-lo 
para o desenvolvimento do esquema conceitual. 
 
 O desenvolvimento do projeto conceitual irá indicar 
também as necessidades funcionais da empresa. 
 
 Necessidades funcionais é onde os usuários descrevem os 
tipos de operações (ou transações) que serão realizadas 
nos dados. 
 
 Ex.: modificações para atualização de dados, pesquisa para 
recuperação e remoção de dados. 
 Na fase de projeto lógico, o esquema conceitual é mapeado 
para o modelo de implementação de dados no SGBD que 
será usado. 
 A fase subseqüente é a do projeto físico, especificamente 
dependente dos recursos do SGBD usado. 
 Dados Necessários a uma Empresa da Área 
Bancária 
 
 Designação de Conjuntos de Entidades em 
Empresas Bancárias 
 
 Designação dos Conjuntos de Relacionamentos de 
uma Empresa da Área Bancária 
 
 Diagrama E-R de uma Empresa da Área Bancária 
 
 Para um conjunto de entidades e para cada conjunto de 
relacionamentos, dentro de um banco de dados, existe uma 
tabela única registrando o nome do conjunto de entidades 
ou relacionamentos correspondentes. 
 
 Cada tabela possui várias colunas, cada uma delas com 
um único nome. 
 
 Seja E um conjunto d entidades fortes descritos pelos 
atributos a1, a2, ..., an. 
 
 Representamos essa entidade por uma tabela chamada E 
com n colunas distintas, cada uma delas correspondendo a 
um atributo de E. 
 
 Cada linha da tabela corresponde a uma entidade do 
conjunto de entidades E. 
número _empréstimo Total 
L-17 
L-23 
L-15 
L-14 
L-93 
L-11 
L-16 
1000 
2000 
1500 
1500 
500 
900 
1300 
•Denotaremos como D1 o conjunto de todos os números de empréstimos e D2 
o conjunto de todos os saldos. 
 
•Qualquer linha da tabela empréstimo deve consistir de uma 2-tupla(v1 e v2), 
em que v1 é um empréstimo (está no conjunto D1) e v2 é um total (está no 
conjunto D2) 
 
•Iremos nos referir ao conjunto de todas as linhas possíveis de empréstimo 
como o produto cartesiano de D1 e D2, denotado por: 
 
D1 x D2 
 
 Seja A um conjunto de entidades fracas com os atributos a1, a2, 
..., an. 
 
 Seja B um conjunto de entidades fortes, do qual A é dependente. 
 
 Seja a chave primária de B composta pelos atributos b1, b2, ..., 
bn. 
 
 Representamos o conjunto de entidades A pela tabela chamada 
A com uma coluna para cada um dos atributos do conjunto: 
 
{a1, a2, ..., am } U {b1, b2, ..., bn } 
 
 
 Seja R um conjunto de relacionamentos; seja a1, a2, ..., an o 
conjunto de atributos formado pela união das chaves 
primárias de cada um dos conjuntos de entidades 
participantes de R;e seja os atributos descritivos b1, b2, ..., 
bn (se houver) de R. 
 
 Representamos esse conjunto de relacionamentos pela 
tabela chamada R, com uma coluna para cada atributo do 
conjunto: 
 
{a1, a2, ..., am } U {b1, b2, ..., bn } 
 
 Para ilustrar, considere o conjunto de relacionamentos 
devedor no diagrama E-R. Esse conjunto de 
relacionamentos envolve os dois conjuntos de entidades 
seguintes: 
 
o Cliente, com a chave primária seguro_social. 
o Empréstimo, com a chave primária número_empréstimo. 
 
 Uma vez que o conjunto de relacionamentos não possui 
atributos próprios, a tabela devedor possui duas colunas, a 
de seguro_social e número_empréstimo. 
 
 Em geral, a tabela para o conjunto de relacionamentos 
unindo o conjunto de entidades fracas com seu conjunto de 
entidades fortes correspondente é redundante e não 
precisa ser apresentada em uma representação tabular do 
diagrama E-R. 
 O conjunto de relacionamentos entre conta e agência_conta, é de 
muitos para um. 
 
 Daqui para a frente, uma linha dupla no diagrama E-R indica que a 
participação de conta em conta_agência é total, ou seja, uma conta 
não pode existir sem que esteja associada a uma agência em 
particular. 
 Novas tabelas são criadas para esses tipos de atributos. 
 
 O diagrama inclui o atributo multivalorado 
nome_dependente. 
 
 Para esse atributo multivalorado, criamos uma tabela 
nome_dependente com as colunas nomed, referente ao 
atributo noem_dependente do empregado, e 
seguro_social_empregado, representando a chave primária 
do conjunto de entidades empregado. 
 
 Cada dependente de um empregado é representado por 
uma única linha na tabela. 
 Para o diagrama para o caso de generalização visto 
anteriormente teremos três tabelas: 
 
o conta, com os atributos número_conta e saldo. 
o conta_poupança, com os atributos número_conta e taxa_juros 
o conta_movimento, com os atributos número_conta e 
limite_cheque_especial 
 Se a generalização for exclusiva e total, isto é, se nenhuma 
entidade é membro de mais de um conjunto de entidades 
de nível imediatamente inferior e se todas as entidades do 
conjunto de entidades de nível superior são membros 
também de um dos conjuntos de entidades de nível inferior, 
uma outra representação alternativa é possível. 
 
 Teremos duas tabelas: 
o conta_poupança, com os atributos número_conta, saldo e 
taxa_de_juros. 
o Conta_movimento, com os atributos número_conta, saldo e 
limite_cheque_especial. 
 Usando o mesmo procedimento anterior para o resto do diagrama, criamos as 
seguintes tabelas: 
 
o cliente, com os atributos nome_cliente, seguro_social, rua_cliente e cidade_cliente. 
 
o empréstimo, com os atributos número_empréstimo e total. 
 
o devedor, com os atributos seguro_social e número_empréstimo. 
 
o empregado, com os atributos seguro_social_empregado, nome_empregado e número_telefone. 
 
o agente_empréstimo, com os atributos seguro_social, número_empréstimo e 
seguro_social_empregado. 
 Considere o banco de dados de uma universidade para a programação de 
exames finais. Esse banco de dados poderia ser modelado como um conjunto 
de entidades simples exame, com atributos curso_exame, número_seção, 
número_sala e horário. Alternativamente, um ou mais conjuntos de entidades 
adicionais poderiam ser definidos, entre os conjuntos de relacionamentos, para 
substituir alguns dos atributos do conjunto de entidades exame, como: 
 
o Curso, com os atributos nome, departamento e número_curso. 
o seção, com os atributos número_seção e programa, dependente do 
conjunto de entidades curso como um conjunto de entidades fracas. 
o Sala, com os atributos número_sala, capacidade e prédio. 
 
(a) Mostre o diagrama E-R ilustrando o uso dos três conjuntos de entidades 
adicionais listadas. 
(b) Explique quais as características da aplicação poderiam influir na 
decisão de incluir ou não cada um desses conjuntos adicionais de 
entidades.

Continue navegando