Buscar

Modelagem de Dados Peter Chen

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 80 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

O MÉTODO
ENTIDADE-RELACIONAMENTO
PARA PROJETO LÓGICO
DE BANCOS DE DADOS
1. INTRODUÇÃO
O gerenciamento de dados tornou-se uma das atividades mais
importantes em muitas organizações. Conforme nos movemos para uma
sociedade cada vez mais orientada para a informação, a determinação de
como organizar os dados para maximizar sua utilidade torna-se um
problema muito importante. Sistemas de arquivo e sistemas de banco de
dados baseados em computador simplificam a tarefa de manter e recu-
perar uma grande quantidade de dados. Contudo, o problema de como
organizar os dados para utilizar a capacidade total do sistema de ar-
quivos ou do banco de dados não é bem compreendido por muitas pessoas
que trabalham em processamento de dados. A finalidade desta obra é
proporcionar uma metodologia que torne o processo de organização de
dados mais fácil de ser compreendido e seguido.
1.1 TERMINOLOGIA BÁSICA
Nesta seção, vamos explicar vários conceitos básicos em geren-
ciamento de dados.
1
Rafael Gama de Macedo Jr.
Um registro é uma coleção de itens de dados. Por exemplo, um
registro de funcionário contém os dados relevantes de um funcionário
específico. (Ver Figura 1.) Um registro é dividido em vários campos. Na
Figura 1, NOME, SALÁRIO e ENDEREÇO são os nomes dos campos de
um registro de funcionário. Nomes de campos são utilizados para inter-
pretar o significado dos itens de dados (ou valores) no registro. Portanto,
"ROBERT JOHNSON" é o "NOME" de um funcionário específico e "10K"
é o seu "SALÁRIO". Um arquivo é uma coleção de registros do mesmo
tipo. Por exemplo, o arquivo de FUNCIONÁRIO é uma coleção de regis-
tros de FUNCIONÁRIO. (Ver Figura 2.)
Um banco de dados é uma coleção de registros de tipos dife-
rentes. (Ver Figura 3.) Os registros em um banco de dados são inter-
ligados, de forma que itens de dados relevantes em registros diferentes
possam ser recuperados sem dificuldade. Por exemplo, podemos desejar
interligar todos os registros de funcionários que trabalhem para o mes-
mo departamento (Ver Figura 4), de modo que seja fácil encontrar quem
trabalha para um departamento específico. A Figura 4 ilustra a estru-
tura física de dados do banco de dados na qual as conexões entre re-
gistros de DEPARTAMENTO e registros de FUNCIONÁRIO são
implementadas por cadeias. Um registro de DEPARTAMENTO tem um
ponteiro que aponta para o primeiro registro de FUNCIONÁRIO na
cadeia. Cada registro de FUNCIONÁRIO na cadeia tem um ponteiro que
aponta para o registro de FUNCIONÁRIO seguinte. O último registro de
FUNCIONÁRIO aponta de volta para o registro de DEPARTAMENTO.
A Figura 4 ilustra os relacionamentos de ocorrências de registros no
banco de dados, mas é detalhada demais para ser útil na comunicação de
relacionamentos-chaves no banco de dados. A Figura 5 é uma maneira
simples de representar a organização de registros da Figura 4. Cada
retângulo na Figura 5 representa um tipo de registro e a seta representa
a associação de registros de FUNCIONÁRIO com seus registros de
DEPARTAMENTO. Há uma outra distinção entre as Figuras 4 e 5; a
Figura 5 representa a estrutura lógica de dados do banco de dados, uma
vez que mostra apenas a conexão entre o tipo de registro de DEPARTA-
MENTO e o tipo de registro de FUNCIONÁRIO, mas não mostra como
essa conexão é implementada.
2 Modelagem de Dados
Figura 2 Um arquivo de FUNCIONÁRIO.
O método entidade-relacionamento para projeto lógico de bancos de dados 3
LEE GOODMAN 25 K N.Y., N.Y
JEAN WALTERS 16K SAN JOSE, CALIF.
ROBERT JOHNSON 10K BOSTON, MASS.
NOME SALÁRIO ENDEREÇO
NOMES DE CAMPO
VALORES
Figura 1 Um registro de FUNCIONÁRIO.
ROBERT JOHNSON 10K BOSTON, MASS.
Figura 4 Registros relevantes no banco de dados são interligados (estrutura física
de dados do banco de dados).
Figura 5 Estrutura lógica de dados do banco de dados.
4 Modelagem de Dados
FUNCIONÁRIO
DEPARTAMENTO
FUNCIONÁRIO A
DEPARTAMENTO A
FUNCIONÁRIO B
DEPARTAMENTO B
FUNCIONÁRIO C
REGISTROS DE FUNCIONÁRIO
UM BANCO DE DADOS
REGISTROS DE DEPARTAMENTO
DEPARTAMENTO A
DEPARTAMENTO B
FUNCIONÁRIO A
FUNCIONÁRIO B
FUNCIONÁRIO C
Figura 3 Um banco de dados com dois tipos de registros.
O método entidade-relacionamento para projeto lógico de bancos de dados 5
1.2 PROJETO LÓGICO DE BANCO DE DADOS E
PROJETO FÍSICO DE BANCO DE DADOS
O projeto de bancos de dados pode ser dividido em duas etapas:
projeto lógico e projeto físico. (Ver Figura 6.)
O projeto físico de banco de dados é o processo de selecionar uma
estrutura física de dados para uma dada estrutura lógica de dados. Por
exemplo, há pelo menos três (3) estruturas físicas de dados possíveis
dentro de um sistema de banco de dados CODASYL para dar suporte à
mesma estrutura lógica de dados da Figura 6. A primeira é usar um
"ponteiro para frente" para ligar todos os registros de FUNCIONÁRIO
no mesmo departamento. A segunda é acrescentar "ponteiros para trás"
aos registros de FUNCIONÁRIO. A terceira é usar um "conjunto de
ponteiros" no qual o registro de DEPARTAMENTO mantém ponteiros
para todos os registros de FUNCIONÁRIO relacionados. Cada uma
dessas três estruturas físicas de dados tem suas vantagens e desvanta-
gens. A primeira é fácil de implementar e é adequada para proces-
samento seqüencial dos registros de FUNCIONÁRIO. A segunda torna
relativamente fácil encontrar os registros de FUNCIONÁRIO anteriores
na cadeia à custa de mais espaço de armazenamento necessário devido
aos ponteiros para trás (também torna o processo de exclusão mais
eficiente). A principal vantagem da terceira estrutura física de dados é
que todos os registros de FUNCIONÁRIO que pertençam ao mesmo
departamento podem ser recuperados simultaneamente. É importante
observar que nenhuma estrutura física de dados é universalmente
ótima. A finalidade do projeto físico de banco de dados é selecionar a
estrutura física de dados que seja mais adequada para determinado
ambiente de aplicação. Embora o projeto físico de banco de dados seja
um tópico importante, não vamos aprofundar a discussão a esse respeito
nesta obra.
O projeto lógico de banco de dados é o processo de planejar a
estrutura lógica de dados para o banco de dados. (Ver Figura 6.) Isto
envolve uma análise do ambiente de aplicação e dos tipos de estruturas
lógicas de dados disponíveis no sistema de banco de dados. Atualmente,
há poucas ferramentas para auxiliar o processo de projeto lógico de
banco de dados; o projetista de banco de dados geralmente tem de contar
com sua intuição e experiência. Como resultado, muitos bancos de dados
existentes hoje em dia não são adequadamente projetados.
Nesta obra, vamos nos concentrar no processo de projeto lógico
de banco de dados e introduzir uma ferramenta útil e prática para
ajudar o projetista de banco de dados.
Figura 6 Projeto lógico e físico de banco de dados.
1.3 SISTEMAS DE BANCOS DE DADOS E MODELOS DE
DADOS
Há muitos sistemas de bancos de dados em uso no momento. Eles
podem ser classificados em três (3) categorias principais: hierárquico, de
rede e relacionai. Uma das principais diferenças entre eles é o tipo de
estruturas lógicas de dados que podem ser suportadas. Sistemas hierár-
6 Modelagem de Dados
FUNCIONÁRIO
FUNCIONÁRIO A FUNCIONÁRIO B
DEPARTAMENTO A
FUNCIONÁRIO BFUNCIONÁRIO A
DEPARTAMENTO A
PONTOS DE
INTERESSE
PARA A
EMPRESA
MUNDO REAL ESTRUTURA LÓGICA DE DADOS ESTRUTURA FÍSICA DE DADOS
DEPARTAMENTO A
FUNCIONÁRIO A FUNCIONÁRIO B
DEPARTAMENTO
PROJETO
FlSICO
DE
BANCO
DE
DADOS
O método entidade-relacionamento para projeto lógico de bancos de dados 7
quicos de bancos de dados, como o Information Management System
(IMS) da IBM, requerem que os tipos de registro de dados sejam organi-
zados em uma forma hierárquica. (Ver Figura 7.) Essa estrutura hierár-
quica de dados funciona bem com alguns bancos de dados, mas torna-sedifícil projetar bancos de dados usando um sistema hierárquico quando
não existe uma hierarquia natural entre os tipos de registro. Sistemas
de bancos de dados em rede (ou CODASYL), tais como o Integrated Data
Store (IDS) da Honeywell, o DMS-1100 da UNIVAC e o IDMS da
Cullinane, proporcionam capacidades mais complexas de estruturas de
dados do que os sistemas hierárquicos. Por exemplo, os sistemas de rede
permitem que um tipo de registro tenha múltiplos tipos de registro como
"pais". (Ver Figura 8.) Os sistemas relacionais (a maioria dos quais é
experimental no momento)* usam tabelas como estruturas lógicas de
dados. (Ver Figura 9.)
Em resumo, o projeto lógico de bancos de dados preocupa-se com
a organização de dados em uma forma aceitável para o sistema de banco
de dados subjacente. (Ver Figura 10.)
Figura 7 Estrutura "hierárquica" de dados.
"No momento" se refere a 1977, atualmente esses sistemas são de uso generalizado. (N. do R. T.)
DEPARTAMENTO
FUNCIONÁRIO
HABILIDADE
Figura 8 Estrutura de dados "de rede".
TABELA DE DEPARTAMENTO TABELA DE FUNCIONÁRIO
NºD
1
5
8
ORÇAMENTO
10M
5M
20M
NOME
JOHNSON
GOODMAN
WALTERS
SALÁRIO
10K
15 K
16 K
ENDEREÇO
BOSTON
NYC
SAN JOSÉ
TABELA DE HABILIDADE
NºH
5
2
1
NOME-H
FORTRAN
COBOL
PM
TABELA DE
FUNCIONÁRIO-HABILIDADE
NOME
JOHNSON
JOHNSON
GOODMAN
GOODMAN
NºH
1
2
1
5
TABELA DE
DEPARTAMENTO-FUNCIONÁRIO
NºD
1
1
5
NOME
JOHNSON
GOODMAN
WALTERS
Figura 9 Estrutura de dados "relacional" ("tabela").
8 Modelagem de Dados
DEPARTAMENTO
FUNCIONÁRIO HABILIDADE
FUNCIONÁRIO-HABILIDADE
Figura 10 Projeto Lógico de Banco de Dados.
1.4 PROBLEMAS NO PROJETO LÓGICO DE BANCOS DE
DADOS
O projeto de bancos de dados é, hoje em dia, um processo compli-
cado, uma vez que o projetista tem de considerar não apenas como mode-
lar o mundo real, mas também as limitações do sistema de banco de dados
e a eficiência da recuperação e atualização dos dados. Por exemplo:
1. O projetista de banco de dados é restringido pelos tipos limi-
tados de estrutura de dados que são suportados pelo sistema
de gerência de banco de dados. Por exemplo, os relaciona-
mentos muitos-para-muitos entre dois tipos de entidades,
O método entidade-relacionamento para projeto lógico de bancos de dados 9
MUNDO REAL
PONTOS DE
INTERESSE
PARA A
EMPRESA
PROJETO LÓGICO
DE BANCO DE DADOS REDE
(COMO?)
RELACIONAL
HIERÁRQUICA
ESTRUTURA LÓGICA
DE DADOS
(ESQUEMA DO USUÁRIO)
tais como os relacionamentos entre funcionários e projetos,
não podem ser representados diretamente em muitos sis-
temas de banco de dados.
2. O projetista de banco de dados pode ter de considerar a via de
acesso dos registros (ou seja, como acessar um tipo particular
de registro). Por exemplo, a suposição implícita na Figura 3 é
que registros de FUNCIONÁRIO têm de ser acessados por
meio do registro de DEPARTAMENTO correspondente.
3. O projetista de banco de dados pode querer tornar a recu-
peração e a atualização mais eficientes. Assim, os dados sobre
uma entidade no mundo real podem ser colocados em mais de
um registro para propósitos de eficiência. Por exemplo, os
itens de dados sobre um funcionário podem ser agrupados em
dois registros: FUNCIONÁRIO-PRINCIPAL e FUNCIO-
NÁRIO-DETALHE.
Há dois problemas no método convencional de projeto de banco
de dados:
1. O projetista de banco de dados tem de considerar muitas
questões ao mesmo tempo, o que torna a tarefa de projeto de
banco de dados muito difícil.
2. O resultado final do projeto lógico de banco de dados é o
esquema do usuário (ou seja, uma descrição da visão do banco
de dados pelo usuário). Uma vez que o esquema do usuário
representa a solução do projetista para as questões compli-
cadas mencionadas acima, não é difícil perceber por que os
esquemas do usuário são geralmente difíceis de ser com-
preendidos e alterados.
1.5 UM NOVO MÉTODO PARA PROJETO DE BANCO DE
DADOS: O MÉTODO ENTIDADE-RELACIONAMENTO
Vamos descrever um novo método para projeto lógico de bancos
de dados chamado método Entidade-Relacionamento (E-R). A idéia-cha-
10 Modelagem de Dados
ve do método E-R é acrescentar um estágio intermediário ao projeto
lógico de bancos de dados. (Ver Figura 11.) O projetista de banco de dados
primeiro identifica as entidades e relacionamentos que são de interesse
para a empresa usando a técnica diagramática Entidade-Relacio-
namento (E-R). Nesse estágio, o projetista deve examinar os dados do
ponto de vista da empresa como um todo (não a visão de um progra-
mador de aplicação específico). Portanto, vamos chamar a descrição da
visão da empresa quanto aos dados de "esquema da empresa". O es-
quema da empresa deve ser uma representação "pura" do mundo real e
deve ser independente de considerações sobre armazenamento e efi-
ciência. O projetista de banco de dados primeiro projeta o esquema da
empresa e então o traduz a um esquema do usuário para seu sistema de
banco de dados. (Ver Figura 11.)
Figura 11 Esquema da empresa - uma etapa intermediária no projeto lógico de
bancos de dados.
O método entidade-relacionamento para projeto lógico de bancos de dados 11
MUNDO REAL ESQUEMA DA
EMPRESA
PONTOS DE
INTERESSE
PARA A
EMPRESA
HIERÁRQUICO
REDE
RELACIONAL
ESQUEMA DO USUÁRIO
1.6 VANTAGENS DO MÉTODO ENTIDADE-
RELACIONAMENTO
Os métodos convencionais de projeto lógico de bancos de dados
usualmente apresentam uma única fase: mapeamento de informações
sobre objetos do mundo real diretamente em um esquema do usuário. O
método E-R para projeto lógico de bancos de dados consiste em duas
fases principais: (1) Definição do esquema da empresa usando o dia-
grama de Entidade-Relacionamento; e (2) tradução do esquema da em-
presa em um esquema do usuário. As vantagens do método E-R são:
1. A divisão da funcionalidade e trabalho em duas fases torna o
processo de projeto de banco de dados mais simples e mais
bem organizado.
2. O esquema da empresa é mais fácil de ser projetado do que o
esquema do usuário, uma vez que não precisa ser restrito
pelas características do sistema de banco de dados e é inde-
pendente de considerações sobre armazenamento e eficiência.
3. O esquema da empresa é mais estável do que o esquema do
usuário. Se uma pessoa quiser mudar de um sistema de banco
de dados para outro, provavelmente terá de alterar o esque-
ma do usuário, mas não o esquema da empresa, uma vez que
este é independente dos sistemas de banco de dados usados.
O que precisa ser feito é um remapeamento do esquema da
empresa para um esquema do usuário compatível com o novo
sistema de banco de dados. De forma semelhante, se uma
pessoa quiser mudar o esquema do usuário para otimizar um
novo programa de aplicação, não é necessário alterar o esque-
ma da empresa, mas apenas remapeá-lo para um novo esque-
ma do usuário.
4. O esquema da empresa expresso pelo diagrama de entidade-
relacionamento é mais facilmente compreendido por pessoas
não ligadas ao processamento eletrônico de dados.
12 Modelagem de Dados
Paulo César
Destacar
Paulo César
Destacar
O método entidade-relacionamento para projeto lógico de bancos de dados 13
2. MÉTODO E-R E PROPOSTA
ANSI/X3/SPARC
2.1 PROPOSTA ANSI/X3/SPARC
O conceito do esquema de empresa é muito semelhante ao con-
ceito de esquema conceituai proposto pelo grupo ANSI/X3/SPARC. Nesta
seção, vamos discutir a arquitetura ANSI/X3/SPARC e como aplicar a ela
o método E-R.
No outono de 1971, o Comitê sobre Computador e Processamento
dé Informações (abreviado com Comitê X3) do American National
Standards Institute (ANSI) formou um grupo de estudos especial para
determinar quais (se há algum) aspectos dos sistemas de gerenciamento
de bancos de dados são candidatos adequados ao desenvolvimento de
padrões. O grupo de estudos especial, que é chamadoComitê de Planeja-
mento e Requisitos de Padrões (Standards Planning and Requirements
Committee — SPARC), consiste em representantes da comunidade de
usuários, fabricantes de hardware e universidades.
O grupo ANSI/X3/SPARC gastou tempo e esforços consideráveis
ponderando diferentes visões da teoria dos bancos de dados e desen-
volvendo um vocabulário que fosse consistente e bem compreendido por
todos. Como resultado, seu trabalho despertou muita atenção na comu-
nidade de banco de dados.
O grupo ANSI/X3/SPARC descobriu que não é desejável desen-
volver padrões que especifiquem como os componentes de um sistema de
gerenciamento de banco de dados devem funcionar, sendo mais recomen-
dável centrar-se em como os componentes se integram (ou seja, as
interfaces). Com isso em mente, o relatório delineia uma arquitetura de
três esquemas de um sistema de gerência de bancos de dados. (Ver
Figura 12.) Os sistemas de gerência de bancos de dados atuais usual-
mente possuem uma estrutura de dois níveis: a estrutura lógica (ou seja,
a estrutura de dados como é vista pelo programador) e a estrutura física
(ou seja, a estrutura de dados como é vista pelo computador).
A proposta ANSI/X3/SPARC apresenta uma estrutura de três
níveis: esquema externo, esquema conceituai e esquema interno. (Ver
Figura 12.) O esquema externo (esquema do usuário) representa a visão
do usuário (ou seja, do programador) quanto aos dados. Em outras
palavras, um esquema externo é uma descrição de dados visíveis para um
programa de aplicação em termos de nomes e características de dados. O
esquema interno representa a organização física de dados nos disposi-
tivos de armazenamento. Contém também os detalhes de integridade,
recuperação e maneiras eficientes de recuperar e atualizar dados. O
esquema conceituai representa a visão da empresa quanto aos dados. É
uma descrição de um modelo da empresa em termos de suas entidades,
atributos e relacionamentos entre si. Contém também os requerimentos
para operações permitidas, integridade semântica e privacidade. O es-
quema conceituai visa proporcionar uma visão estável dos dados.
Figura 12 Arquitetura ANSI/X3/SPARC.
14 Modelagem de Dados
MUNDO REAL
PONTOS DE
INTERESSE PARA
A EMPRESA
DISPOSITIVOS
DE ARMAZENAMENTO
ESQUEMA
INTERNO
ESQUEMA
CONCEITUAL
ESQUEMA ,
DO USUÁRIO
USUÁRIO
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
2.2 ESQUEMA CONCEITUAL E ESQUEMA DA EMPRESA
Qual é a diferença entre o esquema conceituai proposto pelo
grupo ANSI/X3/SPARC e o esquema da empresa discutido nesta obra? A
resposta é que são quase a mesma coisa, exceto que o esquema con-
ceituai é necessário para servir como interface entre o esquema externo
e o esquema interno. (Ver Figura 12.)
Uma razão para usar o esquema conceituai como a interface é
reduzir o número de mapeamentos entre os esquemas externos e os
esquemas internos. Por exemplo, se há M esquemas externos e N esque-
mas internos, precisamos de M.N programas para fazer os mapeamentos
entre os esquemas externos e os esquemas internos. (Ver Figura 13.) Se
houver um esquema conceituai entre os esquemas externos e os esque-
mas internos, precisaremos de apenas M+N programas para fazer os
mapeamentos. (Ver Figura 14.) Portanto, o número de programas de
mapeamento é reduzido drasticamente.
N ESQUEMAS INTERNOS
Figura 13 Tradução entre esquemas externos e esquemas internos sem um esquema
conceituai.
O método entidade-relacionamento para projeto lógico de bancos de dados 15
M ESQUEMAS EXTERNOS
ESQUEMA
EXTERNO
Nº1
TRADUÇÕES
ESQUEMA
INTERNO
Nº1
ESQUEMA
INTERNO
Nº2
ESQUEMA
INTERNO
Nº N
ESQUEMA
EXTERNO
Nº M
ESQUEMA
EXTERNO
Nº 2
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Figura 14 Uso do esquema conceituai como interface entre esquemas internos e
externos.
Uma das metas da arquitetura ANSI/X3/SPARC é manter o
esquema conceituai relativamente estável, permitindo mudanças nos
esquemas externos e internos. Esta meta não parece difícil de ser atin-
gida, uma vez que o esquema conceituai representa a visão da empresa
quanto aos dados e deve ser relativamente estável em comparação à
visão do usuário quanto à visão física dos dados. Portanto, quando a
organização física do banco de dados é alterada ou os dados são transpor-
tados de dispositivos de armazenamento "antigos" para dispositivos de
armazenamento "novos", apenas alteramos o esquema interno, e não o
esquema conceituai ou os esquemas externos. Similarmente, se um
usuário quiser ver os dados como um certo tipo de organização, podemos
projetar um esquema externo para ele sem mudar o esquema conceituai
e os esquemas internos.
A não ser por servir como uma interface entre os esquemas
externos e internos, o esquema conceituai é a mesma coisa que o esque-
ma de empresa e podemos usar o diagrama de entidade-relacionamento
N ESQUEMAS INTERNOS
16 Modelagem de Dados
ESQUEMA
INTERNO
Nº 2
ESQUEMA
INTERNO
Nº N
ESQUEMA
INTERNO
Nº 1
ESQUEMA
EXTERNO
Nº 1
ESQUEMA
EXTERNO
Nº 2
ESQUEMA
CONCEITUAI.
ESQUEMA
EXTERNO
NºM
M ESQUEMAS EXTERNOS
O método entidade-relacionamento para projeto lógico de bancos de dados 17
para descrever o esquema conceituai. Além disso, uma vez que os esque-
mas externos podem ser expressos em termos de diferentes tipos de
estruturas de dados, tais como rede (CODASYL), hierárquica ou rela-
cionai (ver Figura 15), as regras de tradução entre diagramas E-R e
diferentes tipos de estruturas de dados discutidos adiante nesta obra
seriam muito úteis na implementação da arquitetura ANSI/X3/SPARC.
Figura 15 Os esquemas externos podem ser expressos em diferentes tipos de estru-
turas de dados.
2.3 TRÊS TIPOS DE ADMINISTRADORES DE BANCOS
DE DADOS
O grupo ANSI/X3/SPARC identificou três tipos de administra-
dores de bancos de dados:
ESQUEMA
INTERNO
ESQUEMA
CONCEITUAL
HIERÁRQUICA RELACIONALREDE
ESQUEMAS
EXTERNOS
Paulo César
Destacar
1. Administrador de empresa
O administrador de empresa define o esquema conceituai e, se
possível, o valida. Ele deve compreender muito bem as opera-
ções da empresa e o significado de suas informações (dados).
Ele é responsável pelo conteúdo, integridade e segurança do
banco de dados.
2. Administrador de banco de dados
O administrador de banco de dados define o esquema interno.
Ele projeta as estruturas físicas de dados, codificando esque-
mas, vias de acesso e colocação de dados em dispositivos de
armazenamento. Ele é responsável pela utilização eficiente
do espaço de armazenamento, assim como pelo desempenho
do sistema de banco de dados.
3. Administrador de aplicação
Um esquema externo representa uma visão dos dados pelo
programador de aplicação. Imagina-se que cada área geral de
aplicação terá seu próprio administrador de aplicação que
provê os esquemas externos para aquela área. Mas esses
esquemas externos têm de ser consistentes e deriváveis de
um único esquema conceituai. Observe que os mesmos esque-
mas externos podem ser usados por vários programadores de
aplicação, não necessariamente trabalhando no mesmo pro-
grama.
Estes três tipos de administradores representam três diferentes
papéis que podem ser desempenhados por um indivíduo ou um grupo de
pessoas. Embora as distinções entre esses três tipos de administradores
de banco de dados sejam claras em termos da arquitetura de três esque-
mas do ANSI/X3/SPARC, não são claras nos ambientes de bancos de
dados convencionais. Na verdade, o "administrador de banco de dados",
como é definido hoje em dia em muitas organizações, tem todas as
responsabilidades dos três tipos de administradores mencionados. Em
termos do âmbito desta monografia, preocupamo-nos primariamente
com a responsabilidade do administrador de empresa (ou seja, a tarefa
de modelaro mundo real) e a responsabilidade do administrador de
aplicação (ou seja, a tarefa de projetar os esquemas externos).
18 Modelagem de Dados
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
O método entidade-relacionamento para projeto lógico de bancos de dados 19
2.4 RELEVÂNCIA DO MÉTODO E-R
Em suma, se a arquitetura ANSI/X3/SPARC tornar-se realidade,
o método E-R pode ser usado das seguintes maneiras:
1. No projeto do esquema conceituai.
2. Na tradução do esquema conceituai em esquemas externos.
3. DIAGRAMA DE ENTIDADE-
RELACIONAMENTO (E-R)
Neste capítulo, vamos introduzir a técnica diagramática de
entidade-relacionamento. Discutiremos primeiro o que são entidades e
relacionamentos e, então, explicaremos como descrever propriedades de
entidades e relacionamentos.
3.1 ENTIDADES E RELACIONAMENTOS
3.1.1 Tipos de Entidade
Uma entidade é uma "coisa" que pode ser distintamente identifi-
cada. As entidades podem ser classificadas em diferentes tipos, tais como
FUNCIONÁRIO e ACIONISTA. (Ver Figura 16.) No diagrama E-R, um
tipo de entidade é representado por um retângulo. (Ver Figura 17.)
Figura 16 Entidades e tipos de entidades.
20 Modelagem de Dados
FUNCIONÁRIO ACIONISTA
Paulo César
Destacar
Figura 17 Tipos de entidades são representados por retângulos.
Há muitas "coisas" no inundo real. Algumas delas são de inte-
resse para a empresa, e o resto não. É responsabilidade do projetista de
banco de dados selecionar os tipos de entidade que são mais adequados
para sua empresa.
3.1.2 Tipos de Relacionamento
Relacionamentos podem existir entre entidades. Por exemplo,
CASAMENTO é um relacionamento entre duas entidades humanas.
(Ver Figura 18.) Os relacionamentos podem ser classificados em
diferentes tipos de relacionamentos. Por exemplo, PROJ-FÜNC e
PROJ-GERENTE são dois tipos de relacionamentos diferentes entre
dois tipos de entidades, PROJ (projeto) e FUNC (funcionário). Na nota-
ção diagramática de entidade-relacionamento, um tipo de relaciona-
mento é representado por um losango com linhas conectadas a tipos de
entidades relacionadas. (Ver Figura 19.) As notações "m" e "1" associadas
ao tipo de relacionamento PROJ-GERENTE na Figura 16 indicam que
cada projeto tem apenas um gerente, mas que um funcionário pode ser o
gerente de muitos projetos. O V e "n" associados com o tipo de relacio-
namento PROJ-FUNC indicam que é um mapeamento muitos-para-
muitos. Isto é, cada projeto pode consistir em vários funcionários e cada
funcionário pode estar associado a mais de um projeto. Observe que
outros tipos de mapeamento entre entidades também são possíveis. Por
exemplo, o tipo de relacionamento CASAMENTO é um mapeamento
um-para-um entre entidades humanas. (Ver Figura 20.)
É possível definir um tipo de relacionamento entre mais de dois
tipos de entidades. Por exemplo, PARTE-FORN-PROJ, que descreve que
partes são abastecidas por fornecedores específicos para projetos especí-
ficos (Figura 21), é um tipo de relacionamento definido em três tipos de
entidades: PARTE, FORN (fornecedor) e PROJ (Figura 22).
O método entidade-relacionamento para projeto lógico de bancos de dados 21
FUNCIONÁRIO ACIONISTA
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Figura 18 CASAMENTO como um relacionamento entre duas entidades humanas.
Figura 19 Tipos de relacionamentos são representados por losangos.
Figura 20 CASAMENTO como um tipo de relacionamento entre entidades hu-
manas.
PESSOA
CASAMENTO
22 Modelagem de Dados
PROJ
PROJ-
GERENTE
FUNC
PROJ-FUNC
CASAMENTO
Nº PARTE
25
25
10
10
17
17
Nº FORNECEDOR
4
5
4
4
2
5
Nº PROJ
1
2
2
3
1
1
Figura 21 Informações sobre relacionamentos PARTE-FORN-PROJ.
Figura 22 PARTE-FORN-PROJ como um tipo de relacionamento.
Note que um relacionamento ternário usualmente não pode ser
substituído por três relacionamentos binários. Por exemplo, o relaciona-
mento ternário PARTE-FORN-PROJ na Figura 21 é substituído por três
relacionamentos binários: PARTE-FORN, FORN-PROJ e PROJ-PARTE.
(Ver Figura 23.) Contudo, se quisermos construir o relacionamento ter-
nário partindo desses três relacionamentos binários, obteremos alguns
"não-fatos". (Ver as entradas com asteriscos na Figura 24.)
Há muitos tipos de relacionamentos entre entidades e alguns deles
são de interesse para a empresa: o projetista de banco de dados é responsá-
vel pela seleção dos tipos de relacionamentos relevantes para a empresa.
Ele deve também especificar os tipos de mapeamento dos tipos de relaciona-
mentos (ex.: um-para-um, um-para-muitos, muitos-para-muitos).
O método entidade-relacionamento para projeto lógico de bancos de dados 23
PARTE
PARTE
FORN-
PROJ
PROJ
FORN
Paulo César
Destacar
Figura 23 Informações sobre três relações binárias: PARTE-FORN, FORN-PROJ e
PROJ-PARTE.
Nº PARTE
25
25
25
25
10
10
17
17
Nº FORN
4
4
5
5
4
4
2
5
Nº PROJ
1
2
1
2
2
3
1
1
Figura 24 Informações geradas das três relações binárias da Figura 23.
3.2 DESCRIÇÃO DE ENTIDADES E RELACIONAMENTOS
3.2.1 Atributos e Valores
Entidades e relacionamentos têm propriedades que podem ser
expressas em termos de pares atributo-valor. Por exemplo, na afirmação
"a IDADE DO FUNCIONÁRIO x é 24", "IDADE" é um atributo do
funcionário x e "24" é o valor do atributo "IDADE". Os valores podem ser
*
*
24 Modelagem de Dados
Nº PARTE
25
25
10
17
17
Nº FORN
4
5
4
2
5
Nº FORN
4
4
4
5
5
2
Nº PROJ
1
2
3
1
2
1
NºPROJ
1
1
2
2
3
Nº PARTE
25
17
10
25
10
Paulo César
Destacar
O método entidade-relacionamento para projeto lógico de bancos de dados 25
classificados em diferentes tipos de valor, tais como Nº DE ANOS,
QUANTIDADE e COR. Na notação diagramática E-R, um tipo de valor
é representado por vim círculo (ver Figura 25) e um atributo é represen-
tado por um ponteiro dirigido do tipo de entidade para o tipo de valor
desejado.
Nº DO CIC IDADE
Figura 25 Tipos de valores e atributos.
N2 DO TELEFONE
Em alguns casos, um atributo pode ter mais de um valor para
uma determinada entidade. Por exemplo, "Nº DE TELEFONE" do fun-
cionário x pode ter dois valores: 253-6606 e 253-9999. Neste caso, colo-
camos "l:n" no ponteiro para indicar que é um atributo de valores
múltiplos. Isto é similar ao conceito de "grupo de repetição" em processa-
mento de dados convencional. Contudo, muitos atributos, tais como
"IDADE" e "Nº DO CIC", têm um só valor. Para simplicidade, não
associamos nada como "1:1" aos ponteiros no diagrama E-R para tais
atributos.
Até agora, consideramos apenas os atributos de entidades. Às
vezes, estamos também interessados nas propriedades de um relaciona-
mento. Por exemplo, podemos querer saber quando o funcionário x
começou a trabalhar em um determinado projeto. A DATA DE INÍCIO
não é um atributo do FUNCIONÁRIO nem do PROJ, uma vez que seu
valor depende tanto do funcionário específico quanto do projeto envol-
Nº DO CIC IDADE Nº DO TELEFONE
FUNCIONÁRIO
20
18
26
55
253-6606
253-9999
478-6574
234-55-7684
013-64-7777
315-88-4158
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
vido. Portanto, a DATA DE INÍCIO é um atributo do relacionamento
PROJ-FUNC. Um outro exemplo de atributo do relacionamento é a
PORCENTAGEM DE ESFORÇO, que é a porcentagem de tempo que um
funcionário devota a um determinado projeto. (Ver Figura 26.) O con-
ceito de atributo de relacionamento é importante para compreender a
semântica dos dados. O conceito é semelhante ao de dados derelaciona-
mento em sistemas de bancos de dados do tipo "rede" (CADASYL) e ao de
dados de intersecção em sistemas de bancos de dados do tipo hierárquico
(tipo IMS).
DATA DE INÍCIO PORCENTAGEM DE ESFORÇO
Figura 26 Atributos de relacionamento.
3.2.2 Identificador de Entidade
As entidades discutidas até agora são aquelas que existem em
nossas mentes ou podem ser identificadas com um apontar de dedo.
Quando alguém pergunta, "De que cor é isto?", "isto" ou é compreendido
tanto por quem está falando quanto pelo ouvinte, ou é identificado
apontando-se para o objeto. Este esquema de identificação pode fun-
cionar para muito poucos objetos, porém encontraremos dificuldades
quando quisermos comunicar a informação sobre uma variedade de
objetos para muitas pessoas diferentes. Portanto, tanto na conversa do
dia-a-dia como em processamento de dados computadorizado, precisa-
PROJ PROJ-FUNC FUNC
DATA PORCENTAGEM
DE INÍCIO DE ESFORÇO
20%
30%
90%
9/15/75
7/22/76
26 Modelagem de Dados
Paulo César
Destacar
Paulo César
Destacar
O método entidade-relacionamento para projeto lógico de bancos de dados 27
mos de um outro esquema para identificar entidades. Cada entidade tem
muitos atributos, mas qual deles deve ser escolhido? A resposta é que os
atributos escolhidos devem ser capazes de identificar de forma absoluta
as entidades. Por exemplo, podemos usar o atributo NOME para identi-
ficar funcionários em uma pequena companhia, mas não em uma grande
firma. Esses atributos escolhidos da entidade são chamados de identifi-
cadores de entidade. Em alguns casos, pode ser difícil ou inconveniente usar
os atributos disponíveis como identificadores da entidade. O que podemos
fazer é criar um atributo artificial que possa identificar incontestavelmente
as entidades. Exemplos são Nº DO CIC, Nº DO FUNC, Nº DA PARTE e Nº
DO PROJ. O conceito de identificador de entidade é similar ao conceito de
chave primária em processamento de dados convencional.
3.2.3 Identificador de Relacionamento
Os relacionamentos são identificados pelo uso de identificadores
das entidades envolvidas no relacionamento. Por exemplo, se um projeto
é identificado por seu Nº DO PROJ e um funcionário é identificado por Nº
DO FUNC, então o relacionamento PROJ-FUNC é identificado por am-
bos os Nº DO PROJ e nº DO FUNC. Em algumas situações, um tipo de
relacionamento é definido entre duas ocorrências do mesmo tipo de
entidade. Por exemplo, CASAMENTO é um tipo de relacionamento
definido entre ocorrências do mesmo tipo de entidade, PESSOAS. Para
identificar inequivocamente tais relacionamentos, usamos não apenas o
identificador de entidade, mas também indicamos qual o papel que a
entidade desempenha no relacionamento. No caso de CASAMENTO,
devemos ligar os nomes MARIDO e MULHER ao identificador de enti-
dade NOME, onde MARIDO e MULHER são os "papéis" que eles desem-
penham na relação CASAMENTO.
3.3 TIPOS ESPECIAIS DE ENTIDADE E
RELACIONAMENTO
Nesta seção, vamos discutir alguns tipos especiais de entidade e
relacionamento que são comumente encontrados.
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
3.3.1 Existência-Dependente
A existência de uma entidade pode depender da existência de um
outro tipo de entidade. Por exemplo, a existência de entidades FILHOS
no banco de dados depende da existência dos funcionários associados.
Em outras palavras, se um funcionário deixa a companhia, não precisa-
mos manter o registro de seus filhos. A Figura 27 ilustra o diagrama E-R
para essa situação. FILHOS é representado por um retângulo duplo, o
que significa que é um tipo de entidade "fraca". A existência de uma
entidade fraca depende da existência de outras entidades. O "E" dentro
do losango do relacionamento indica que é um relacionamento existên-
cia-dependente; o ponteiro associado ao losango do relacionamento indi-
ca a direção da dependência.
E possível que o relacionamento existência-dependente seja um
mapeamento muitos-para-muitos. Por exemplo, se o pai deixa a compa-
nhia, as entidades FILHOS podem ainda existir se a mãe continuar
sendo uma funcionária da companhia. Esta situação é representada no
diagrama E-R mostrado na Figura 28.
Figura 27 Um relacionamento de tipo existência-dependente e um tipo de entidade
fraca.
28 Modelagem de Dados
FUNC
E
FILHOS
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Figura 28 Uma relação existência-dependente pode ser também um mapeamento
muitos-para-muitos.
3.3.2 Dependência de Identificador (ID)
Se uma entidade não puder ser identificada inequivocamente por
seus próprios atributos e tiver de ser identificada por seus relaciona-
mentos com outras entidades, ela tem dependência de identificador com
as outras entidades. Por exemplo, "rua" só é específica dentro de uma
cidade, uma cidade só é específica dentro de um Estado, e um Estado só
é específico dentro de um país. Para identificar precisamente o endereço
de uma localização, temos de especificar os nomes da cidade, Estado e
país, além do nome da rua. Á dependência de identificador é indicada
pelo "ID" no losango de relacionamento, e a direção do relacionamento é
indicada pelo ponteiro (Ver Figura 29); a maioria das dependências ID
está associada a existências-dependentes. Contudo, a existência-
dependente não implica a dependência ID. Por exemplo, as entidades
FILHOS na Figura 30 são identificadas com seus próprios atributos e o
ID de seus pais (ver Figura 31), enquanto as entidades FILHOS na
Figura 27 podem ser identificadas por seus próprios Nº DO FILHO. (Ver
Figura 32.)
O método entidade-relacionamento para projeto lógico de bancos de dados 29
FUNC
M (PELO MENOS 1)
E
FILHOS
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Paulo César
Destacar
Figura 29 Existência-dependente e Dependência ID.
30 Modelagem de Dados
RUA
E&
ID
CIDADE
ESTADO
E&
ID
PAÍS
E&
FUNC
FILHOS
Figura 30 Existência-dependente e Dependência ID.
Figura 31 Dependência ID.
Figura 32 Sem Dependência ID.
NOME
NANCY BOK
LAWRENCE BOK
ROBERT JOHNSON
ID DOS FILHOS
ID DO FUNC
CIC DO PAI OU MÃE
013-58-5545
172-66-6672
819-38-7776
D
IDADE
12
5
21
ADOS SOBRE FILHOS
SEGURO-SAÚDE
BC/BS
BC/BS
TEM PLANO PRÓPRIO
ID DOS
FILHOS
Nº DOS FILHOS
1011
1025
1044
NOME
NANCY BOK
LAWRENCE BOK
ROBERT JOHNSON
IDADE
12
5
21
SEGURO-SAÚDE
BC/BS
BC/BS
TEM PLANO PRÓPRIO
O método entidade-relacionamento para projeto lógico de bancos de dados 31
4. TRADUÇÃO DE DIAGRAMAS E-R EM
DIAGRAMAS DE ESTRUTURA DE DADOS
4.1 DIAGRAMAS DE ESTRUTURA DE DADOS
As estruturas lógicas de dados de bancos de dados suportadas
pelo sistema tipo CODASYL (rede) de banco de dados podem ser expres-
sas em termos de diagrama de estrutura de dados. Cada retângulo
representa um tipo de registro, tal como FUNC e DEPENDENTE. O
ponteiro representa um conjunto de estrutura de dados que conecta dois
tipos de registro. O tipo de registro no qual o ponteiro se origina é o tipo
proprietário de registro do conjunto de estrutura de dados, e o tipo de
registro no qual o ponteiro termina é o tipo membro de registro do
conjunto de estrutura de dados. Na Figura 33, FUNC é o tipo proprietá-
rio de registro e DEPENDENTE é o tipo membro de registro. Em um
conjunto de estrutura de dados, o registro proprietário pode ter zero, um
ou mais registros membros (ocorrências). Um registro membro em um
conjunto de estrutura de dados tem exatamente um registro proprietá-
rio. Em nosso exemplo, cada registro de funcionário pode estar conectado
a muitos registros de DEPENDENTE ou a nenhum.Contudo, cada
registro de DEPENDENTE deve estar associado a exatamente um regis-
tro FUNC. Isto é ilustrado na Figura 34. Conceitualmente, o ponteiro
representa uma associação l:n (um-para-muitos) entre o tipo proprietá-
rio de registro e o tipo membro de registro. Este tipo de associação pode
também ser representado em forma de tabela. (Ver Figura 35.)
Figura 33 Um diagrama de estrutura de dados.
32 Modelagem de Dados
FUNC
DEPENDENTE TIPO "MEMBRO" DE REGISTRO
CONJUNTO DE ESTRUTURA DE DADOS
TIPO "PROPRIETÁRIO" DE REGISTRO
(A) ZERO DEPENDENTE (B) TRÊS DEPENDENTES (C) UM DEPENDENTE
Figura 34 Um registro PROPRIETÁRIO pode ter zero, um ou mais registros "mem-
bros*.
Nº DO FUNC
1781
1781
1781
2566
DEPENDENTE
A
B
C
D
Figura 35 Correspondência um-para-muitos entre FUNCIONÁRIO e DEPEN-
DENTES.
A Figura 36 ilustra uma estrutura de dados mais complicada. O
tipo de registro FUNCIONÁRIO é o registro proprietário de um conjunto
de estrutura de dados no qual FUNCIONÁRIO-HABILIDADE é o regis-
tro membro. O tipo de registro FUNCIONÁRIO-HABILIDADE é tam-
bém o registro membro de um outro conjunto de estrutura de dados no
qual o tipo de registro HABILIDADE é o registro proprietário. Na ver-
dade, o registro FUNCIONÁRIO-HABILIDADE contém a informação
sobre FUNCIONÁRIOS e HABILIDADES. Esse tipo de informação pode
ser representado na forma de tabela, como é mostrado na Figura 37.
Podemos ver na Figura 37 que um funcionário pode ter uma ou
mais habilidades e que usualmente mais de um funcionário tem uma
habilidade específica. Portanto, a relação entre funcionários e habi-
lidades é m:n (muitos-para-muitos). Essa correspondência m:n entre
funcionários e habilidades pode ser derivada da Figura 36. Os conjuntos
O método entidade-relacionamento para projeto lógico de bancos de dados 33
FUNC 2142
Nº DO FUNC
DEP A DEP B
FUNC 1781
DEP C DEP D
FUNC 2566
de estrutura de dados na Figura 36 mostram que existe um mapeamento
l:m (um-para-muitos) entre o tipo de registro FUNCIONÁRIO e o tipo
de registro FUNCIONÁRIO-HABILIDADE, e que um mapeamento se-
melhante (l:n) existe entre o tipo de registro HABILIDADE e o tipo de
registro FUNC-HABILIDADE. Portanto, a correspondência entre o re-
gistro FUNC e o tipo de registro habilidade é m:n (muitos-para-muitos).
Figura 36 Dois conjuntos de estrutura de dados têm o mesmo tipo "membro" de
registro.
Nº DO FUNC
2142
2141
1781
2566
HABILIDADE
COBOL
PL/1
COBOL
PL/1
Figura 37 Informações cruzadas sobre FUNCIONÁRIOS e HABILIDADES.
O diagrama de estrutura de dados na Figura 36 pode ser imple-
mentado usando-se um conjunto de ponteiros, como é mostrado na Fi-
gura 38. O conjunto de estrutura de dados entre o tipo de registro FUNC
e o tipo de registro HABILIDADE é representado pelas linhas contínuas,
e o conjunto de estrutura de dados entre o tipo de registro HABILIDADE
e o tipo de registro FUNC-HABILIDADE é representado por linhas
pontilhadas.
34 Modelagem de Dados
FUNC HABILIDADE
FUNC-HABILIDADE
Rafael Gama de Macedo Jr.
Na Figura 38, como determinamos as habilidades de um funcio-
nário específico? O primeiro passo é localizar o registro de FUNC com o
Nº DO FUNC = 2142, usando um algoritmo hashing ou algum outro
método. O segundo passo é encontrar o primeiro registro FUNC-HABI-
LIDADE relacionado com esse funcionário. Por meio do ponteiro mostra-
do pela linha pontilhada, podemos encontrar um registro de habilidade
com HABILIDADE-NOME = COBOL. Encontramos, então, o segundo
registro FUNCIONÁRIO-HABILIDADE relacionado com o mesmo re-
gistro de funcionário (por meio dos ponteiros de linha contínua). Do
registro FUNC-HABILIDADE, podemos seguir por intermédio do pon-
teiro de linha pontilhada para localizar um registro HABILIDADE com
HABILIDADE-NOME = PL/1. Não conseguimos, então, encontrar mais
nenhum registro FUNC-HABILIDADE relacionado com os mesmos re-
gistros de FUNCIONÁRIO (ou seja, encontramos a informação de que
necessitávamos: o funcionário com Nº DO FUNC = 2142 tem duas
habilidades: COBOL e PL/1).
Figura 38 Implementação dos conjuntos de estrutura de dados da Figura 37 como
conjuntos de ponteiros.
Como encontramos todos os funcionários com uma habilidade
específica, digamos, COBOL? Primeiro, localizamos o registro HABILI-
DADE com HABILIDADE-NOME = COBOL. Então, recuperamos todos
os registros FUNC-HABILIDADE relacionados com o registro
HABILIDADE. Para cada registro FUNCIONÁRIO-HABILIDADE,
recuperamos, por meio do ponteiro de linha contínua, o registro FUNC
correspondente. Fazendo isso, sabemos que há dois funcionários com a
habilidade COBOL, e seus números são 2142 e 1781.
o método entidade-relacionamento para projeto lógico de bancos de dados 35
FUNC 2142
FUNC-
HABILIDADE
FUNC-
HABILIDADE
FUNC 1781 FUNC 2586
FUNC-
HABILIDADE
HABILIDADE
PL/1
FUNC-
HABILIDADE
HABILIDADE
COBOL
Uma outra maneira de implementar o diagrama de estrutura de
dados da Figura 22 é usar cadeias, como é mostrado na Figura 39. As
linhas contínuas conectam todos os registros FUNC-HABILIDADE rela-
cionados com o mesmo registro HABILIDADE. Vamos ver como en-
contrar as habilidades do funcionário com Nº DO FUNC = 2142. Em
primeiro lugar, encontramos o primeiro registro FUNC-HABILIDADE
por intermédio da cadeia de linha contínua. Do registro FUNC-
HABILIDADE, encontramos o registro de habilidade por meio da cadeia
de linha pontilhada. Do registro FUNC-HABILIDADE procuramos o
registro FUNC-HABILIDADE seguinte pela cadeia de linha sólida. Do
segundo registro FUNC-HABILIDADE, podemos determinar o registro
de habilidade correspondente por meio da cadeia de linha pontilhada. Do
segundo registro FUNC-HABILIDADE, não conseguimos encontrar
mais nenhum registro FUNC-HABILIDADE na cadeia de linha contí-
nua. Agora, sabemos todas as habilidades que o funcionário 2142 tem.
Similarmente, podemos encontrar todos os funcionários com uma deter-
minada habilidade seguindo através das cadeias.
Figura 39 Implementação dos conjuntos de estrutura de dados da Figura 27 como
cadeias.
Um outro tipo de estrutura de dados, que pode usualmente ser
encontrado em bancos de dados de processos de produção, é mostrado na
Figura 40. Há dois tipos de registro: PARTE e PRD-REL (produção-rela-
cionamento). Cada produto a ser fabricado consiste em muitas "partes"
(componentes). Cada parte, por sua vez, é feita de outras partes. O tipo
36 Modelagem de Dados
FUNC 2142 FUNC 1781 FUNC 2566
FUNC-
HABILIDADE
PL/1COBOL
FUNC-
HABILIDADE
FUNC-
HABILIDADE
FUNC-
HABILIDADE
O método entidade-relacionamento para projeto lógico de bancos de dados 37
de registro PARTE contém informações sobre a parte específica. 0 tipo
de registro PRD-REL contém as informações sobre o relacionamento
entre as partes. A Figura 41 ilustra esse tipo de relacionamento. Indica
que, para produzir a PARTE Nº1, precisamos de cinco PARTES Nº 2e
duas PARTES Nº 3. Podemos ver também que a PARTE Nº 3 é uma
subparte tanto da PARTE Nº1 quanto da PARTE Nº 4. Há dois conjuntos
de estrutura de dados na Figura 40 e eles podem ser implementados
como "cadeias", como mostrado na Figura 42. As linhas contínuas repre-
sentam a cadeia COMPONENTE e as linhas pontilhadas representam a
cadeia ONDE USADA. Para encontrar os componentes de uma parte
específica, primeiro recuperamos todos os registros PRD-REL por meio
da cadeia COMPONENTE e, então, recuperamos as subpartes corres-
pondentes pela cadeia ONDE USADA. Fazendo isso, evidenciamos que a
PARTE Nº 4 consiste em uma PARTE Nº 3 e em duas PARTES Nº 5. Para
descobrir onde uma parte específica é usada para produzir outras partes,
primeiro recuperamos todos os registros PRD-REL relacionados com
esse registro PARTE específico por intermédio da cadeia ONDE USADA,
e então recuperamos os registros PARTE correspondentes por meio da
cadeia COMPONENTE. Fazendo isso, descobrimosque duas PARTES
Nº 5 são usadas na fabricação da PARTE Nº 4.
As Figuras 33, 36 e 40 são os tipos básicos de diagramas de
estrutura de dados. Um banco de dados pode ser expresso em um grande
diagrama de estrutura de dados baseado nesses três modelos básicos.
Figura 40 Dois conjuntos de estrutura de dados têm os mesmos tipos de registro
"proprietário" e "membro".
COMPONENTES ONDE USADA
PARTE
PRD-REL
SUPERPARTE Nº
1
1
4
4
SUBPARTE Nº
2
3
3
5
QUANTIDADE
5
2
1
2
Figura 41 Relação de fabricação entre partes.
Figura 42 Implementação dos conjuntos de estrutura de dados da Figura 41.
4.2 REGRAS DE TRADUÇÃO
Como vimos na seção anterior, o diagrama de estrutura de dados
está mais próximo da organização física do banco de dados que o dia-
grama de entidade-relacionamento. Usualmente, é difícil desenhar um
diagrama de estrutura de dados para as entidades e relacionamentos
que são de interesse para a empresa. Portanto, propomos que o proje-
tista de banco de dados primeiro desenhe um diagrama E-R para repre-
sentar a visão da empresa quanto aos dados e, então, traduza-o para um
diagrama de estrutura de dados. Nesta seção, vamos discutir como
traduzir um diagrama E-R para um diagrama de estrutura de dados.
Identificamos algumas regras básicas para tradução com base no tipo de
38 Modelagem de Dados
PARTE Nº 1
CADEIA
COMPONENTE
PARTE Nº 4
PRD-REL 2
PARTE Nº 5
CADEIA ONDE
USADA
PRD-REL
CADEIA ONDE
USADA
PARTE Nº 3PARTE Nº 2
CADEIA ONDE
usada
PRD-REL PRD-REL
CADEIA
COMPONENTE
O método entidade-relacionamento para projeto lógico de bancos de dados 39
relacionamentos entre entidades. Começamos com relacionamentos defi-
nidos por dois tipos de entidades, depois relacionamentos definidos por
mais de dois tipos de entidades e, por fim, relacionamentos do mesmo
tipo de entidade. As regras de tradução são as seguintes:
1. Relacionamentos definidos por dois tipos diferentes de enti-
dades:
a) O relacionamento é uma correspondência um-para-muitos
(ou um-para-um). Por exemplo, o tipo de relacionamento
DEPT-FUNC na Figura 43 (a) é uma correspondência um-
para-muitos e pode ser transformada no diagrama de estru-
tura de dados da Figura 43 (b). Note que os tipos de entidades
tais como DEPT e FUNC no diagrama E-R são tratados como
tipos de registro no diagrama de estrutura de dados, en-
quanto o tipo de relacionamento DEPT-FUNC é representado
por um conjunto de estrutura de dados (um ponteiro) no
diagrama de estrutura de dados. Similarmente, o tipo de
relacionamento PROJ-GERENTE na Figura 44 (a), que res-
tringe um gerente por projeto mas permite vários projetos
com o mesmo gerente, é representado por um ponteiro no
diagrama de estrutura de dados mostrado na Figura 44 (b).
DIAGRAMA E-R DIAGRAMA DE
ESTRUTURA DE DADOS
Figura 43
DEPT
FUNC FUNC
DEPT
DEPT
fUNC
Figura 44
b) O relacionamento é uma correspondência muitos-para-
muitos. Por exemplo, o tipo de relacionamento PROJ-FUNC
na Figura 45 (a) é uma correspondência muitos-para-muitos.
O diagrama de estrutura de dados correspondente é mostrado
na Figura 45 (b). Note que o tipo de relação PROJ-FUNC não
é traduzido em um ponteiro, mas em um tipo de registro.
Podemos concluir que, se um tipo de relacionamento é uma
correspondência muitos-para-muitos, ele será traduzido em
um tipo de registro com dois ponteiros apontando para ele,
vindos dos tipos de registro de entidade relacionados. O tipo
de registro PROJ-FUNC é usualmente chamado um tipo de
registro de relacionamento. Um exemplo semelhante é mos-
trado na Figura 46. Uma vez que o tipo de relacionamento
FUNC-HABILIDADE é uma correspondência muitos-para-
muitos, é traduzido em um tipo de registro (de relaciona-
mento) no diagrama de estrutura de dados.
40 Modelagem de Dados
FUNC
PROJ-
GERENTE
PROJ
DIAGRAMA E-R DIAGRAMA DE
ESTRUTURA DE DADOS
PROJ
FUNC
(a)
DIAGRAMA E-R
Figura 45
(b)
DIAGRAMA DE
ESTRUTURA DE DADOS
DIAGRAMA E-R
Figura 46
DIAGRAMA DE
ESTRUTURA DE DADOS
2. Relacionamentos definidos por mais que dois tipos de entida-
des:
Neste caso, o tipo de relacionamento no diagrama E-R será
traduzido em um tipo de registro de relacionamento no diagrama de
estrutura de dados, seja o relacionamento uma correspondência um-pa-
ra-muitos ou de outro tipo. Por exemplo, o tipo de relacionamento PAR-
TE-PROJ-FORN na Figura 47 (a) é um tipo de relacionamento definido
o método entidade-relacionamento para projeto lógico de bancos de dados 41
PROJ
FUNC
PROJ-FUNC
FUNCPROJ
FUNC
HABILIDADE*
FUNC
HABILIDADE
FUNC-
HABILIDADE
HABILI-
DADEFUNC
PROJ
FUNC
por três tipos de entidades e será traduzido em um tipo de registro no
diagrama de estrutura de dados, como é mostrado na Figura 47 (b).
DIAGRAMA DE ESTRUTURA DE DADOS
Figura 47
3. Relacionamentos binários definidos pelo mesmo tipo de enti-
dade:
Se o relacionamento binário for uma correspondência um-para-
muitos, tal como o tipo de relacionamento GERENCIADO na Figura 48
(a), ele poderá ser transformado em pelo menos dois possíveis diagramas
de estrutura de dados, como é mostrado nas Figuras 48 (b) e (c). Uma vez
que a maioria dos sistemas de bancos de dados do tipo CADOSYL (rede)
PARTE PROJ
PARTE-PROJ-FORN
FORN
42 Modelagem de Dados
PARTE PROJ
FORN
DIAGRAMA E-R
PARTE-
PROJ
FORN'
O método entidade-relacionamento para projeto lógico de bancos de dados 43
não permite que o mesmo tipo de registro seja usado tanto como tipo de
registro proprietário quanto como tipo de registro membro de um conjun-
to de estrutura de dados, a Figura 48 (b) não é válida. Portanto, usare-
mos a Figura 48 (c) como o diagrama de estrutura de dados relativo ao
diagrama E-R na Figura 48 (a). Para relacionamentos binários com
outros tipos de correspondência, usaremos o mesmo tipo de diagrama de
estrutura de dados. Por exemplo, PRD-REL é um relacionamento de tipo
de correspondência muitos-para-muitos e seu diagrama de estrutura de
dados equivalente é mostrado na Figura 49 (b).
Figura 49
DIAGRAMA E-R
Figura 48
PARTE
PRD-REL PRD-REL
PARTE
DIAGRAMA DE
ESTRUTURA DE DADOS
GERENCIADO<GERENCIADO
PESSOA PESSOAPESSOA
5. ETAPAS NO PROJETO LÓGICO DE
BANCO DE DADOS E EXEMPLOS
Nesta seção, vamos primeiro apresentar as principais etapas no
projeto lógico de bancos de dados e, então, dar três exemplos de projetos
de bancos de dados usando o método E-R.
5.1 PRINCIPAIS ETAPAS NO PROJETO LÓGICO DE
BANCOS DE DADOS
O método de entidade-relacionamento para projeto de bancos de
dados consiste nas seguintes etapas:
1. Identificar tipos de entidades.
2. Identificar tipos de relacionamentos.
3. Desenhar um diagrama E-R com tipos de entidade e relacio-
namentos.
4. Identificar tipos de valor e atributos.
5. Traduzir o diagrama E-R em um diagrama de estrutura de
dados.
6. Projetar formatos de registros.
5.2 EXEMPLO 1: UMA INDÚSTRIA
5.2.1 Identificar Tipos de Entidades
A primeira etapa é identificar os tipos de entidade que inte-
ressam à companhia. Em uma indústria, os tipos de entidade primários
são PARTE, FORN (fornecedor), PROJ, FUNC e DEPT. Há outros tipos
44 Modelagem de Dados
de entidades que podem ser de interesse em uma indústria, mas, por
motivo de simplicidade, vamos nos concentrar nestes importantes tipos
de entidade.
5.2.2 Identificar Tipos de Relacionamento
Podemos identificar pelo menos os seguintes tipos de relaciona-
mento (Ver Figura 50):
Figura 50 Um diagrama E-R para uma indústria.
a) O tipo de relacionamento DEPT-FUNC descreve a associação
do departamento com os funcionários e é um mapeamento
um-para-muitos.
6) O tipo de relacionamento PROJ-FUNC descreve a associação
dos projetos com os funcionários e é um mapeamento muitos-
para-muitos. Isto é, cada funcionário podetrabalhar em mais
de um projeto, e cada projeto pode envolver mais de um
funcionário.
c) O tipo de relacionamento PROJ-GERENTE identifica os ge-
rentes dos projetos e é um mapeamento um-para-muitos. Isto
O método entidade-relacionamento para projeto lógico de bancos de dados 45
DEPT
PRD-REL
NM
FORN
POTENCIAL
FORN
PROP
FORN
P A R T E
PARTE INVENTÁRIOPROJ
PROJ-
GERENTE
PROJ-
FUNC
FUNC
DEPT
FUNC
DEPÓSITO
é, cada projeto tem apenas um gerente, mas cada funcionário
pode estar associado a mais de um projeto.
d) O tipo de relacionamento PROJ-FORN-PARTE descreve qual
fornecedor fornece qual parte para um determinado projeto e
é um mapeamento ternário muitos-para-muitos-para-muitos.
Isto é, para uma parte específica, pode haver mais de um
fornecedor, que pode fornecer essa parte para mais de um
projeto. Similarmente, cada projeto pode usar mais de uma
parte, que pode ter mais de um fornecedor. Também, cada
fornecedor pode prover um projeto com mais de uma parte.
Uma razão para a companhia querer procurar fornecedores
diferentes para a mesma parte usada para diferentes projetos
é que, em um determinado projeto, a companhia talvez neces-
site da parte imediatamente e, portanto, pode estar disposta
a pagar mais por ela a um fornecedor local. Em geral, esse
tipo de relação ternária não pode ser substituído por três
relações binárias como PROJ-FORN, FORN-PARTE e
PARTE-PROJ.
e) O tipo de relação FORN POTENCIAL mantém uma lista de
fornecedores potenciais de uma determinada parte e é um
mapeamento muitos-para-muitos. Isto é, cada parte pode ter
mais de um fornecedor potencial, e cada fornecedor pode ser
capaz de fornecer mais de uma parte.
f) O tipo de relação INVENTARIO mantém um registro de que
parte está estocada em qual depósito e é um mapeamento
muitos-para-muitos.
5.2.3 Desenhar um Diagrama E-R com Tipos de Entidade
e Relacionamento
A terceira etapa é desenhar um diagrama E-R com os seis tipos
de entidade e as sete tipos de relacionamento mencionados. Certamente,
podemos identificar outros tipos de entidade e relacionamentos além dos
descritos acima. Contudo, uma vez que nosso propósito é introduzir
46 Modelagem de Dados
O método entidade-relacionamento para projeto lógico de bancos de dados 47
conceitos-chaves do método entidade-relacionamento, não entraremos
em maiores detalhes. o leitor desta monografia pode acrescentar mais
tipos de entidades e relações à Figura 50, de acordo com suas próprias
necessidades.
5.2.4 Identificar Tipos de Valores e Atributos
A quarta etapa é identificar as propriedades de entidades e
relacionamentos que sejam de interesse para a empresa. Isto é, quere-
mos identificar atributos e tipos de valor para as entidades e relaciona-
mentos da Figura 50.
Vamos começar com os tipos de entidade DEPT e FUNC e sua
relação DEPT-FUNC. A Figura 51 ilustra os atributos e tipos de valor
para DEPT e FUNC. Os tipos de entidade e de relacionamento estão no
domínio conceituai superior e os atributos e tipos de valor estão no
domínio conceituai inferior. Na Figura 51, identificamos os seguintes
tipos de valor: Nº DO DEPT, ORÇAMENTO, Nº DO FUNC, DATA,
SALÁRIO e Nº DO TELEFONE. O DEPT tem três atributos: Nº DO
DEPT, ORÇAMENTO DESTE ANO e ORÇAMENTO DO ANO
PASSADO. FUNC tem cinco atributos: Nº DO FUNC, DATA DE
NASCIMENTO, SALÁRIO, TELEFONE RESIDENCIAL e TELEFONE
COMERCIAL. Note que os atributos podem não ter os mesmos nomes
que os tipos de valor, e que é possível ter mais de um atributo relacio-
nado com o mesmo tipo de valor. Por exemplo, ORÇAMENTO DESTE
ANO e ORÇAMENTO DO ANO PASSADO de DEPT usam o mesmo tipo
de valor ORÇAMENTO. Um outro exemplo são os atributos TELEFONE
COMERCIAL e TELEFONE RESIDENCIAL de FUNC que usam o
mesmo tipo de valor Nº DO TELEFONE. Para simplificar o diagrama,
vamos omitir os nomes de atributos no diagrama se esses forem os
mesmos que os nomes dos tipos de valor. Assim, a Figura 52 é uma
versão simplificada da Figura 51.
Figura 51 Atributos e tipos de valores para DEPT, FUNC e DEPT-FUNC.
Em seguida, vamos considerar os tipos de entidade PROJ e
FUNC e seus tipos de relacionamento PROJ-GERENTE e PROJ-FUNC.
Há cinco tipos de valor: % ESFORÇO, DATA, Nº DO PROJ, ORÇAMEN-
TO e PROJ-NOME. Há também cinco atributos na Figura 53 (embora
alguns nomes de atributos estejam omitidos no diagrama): % ESFOR-
ÇO, DATA DE INÍCIO DO PROJ, Nº DO PROJ, ORÇAMENTO e PROJ-
NOME. Note que a relação PROJ-FUNC tem dois atributos: DATA DE
INÍCIO DO PROJ e % ESFORÇO. A DATA DE INÍCIO DO PROJ é a
data na qual o funcionário começou a trabalhar em um determinado
projeto, e a % ESFORÇO é a porcentagem de tempo que um funcionário
deve gastar em um determinado projeto. Note que o tipo de valor ORÇA-
MENTO é o mesmo que o tipo de valor ORÇAMENTO na Figura 52.
Portanto, podemos dizer que os atributos podem nos ajudar a interpretar
o significado de valores.
A Figura 54 ilustra os tipos de valor e atributos para os tipos de
entidade FORN e PARTE e os tipos de relação PROJ-FORN-PARTE e
FORN POTENCIAL. A entidade FORN tem dois atributos: Nº DO FORN
e ENDEREÇO. A entidade PARTE tem os atributos Nº DA PARTE,
PESO e COR. A relação PROJ-FORN-PARTE tem o atributo QTD, que é
a quantidade de uma determinada parte fornecida por um determinado
fornecedor para um determinado projeto. A relação FORN POTENCIAL
não tem atributo. Os atributos da entidade PROJ já foram mostrados na
Figura 53.
48 Modelagem de Dados
DOMÍNIO
CONCEITUAL.
SUPERIOR
DOMÍNIO
CONCEITUAL
INFERIOR
DEPT
Nº DO DEPT ORÇAMENTO DO
ANO PASSADO
ORÇAMENTO
DESSE ANO
DATA DE
INÍCIO DO DEPT
DEPT-FUNC, FUNC
Nº DO DEPT ORÇAMENTO DATA Nº DO FUNC SALÁRIO Nº DOTELEFONE
TELEFONE
RESIDENCIALSALÁRIO
DATA DE
NASCIMENTO
Nº DO FUNC TELEFONE
COMERCIAL
Figura 52 Uma versão simplificada da Figura 51.
Figura 53 Atributos e tipos de valor para PROJ e PROJ-FUNC.
A Figura 55 mostra os atributos e tipos de valor das propriedades
da entidade DEPÓSITO e das relações INVENTÁRIO e PRD-REL. Uma
entidade DEPÓSITO tem os atributos Nº DO DEPÓSITO e ENDE-
REÇO. Um relacionamento INVENTÁRIO tem os atributos QTD-À-
MÃO, que é a quantidade de uma parte estocada em um depósito. O
relacionamento PRD-REL tem o atributo QTD-PARA-PRD, que é a
quantidade de uma subparte necessária para fazer uma superparte.
Note que QTD-À-MÃO e QTD-PARA-PRD têm o mesmo tipo de valor
QTD.
o método entidade-relacionamento para projeto lógico de bancos de dados 49
DOMÍNIO
CONCEITUAL
SUPERIOR
DOMÍNIO
CONCEITUAL
INFERIOR
DEPT FUNC
SALÁRIO NºDO
TELEFONENº DO FUNCDATAORÇAMENTO(Nº DO DEPT)
ORÇAMENTO
DESSE ANO
ORÇAMENTO DO
ANO PASSADO
DATA DE
INÍCIO DO DEPT
DATA DE
NASCIMENTO
TELEFONE
COMERCIAL
TELEFONE
RESIDENCIAL
DEPT-FUNC
DOMÍNIO
CONCEITUAL
SUPERIOR
DOMÍNIO
CONCEITUAL
INFERIOR
ESFORÇO DATA Nº DO PROJ ORÇAMENTO
PROJ-
NOME
DATA
DE INÍCIO
DO PROJETO
PROJ-
FUNC
PROJ
 PROJ
