Relacionamento versus Relacional (Aula 1)clodis/BDI/BDI_2007_Modulo2_1.pdf · Uma instância de...

39
Módulo II: Modelagem Entidade- Relacionamento versus Relacional (Aula 1) Clodis Boscarioli Banco de Dados I 2007

Transcript of Relacionamento versus Relacional (Aula 1)clodis/BDI/BDI_2007_Modulo2_1.pdf · Uma instância de...

Módulo II: Modelagem Entidade-

Relacionamento versus Relacional

(Aula 1)

Clodis Boscarioli

Banco de Dados I

2007

Conteúdo do Módulo:

� Conceituação

� Objetivos;

� Problemas;

� Chaves;

� Restrições;

� Regras de Integridade;

� Projeto de um Esquema de BD Relacional;

� Normalização;

� Esquema Geral de Modelagem de BD;

� ME-R: Conceitos gerais;

� DE-R – Representação e exemplos;

� Projeto de um Esquema de BD E-R

Agenda:

Esquema Geral de Modelagem de BD

Fonte: Ferreira et. al, 2005

Conceitos Básicos

� A base do modelo entidade-relacionamento, o modelo E-R (MER), é representar o mundo real por meio de conjuntos de objetos chamados entidades e relacionamentos.

� A junção ordenada/lógica destes tipos de objetos representa a estrutura/esquema do mundo real. Ou seja, deve suportar o armazenamento de dados que reflitam a situação do mundo real.

� As três noções básicas empregadas pelo MER:� Conjunto de entidades;

� Conjunto de relacionamentos;

� Atributos.

O Conjunto de Entidades

� Segundo (Korth et. Al, 1999):� uma entidade é uma “coisa” ou um “objeto” do mundo real que pode ser identificada(o) de uma forma unívoca em relação a todos os outros objetos.

� cada entidade tem um conjunto de propriedades que assumem valores e, em alguns casos, assumem valores que devem ser únicos.

� uma entidade pode ser concreta, como uma pessoa ou um livro, ou pode ser abstrata, como um empréstimo ou uma viagem.

� um conjunto de entidades é o conjunto que abrange entidades de mesmo tipo e que compartilham as mesmas propriedades: os atributos.

� os conjuntos de entidades não são, necessariamente, conjuntos separados, ou, sempre disjuntos. Por exemplo: o conjunto de todos os clientes de um banco constituem o conjunto entidade cliente; o conjunto de todos os empregados do banco constituem o conjunto entidade empregado; a entidade pessoapode pertencer ou ao conjunto cliente, ou ao conjunto entidadeou a ambos ou a nenhum deles.

Os atributos

� Uma entidade é representada por um conjunto de atributos.

� Atributos são propriedades descritivas de cada membro de um conjunto de entidades e cada entidade tem seus próprios valores nos atributos.

� Para cada atributo existe um conjunto de valores possíveis, chamado domínio.

� Formalmente, um atributo de um conjunto de entidades é uma função que relaciona o conjunto de entidades a seu domínio.

� Cada entidade pode ser descrita pelo conjunto formado pelos pares (atributo-valor) referentes a cada atributo do conjunto em questão.

Exemplo (Korth)

PittsfieldSpring335-57-7991Adams

PrincetonNassau963-96-3963Williams

RyeNorth244-66-8800Curry

WoodsideDupont555-55-5555Jackson

HarrisonMain677-89-9011Hayes

RyeNorth019-28-3746Smith

HarrisonMain321-12-3123Jones

Instância do conjunto entidade Cliente.

Esquema do conjunto entidade Cliente

Cliente_esquema = (nome_cliente: string;

seguro-social: tp_codigo, rua_cliente: string

cidade_cliente: string).

Cliente

Descrição de um cliente em

particular:

{ (nome_cliente,Hayes),

(seguro_social,677-89-9011),

(rua_cliente,Main),

(cidade_cliente,Harrison) }

Classes de Atributos

� Simples ou compostos: atributos compostos, diferentemente dos

simples (atômicos), são divididos em partes (em outros

atributos).

� Nome_cliente � prenome, nome_intermediário e sobrenome

� Estes atributos pode ser hierarquizados.

No._aptoNome_

rua

No._

prédio

CEPestadocidaderuasobrenomenome-

intermediário

prenomeAtributos

componentes

