Escolar Documentos
Profissional Documentos
Cultura Documentos
Manual Básico de
Modelagem de Dados
Setembro de 2001
Sumário
1. Introdução...........................................................................................................................3
1.1 Evolução no tratamento dos dados .................................................................................3
1.1.1 Primeira Fase.........................................................................................................3
1.1.2 Segunda Fase.........................................................................................................3
1.1.3 Terceira Fase.........................................................................................................3
1.1.4 Quarta Fase ...........................................................................................................4
1.2 Razão para a evolução ..................................................................................................4
1.3 Conseqüências do uso de SBD.......................................................................................5
2. Abstração de dados.............................................................................................................6
2.1 Projeto descendente - Top down.....................................................................................7
2.2 Projeto ascendente - Bottom up......................................................................................7
3. Projetos descendentes .........................................................................................................8
3.1 Modelo Conceitual ........................................................................................................8
3.1.1 Conceito ................................................................................................................8
3.1.2 O que deve ser descrito pelo modelo conceitual? .....................................................8
3.1.3 Semântica do modelo de dados conceitual...............................................................8
3.1.4 Requisitos para modelos conceituais.......................................................................8
3.2 Modelo conceitual de entidades e relacionamentos..........................................................9
3.2.1 Elementos e conceitos estabelecidos pelo modelo E-R .............................................9
3.2.2 Restrições de relacionamento................................................................................10
3.2.3 Características de implementação do modelo E-R .................................................11
3.3 Modelo Operacional ....................................................................................................12
3.3.1 Conversão do modelo conceitual para o operacional..............................................12
3.3.2 Dicionário de dados .............................................................................................15
4. Projetos Ascendentes ........................................................................................................16
4.1 Introdução...................................................................................................................16
4.2 Normalização..............................................................................................................16
4.2.1 Primeira forma normal .........................................................................................16
4.2.2 Segunda forma normal .........................................................................................16
4.2.3 Terceira forma normal .........................................................................................17
4.2.4 Quarta forma normal ...........................................................................................17
1. Introdução
Nesta fase os dados são tratados por aplicação. Somente a aplicação possui acesso aos
dados, pois a estrutura dos registros encontra-se definida no código fonte da aplicação. Por causa
disso os problemas de tratamento (acesso) dos dados, comuns a qualquer aplicação, precisam ser
resolvidos (administrados) pela própria aplicação.
Características:
Sendo uma evolução da primeira fase e forçada pela necessidade dos usuários, nesta
segunda fase os dados continuam sendo armazenados em arquivos e tratados por aplicação. No
entanto já há uma preocupação dos desenvolvedores em integrar as aplicações possibilitando a
troca de dados entre elas.
Características:
Usuário A
• Integração de aplicações que
antes eram isoladas
• Racionalização na entrada de
dados
• Os arquivos continuam sendo por
aplicação
• Troca de dados entre aplicações
Usuário B através de fitas ou disquetes
Visando isolar os dados das aplicações facilitando o acesso aos mesmos e por
conseqüência a integração dos sistemas, na terceira fase começam a surgir os primeiros SGBDs.
Os sistemas gerenciadores passam a assumir algumas funções que antes eram de
responsabilidade da aplicação, como por exemplo, a definição das estruturas dos arquivos
(tabelas).
Características:
S
Usuário A G • Banco de dados por aplicação
• Possibilidade de acesso
B interativo diretamente sobre o
Usuário banco de dados
D
• Começam a surgir as primeiras
linguagens de consulta
A quarta fase constitui a última geração dos SGBDs. A proposta destes sistemas é
promover uma completa abstração dos dados. Os SGBDs assumem todo o controle e tratamento,
restando para a aplicação apenas a necessidade de se comunicar com o gerenciador requisitando
consultas. Os problemas de acesso concorrente, segurança, consistências e integridade passam a
ser de responsabilidade do banco de dados, abrindo caminhos para a construção de sistemas
melhores e tempos cada vez menores.
Características:
Usuário A
S
• Banco de dados integrado
Usuário G • Compartilhamento dos dados
B por diversos usuários, de forma
D concorrente ou não
Usuário B • Independência de dados
4
1.3 Conseqüências do uso de SBD
A integração e compartilhamento dos dados gerou grandes benefícios, mas criou novas
necessidades. O próprio conceito de independência de dados (imunidade das aplicações com
relação aos dados) reforçou a necessidade de níveis de abstração de dados.
Benefícios: Necessidades:
• Economia de espaço de armazenamento • Maior uniformidade
• Economia do esforço de desenvolvimento • Ampliar dispositivos de segurança
(restrições de acesso e responsabilidades
• Redução da redundância de dados
sobre a manutenção de dados).
• Redução da inconsistência de dados
• Reforçar padrões
• Manter a integridade
5
2. Abstração de dados
Um SBD deve dar ao usuário uma visão abstrata dos dados, escondendo detalhes de
armazenamento e manutenção, pois a complexidade interna das estruturas de armazenamento não
interessam ao usuário.
Abstração de dados, portanto, é a capacidade de enxergar a realidade desprezando certos
detalhes que, no momento, são irrelevantes. Setzer (1987) estabeleceu cinco níveis para efeito de
estudos sobre este assunto. O primeiro nível, considerado por Setzer, é a própria realidade,
seguida por quatro níveis de abstração.
Mundo Real:
• Os objetos são seres, fatos, coisas e organismos
sociais
• Nebuloso do ponto de vista formal
Mundo Real • Não é um nível de abstração
Nível Descritivo:
• Informações informais (relatórios em
linguagem natural)
• Descreve estruturas e transações
Modelo Descritivo • Já é um nível de abstração
• Modelo descritivo da realidade
• Não há regras formais para esse modelo
Nível Conceitual:
• Informações formais
• Deve ser estritamente formal (formalismo
Modelo Conceitual matemático)
• Facilitar a obtenção do modelo operacional
• Trabalha com estruturas de informações.
• Estruturas: Cliente (código, nome, endereço...)
ou Cliente possui Pedido
• As estruturas descrevem a informação
Modelo Operacional
• Exemplos de modelos conceituais: DER, DFD,
fluxogramas, diagramas de blocos, etc.
(português estruturado é intermediário entre
conceitual e operacional)
Nível Operacional:
Modelo Interno • É o nível de dados
• Símbolos a serem introduzidos no computador
(meta-dados e dados)
• Modelos deste nível são operacionais
Nível Operacional: • Linguagens: DDL e DML
• Modelos hierárquicos, redes e relacionais
Mais próximo da máquina
Nível Interno ou de Máquina:
• Cadeias de bits e bytes
Nível Conceitual: • Estruturas internas de arquivos e tabelas
• Programas em linguagem de máquina (EXE)
Mais próximo do mundo real • Usuário não vê detalhes desse nível
• Nível de máquina por dentro
2.1 Projeto descendente - Top down
É um método para gerar o modelo operacional partindo dos próprios dados que serão
introduzidos no computador. No projeto ascendente aplicam-se técnicas que visam ajudar a
definir quais dados são relevantes para a organização, bem como suas formas de armazenamento.
Estas técnicas, quando bem empregadas, geram modelos operacionais idênticos (ou iguais) aos
gerados pelo método descendente, ou seja, sem redundâncias. Os seguintes passos orientam a
construção de um projeto ascendente.
Primeiro Passo: Fazer um levantamento completo de todos os dados operacionais da
empresa a partir de documentos utilizados no mundo real.
Segundo Passo: Aplicar as técnicas de normalização sobre as relações de dados extraídas
dos documentos.
Terceiro Passo: Construir o modelo conceitual a partir do modelo operacional. Este
passo, por razões de conveniência, pode não ser de interesse da empresa.
7
3. Projetos descendentes
3.1.1 Conceito
A semântica inerente aos dados deve ser uma preocupação atendida pelo modelo
conceitual. Sempre que possível o modelo conceitual deve capturar o máximo de semântica da
realidade, pois a semântica diz respeito ao significado dos dados.
O modelo E-R foi proposto por Peter • Proposto por Peter Chen em 1976
Chen em 1976. Peter Chen acredita que o • Mundo real consiste de entidades e
mundo real e composto de entidades e relacionamentos
relacionamentos. Baseado na teoria dos • Incorpora importantes informações
conjuntos criou o modelo E-R visando semânticas sobre o mundo real
incorporar informações semânticas sobre o • Baseado na teoria dos conjuntos
• Possui alto grau de independência de
mundo real em uma forma de representação que
dados
garanta a independência de dados e que • Modelos operacionais são facilmente
facilmente derive modelos operacionais. derivados
9
Domínio: O domínio de um atributo é o conjunto de valores admissíveis
para este atributo. O atributo sexo, por exemplo, pode ter como
domínio o conjunto { M, F }. Já o atributo código pode ter
como domínio um intervalo de valores [1 ; 999 ].
Formalmente, atributo é a função que mapeia um conjunto de
entidades em um conjunto de valores (domínio).
o o Conjunto
Matrícula o o o de
o o Matrículas
Conjunto o o
de Entidades o o o
Funcionários o o
oM Conjunto
Sexo de
oF Sexos
3.2.2.1 Cardinalidade
Expressa o número de instâncias de uma entidade que podem ser associadas a uma
instância (ocorrência, tupla, registro) de outra entidade através do relacionamento.
Uma para muitos: Uma entidade em A está associada a qualquer número de entidades em
B. Uma entidade em B pode estar associada a, no máximo, uma entidade em A.
1 N
A B
Muitos para muitos: Uma entidade em A está associada a qualquer número de entidades
em B. Uma entidade em B está associada a qualquer número de entidades em A.
N N
A B
10
3.2.2.3 Persistência
3.2.3.1 Auto-relacionamento
Uma entidade pode, conforme o caso, assumir diferentes papéis num modelo de dados.
GERENTE
FUNCIONÁRIO
N N
Fornecedor Possui Produtos
Projeto
3.2.3.4 Agregações
11
N N
Cliente Possui Conta
Emite
1
Cartão
Magnético
PESSOA
Para gerar o modelo conceitual podemos utilizar diversas técnicas e diagramas, contudo, se
este fora modelado sob a proposta de Peter Chen, utilizando o diagrama de entidades e
relacionamentos, a conversão para o modelo operacional torna-se natural.
No modelo conceitual de entidades e relacionamentos utilizamos conjuntos de entidades,
relacionamentos, atributos e alguns símbolos para representar a semântica pertinente a um ou
12
mais objetos e fatos do mundo real. Estes elementos facilmente são convertidos para relações ou
tabelas, tuplas e regras operacionais. Veja como esta conversão se dá:
001 Lajeado
Nomes
002 Londres
próprios
Domínios 003... Paris...
Chave primária
Para cada tabela (relação) devemos eleger um chave primária. A chave primária é
composta por um ou mais atributos que permitem uma identificação única de cada tupla da
tabela. Para tal seleciona-se os atributos ou conjunto de atributos que reúnem esta característica,
os quais são chamados de chaves candidatas. Entre as chaves candidatas escolhe-se o atributo
que melhor desempenha o papel de chave primária para assumir esta função, assim sendo as
demais chaves passam a ser consideradas chaves alternativas. Na ausência de um atributo (ou
conjunto de atributos) que se qualifique para assumir o papel de chave primária, cria-se um novo
atributo com esta característica. Normalmente este atributo recebe nomes como: código,
matrícula, número, sigla, etc.
As tabelas (relações) inicialmente são enumeradas juntamente com a lista de seus
atributos, como mostra o exemplo abaixo. Para destacar a chame primária costuma-se sublinhar
os atributos que a compõe.
Exemplo de representação no modelo operacional:
Produto ( CódProduto, Descrição, PreçoUnitário, Estoque )
13
3.3.1.2 Chave estrangeira
Este tipo de relacionamento é o mais fácil de ser convertido para o modelo operacional.
Após definidas as duas tabelas com suas chaves primárias, basta acrescentar a chave primária de
uma delas como chave estrangeira na outra tabela.
Alguns bancos de dados não implementam relacionamentos de muitos para muitos. Por
causa disto devemos converter os relacionamentos deste tipo para dois relacionamentos de um
para muitos.
Modelo E-R Modelo Operacioanal
N N 1 N N 1
Nota Fiscal Possui Produtos Nota Fiscal Contém Itens da NF Descrevem Produtos
14
3.3.2 Dicionário de dados
O dicionário de dados nada mais é do que uma descrição detalhada de todos os dados que
envolvem uma aplicação. A construção de um dicionário de dados pode ser um trabalho
exaustivo e ocasionalmente complicado se optarmos por descrever absolutamente todos os dados
frutos de uma análise de um sistema, pois muitas metodologias geram um grandiosíssimo volume
de dados.
No entanto o dicionário de dados é provavelmente um dos resultados mais importantes que
deve sair de um projeto de banco de dados, pois nele serão definidas importantíssimas
informações para o gerenciamento da base de dados e conseqüentemente para a construção dos
futuros sistemas de informação.
Para cada atributo de cada relação devemos definir nome interno, tipo, tamanho, domínio,
entidade relacionada, valor default, se pode ou não receber valor nulo, etc. A construção do
dicionário de dados deve ser baseada nas características do software de banco de dados existente
na organização, mas nada impede que se inclua outras informações.
Veja um exemplo simples:
15
4. Projetos Ascendentes
4.1 Introdução
4.2 Normalização
Normalização é uma técnica de projeto de banco de dados que visa, a partir dos dados
existentes na organização, construir relações (tabelas) livres de redundância e passíveis de serem
implementadas em um banco de dados relacional.
Para normalizar um conjunto de dados devemos aplicar sobre os mesmos as regras que os
tornam normalizados. O processo de normalização passa por diversas etapas conhecidas como
formas normais. Veja um exemplo.
Seja a seguinte relação não normalizada:
Funcionários ( Código Funcionário, Nome, Endereço, Cidade, UF, CEP, Departamento,
( Código Curso, Curso, Data, Grau ))
Obs.: Os atributos Código Curso, Curso, Data e Grau estão entre parênteses porque se
repetem muitas vezes na ficha do funcionário.
Uma relação estará na primeira forma normal se e somente se todos os seus atributos
possuírem valores atômicos (únicos).
Funcionários ( Código Funcionário, Nome, Endereço, Cidade, UF, CEP, Departamento )
CursosFuncionário ( Código Funcionário#, Código Curso, Curso, Data, Grau )
Obs.: Os atributos que se repetem (valores não únicos) formam uma nova relação. A chave
primária da primeira relação (relação origem) deve ser levada para a nova relação. Para a nova
relação devemos definir uma chave primária.
Uma relação estará na segunda forma normal se e somente se estiver na primeira forma
normal e todos os seus atributos forem dependentes funcionais de toda a chave primária, ou seja,
nenhum atributo pode ser dependente parcial da chave primária.
Funcionários ( Código Funcionário, Nome, Endereço, Cidade, UF, CEP, Departamento )
CursosFuncionário ( Código Funcionário#, Código Curso#, Data, Grau )
Cursos( Código Curso, Curso )
Obs.: O atributo Curso é dependente apenas de Código Curso, por isso foi retirado e
passou a integrar uma nova tabela de Cursos onde o atributo que gera a dependência funcional,
Código Curso, é trazido como chave primária.
Uma relação estará na terceira forma normal se e somente se estiver na segunda forma
normal e nenhum de seus atributos for dependente transitivo da chave primária, ou seja, nenhum
atributo pode depender de outro atributo que não é chave.
Funcionários ( Código Funcionário, Nome, Endereço, CEP#, Departamento )
Cidades ( CEP, Cidade, UF )
CursosFuncionário ( Código Funcionário#, Código Curso#, Data, Grau )
Cursos( Código Curso, Curso )
Obs.: Os atributos Cidade e UF além de dependerem da chave primária Código
Funcionário são dependentes do atributo CEP, portanto passam a constituir uma nova tabela
tendo como chave primária o CEP.
Uma relação estará na quarta forma normal se e somente se estiver na terceira forma
normal e nenhum de seus atributos for dependente multivalorado da chave primária, ou seja,
possuir um conteúdo comum a muitas tuplas da relação.
Funcionários ( Código Funcionário, Nome, Endereço, CEP#, Código Depto# )
Cidades ( CEP, Cidade, UF )
CursosFuncionário ( Código Funcionário#, Código Curso#, Data, Grau )
Cursos( Código Curso, Curso )
Deptos ( Código Depto, Departamento )
Obs.: O atributo Departamento é dependente multivalorado do Código Funcionário, pois
ele ocorre repetidamente em várias tuplas da relação Funcionário. Para solucionar esta
dependência cria-se uma nova tabela com o atributo Departamento, gerando um novo atributo
para constituir a chave primária desta nova tabela, Código Depto.
17