GERENTE.
FUNC
Figura 54 Atributos e tipos de valor para FORN, PARTE e PROJ-FORN-PARTE.
Figura 55 Atributos e tipos de valor de DEPÓSITO, INVENTÁRIO e PRD-REL.
As Figuras 52-55 ilustram os atributos e tipos de valor neces-
sários para descrever as propriedades de entidades e relacionamentos
que podem ser de interesse para uma ir indústria.
DOMÍNIO
CONCEITUAI.
SUPERIOR
DOMÍNIO
CONCEITUAL
INFERIOR
DEPÓSITO
Nº DO
DEPÓSITO ENDEREÇO QTD
QTD-A-MÃO QTD-PARA-PRD
PRD-RELPARTEINVENTARIO
DOMÍNIO
CONCEITUAL
SUPERIOR
DOMÍNIO
CONCEITUAL
INFERIOR
QTD Nº DOFORN ENDEREÇO
N«DA
PARTE PESO COR
FORN
PARTEPROJ
PROJ-
FORN-
PARTE,
F O R N
POTENCIAL
50 Modelagem de Dados
O método entidade-relacionamento para projeto lógico de bancos de dados 51
5.2.5 Traduzir o Diagrama E-R em um Diagrama de
Estrutura de Dados
A quinta etapa é traduzir o diagrama E-R em umdiagrama de
estrutura de dados usando as regras de tradução discutidas na Seção
4.2.
Considere o diagrama E-R da Figura 50. Ele pode ser traduzido
no diagrama de estrutura de dados mostrado na Figura 56. Todos os
tipos de entidade no diagrama E-R tornam-se tipos de registro no dia-
grama de estrutura de dados. Uma vez que o relacionamento DEPT-
FUNC é um mapeamento um-para-muitos, ele é traduzido em um
conjunto de estrutura de dados (ou seja, um ponteiro) no diagrama de
estrutura de dados. Similarmente, o tipo de relação PROJ-GERENTE é
também um mapeamento um-para-muitos e é traduzido em um conjunto
de estrutura de dados. Uma vez que o tipo de relacionamento PROJ-
FUNC é um mapeamento muitos-para-muitos, ele é traduzido em um
tipo de registro com ponteiros apontando para tipos de registros de
entidades relacionados, FUNC e PROJ. Como o tipo de relação PROJ-
FORN-PARTE é um mapeamento ternário muitos-para-muitos-para-
muitos, ele é traduzido em um tipo de registro.O tipo de relação
PRD-REL é traduzido em um tipo de registro, uma vez que é um tipo de
relação definido pelo mesmo tipo de entidade. Note que o tipo de registro
PRD-REL na Figura 42 tem dois ponteiros (ou seja, conjuntos de estru-
tura de dados) apontando do mesmo tipo de registro PARTE. Note
também que o tipo de registro PROJ-FORN-PARTE é apontado por três
ponteiros vindos dos tipos de registro (de entidade) relacionados.
5.2.6 Projetar Formato de Registro
A sexta etapa é agrupar atributos de entidades e relacionamen-
tos em registros e decidir como implementar os conjuntos de estrutura
de dados (usando "cadeias"?, "conjuntos de ponteiros"? etc.)
As orientações básicas para agrupar atributos em registros são:
1. Todos os atributos de uma entidade serão colocados no mesmo
tipo de registro. Por exemplo, os atributos de DEPT serão
tratados como nomes de campos no tipo de registro DEPT.
(Ver Figuras 52 e 57.)
2. Se o tipo de relacionamento for um mapeamento um-para-
muitos, os atributos do relacionamento serão tratados como
campos no tipo de registro membro do conjunto de estrutura
de dados. Por exemplo, o tipo de relacionamento DEPT-FUNC
(Figura 52) é um mapeamento um-para-muitos e seu atributo
DATA DE INÍCIO NO DEPT será incluído como um campo no
tipo de registro membro do conjunto de estrutura de dados
(ou seja, o tipo de registro FUNC; ver Figuras 56 e 58).
Figura 56 O diagrama de estrutura de dados derivado do diagrama E-R da Figura
50.
Nº DO DEPT ORÇAMENTODESTE ANO
ORÇAMENTO DO
ANO PASSADO
PARA O PRIMEIRO
REGISTRO FUNC
NO DEPARTAMENTO
Figura 57 Registro DEPT.
52 Modelagem de Dados
FUNC PROJ FORN PARTE DEPÓSITO
INVENTÁRIOPRD-REL
FORN POTENCIAL
PROJ-FORN-PARTEPROJ-FUNC
DEPT
Rafael Gama de Macedo Jr.
PARA O REGISTRO
FUNC SEGUINTE NO
MESMO DEPARTAMENTO
PARA O PRIMEIRO
REGISTRO PROJ GERENCIADO
POR ESTE FUNCIONÁRIO
Figura 58 Registro FUNC.
PARA O PRIMEIRO
REGISTRO FUNC-PROJ
RELACIONADO
COM ESTE FUNCIONÁRIO
3. Se o tipo de relacionamento for traduzido em um tipo de
registro, então os atributos de relacionamento serão tratados
como campos nesse tipo de registro. Por exemplo, o tipo de
relação PROJ-FUNC na Figura 53 é traduzido em um tipo de
registro, e os atributos %ESFORÇO e DATA DE INÍCIO NO
PROJ tornam-se campos no tipo de registro mostrado na
Figura 60.
Podemos aplicar essas regras a outros tipos de entidade e de
relacionamento. Uma vez que todos os outros tipos de entidade e relacio-
namento, exceto PROJ-GERENTE, na Figura 50 são traduzidos dire-
tamente em tipos de registro, o agrupamento de atributos em tipos de
registro é direto. A Figura 53 é traduzida nas Figuras 59 e 60. Note que
o tipo de relacionamento PROJ-GERENTE é traduzido em um conjunto
estrutura de dados. A Figura 54 é traduzida nas Figuras 61-64; a Figura
55 é traduzida nas Figuras 65 e 66.
N« DO FUNC DATA DENASCIMENTO
DATA DE
INlCIO NO DEP1 SALÁRIO
TELEFONE
COMERCIAL
TELEFONE |
RESIDENCIAL
O método entidade-relacionamento para projeto lógico de bancos de dados 53
Figura 61 Registro FORN.
54 Modelagem de Dados
Figura 60 Registro PROJ-FUNC
DATA DE INÍCIO
NO PROJ % ESFORÇO
PARA O PRÓXIMO REGISTRO
PROJ-FUNC PARA O MESMO PROJETO
PARA O PRIMEIRO REGISTRO
PARTE-FORN-PROJ RELACIONADO
A ESTE FORNECEDOR
PARA O PRIMEIRO FORN POTENCIAL
RELACIONADO A ESTE FORNECEDOR
REGISTRO
FORN. ENDEREÇO
PARA O PRÓXIMO REGISTRO
PROJ GERENCIADO PELO
MESMO FUNCIONÁRIO
Nº DO PROJ PROJ-NOME ORÇAMENTO
PARA O PRIMEIRO REGISTRO
PROJ-FORN-PARTE RELACIONADO
A ESTE PROJETO
PARA O PRIMEIRO REGISTRO
PROJ-FUNC RELACIONADO
A ESTE PROJETO
Figura 59 Registro PROJ.
PARA O PRÓXIMO REGISTRO
PROJ-FUNC PARA O MESMO FUNCIONÁRIO
PARA O PRIMEIRO REGISTRO PARA O PRIMEIRO REGISTRO
PARTE-FORN-PROJ RELACIONADO FORN POTENCIAL RELACIONADO
A ESTA PARTE A ESTA PARTE
PARA O PRIMEIRO REGISTRO
PRD-REL NA CADEIA ONDE-USADA PARA O PRIMEIRO REGISTRO PRD-REL
NA CADEIA COMPONENTE
PARA O PRIMEIRO REGISTRO
INVENTÁRIO RELACIONADO A ESTA PARTE
Figura 62 Registro PARTE.
PARA O PRÓXIMO REGISTRO PARTE-FORN-PROJ
PARA A MESMA PARTE
PARA O PRÓXIMO REGISTRO PARTE-FORN-PROJ
PARA O MESMO FORNECEDOR
PARA O PRÓXIMO REGISTRO PARTE-FORN-PROJ
PARA O MESMO PROJETO
Figura 63 Registro PARTE-FORN-PROJ.
o método entidade-relacionamento para projeto lógico de bancos de dados 55
Nº DA PARTE PESO COR
QTD
PARA O PRÓXIMO REGISTRO FORN-POTENCIAL
PARA A MESMA PARTE
PARA O PRÓXIMO REGISTRO FORN POTENCIAL
PARA O MESMO FORNECEDOR
Figura 64 Registro FORN POTENCIAL.
Nº DO DEPÓSITO ENDEREÇO
PARA O PRIMEIRO REGISTRO INVENTÁRIO
RELACIONADO A ESTE DEPÓSITO
Figura 65 Registro DEPÓSITO.
PARA O PRÓXIMO REGISTRO INVENTÁRIO
PARA A MESMA PARTE
QTD-À-MÃO
PARA O PRÓXIMO REGISTRO INVENTÁRIO
PARA O MESMO DEPÓSITO
Figura 66 Registro INVENTÁRIO.
Após colocar todos os atributos nos tipos de registro, a questão
seguinte é decidir como implementar os conjuntos de estrutura de dados.
Neste exemplo industrial, vamos usar cadeias como a implementação
física dos conjuntos de estrutura de dados. Isto é, vamos usar as Figuras
56 Modelagem de Dados
O método entidade-relacionamento para projeto lógico de bancos de dados 57
39 e 42 como a implementação física das Figuras 36 e 40, respectiva-
mente. A partir dessas figuras, podemos fazer as seguintes observações
sobre como implementar ponteiros de cadeia:
1. Se o registro for o tipo de registro proprietário de um conjunto
de estrutura de dados, ele deve ter um ponteiro para a pri-
meira ocorrência de registro membro.
2. Se o registro for um tipo de registro membro de um conjunto
de estrutura de dados, ele deve ter um ponteiro para a ocor-
rência seguinte de registro membro na cadeia ou para a
ocorrência de registro proprietário se este for o último regis-
tro na cadeia.
3. Se um tipo de registro estiver envolvido em múltiplos conjun-
tos de estrutura de dados, ele deve conter vários ponteiros,
um para cada conjunto de estrutura de dados.
Usando estas regras, podemos definir os ponteiros nos tipos de
registro como é mostrado nas Figuras 57 e 66. Vamos considerar pri-
meiro a Figura 57. Uma vez que o tipo de registro DEPT é o tipo de
registro proprietário de um conjunto de estrutura de dados, ele tem um
ponteiro apontando para a primeira ocorrência de registro FUNC na-
quele departamento. 0 tipo de registro FUNC na Figura 58 tem três
ponteiros, uma vez que está envolvido em três conjuntos de estrutura de
dados. Uma vez que o tipo de registro FUNC é o tipo de registro membro
de um conjunto de estrutura de dados cujo proprietário é o tipo de
registro DEPT, o tipo de registro FUNC manterá um ponteiro para a
ocorrência seguinte de registro FUNC no mesmo departamento. Uma
vez que o tipo de registro FUNC é o registro proprietário de um conjunto
de estrutura de dados cujo tipo de registro membroé PROJ, ele mantém
um ponteiro para a primeira ocorrência de registro PROJ gerenciada por
esse funcionário. Se o funcionário não estiver gerenciando nenhum pro-
jeto, o valor do ponteiro será nulo. Uma vez que o tipo de registro FUNC
é também o tipo de registro proprietário do conjunto de estrutura de
dados cujo tipo de registro membro é PROJ-FUNC, ele mantém um
ponteiro para a primeira ocorrência de registro PROJ-FUNC na cadeia.
Uma vez que PROJ-FUNC é o tipo de registro membro de dois
conjuntos de estrutura de dados, ele mantém dois ponteiros: um apon-
tando para a ocorrência seguinte do registro PROJ-FUNC para o mesmo
funcionário e o outro apontando para a ocorrência seguinte do registro
PROJ-FUNC para o mesmo projeto. (Ver Figuras 56 e 60.)
Consideremos um caso mais complicado: o tipo de registro PROJ-
FORN-PARTE nas Figuras 56 e 63. Uma vez que este é o tipo de registro
membro de três conjuntos de estrutura de dados, tem três ponteiros, um
para cada cadeia. Explicações semelhantes podem ser dadas para os
ponteiros em outros tipos de registro.
Figura 67 Diagrama E-R para um banco de dados de anotação de pedidos.
Figura 68 Atributos e tipos de valor para CLIENTE e PEDIDO.
58 Modelagem de Dados
Nº DO
CLIENTE
SALDO DE
CONTA
LIMITE DE
CRÉDITO DESCONTO ENDEREÇO
Nº DO
PEDIDO DATA
DESPACHO PARA
. ENDEREÇOS
DESPACHO PARA
ENDEREÇO
CLIENTE CLIENTEPEDIDO PEDIDO
LINHA LINHAPARTE PARTE
PEDIDO DEPÓSITO
INVENTARIO;
CLIENTE
PEDIDO,CLIENTE
5.3 EXEMPLO 2: UM BANCO DE DADOS DE ANOTAÇÃO
DE PEDIDOS DE COMPRA
5.3.1 Identificar Tipos de Entidade
Uma anotação de pedidos lida com os pedidos dos clientes em
itens, os quais podem estar armazenados em determinados depósitos. Os
tipos de entidade importantes são: CLIENTE, PEDIDO, LINHA,
PARTE, ITEM e DEPOSITO. (Ver Figura 69.) Cada pedido tem várias
linhas, cada uma declarando o número e a quantidade do item desejado.
Figura 69 Atributos e tipos de valor para LINHA e LINHA-PARTE.
5.3.2 Identificar Tipos de Relacionamento
Podemos identificar os seguintes tipos de relacionamento:
1. O tipo de relacionamento CLIENTE-PEDIDO descreve que
CLIENTE faz um determinado pedido e é um mapeamento
um-para-muitos. Isto é, um cliente pode fazer muitos pedidos,
mas cada pedido é feito por apenas um cliente.
2. O relacionamento PEDIDO-LINHA indica que entidades LI-
NHA são existências-dependentes e ID-dependentes das enti-
dades PEDIDO correspondentes. Cada pedido tem várias
linhas, mas cada linha faz parte de apenas um pedido.
PEDIDO
Nº DA
LINHA QTD
QTD QTDA
PEDIDA ENTREGAR
PARTE
LINHA
PARTELINHA
o método entidade-relacionamento para projeto lógico de bancos de dados 59
3. A relação LINHA-PARTE descreve que parte é anotada nesta
linha do pedido. Descreve também a quantidade da parte que
está sendo pedida. Este tipo de relacionamento é um mapea-
mento um-para-muitos. Cada linha contém apenas uma
parte, mas cada parte pode ser colocada em muitas linhas
(usualmente em pedidos diferentes).
4. A relação INVENTÁRIO mantém o controle de que parte está
estocada em qual depósito, e é um mapeamento muitos-para-
muitos.
5.3.3 Desenhar um Diagrama E-R com Tipos de Entidade
e Relacionamento
A Figura 67 é um diagrama ER para um determinado banco de
dados de anotação de pedidos de compra. Note que dois tipos de entida-
de, PARTE e DEPÓSITO, já foram discutidos no Exemplo 1. Na verdade,
é possível fundir as Figuras 67 e 50, formando um grande diagrama E-R.
5.3.4 Identificar Tipos de Valor e Atributos
A Figura 68 mostra os atributos e tipos de valor para tipos de
entidade CLIENTE e PEDIDO. Uma entidade CLIENTE tem cinco
atributos: Nº DO CLIENTE, SALDO DE CONTA, LIMITE DE CRÉDI-
TO, DESCONTO e DESPACHO PARA ENDEREÇOS. Cada cliente pode
ter mais de um DESPACHO PARA ENDEREÇO. Cada entidade PE-
DIDO tem três atributos: Nº DO PEDIDO, DESPACHO PARA ENDE-
REÇO e DATA. Cada pedido tem apenas um DESPACHO PARA
ENDEREÇO. O relacionamento CLIENTE-PEDIDO não tem atributos.
A Figura 69 ilustra os atributos e tipos de valor das propriedades
das entidades LINHA e das relações LINHA-PARTE. Uma entidade
LINHA tem um atributo: Nº DA LINHA. Uma relação LINHA-PARTE
tem dois atributos: QTD PEDIDA e QTD A ENTREGAR. O valor da QTD
A ENTREGAR é, inicialmente, igual à QTD PEDIDA e é gradualmente
reduzido a zero conforme os despachos parciais são feitos.
60 Modelagem de Dados
Os atributos e tipos de valor para PARTE, INVENTÁRIO e
DEPÓSITO podem ser encontrados nas Figuras 54 e 55.
5.3.5 Traduzir o Diagrama E-R em um Diagrama de
Estrutura de Dados
Usando as regras de tradução discutidas na Seção 4.2, o diagra-
ma E-R da Figura 67 pode ser traduzido no diagrama de estrutura de
dados mostrado na Figura 70. Todos os tipos de entidade tornam-se tipos
de registro no diagrama de estrutura de dados. Uma vez que os tipos de
relacionamento CLIENTE-PEDIDO, PEDIDO-LINHA e LINHA-PARTE
são mapeamentos um-para-muitos, eles são traduzidos em conjuntos de
estrutura de dados no dia diagrama de estrutura de dados. Uma vez que o
relacionamento INVENTARIO é um mapeamento muitos-para-muitos,
ele é traduzido em um tipo de registro.
Figura 70 O diagrama estrutura de dados derivado do diagrama E-R da Figura 67.
5.3.6 Projetar Formato de Registro
As Figuras 71 a 74 ilustram os formatos de registro para os
quatro tipos de registro CLIENTE, PEDIDO, LINHA e PARTE da Fi-
gura 70. O registro LINHA contém não apenas os atributos da entidade
LINHA, mas também os atributos dos relacionamentos LINHA-PARTE.
(Ver Figuras 69 e 73.) Neste exemplo de banco de dados de anotação de
LINHA
PARTE
INVENTÁRIO
DEPÓSITOPEDIDO
CLIENTE
o método entidade-relacionamento para projeto lógico de bancos de dados 61
pedidos de compra também escolhemos cadeias como implementação
física dos conjuntos de estrutura de dados. Os formatos de registro para
os tipos de registro DEPÓSITO e INVENTÁRIO estão mostrados nas
Figuras 65 e 66. Note que, se fundirmos as Figuras 56 e 60, teremos de
reprojetar o formato de registro para o registro PARTE; isto é, fundir a
Figura 62 com a Figura 74.
Figura 72 Registro PEDIDO.
62 Modelagem de Dados
PARA O PRIMEIRO REGISTRO PEDIDO
RELACIONADO A ESTE CLIENTE
Figura 71 Registro CLIENTE.
PARA O PRÓXIMO REGISTRO PEDIDO
PERTENCENTE AO MESMO CLIENTE
PARA O PRIMEIRO REGISTRO LINHA
RELACIONADO A ESTE PEDIDO
DESPACHO
PARA
ENDEREÇO
DATANº DO PEDIDO
Nº DO
CLIENTE
SALDO DA
CONTA
LIMITE DE
CRÉDITO DESCONTO
GRUPO DE REPETIÇÃO
DESPACHO
PARA
ENDEREÇOS
Figura 74 Registro PARTE.
5.4 EXEMPLO 3: UM BANCO DE DADOS DE UMA
BIBLIOTECA
5.4.1 Identificar Tipos de Entidade
Uma Biblioteca quer manter o controle de seus livros e também
proporcionar um sistema computadorizado para busca de livros por
categorias, palavras-chaves ou autores. Tipos de entidade importantes
são: LIVRO, AUTOR, PALAVRA-CHAVE, CATEGORIA e FUNCIO-
NÁRIO. (Ver Figura 75.)
o método entidade-relacionamento para projeto lógico de bancos de dados 63
Nº DA PARTE PESO COR
PARA O PRIMEIRO REGISTRO LINHA
RELACIONADO A ESTA PARTE
Figura 73 Registro LINHA.
PARA O PRÓXIMO REGISTRO LINHA
RELACIONADO À MESMA PARTE
Nº DA LINHA QTD PEDIDA QTD A ENTREGAR
PARA O PRÓXIMO REGISTRO LINHA
PERTENCENTE AO MESMO PEDIDO
Figura 75 Um diagrama E-R para um banco de dados de biblioteca.
5.4.2 Identificar Tipos de Relacionamento
Há dois tipos de relacionamento entre entidades AUTOR e enti-
dades LIVRO. Uma é a AUTORIA PRINCIPAL e a outra é a CO-
AUTORIA. (Ver Figura 75.) Cada livro tem apenas um autor principal,
mas um autor pode ser o autor principal de muitos livros. Por outro lado,
cada livro pode ter vários co-autores (além do autor principal) e cada
autor pode ser o co-autor de muitos livros. Há dois tipos de relaciona-
mento entre entidades CATEGORIA e entidades LIVRO: uma é o
CATÁLOGO

Outros materiais