endereço_clientenome_clienteAtributos

Compostos

ClientesConjunto de

entidades

Classes de Atributos

� Monovalorados ou multivalorados: atributos monovalorados assumem apenas um único valor para uma entidade específica, já os multivalorados podem assumir conjunto de valores para uma única entidade.

� Por exemplo: � A entidade empréstimo pode ter um atributo (código) monovalorado;

� A entidade empregado pode ter um atributo (nome-dependentes) multivalorado;

� A entidade cliente pode ter um atributo (endereços) também multivalorado.

� O atributo multivalorado por ter um limite superior ou/e inferior para o número de ocorrências em um atributo multivalorado.

� Nulos: Um valor nulo é usado quando uma entidade não possui valor para determinado atributo.

� Por exemplo:� Se o empregado não possui número da carteira de reservista, o valor nulo é atribuído a este atributo para esta entidade significando que o atributo não é aplicável a ele.

� Valores desconhecidos podem ser representados por valores nulos significando, neste caso, a omissão da informação

Classes de Atributos

� Derivados: o valor de um atributo pode ser derivado de outro.

�Por exemplo:� O número de empréstimos de um cliente (atributo qtde_empréstimos) pode ser calculado a partir de uma pesquisa na entidade empréstimos de um banco;

� O valor do tempo de casa de um funcionário pode ser calculado a partir da sua data de contratação.

Exemplo de entidades e atributos

� Mundo real: um banco (simplificado)

� Entidades:� (cliente, agência, conta, empréstimo)

� Esquemas:� Cliente_esquema = (nome_cliente: string; seguro-social: tp_codigo, rua_cliente: string; cidade_cliente: string).

� Conta_esquema = (número_conta: tp_código; saldo: real).

� Empréstimo_esquema = (número_empréstimo: tp_número; total: real).

� Agência_esquema = (nome_agência: string; cidade_agência: string; fundos: real).

Conjuntos de Relacionamentos

� Um relacionamento é uma associação entre uma ou várias entidades. Exemplo:� Um relacionamento que associa o cliente Hayes como empréstimo L-15 especifica que o cliente Hayes é o cliente que realizou o referido empréstimo.

� Um conjunto de relacionamentos é um conjunto de relacionamentos de mesmo tipo.� Formalmente o relacionamento é uma relação matemática com n >= 2 (n = número de conjuntos entidades).

� Se E1, E2, ..., En são conjuntos de entidades, então um conjunto de relacionamentos R é um subconjunto de {(e1,e2,...,e3) | e1 ∈ E1, e2 ∈ E2, ..., en ∈ En} em que (e1,e2,...,e3) são relacionamentos.

� A associação entre os conjuntos de entidades é referida como umaparticipação: o conjunto de entidades E1, E2, ..., Em participa do conjunto de relacionamentos R.

� Uma instância de relacionamento em um esquema E-R representa a existência de uma associação entre essas entidades no mundo real no qual se insere o domínio que está sendo modelado.

� Grau do relacionamento: o relacionamento binário (envolve dois conjuntos entidades) é um relacionamento de grau 2. E assim por diante.

Conjuntos de Relacionamentos

� Exemplo:� Considere os conjuntos entidades cliente e empréstimo.

� Definimos o conjunto de relacionamentos devedor para denotar a associação entre clientes e empréstimos bancários contraídos pelos clientes.

PittsfieldSpring335-57-7991Adams

PrincetonNassau963-96-3963Williams

RyeNorth244-66-8800Curry

WoodsideDupont555-55-5555Jackson

HarrisonMain677-89-9011Hayes

RyeNorth019-28-3746Smith

HarrisonMain321-12-3123Jones

1300L-16

900L-11

500L-93

1500L-14

1500L-15

2000L-23

1000L-17

Conjuntos de Relacionamentos

� A função que uma entidade desempenha em um relacionamento é chamada papel.

� Algumas vezes o “conjunto entidade” pode participar de um “conjunto relacionamento” mais de uma vez em papéis diferentes e, nessas situações, o papel é importante para interpretação do modelo.� Exemplo:

� Em relacionamentos recursivos, nomes explícitos de papéis são necessários para especificar como uma entidade participa de uma instância derelacionamento.

