-
Projeto Conceitual, Lgico e Fsico de Bancos de Dados(Notas de
aula para a disciplina MAC 5861 Modelagem de Banco de Dados / IME
USP)
Referncias: Sistemas de Bancos de Dados - Elmasri e Navathe (4
edio) Sistemas de Gerenciamento de Banco de Dados - Ramakrishnan e
Gehrke (3 edio) Projeto e Modelagem de Bancos de Dados - Teorey,
Lightstone e Nadeau
1. IntroduoO projeto de bancos de dados envolve as seguintes
fases principais:
1. Levantamento e anlise dos requisitos nessa etapa, o
projetista faz um registro conciso dos requisitos dos usurios como
relao aos dados. Tambm til definir requisitos funcionais
(operaes/transaes empregadas no BD) conhecidos das aplicaes.Os
requisitos so levantados por meio de entrevistas com os produtores
e os usurios dos dados, e podem ser descritos por meio de
especificaes formais. Eles incluem os dados exigidos para
processamento, os seus relacionamentos naturais, e as informaes
relevantes para a escolha da plataforma de software para o BD.
2. Projeto conceitual corresponde etapa de criao de um esquema
conceitual para o BD, utilizando um modelo de dados conceitual de
alto nvel. Esquema conceitual = descrio concisa de requisitos de
dados dos usurios, contendo
descries detalhadas sobre os tipos de entidades, relacionamentos
e restries, expressos de acordo com os conceitos existentes no
modelo de dados conceitual de alto nvel empregado.
Caractersticas desse esquema: fcil compreenso (no envolve
detalhes de implementao) pode ser usado na comunicao com usurios no
tcnicosExemplos de modelos conceituais bastante usados o modelo ER
(Entidade-
Relacionamento) e os diagramas de classe da Unified Modeling
Language (UML).
3. Projeto lgico - corresponde ao mapeamento do esquema
conceitual para um modelo de dados de implementao. Esse passo
necessrio para a implementao real do BD utilizando um SGBD
comercial (que geralmente usa um modelo de dados de implementao
como o relacional ou o modelo de dados objeto-relacional). Quando o
modelo de dados de implementao escolhido o relacional, o projeto
lgico inclui tambm uma etapa de normalizao das tabelas, em que as
tabelas relacionais candidatas so decompostas ou divididas em
tabelas menores, por meio de tcnicas padronizadas, que consideram
as dependncias funcionais que so derivadas a partir do diagrama do
modelo de dados conceitual e da semntica dos relacionamentos de
dados observada na anlise dos requisitos. O objetivo dessa etapa
evitar esquemas de Bds em que anomalias de alteraes dos dados
possam ocorrer.
4. Projeto Fsico etapa na qual so definidas as estruturas de
armazenamento interno, ndices, caminhos de acesso, organizaes de
arquivos para os arquivos do BD, e outros ajustes finos. A
finalidade dessa etapa otimizar o desempenho das operaes de
consulta e manipulao dos dados da melhor forma possvel. Em aplicaes
como os Data warehouses, o projeto fsico pode at mesmo modificar o
esquema, para desnormaliz-lo. A desnormalizao pode melhorar o
desempenho do BD para os operaes de consulta, o que um requisito
importante em aplicaes OLAP (Online Analytical Processing).
1
-
Figura 1 - Principais fases do projeto de um banco de dados.
2
Minimundo
Levantamento eAnlise de Requisitos
Projeto ConceitualAnlise Funcional
Projeto Lgico (MapeamentoDe Modelo de Dados)
Esquema Conceitual(Em um modelo de dados de alto nvel)
Esquema Lgico (Conceitual)(Em um modelo de dados de um SGBD
especfico)
Projeto Fsico
Projeto do Programada Aplicao
Implementaoda Transao
Especificao deTransao de Alto Nvel
Requisitos FuncionaisRequisitos de Dados
Independente do SGBD
SGBD especfico
Programas de Aplicao
Esquema Interno
-
2 Modelo Entidade-Relacionamento (ER)
A modelagem de dados conceitual a etapa mais importante do
projeto lgico de banco de dados. Seu objetivo capturar os
requisitos de dados do mundo real de forma simples e significativa,
em uma notao que seja inteligvel no s para o projetista, mas tambm
para o usurio final.Nesse contexto, o modelo
Entidade-Relacionamento (ER), apresentado por Peter Chen em 1976,
uma ferramenta bastante til. Devido sua simplicidade e
legibilidade, ele ainda hoje uns dos modelos conceituais mais
usados para a modelagem de bancos de dados.
O modelo ER descreve os dados como entidades, relacionamentos e
atributos. As sees a seguir apresentam as principais caractersticas
desses elementos.
2.1 Entidades e Atributos
Entidade = algo do mundo real, com uma existncia independente.
Pode ter existncia fsica (Ex: uma pessoa, uma casa, um empregado,
etc.) ou conceitual (Ex: uma empresa, um curso universitrio).
Atributos = propriedades particulares que descrevem uma entidade
(Ex: nome do empregado, endereo, funo, etc.).
Um dada entidade ter um valor para cada um de seus atributos.
Esses valores constituem a maior parte dos dados armazenados em um
BD.
Tipos de atributos do modelo ER:
simples (atmicos) versus compostos: atributos compostos podem
ser divididos em partes menores (ex: o atributo endereo pode ser
dividido em Rua, Cidade, Estado e CEP). Os atributos que no so
divisveis so chamados de atributos simples (ou atmicos).O valor de
um atributo composto dado pela concatenao dos valores dos atributos
simples que o compem.
Os atributos compostos so somente teis para modelar as situaes
nas quais o usurio algumas vezes se refere ao atributo como um
grupo, mas em outras se refere a um de seus componentes. (seno, o
endereo, por exemplo, poderia ser definido como um atributo
simples).
Monovalorados versus multivalorados: Monovalorado = atributo que
tem um nico valor para uma dada entidade (ex: o atributo idade para
uma pessoa)
Multivalorado = atributo para o qual diferentes entidades podem
ter diferentes quantidades de valores. Ex: atributo titulao para
uma pessoa; algumas pessoas no possuem ttulo algum, outras possuem
1, ou 2, e assim por diante.
Um atributo multivalorado deve ter um limite inferior e superior
pra restringir o nmero de valores permitidos a cada entidade
individual.
Armazenados versus Derivados: um atributo derivado aquele que
derivado a partir de outro(s) atributo(s) ou entidade(s)
relacionado(s). Exemplo: o atributo idade derivado a partir da data
de nascimento e da data corrente; o atributo nmero de empregados de
um departamento pode ser derivado da contagem do nmero de
empregados relacionados (que
3
-
trabalham) nesse departamento. Um atributo que no derivado
armazenado.
Valores Nulls (Nulos) : valor especial, usado para os casos em
que uma entidade no possuiu um valor aplicvel para um atributo. O
null serve tanto para indicar que o atributo no se aplica a uma
dada entidade, como tambm para indicar que o valor para um atributo
de uma dada entidade desconhecido. Obs: desconhecido pode ser tanto
para o caso de sabermos que existe um valor pro atributo, mas ele
est faltando (ex: altura todo mundo tem!), quanto para o caso de no
sabermos se o valor existe ou no (ex: FoneResidencial uma pessoa
pode ou no ter).
Atributos Complexos: so atributos compostos e multivalorados,
que podem ser aninhados de modo arbitrrio. Exemplo: se uma pessoa
pode ter mais de uma residncia, e cada uma delas pode ter mltiplos
telefones, um atributo EnderecoFone pode ser especificado como a
seguir:
{EnderecoFone({Fone(CodigoArea,NumeroFone)},
Endereco(EnderecoRua(Numero,Rua,Apartamento), Cidade, Estado,
CEP))}
Tipo entidade define uma coleo de entidades que possuem os
mesmos atributos. representado no diagrama ER por uma caixa
retangular, incluindo o seu nome. Os nomes dos atributos so
colocados em elipses e conectados ao seu tipo entidade por
linhas retas. Atributos compostos so conectados a seus atributos
componentes por linhas retas. Atributos multivalorados so
identificados por linhas duplas. Atributo-chave do tipo entidade:
um atributo cujos valores so distintos para cada uma
das entidades do conjunto de entidades do tipo. Os valores da
atributo-chave so usados para identificar cada entidade
univocamente. Na notao diagramtica ER, um atributo-chave tem o seu
nome sublinhado dentro da elipse.
Chave composta: uma chave formada por diversos atributos, cuja a
combinao dos valores distinta para cada entidade. Ela pode ser
representada no diagrama ER como um atributo composto que feito
atributo-chave. Uma chave composta deve ser mnima, no sentido de
que todos os atributos componentes devem ser considerados na
composio para garantir a unicidade.
Alguns tipos entidade tm mais de um atributo chave (ex: rg e
cpf). Outros, podem nem ter uma chave; so os chamados tipo entidade
fraca.
Conjuntos de Valores (Domnios) de Atributos: cada atributo
simples de um tipo entidade possui um domnio de valores, que
determina o
cjto de valores vlidos que ele pode assumir em cada entidade. os
domnios de valores no so mostrados no diagrama ER
2.2 Relacionamentos, Papis e Restries EstruturaisUm tipo
relacionamento R entre n tipos entidades E1, E2, , En define um
conjunto de associaes (= relacionamentos) entre essas entidades.
Matematicamente, um conjunto de relacionamentos R um conjunto de
instncias de relacionamento ri, em que cada ri associa-se a n
entidades individuais (e1,e2, , em), e cada entidade ej em ri um
membro do tipo entidade Ej, 1
-
cada entidade ej dita participante da instncia de relacionamento
ri.Informalmente, cada ri em R representa uma associao de entidades
existente no minimundo, que inclui exatamente uma entidade de cada
tipo entidade participante.Exemplo: relacionamento TRABALHA_PARA
entre os tipo entidade EMPREGADO e DEPARTAMENTO, que associa cada
empregado ao departamento para o qual ele trabalha.
Grau de um tipo relacionamento o nmero de entidades que
participam desse relacionamento. Em particular, grau 2 = binrio
(mais frequentes), grau 3 = ternrio.
Nome do papel indica o papel que cada tipo entidade desempenha
em um tipo relacionamento. Por exemplo, no tipo relacionamento
TRABALHA_PARA, o EMPREGADO desempenha o papel de trabalhador,
enquanto o DEPARTAMENTO desempenha o papel de empregador.Os nomes
dos papis no so estritamente necessrios quando todos os tipos
entidades participantes do relacionamento so diferentes.
Entretanto, um mesmo tipo entidade pode participar mais de uma vez
em um mesmo tipo relacionamento e, neste caso, os nomes dos papis
so fundamentais para definir o sentido de cada participao. Esses
tipo relacionamentos so chamados relacionamentos
recursivos.Exemplo: tipo relacionamento SUPERVISAO, em que o tipo
entidade EMPREGADO participa duas vezes: uma no papel de
supervisor, outra no papel de supervisionado.
Restries em Tipos RelacionamentoExistem restries (determinadas
por situaes do mini-mundo) que limitam a possibilidade de combinaes
de entidades que podem participar de um relacionamento. Exemplo: um
empregado pode apenas trabalhar para um nico departamento.No modelo
ER, podemos definir dois tipos principais de restries:
1. Razo de cardinalidade em um relacionamento binrio, ela
especifica o nmero mximo de instncias do relacionamento em que uma
entidade pode participar. Ex: no relacionamento TRABALHA_PARA,
DEPARTAMENTO:EMPREGADO tem razo 1:N (ou seja, um departamento pode
empregar qualquer nmero (= 0 ou mais) de empregados, mas um
empregado pode trabalhar para apenas 1 departamento. As razes de
cardinalidade possveis so 1:1, 1:N, N:1 e M:N.
2. Restrio de participao determina o nmero mnimo de instncias de
relacionamento em que uma entidade deve participar. Por essa razo,
tambm chamada de restrio de cardinalidade mnima. Ela pode ser:
total exemplo: todo empregado deve trabalhar para um
departamento ou seja, um empregado s pode existir se estiver
associado a um departamento. Assim, EMPREGADO tem participao total
no relacionamento. Esse tipo de participao tambm conhecido como
dependncia de existncia.
parcial exemplo: nem todo empregado gerencia um departamento.
Assim, EMPREGADO tem uma participao parcial no tipo relacionamento
GERENCIA.
Atributos de Tipos RelacionamentoTipos relacionamento podem ter
atributos, de forma similar aos tipos entidade. importante observar
que atributos de tipos relacionamento 1:1 ou 1:N podem ser migrados
para um dos tipos entidade participantes. Exemplos
o atributo DataInicio para o tipo relacionamento GERENCIA pode
ser um atributo tanto de EMPREGADO quanto de DEPARTAMENTO, porque
esse um relacionamento 1:1.
o atributo DataInicio do tipo relacionamento 1:N TRABALHA_PARA
pode apenas ser
5
-
migrado para o tipo entidade EMPREGADO (ou seja, o lado N do
relacionamento), porque um empregado trabalha apenas para um 1
departamento.
Em relacionamentos M:N, os atributos so determinados pela
combinao das entidades participantes de uma instncia do
relacionamento, e no por uma entidade nica. Por essa razo, eles s
podem ser especificados como atributos de relacionamento.
importante observar que, em determinadas situaes, possvel
representar um relacionamento sem atributos em termos de atributos
nas entidades. Isso acontece em relacionamentos binrios do tipo 1:1
ou 1:N. No primeiro caso, aconselha-se a representar o
relacionamento como um atributo a mais na entidade com participao
total no relacionamento, enquanto no segundo caso, aconselha-se
incluir um atributo a mais na entidade com cardinalidade 1 no
relacionamento.
Tipo Entidade Fraca
Um tipo entidade fraca um tipo entidade que no possui um
atributo-chave. Um tipo entidade regular que possui um
atributo-chave chamado tipo entidade forte.
Entidades de tipos entidade fraca so identificadas por estarem
relacionadas (associadas) a entidades de um outro tipo entidade
(chamado de tipo entidade identificador ou tipo entidade
proprietria). Esse tipo de relacionamento chamado de relacionamento
identificador do tipo entidade fraca.
Um tipo entidade fraca sempre tem uma restrio de participao
total em relao ao seu relacionamento identificador.
Um tipo entidade fraca normalmente tem uma chave parcial, que um
conjunto de atributos que identifica univocamente as entidades
fracas que esto relacionadas a uma mesma entidade proprietria. No
pior caso, o atributo composto por todos os atributos do tipo
entidade fraca ser a chave parcial.
Quando um tipo entidade fraca no participante em tipos
relacionamento, ento ele pode ser definido como um atributo
complexo (composto, multivalorado) em seu tipo entidade
proprietria.
Resumo sobre o modelo ER: O modelo Entidade-Relacionamento
constitudo basicamente por 3 tipos de elementos:
entidades, relacionamentos e atributos. Tipo entidades so
caracterizados por:
um nome atributos, que, por sua vez, so caracterizados por:
simples X compostos mono X multivalorados armazenado X derivado
atributo-chave domnio de valores
tipo entidade forte X tipo entidade fraca (ie, sem
atributo-chave) Tipo relacionamentos so caracterizados por:
grau do relacionamento (binrio, ternrio, etc.) nomes de papis
restries (razo de cardinalidade e participao) atributos
relacionamento identificador associado a tipos entidade fraca e
tipos entidade
proprietria
6
-
Figura 2 - Resumo da Notao para Diagramas ER (prxima proposta
original, de Chen, 1976).
7
-
Figura 3 Um diagrama do esquema ER para o banco de dados
EMPRESA.
8
-
3. O Modelo Relacional de Dados
O modelo relacional um modelo de dados de implementao,
introduzido por Ted Codd, da IBM Research, em 1970. Esse modelo
atraiu grande ateno devido sua simplicidade e base matemtica. O
modelo usa como bloco de construo bsico o conceito de relao
matemtica e como base terica a teoria dos conjuntos e a lgica de
predicados de primeira ordem. O modelo relacional representa o BD
como uma coleo de relaes, em que cada relao pode ser vista
informalmente como uma tabela de valores. Cada linha de uma tabela
representa uma coleo de valores de dados relacionados. O nome da
tabela e o nome das colunas so usados para ajudar na interpretao do
significado dos valores de cada linha. Todos os valores em uma
mesma coluna so de um mesmo tipo de dados.Na terminologia do modelo
relacional, uma linha chamada de tupla, e os nomes das colunas so
chamados de atributos e a tabela uma relao. O tipo de dado que
descreve os valores que podem aparecer em cada coluna chamado de
domnio.
Um esquema de relao R, denotado por R(A1 , A2 , ..., An ), um
conjunto de atributos R={A1, A2,..., An} . Cada atributo Ai indica
o nome do papel de algum domnio D no esquema de relao R. D chamado
domnio de Ai e denotado por dom(Ai). Uma relao esquema utilizada
para descrever uma relao e R o nome dessa relao. O grau de uma
relao o nmero de atributos da relao. Considere o exemplo de um
esquema de relao de grau 7, que descreve estudantes
universitrios:
ESTUDANTE(Nome, NSS, Telefone, Endereco, Anos, MPA)
Usando o tipo de dado de cada atributo, a definio algumas vezes
descrita por:
ESTUDANTE(Nome: string, NSS: string, Telefone: string, Endereco:
string, Anos: integer, MPA: real)
Nesta relao esquema, ESTUDANTE o nome da relao esquema, que tem
7 atributos.Pode-se especificar alguns domnios para atributos da
relao ESTUDANTE:
dom(Nome)=Nomesdom(NSS)=Nmero do seguro
socialdom(Telefone)=Nmero de telefone
nacionaldom(TelComercial)=Nmero de telefone nacionaldom(MPA)=Mdia
dos Pontos Acumulados
Uma relao r (ou instncia de relao) do esquema de relao R(A1 , A2
, ..., An ), tambm denotada por r(R), um conjunto de tuplas r={ t1
, t2 , ..., tm }. Cada tupla t uma lista ordenada de n valores t=,
onde cada valor vi , 1 i n, um elemento do dom(Ai ) ou um valor
especial null . So utilizados, com frequncia, os termos inteno da
relao para o esquema R e extenso da relao para a instncia r(R).A
figura a seguir mostra um exemplo de uma relao ESTUDANTE , que
corresponde ao esquema estudante definido anteriormente:
9
-
Figura 4. Exemplo de relao em um um banco de dados
relacional.(Obs.: corrigir nomes dos atributos na figura do
esquema.)
Esquemas de um BD Relacional
Um esquema de um banco de dados relacional S um conjunto de
esquemas de relao S = {R1, R2, , R3} e um conjunto de restries de
integridade RI. Um estado de um BD relacional DB com esquema S um
conjunto de relaes DB = {r1, r2, , rm} tal que ri uma instncias de
Ri e que satisfaz as restries de integridade especificadas em RI.O
termo banco de dados relacional refere-se, implicitamente, ao
esquema e suas instncias.
Restries do Modelo Relacional
O estado de um BD como um todo corresponde aos estados de todas
as suas relaes em um determinado instante. Geralmente, h muitas
restries para os valores reais em um estado do BD, que so derivadas
de regras do minimundo que o BD representa. Algumas restries so
inerentes ao modelo relacional. Exemplos delas so:
j que uma relao definida como um conjunto de tuplas e,
matematicamente, um conjunto no possui elementos repetidos, ento
uma relao no possui tuplas repetidas;
as tuplas em uma relao no possuem qualquer ordem em particular,
j que matematicamente, os elementos de um conjunto no possuem ordem
entre eles. Entretanto, em um arquivo, os registros so fisicamente
armazenados na memria, ento sempre h uma ordem entre os registros.
Analogamente, quando exibimos uma relao em uma tabela, as linhas so
exibidas em uma certa ordem.
Outra restries podem ser expressas diretamente sobre o esquema
do modelo de dado, como as seguintes:
restries de domnio Essas restries especificam que, dentro de
cada tupla, o valor de cada atributo A deve ser um valor atmico do
domnio dom(A);
restries de chaveComo dito anteriormente, uma relao no possui
duas tuplas iguais, o que equivale a dizer
que no existe em uma relao duas tuplas que possuam a mesma
combinao de valores para todos os seus atributos. Mas normalmente,
existem subconjuntos de atributos de um esquema de relao R com a
propriedade de que duas tuplas em qualquer estado de relao r de R
tenham a mesma combinao de valores para esses atributos. Qualquer
um desses subconjuntos chamado de superchave de R. Uma superchave
especifica uma restrio de unicidade, na qual duas tuplas
10
-
distintas em qualquer estado r de R no podem ter o mesmo valor
para os atributos da superchave. Uma chave K de um esquema R uma
superchave de R com a propriedade adicional de ser mnima, ou seja,
no podemos remover dela nenhum atributo e ainda manter a restrio de
unicidade. Um esquema de relao pode possuir mais de uma chave;
nesses casos, cada uma das chaves chamada de chave candidata.
Geralmente, indica-se uma das chaves candidatas como chave primria
da relao; essa a chave usada para identificar as tuplas da
relao.
As restries de chave definem as chaves primrias de cada esquema
de relao.Num esquema de relao, os atributos da chave primria devem
aparecer sublinhados.
restries em nullEssa restrio, definida sobre atributos,
especifica se valores null so ou no permitidos.
restries de integridade de entidadeEstabelecem que nenhum valor
de chave primria pode ser null. Ter valores null para uma chave
primria implica em no podermos identificar alguma tupla.
restries de integridade referencialDiferentemente de uma restrio
de chave e de uma restrio de integridade de entidade, que so
definidas sobre cada relao individualmente, uma restrio de
integridade referencial definida entre duas relaes. Ela usada para
manter a consistncia entre tuplas nas duas relaes. Informalmente,
uma a restrio de integridade referencial declara que que uma tupla
em uma relao, que faz referncia a uma outra relao, deve se referir
a uma tupla existente nessa relao.Essa referncia feita por meio de
chaves estrangeiras. Uma chave estrangeira FK de um esquema de
relao R1 para um esquema de relao R2 um subconjunto de atributos de
R1 que possuem os mesmo domnios dos atributos da chave primria PK
de R2. Alm disso, toda tupla t1 no estado corrente r1 de R1 ou
possui um valor null para FK ou t1[FK] = t2[PK], onde t2 uma tupla
do estado corrente r2 de R2.
A figura a seguir mostra um esquema no modelo relacional com
restries de integridade.
Figura 5. Exemplo de esquema no modelo relacional com restries
de integridade.
11
-
Existem tambm outras restries mais gerais, chamadas s vezes de
restries de integridade semnticas, que podem ser especificadas e
verificadas numa base de dados relacional. Exemplo: o salrio de um
empregado no pode exceder o do seu supervisor. Esse tipo de restrio
pode ser implementado nas aplicaes que acessam o banco, ou por meio
de outros mecanismos oferecidos pelo prprio SGBD, como os
gatilhos.
Operaes de Atualizao
As operaes do modelo relacional podem ser divididas em duas
categorias: recuperaes e atualizaes.
As recuperaes podem ser especificadas por meio de operaes da
lgebra Relacional que prov fundamentos formais para as operaes de
consulta do modelo relacional. Alm disso, ela usada como uma base
para implementar e otimizar consultas nos SGBDRs. Alguns dos seus
conceitos esto implementados na linguagem de consulta padro para os
SGBDRs , que a SQL (Structured Query Language) .
Existem trs tipos bsicos de operao de atualizao sobre relaes:
insero de tuplas, remoo de tuplas e modificao de valores de
atributos de tuplas.Quando essa operaes so aplicadas, as restries
de integridade especificadas no esquema do banco de dados
relacional no devem ser violadas.
A maioria dos BDs relacionais usa uma linguagem de manipulao dos
dados de alto nvel - a SQL - e suporta de forma limitada as vises
(views) de usurios.
12
-
4. Mapeamento do Modelo ER para o Modelo de Dados Relacional
O passo seguinte modelagem conceitual dos dados o mapeamento do
diagrama da base de dados global no modelo de dados de alto-nvel
(como o MER), para um modelo de dados de implementao. Existem
diferentes tipos de modelos de dados de implementao (hierrquico,
rede, relacional, oo, etc.). Para cada um desses modelos, pode-se
definir estratgias de traduo a partir de um DER especfico.
A Tabela 1 sumariza as regras de mapeamento dos elementos de um
modelo ER para elementos do modelo de dados relacional.
Tabela 1 Correspondncia entre os Modelos ER e
Relacional(Legenda: CE = Chave Estrangeira, CP = Chave Primria)
Modelo Modelo RelacionalTipo entidade forte E - Criar uma relao
entidade R.
- Incluir em R todos os atributos simples e as componentes
simples dos atributos compostos de E.- Entre as chaves de E,
escolher uma para ser a CP em R.
Tipo entidade fraca F (de uma entidade forte E)
- Criar uma relao entidade fraca R.- Incluir em R todos os
atributos simples e as componentes simples dos atributos compostos
de F.- Inserir como CE de R a CP da relao correspondente sua
entidade forte E.- Definir como CP de R a combinao da CP da relao
de E e da chave parcial de F (quando houver).
Tipo relacionamento binrio 1:1 R - Identificar as relaes S e T
correspondentes aos tipos entidade participantes do relacionamento
R.- Escolha uma das relaes, por exemplo S, para incluir como CE de
S a chave primria de T. ( melhor escolher o tipo entidade com
participao total no relacionamento.- Inclua em S todos os atributos
simples e as componentes simples dos atributos compostos de R.-
Obs.: quando a participao de S e T em R total, ento uma outra opo
conveniente combinar S e T em uma nica relao.
Tipo relacionamento binrio 1:N R no fraco
- Identificar o tipo entidade S que participa do lado N de R.-
Inclua como CE de S a CP da relao T que representa o tipo entidade
do lado 1 do relacionamento.
Tipo relacionamento binrio N:M R - Criar uma nova relao S para
representar S.- Incluir como CE em S as CPs das relaes que
representam os tipos entidade participantes de R.- Definir como CP
de S a combinao das CEs criadas no passo anterior.
13
-
- Obs.: Sempre possvel mapear tipos relacionamento 1:1 ou 1:N da
mesma maneira que os M:N, mas isso s vivel quando h poucas
instncias do relacionamento (para se evitar os nulls) ou quando a
cardinalidade ser modificada futuramente.
Tipo relacionamento n-rio R (com n>2)
- Criar uma relao S para representar R.- Incluir como CE em S as
CPs das relaes que representam os tipos entidade participantes em
R.- Incluir em S os atributos simples e os componentes simples dos
atributos compostos de R.- Geralmente, a CP de S definida como a
combinao das CEs includas no passo anterior.
Atributo multivalorado A - Criar uma nova relao R que inclua um
atributo correspondente a A e a CP K da relao que representa o tipo
entidade ou o tipo relacionamento que tem A como atributo. -
Definir como CP de R a combinao de K e A.- Se A composto, inclua em
R os atributos simples componentes.
Discusso: Um tipo relacionamento do modelo ER no representado
explicitamento no modelo
relacional; tipos relacionamento so representados por meio de
chaves estrangeiras. Os pares de tuplas relacionadas de relaes
distintas podem ser combinados por meio de operaes de EQUIJOIN (ou
NATURAL JOIN).
Para cada atributo multivalorado do modelo, uma relao separada
deve ser criada. Isso ocorre porque o modelo relacional bsico no
permite valores mltiplos para um atributo em uma nica tupla.
Quando a converso de um modelo ER para um modelo relacional
feita corretamente, seguindo as regras de mapeamento de forma
correta, o modelo relacional resultante j est no mnimo na 3 Forma
Normal.
A Figura 5 mostra o esquema relacional que foi derivado do DER
da Figura 4 seguindo o procedimento de mapeamento definido na
Tabela 1.
14
Projeto Conceitual, Lgico e Fsico de Bancos de Dados1. Introduo2
Modelo Entidade-Relacionamento (ER)2.1 Entidades e Atributos
2.2 Relacionamentos, Papis e Restries EstruturaisResumo sobre o
modelo ER:
3. O Modelo Relacional de Dados4. Mapeamento do Modelo ER para o
Modelo de Dados Relacional