� Considere o conjunto de entidades empregado. Podemos ter um conjunto de relacionamentos trabalha_para que é modelado para ordenar os pares de entidades de empregado numa relação de hierarquia de cargos. Neste exemplo, os relacionamentos de trabalha-para são caracterizados pelos pares (gerente,empregado).

� Atributos descritivos em relacionamentos: atributos podem fazer parte de conjuntos relacionamentos para melhor descrever o mundo real.

� Exemplo: a data de último acesso em um conta bancária.

Metas de Projeto

Existem diferentes formas de se modelar (através de um MER) um mesmo domínio. Entretanto, todo modelo deve ter algumas metas básicas:

� O uso de Conjuntos de Entidades ou Atributos: � Considere as seguintes modelagens para a entidade

empregados:1. Empregado (nome-empregado:string; número-telefone:

tp_número);

2. Empregado (nome-empregado:string); Telefone (número-telefone: tp_número; localização: string); Emp-Telefone �associação entre Empregado e Telefone.

Quais são as diferenças????? Podemos aplicar a mesma regra de modelagem para o atributo nome-empregado?

O que constitui um atributo? O que constitui uma entidade?

Metas de Projeto

�Uso dos Conjuntos de Entidades e Conjunto de

Relacionamentos:

� Por enquanto estamos representando um empréstimo

como uma entidade. Poderíamos representar um

empréstimo como um relacionamento entre uma

agência e um cliente?

� Para responder a essa pergunta, reflita sobre as

seguintes situações:

� Quando um empréstimo é feito por uma pessoa;

� Quando um empréstimo é feito por mais de uma pessoa;

Mapeamento de Restrições

� Mapeamento das cardinalidades expressa o número de entidade às quais outra entidade pode estar associada via um conjunto de relacionamentos.

� Um para um: uma entidade em A está associada no máximo a uma entidade em B, e uma entidade em B está associada a no máximo uma entidade em A.

� Um para muitos: Uma entidade em A está associada a várias entidades em B. Uma entidade em B deve estar associada no máximo a uma entidade em A.

� Muitos para um: Uma entidade em A está associada a no máximo uma entidade em B. Uma entidade em B, pode estar associada a um número qualquer de entidades em A.

� Muitos para muitos: Uma entidade em A está associada a qualquer número de entidades em B e uma entidade em B está associada a umnúmero qualquer de entidades em A.

Interpretação

Aluno

Aluno Curso

Curso1 1

1 N

Aluno

Aluno Curso

CursoN 1

N M

Qual é a diferença entre essas

quatro modelagens?

Em cada um desses casos, como

poderíamos tratar os atributos dos

conjuntos de relacionamentos

(data de matrícula, por exemplo)?

Conjunto relacionamento: Participa

Mapeamento de Restrições

� Dependência de Existência� Se a existência da entidade X depende da existência da entidade Y, então X é dito dependente da existência de Y.

� Operacionalmente, se Y deixar de existir, conseqüentemente, X deve deixar de existir.

� Exemplo:� Considere o conjunto de entidades empréstimo e o conjunto de entidades pagamento (que mantém todas as informações sobre os pagamentos realizados para um determinado empréstimo).

� O conjunto de entidades empréstimo é considerado dominante e o conjunto de entidades pagamento é considerado subordinado.

� Se todas as entidades de um conjunto participam de pelo menos um relacionamento R, este é dito total, se apenas algumas das entidades do conjunto participam do relacionamento, então este édito parcial.

� A participação total está estreitamente relacionada à existência de dependência. Para haver dependência de existência, a participação da entidade subordinada ao relacionamento correspondente deve ser total.

Chaves

� Por meio de chaves podemos diferenciar as diversas entidades pertencentes a um conjunto de entidades, e os diversos relacionamentos pertencentes a um conjunto de relacionamentos.� Conjuntos de Entidades

� Superchave: conjunto de um ou mais atributos que, tomados coletivamente, nos permitem identificar de maneira unívoca uma entidade em um conjunto de entidades.

� Chaves candidatas: Superchaves para as quais nenhum subconjunto possa ser uma superchave.

� Chave primária: chave candidata escolhida pelo projetista de banco de dados como a chave de significado principal para a identificação de entidades dentro de um conjunto de entidades.

� Uma chave é uma propriedade do conjunto de entidades e não de uma entidade individualmente. Quaisquer duas entidades individuais em um conjunto não podem ter, simultaneamente, mesmos valores em seus atributos-chave.

� A especificação de uma chave representa uma restrição ao mundo real do domínio que está sendo modelada.

Chaves

� Conjuntos de relacionamentos:� A composição da chave primária para um conjunto de relacionamentos depende de uma estrutura de atributos associada ao conjunto de relacionamentos de R.

� Se o conjunto de relacionamentos não possui atributos então uma superchave deve ser formada pelas chaves de cada entidade participante do relacionamento.

� Se o conjunto de relacionamentos possui atributos então uma superchave deve ser formada pelas chaves de cada entidade participante do relacionamento mais o conjunto de atributos deste.

� A estrutura da chave primária para o conjunto de relacionamentos depende do mapeamento da cardinalidade do conjunto.

� Muitos para muitos: união das chaves da entidade + atributos descritivos;

� Muitos para um ou um para muitos: chave da entidade do lado do muitos + atributos descritivos

� Um para um: qualquer umas das chaves primárias pode ser usada.

Diagrama Entidade-Relacionamento

� Retângulos: conjuntos de entidades;� Linhas duplas: conjuntos de entidades fracas

� Elipses: atributos;� Atributos da chave primárias são sublinhados;

� Losangos: conjuntos de relacionamentos;� Linhas duplas: conjuntos de relacionamentos envolvidos com entidades fracas.

� Linhas: unem atributos aos conjuntos de entidades e estes aos conjuntos de relacionamentos;� Linhas direcionadas: a seta indica a cardinalidade um.

� Elipses duplas: atributo multivalorados;

� Linhas duplas: participação total de uma entidade em um conjunto de relacionamentos;

Conjunto de Entidades Fracas� Um conjunto de entidades pode não ter atributos suficientes paraformar uma chave primária. São os conjuntos de entidades fracas.

� Um conjunto de entidades que possui uma chave primária é dito forte.

� A chave primária de um conjunto de entidades fracas é composto pela chave primárias do conjunto de entidades fortes ao qual a existência do primeiro está associada mais o identificador do conjunto de entidades fraca.

� O relacionamento que associa o conjunto de entidades fracas a seu proprietário é o relacionamento identificador.

empréstimo pagamentoP_E

número_e total total_pgto

dt_pgto

número_p

Recursos de Extensão do E-R

� Especialização� Um conjunto de entidades pode conter subgrupos de entidades que são, de alguma forma, diferentes de outras entidades do conjunto.

� Esta diferença pode estar caracterizada por um subgrupo possuir atributos que não são compartilhados pelas demais entidades do conjunto.

� Exemplo: considere a entidade conta com uma sub-divisão:� conta_poupança: com um atributo adicional taxa_juros;

� conta_movimento: com um atributo adicional limite;

� O processo de projetar os subgrupos dentro de um conjunto de entidades é chamado especialização. A especialização de conta permite-nos distinguir os tipos de contas (processo de refinamento top-down).

� Um triângulo rotulado de ISA representa a especialização no diagrama E-R.

num_conta saldo

conta

conta_poup conta_mov

especialpadrão sênior

ISAtx_juros limite

ISA

dt_nascsaldo_mintx_juros_espnum_talão

Exemplo

(Korth)Entidade de nível superior

Entidade de

nível inferior

Recursos de Extensão do E-R

� Generalização

� Trata-se de um processo de refinamento botton-up no qual vários conjuntos de entidades são sintetizados em um conjunto de entidades de alto nível, com base em atributos comuns.

� O projetista do BD poderia identificar, em uma primeira fase da modelagem, o conjunto de entidades conta_padrão, com os atributos número_conta, saldo e saldo_negativo e o conjunto conta_poupança com os atributos número_conta, saldo e taxa_juros. O compartilhamento de atributos comuns pode ser expresso pela generalização.

� Operacionalmente, a generalização é o inverso da especialização e, para efeitos de representação usaremos a mesma simbologia.

Recursos de Extensão do E-R

� Herança de atributos

� Nos relacionamentos de generalização e

especialização, as entidades de nível inferior

herdam os atributos e os relacionamentos

das entidades de nível superior.

Recursos de Extensão do E-R

� Restrições de projeto� Determinação das entidades que podem participar de um dado conjunto de entidades de nível inferior em um relacionamento de generalização:

� Definição por condição: o conjunto de entidades é selecionado com base na satisfação o não de condições ou predicados preestabelecidos.

� Somente as entidades com tipo_conta = conta_poupançapodem pertencer ao conjunto de entidades de nível inferior “conta_poupança”.

� Definição por usuário: as entidades são designadas a um determinado conjunto de entidades pelos usuários do BD.

� Depois de três meses de trabalho, os empregados são divididos em grupos. A escolha de qual empregado vai para qual grupo é feita pelo gerente do departamento afeto.

Recursos de Extensão do E-R

� Restrições de projeto

� Determinação se uma entidade pode ou não

pertencer a mais de um conjunto de entidades de

nível inferior dentro de uma generalização. Os

conjuntos de entidades de nível inferior pode ser um

dos seguintes:

� Mutuamente exclusivos: exige que uma entidade pertença a

apenas um conjunto de entidades de nível inferior.

� O tipo de uma conta só pode assumir um único valor.

� Sobrepostos: uma mesma entidade pode pertencer a mais

de um conjunto de entidades de nível inferior (caso padrão).

� Determinados gerentes pode participar de mais de um grupo

de trabalho.

Recursos de Extensão do E-R

� Restrições de projeto:

� Em uma generalização, a restrição de totalidade, determina se uma entidade de nível superior pertence ou não a, no mínimo, um dos conjuntos de entidades de nível inferior dentro da generalização. Esta restrição pode ser:

� 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.

� Inserções e exclusões X Restrições de totalidade:

� Quando uma restrição total é aplicada, a inserção de um entidade em um conjunto de entidades de nível superior exige a inserção desta em pelo menos um dos conjuntos entidade de nível inferior.

� A exclusão acontece de forma semelhante

Recursos de Extensão do E-R

� Agregação:

�Limitação do modelo E-R: não é possível expressar relacionamento entre relacionamentos.� Situação: suponha que cada par (empréstimo-cliente) possua um agente bancário responsável.

�Agregação: é a abstração por meio da qual os relacionamentos são tratados como entidades de nível superior.

Exemplo

(Korth)

cliente empréstimo

empregado

devedor

Agente_

emp

seguro

nome

rua

cidadesaldonúmero

telefone

nome

seguro

Exemplo

cliente empréstimo

empregado

Respons.

seguro

nome

rua

cidadesaldonúmero

telefone

nome

seguro

Exemplo de

Agregação

(Korth et. al., 1999)

cliente empréstimo

empregado

devedor

Agente_

emp

seguro

nome

rua

cidadesaldonúmero

telefone

nome

seguro

Projeto de um Esquema de BD E-R

� Opções do projetista

� Representar um objeto por meio de uma entidade ou

de um atributo?

� A realidade é melhor expressa por um conjunto de

entidades ou um conjunto de relacionamentos?

� Usar relacionamentos de grau alto ou vários de graus

mais baixos?

� Criar um único objeto ou um conjunto de entidades

forte e seus respectivos conjuntos de entidades

fracas?

� Usar generalização/especialização/agregação?

Projeto de um Esquema de BD E-R

� Fases do projeto� Levantamento de requisitos: quais são as necessidades dos usuários do BD e como este BD será estruturado;

� Construção do projeto conceitual: transcrever as necessidades especificadas para um esquema conceitual de BD;

� Especificação das necessidades funcionais: descrever as transações que serão realizadas sobre os dados;

� Projeto lógico e físico: mapeamento do projeto conceitual para o modelo de implementação de dados no SGBD.

Exemplo: Páginas – 48, 49 e 50 da Bibliografia 1.

cliente empréstimodevedor

seguro

nome

rua

cidade saldonúmero

empréstimo

fundonome

cidade

pagamentoP_E

total_pgtodt_pgto

número_p

empregado

devedor

trabalha_

para

deposit.

tipo acesso

seguro

dep

tempo inicio

telefone

nome

num_conta saldo

conta

conta_poup conta_mov

ISA

taxa_juros limite

Bibliografia Utilizada:

� Sistemas de Banco de Dados. (Cap. 2) Abraham Silberchatz, Henry F. Korth e S.Sudarshan. 3ª Edição. Makron Books, 1999.

� Introdução a Banco de Dados (Apostila). (Cap. 4) Osvaldo Kotaro Takai, Isabel Cristina Italiano, João Eduardo Ferreira. DCC-IME-USP, 2005.