Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

SISTEMA GERENCIADOR 
DE BANCO DE DADOS
SISTEMA GERENCIADOR 
DE BANCO DE DADOS
Copyright © UVA 2019
Nenhuma parte desta publicação pode ser reproduzida por qualquer 
meio sem a prévia autorização desta instituição.
Texto de acordo com as normas do Novo Acordo Ortográfico 
da Língua Portuguesa.
AUTORIA DO CONTEÚDO
Claudio Fico Fonseca
REVISÃO
Luiz Werneck
Clarissa Penna
Janaina Senna
Lydianna Lima
PROJETO GRÁFICO
UVA
DIAGRAMAÇÃO
UVA
SUMÁRIO
Apresentação
Autor
6
8
Modelo de Dados 36
• UML
• Levantamento de requisitos
• Modelagem de dados
UNIDADE 2
9
• Banco de dados
• Modelos de Banco de Dados
• Sistema Gerenciador de Banco de Dados – SGBD
Sistema de Gerenciamento de Banco de Dados
UNIDADE 1
SUMÁRIO
Normalização de dados 111
• Engenharia reversa
• As três formas normais
• Forma normal Boyce-Codd
UNIDADE 4
79
• Conceito
• Relacionamento entre as classes
• Modelando o diagrama de classes
Diagrama de classes
UNIDADE 3
6
A disciplina Sistema Gerenciador de Banco de Dados – SGBD visa ao entendimento da 
necessidade de aplicação e de implementação de um SGBD nas empresas. Ao longo 
das aulas, você vai perceber que o uso dessa tecnologia permite o fortalecimento e o 
engrandecimento do negócio junto ao mercado globalizado. Além disso, você vai ver 
que é importante ter um ou mais sistemas de informação conectados a uma excelente 
base de dados, para que os negócios possam ser geridos de forma plena e segura.
O SGBD consiste em um conjunto tecnológico de recursos utilizados para:
• Tratar a informação.
• Gerar segurança nos dados.
• Permitir eficiência e eficácia na comunicação, incluindo software, hardware e rede 
de comunicação de dados.
O SGBD vem se tornando cada vez mais importante no nosso contexto por conta da 
globalização, que permitiu, ao longo dos anos, que as empresas pudessem ter informa-
ções mais rápidas e precisas.
Além disso, o SGBD tem prospectado novas oportunidades de trabalho, crescimento de 
novos cenários de negócios, aumento do comércio e investimento de empresas inter-
nacionais. Entretanto, apesar dessas modificações positivas, os avanços em tecnologia 
estão gerando malefícios, como, por exemplo, os novos custos para os processos.
Nesta unidade, você verificará que os SGBDs são essenciais para as operações diárias 
das empresas, para que possam ter o controle sobre as suas informações e, a partir 
delas, criar estratégias para potencializar o negócio. 
APRESENTAÇÃO
7
As inovações tecnológicas permitirão que as empresas experimentem sempre um 
rápido crescimento, tendo em vista a qualificação oferecida a seus profissionais, 
bem como as oportunidades de aquisição de hardwares e softwares com maior po-
tência para o engrandecimento do negócio. Isso permitirá uma expansão até com o 
mercado internacional.
8
CLAUDIO FICO FONSECA
Graduado em Informática, especialista em Marketing, MBA em Gestão Empresarial, MBA 
em Gerenciamento de Projetos, mestre em Educação e doutor em Gestão Educacional. 
Exerce na Universidade Veiga de Almeida – UVA os cargos de diretor de Desenvolvimento 
Institucional, coordenador do curso de Sistemas da Informação (presencial e EAD), 
coordenador do curso de Análise e Desenvolvimento de Sistemas (EAD), coordenador 
do curso de Gestão da Tecnologia da Informação (EAD), coordenador do Núcleo de 
Certificação Profissional e Internacional, coordenador de MBA em Gestão Estratégica 
de TI. Exerceu o cargo de diretor da Escola de Tecnologia da Informação e Inovação 
das Faculdades Integradas de Jacarepaguá – FIJ; diretor de pós-graduação e extensão 
e consultor de Tecnologia da Informação na Master Educacional, pró-reitor acadêmico 
e diretor de tecnologia do Grupo Educacional Anglo-Americano, vice-reitor adjunto, 
diretor de Certificação Profissional e gerente de TI do Centro Universitário da Cidade 
do Rio de Janeiro. Atua como conselheiro de Educação e Novas Tecnologias, membro 
da Associação Brasileira de Educação, membro titular do Conselho Ibero-Americano, 
avaliador institucional e de cursos da área de informática e cursos superiores de tecnologia 
do Ministério da Educação/INEP, avaliador de cursos do Guia do Estudante e perito de 
Tecnologia da Informação da Justiça do Trabalho.
AUTOR
C. Lattes
http://lattes.cnpq.br/6387003742232768
Sistema de Gerenciamento 
de Banco de Dados
UNIDADE 1
10
Nesta unidade, você estudará o conceito e a importância do SGBD dentro uma pers-
pectiva teórica; conhecerá os diversos usos de um SGBD na empresa, bem como suas 
respectivas aplicações; saberá a importância dos princípios do gerenciamento da infor-
mação para a melhoria e a segurança do negócio. 
INTRODUÇÃO
Nesta unidade, você será capaz de:
• Conhecer os conceitos de banco de dados, seu papel na construção de um pro-
jeto de sistemas, especialmente o SGBD, para garantir a aplicação em um sistema 
computacional de informações e a importância da informação em um sistema, de 
acordo com a perspectiva de cada usuário ou grupo de usuários.
OBJETIVO
11
Banco de dados 
O que são bancos de dados?
Podemos trabalhar com duas nomenclaturas diferentes: bancos de dados e/ou bases 
de dados. Definir bancos de dados, por outro lado, não é tão simples. Observe, a seguir, 
algumas definições possíveis:
Bancos de dados são conjuntos de 
informações que se relacionam criando 
um sentido. São de grande importância 
para toda e qualquer empresa e, há duas 
décadas, tornaram-se peça-chave de 
todos os sistemas de informação.
Bancos de dados são conjuntos de 
arquivos que se comunicam entre si, 
proporcionando o armazenamento de 
uma grande quantidade de dados: nomes, 
telefones, documentos, pagamentos, 
endereços, clientes, serviços etc. 
Os bancos de dados precisam ser 
configurados e administrados por meio 
das linguagens de programação, como, por 
exemplo: JavaScript, SQL, PL/SQL etc.
De forma simples, um banco de dados nada mais é do que um ambiente de 
armazenamento de dados. Em um mundo cada vez mais digital, o controle, a 
necessidade e a gestão desses dados podem ser os diferenciais para conseguir 
sucesso no mercado.
Um banco de dados é, na verdade, 
uma estrutura de dados organizada, 
que possibilita a busca de informações 
direcionadas.
Bancos de dados são uma coleção
de dados interligados entre si e
organizados para fornecer informações
de grande importância.
Como um banco de dados é estruturado?
É importante frisarmos que um banco de dados pode possuir uma ou mais tabelas. Dentro 
da tabela, os dados são organizados em linhas e colunas e podem ser indexados ou
12
não (opção que a tabela oferece no momento de sua configuração), o que caracteriza 
uma grande facilidade para encontrar informações relevantes. Os dados, dentro de uma 
determinada tabela, podem ser incluídos, alterados e excluídos, conforme as informações 
são tratadas e em função das demandas. A tabela, em conjunto com o banco de dados, 
ajusta-se para criar e atualizar seu próprio volume, consultando os dados e executando 
aplicativos internos.
Nos dias de hoje, é possível encontrar diversos tipos de banco de dados, mas eles estão 
presentes na nossa vida há muito tempo. Como exemplo, podemos citar as antigas listas 
telefônicas, que, hoje, são os contatos dos respectivos smartphones. Podemos levar em 
consideração esse exemplo por se tratar de um conjunto de informações importantes 
com grande representatividade para o nosso dia a dia. Afinal, quem é que hoje memoriza 
um número de telefone?
No passado, era comum que as empresas 
armazenassem suas informações em arquivos 
físicos (folha de papel, cartão etc.), mas, com 
o surgimento e a evolução dos computadores 
portáteis e de grande porte, tornou-se possível o 
armazenamento de dados e informações de modo 
digital. Dessa forma, os bancos de dados passaram 
a evoluir em larga escala e começaram a se tornar 
o coração de vários sistemas de informação.
Dados versus informações
Muitos estudiosos consideram os termos dado e informação sinônimos, mas, na 
verdade,não são. Para que se possa entender, na íntegra, o que é um banco de dados é 
fundamental saber a diferença entre esses dois termos:
Dados são fatos brutos, não lapidados, 
em sua forma mais primária. Na maioria 
das vezes, os dados podem não fazer 
sentido quando estão sozinhos.
Informações consistem na união 
de dados bem organizados para 
que haja um sentido e, assim, gere o 
conhecimento necessário para uma ou 
mais demandas.
13
Exemplo
Observe o exemplo a seguir.
O número 2019 de forma isolada faz algum sentido? É claro que não! Isso é o 
que chamamos de “dado”. 
E se fosse dito que: “O ano do crescimento da economia é 2019”? Agora pode-
se dizer que há um sentido. Isso é o que chamamos de “informação”.
No exemplo anterior, do número 2019, o dado “o ano do crescimento da 
economia” pode ser considerado um metadado, pois ele é um dado relevante 
sobre o dado “2019”. 
Outro exemplo bem interessante em banco de dados é o campo “telefone” 
da tabela “FORNECEDOR”. Esse tipo de campo tem os seguintes metadados, 
entre outros: 
• Nome do campo (telefone).
• Tipo do campo (inteiro).
• Tamanho do campo (nove posições).
• Obrigatoriedade de preenchimento (não) etc.
Metadados
Todo dado que é pertinente a outro dado é denominado metadado. 
Exemplo
Um banco de dados é formado, obrigatoriamente, por dados e metadados. Sem a 
existência dos metadados não seria possível organizar e extrair informações pertinentes 
de um banco de dados e, assim, não seria possível atender às demandas.
14
A importância do banco de dados
O banco de dados armazena, controla e gerencia os bens mais valiosos que uma 
empresa, na atualidade, pode possuir. Isso se dá porque o mercado profissional está 
cada vez mais competitivo, acelerado e dinâmico, demandando das empresas respostas 
ágeis e assertivas, além da necessidade de estratégias bem estruturadas para uma 
determinada execução. O banco de dados armazena dados e, nessa gigantesca luta de 
competitividade, o dado preciso é sinal de poder.
Por meio dos processos de armazenamento, controle e gerenciamento de dados, toda a 
estrutura de funcionamento de uma empresa é galgada. Podemos afirmar que, em todo 
lugar, há um tipo de banco de dados. Por menor que seja o negócio, quando um gestor utiliza 
um aplicativo para organização financeira, por exemplo, está sendo utilizada uma espécie 
de banco de dados. Esse tipo de banco de dados pode ser classificado como simplificado 
e automatizado, que armazena, processa e fornece informações sobre finanças.
Por outro lado, quando se tem em seu negócio um banco de dados bem gerido e informações 
de qualidade, o resultado, na maior parte das vezes, é de total sucesso. Assim, é possível 
que o gestor possa analisar as informações e verificar em qual direção a sua empresa está 
caminhando, com isso poderá corrigir o caminho e/ou ampliar a sua atuação.
Outro ponto importante quanto ao uso de banco de dados é que é possível realizar uma 
série de levantamentos. Veja alguns exemplos: 
• O rendimento de um ou mais funcionários pode ser analisado. 
• Bem como a qualidade do atendimento desse funcionário. 
• O impacto das ações de marketing realizadas pela empresa. 
• O retorno obtido por ações empreendidas. 
• Outras inúmeras aplicações.
Para o cliente que também se utiliza do banco de dados, o efeito é rápido e objetivo. 
Acompanhe o exemplo a seguir:
15
Exemplo
Pense no cliente que compra um produto em um site e, depois, faz o 
acompanhamento do processo de pagamento, de preparação do produto e de 
todas as etapas da entrega. 
No dia a dia, quando se tem à disposição um banco de dados bem administrado, 
a relação cliente e empresa fica muito mais transparente e prazerosa, pois 
as necessidades do consumidor são reconhecidas de imediato e atendidas 
prontamente. Todos esses cuidados criam uma experiência mais salutar para 
o cliente.
Vantagens de um banco de dados
Você já percebeu que são muitas as vantagens do uso de bancos de dados. A seguir, 
listamos algumas:
Redução ou eliminação de redundâncias: faz com que haja a eliminação de dados 
repetidos entre cada sistema. Os dados, que serão os mesmos em mais de um sistema, 
possuem compartilhamento entre si, permitindo o acesso a uma mesma informação, 
sendo consultada por vários usuários em muitos sistemas.
Eliminação de inconsistências: a informação é armazenada em um só local, cujo 
acesso é descentralizado, e seu conteúdo é compartilhado com vários sistemas; isso 
permite que os usuários se utilizem de uma informação fidedigna. A inconsistência da 
informação ocorre quando um mesmo campo da tabela possui informações diferentes 
em sistemas diferentes. Veja o exemplo: o estado de moradia de uma pessoa é “SP” 
em um determinado sistema e “MG” em outro sistema da empresa. Isso ocorre porque 
a informação, de certa forma, foi atualizada em um campo da “Tabela A”, mas não foi 
atualizada no mesmo campo da “Tabela B”. Quando a informação é armazenada em um 
único local e compartilhada pelos devidos sistemas de forma integrada, esse problema 
certamente não ocorre.
Compartilhamento dos dados: faz com que ocorra o uso simultâneo e seguro de 
um dado de uma determinada tabela, utilizado por mais de um sistema ou usuário, 
independentemente da operação que esteja sendo realizada naquele momento. O 
importante é observar, apenas, o processo de atualização simultâneo da informação, 
16
para que não haja geração de erros no momento do processamento. Esse cuidado deve 
ser tomado uma vez que os aplicativos, nos dias de hoje, são, na sua maioria, sistemas 
multiusuários, ou seja, permitem que vários usuários tenham acesso simultâneo àquela 
informação.
Restrições de segurança: faz com que haja uma definição, deliberada por alguém de 
representatividade na empresa, para o nível de acesso ao sistema de cada usuário. Os 
níveis de acesso são: leitura, inclusão, alteração e exclusão. Dependendo do nível de acesso 
do usuário, ele será impedido de utilizar um ou outro recurso que possa impactar os dados 
da tabela do banco de dados. Um exemplo é o impedimento de excluir alguma informação.
Padronização dos dados: faz com que haja uma harmonização na forma como os dados 
são gravados nas respectivas tabelas. Por exemplo, para o campo “Sexo”, somente será 
permitido o armazenamento dos conteúdos “M” ou “F”. Assim, a tabela não aceitará 
nenhuma outra informação.
Manutenção da integridade: tem o objetivo de evitar que valores indevidos ou 
inconsistentes sejam gravados em uma respectiva tabela do banco de dados, como a 
inclusão do campo código ou da chave primária de uma tabela que não tenha correlação 
com outra tabela do banco de dados. Acompanhe um caso prático: a criação de um 
código de uma determinada disciplina na tabela “Histórico Escolar” sem que haja a 
existência desse código na tabela “Disciplina”.
Alguns importantes banco de dados utilizados no mercado
Mesmo com o crescimento dos bancos de dados no mercado corporativo, ainda é 
comum ouvir dos profissionais a pergunta: quais são os bancos de dados mais utilizados 
do mercado? 
Veja, a seguir, uma lista com os principais exemplos de banco de dados existentes no 
mercado profissional.
17
• O banco de dados Oracle foi lançado em 1980 e é o que temos de melhor no 
mercado. 
• É um banco de dados relacional que predomina no mercado há bastante 
tempo. 
• Sua linguagem de programação é o PL/SQL.
• Para os profissionais de TI, o domínio do SQL é algo fundamental. Mas ter o 
domínio do Oracle e PL/SQL é o segundo passo para se ter uma infinidade de 
oportunidades junto ao mercado de trabalho.
• Esse é o famoso banco de dados da empresa Microsoft e, no momento, é o 
terceiro colocado no ranking de preferências.
• Foi lançado em 1989 e também é um banco de dados relacional. 
• Com o crescimento das ferramentas de open source, depois de longos 27 
anos de mercado, a Microsoft lançou uma versão para o sistema operacional 
Linux.
• É um banco de dados bastante utilizado no mercado, mas devido ao fato 
deele, hoje, suportar linguagens do pacote .NET, além de a sua linguagem 
nativa ser o T-SQL, não é tão valorizado como o banco de dados Oracle. 
• É um banco de dados gratuito que tem sido muito utilizado em sistemas on-
line. Ele também pertence à família Oracle e foi lançado em 1996. 
• Também é considerado um banco de dados relacional.
• Os profissionais com conhecimentos em MySQL também são bem 
valorizados pelo mercado profissional, embora menos do que os profissionais 
com domínio do Oracle.
Oracle (pago)
SQL Server (pago)
MySQL (free)
18
• É um banco de dados relacional, com característica open source, da empresa 
PostgreSQL Global Development Group. Seu lançamento se deu em 1989.
• Pelo fato de ser open source, assim como o banco de dados MySQL da 
Oracle, é bastante utilizado para sistemas web.
PostgreSQL (free)
MIDIATECA
Acesse a midiateca da Unidade 1 e veja o conteúdo complementar indicado pelo 
professor sobre bancos de dados e sua importância no dia a dia das pessoas.
19
Modelos de Banco de Dados 
Neste tópico, você vai conhecer uma série de definições importantes para o 
desenvolvimento do trabalho com bancos de dados. Vamos lá?
Modelos de banco de dados
Um modelo de banco de dados demostra a sua estrutura lógica, inserindo e exibindo as 
relações e restrições que determinam como os respectivos dados poderão ser armazenados 
e acessados. Os modelos de banco de dados individuais são, na íntegra, projetados a 
partir das regras e dos conceitos do modelo de dados mais abrangente adotado pelos 
designers de banco de dados. A maior parte dos modelos de dados desenvolvidos pode 
ser representada por um determinado diagrama de banco de dados acompanhante.
Instâncias
É o conjunto de informações contidas em um banco de dados, em um dado momento.
Independência de dados
É a forma que se tem para a modificação e a respectiva definição dos esquemas existentes 
em determinado nível, sem que este afete de alguma forma o esquema do nível superior.
Existem dois tipos de independência. Conheça cada tipo, a seguir:
Permite que haja a possibilidade de 
modificação do esquema físico sem que 
qualquer programa utilizado no sistema precise 
ser refeito. As modificações oriundas no nível 
físico são deveras importantes, principalmente 
para que haja uma melhora significativa no 
desempenho do sistema e do banco de dados.
Faz com que se tenha uma capacidade de 
modificação do esquema lógico sem que 
qualquer programa desenvolvido na aplicação 
precise ser refeito. As modificações pertinentes 
no nível lógico são necessárias desde que uma 
referida estrutura lógica do banco de dados seja 
alterada por uma necessidade de adequação e/
ou melhoria de performance.
Física Lógica
20
Curiosidade
A independência lógica de dados é muito mais difícil de ser mensurada do que 
a independência física de dados. Isso porque os programas desenvolvidos no 
sistema são mais dependentes da estrutura lógica dos dados do que de seu 
acesso.
Os três níveis da arquitetura
A arquitetura ANSI/SPARC se divide em três níveis, conhecidos como nível interno, nível 
conceitual e nível externo. Entenda como cada um está organizado:
É conhecido, também, como nível físico. É o mais próximo do meio 
de armazenamento físico, ou seja, é aquele que se ocupa do modo 
como os dados são fisicamente armazenados.
Também conhecido como nível lógico do usuário. É o mais próximo 
dos usuários, ou seja, é aquele que se ocupa do modo como os 
dados são vistos por usuários individuais.
Esse nível, também conhecido como nível lógico comunitário, é um 
nível de simulação entre os dois níveis anteriores: interno e externo.
Nível interno
Nível externo
Nível conceitual
Tipos de modelos de bancos de dados
Temos vários tipos de modelos de dados utilizados no mercado profissional. Os mais 
comuns são:
21
• Hierárquico.
• Relacional.
• Rede.
• Entidade-relacionamento.
• Orientado para objetos.
• Entidade-atributo-valor.
• Modelo documental.
• Esquema em estrela.
• Relacional-objeto.
Com uma lista tão vasta de modelos de bancos de dados, você deve estar se perguntando: 
qual o melhor modelo a ser utilizado?
Nos dias de hoje, você poderá optar por desenvolver um banco de dados com qualquer 
um desses modelos. O fator diferenciador é se o sistema de gestão adotado pelo banco 
de dados que você usa suportará o modelo escolhido. A maior parte dos sistemas de 
gestão de banco de dados é construída com um modelo de dados particular e demanda 
que seus usuários adotem esse modelo, mesmo sabendo que alguns disponibilizam 
suporte a vários outros modelos.
Diante disso, diversos modelos de banco de dados aplicam-se para diferentes estágios 
do processo de criação de um banco de dados. Entenda que critérios colaboram para a 
escolha dos modelos de bancos de dados:
Os modelos de dados conceituais de 
alto nível são tidos como os melhores 
para coordenar as relações entre os 
dados de forma que os desenvolvedores 
percebam esses dados.
Os modelos lógicos, que são baseados 
em registros, refletem bem melhor 
as formas com que os dados são 
armazenados no servidor.
Importante
Definir qual o modelo de dados a ser usado é uma questão de definir suas 
prioridades para o banco de dados, tendo em vista os pontos fortes de um 
determinado modelo, independentemente de essas prioridades incluírem no 
seu contexto a questão da velocidade, da usabilidade e da redução de custos.
22
A seguir, saiba quais são os modelos de bancos de dados mais utilizados:
1. Modelo hierárquico
O modelo hierárquico foi muito utilizado, principalmente, pelos Sistemas de 
Gestão de Informações da IBM, entre os anos de 1960 e 1970. Hoje raramente 
são vistos devido a certas dificuldades operacionais.
Esse modelo organiza os dados em uma forma do tipo “árvore”, em que cada 
registro constituído tem um único “pai” ou uma raiz. Os registros caracterizados 
como “irmãos” são classificados em uma ordem específica. Essa ordenação é 
utilizada como a ordem física para armazenar o banco de dados. Esse modelo é 
bom para descrever muitas relações do mundo real.
2. Modelo relacional
O modelo relacional foi introduzido por E. F. Codd no ano de 1970. Os bancos de 
dados relacionais são escritos na linguagem SQL (Structured Query Language) 
e, atualmente, são considerados o modelo mais comum. Ele classifica os dados 
em tabelas, conhecidas como relações, e cada uma das tabelas é constituída de 
linhas e colunas:
• As colunas exibem atributos da entidade em questão, como data de nascimento, 
valor, CEP, entre outros. Unidos, os atributos em uma relação são denominados 
de domínio. Um atributo ou combinação de atributos específicos é determinado 
como uma chave primária que pode ser consultada em outras tabelas; quando 
isso acontece, existe a denominação de chave estrangeira.
• Cada linha da tabela, também denominada de tupla, inclui os dados sobre uma 
instância específica da entidade.
O modelo também ressalta os tipos de relações que há entre essas tabelas, 
incluindo as relações uma para uma, uma para muitas e muitas para muitas.
Dentro do banco de dados, é sabido que as tabelas podem ser normalizadas ou 
orientadas a seguir as regras de normalização que tornam o banco de dados 
adaptável, flexível e redimensionável. Quando normalizado, cada dado é atômico 
ou dividido em pequenos pedaços úteis.
23
3. Modelo de rede
Sua popularidade se deu nos anos de 1970, depois de ter sido validado pela 
Conferência sobre Linguagens de Sistemas de Dados ― CODASYL.
Esse modelo se caracteriza como o modelo hierárquico, permitindo que haja 
muitas possibilidades de relações entre os registros, formando vínculos. 
Isso implica a existência de vários registros do tipo “pai”. Com base na teoria 
dos conjuntos matemáticos, o modelo de rede é desenvolvido a partir de 
um conjunto de registros relacionados. Cada conjunto possui um registro 
proprietário, ou “pai”, e um ou mais registros membros, caracterizados como 
“filhos”. Um determinado registro pode ser caracterizadocomo membro ou 
como “filho”, em diversos conjuntos, permitindo, assim, que esse modelo seja 
capaz de transmitir relações complexas.
4. Modelo entidade-relacionamento
Esse modelo pega as relações entre as entidades do mundo real, de forma 
parecida com o modelo de rede, mas não está diretamente conectado com a 
estrutura física do banco de dados. Contudo, ele é constantemente utilizado 
para projetar um banco de dados de forma conceitual.
Temos definições de nomenclaturas como: pessoas; lugares; cidades. Essas 
definições serão armazenadas e referidas como “entidades”, cada uma 
possuirá determinados atributos que, em conjunto, compõem seu domínio. A 
cardinalidade, ou relação entre entidades, também é definida.
Uma forma bem comum do diagrama entidade-relacionamento é o uso do 
esquema em estrela, no qual uma tabela de fatos central se interliga a outras 
tabelas multidimensionais.
Modelos de banco de dados orientado para objetos
Esse modelo define o banco de dados como um conjunto de objetos, ou elementos 
reutilizáveis, com recursos e métodos associados. Existem dois tipos de bancos de 
dados orientados para objetos no mercado:
24
Saiba mais
O modelo de banco de dados orientado para objetos é tido como um modelo 
“pós-relacional”, tendo em vista que ele incorpora tabelas, mas não se limita a 
elas, necessariamente. 
Esse modelo de banco de dados também é tido como modelo híbrido. Um 
banco de dados híbrido faz a sinergia entre a simplicidade do modelo de banco 
de dados relacional com algumas das funcionalidades avançadas do modelo 
de banco de dados orientado para objetos. Na sua essência, ele flexibiliza para 
que os designers possam incorporar objetos na estrutura familiar da tabela.
As interfaces de linguagem de programação e chamadas incluem: linguagens 
de fornecedor; SQL3; JDBC; ODBC; interfaces proprietárias, cujas extensões 
permeiam as linguagens e interfaces usadas pelo modelo relacional.
Mais modelos de bancos de dados utilizados
Hoje temos uma gama de modelos de banco de dados que foram, ou ainda são, utilizados 
no mercado profissional para o desenvolvimento de softwares. Conheça esses modelos, 
a seguir:
• Plano: esse é o modelo mais simples a ser utilizado pelo desenvolvedor e também 
é o mais antigo. Permite a listagem de todos os dados em uma única tabela, que 
consiste em um conjunto de linhas e colunas.
• Arquivo invertido: esse modelo foi desenvolvido com base em uma estrutura 
de arquivo totalmente invertido. O objetivo desse desenvolvimento foi facilitar a 
agilidade em pesquisas e em textos com características mais complexas.
Multimídia
 
Faz a incorporação de mídias, como, por 
exemplo, as imagens, que não podem 
ser gravadas em um banco de dados do 
tipo relacional.
Hipertexto 
Possibilita que qualquer objeto seja ligado 
a qualquer outro objeto. É útil quando 
se tem a demanda de organizar lotes de 
dados diferentes, mas não é indicado 
para se trabalhar com análise numérica.
25
• Multidimensional: nada mais é do que uma variação do modelo relacional criado 
para facilitar o processamento analítico das informações. O modelo relacional é 
otimizado para o processamento de transações on-line – OLTP. Esse modelo, por 
sua vez, foi projetado para o processamento analítico on-line – OLAP.
• • Associativo: permite que haja a divisão de todos os dados com relação ao 
que eles representam em uma entidade (tabela) ou em uma associação entre as 
entidades (tabelas). Uma entidade pode existir de forma independente, enquanto 
uma determinada associação é um elo que só existirá quando houver um ponto de 
comunicação com uma outra entidade. É sabido que o modelo associativo permite 
a organização dos dados para que haja a existência de dois conjuntos:
• Conjunto de itens: fará com que haja um identificador exclusivo: nome e tipo.
• Conjunto de links: fará com que cada identificador exclusivo tenha uma fonte: 
verbo; destino. A informação armazenada tem relação com a fonte definida, e 
cada um dos dois identificadores poderá se conectar a um link ou a um item.
Modelos de bancos de dados denominados “não SQL”
Com a evolução dos modelos de banco de dados utilizados pelos desenvolvedores 
de softwares, tivemos a criação de modelos tidos como “não SQL”, que surgiram em 
comparação com o modelo de banco de dados relacional, são eles:
É ainda mais flexível do que um modelo de rede e permite 
que qualquer nó se conecte a qualquer outro.
Diferencia-se do modelo de banco de dados relacional, pois 
permite que os atributos contenham uma lista de dados em 
vez de um único ponto de dados.
É projetado para armazenar e gerenciar documentos ou 
dados semiestruturados, no lugar de dados atômicos, como 
a maioria dos modelos de banco de dados.
Gráfico
Multivalores
Documento
26
Bancos de dados usados na internet
A maioria dos sites desenvolvidos para 
empresas depende de algum tipo de 
banco de dados para armazenar, orga-
nizar, estruturar e apresentar resultados 
para os usuários. 
Cada vez que alguém acessa as funções 
de pesquisa contidas nesses sites, seus 
termos de pesquisa são transformados 
em consultas para um servidor de banco de dados processar e retornar com uma res-
posta. Geralmente, o “middleware” conecta o servidor da web com o banco de dados.
A grande presença dos bancos de dados nos sistemas desenvolvidos para os sites per-
mite que eles sejam usados em quase todas as áreas segmentadas, desde compras 
on-line até a microssegmentação de um determinado segmento.
MIDIATECA
Acesse a midiateca da Unidade 1 e veja o conteúdo complementar indicado pelo 
professor sobre a importância da modelagem dos bancos de dados utilizados 
na web.
27
Sistema Gerenciador de Banco de Dados – 
SGBD 
O que é um SGBD?
O SGBD é constituído por um conjunto de programas para acesso a todos os dados 
armazenados. O conjunto de dados, como você já sabe, é comumente chamado de banco 
de dados. O principal objetivo de um SGBD é proporcionar um ambiente tanto conveniente 
como eficiente para a recuperação e o armazenamento das informações do banco de 
dados. Esses sistemas são projetados para gerir grandes volumes de informações, o que 
implica:
• A definição de estruturas de armazenamento das informações. 
• A definição dos mecanismos para a manipulação dessas informações.
Além disso, um sistema de banco de dados deve garantir a segurança das informações 
armazenadas contra eventuais problemas com o sistema e impedir tentativas de acesso 
não autorizadas. Se os dados são compartilhados por diversos usuários, o sistema deve 
evitar a ocorrência de resultados anômalos.
Na sequência, você vai conhecer melhor os SGBDs e suas especificidades.
Componentes
Os componentes de um SGBD são:
• Ferramenta CASE.
• Gerador de relatórios.
• Linguagem de consulta.
• Planilhas eletrônicas.
• Pacotes estatísticos.
• Ferramentas para gerenciamento de cópias ou extração de dados.
28
Classificação quanto ao número de usuários
Como vimos anteriormente, o SGBD é um sistema de computador com um propósito 
geral de armazenar informações importantes e permitir aos usuários que tenham acesso 
para buscar e atualizar informações quando solicitado. Quanto ao número de usuários, 
os SGBDs podem ser classificados em dois tipos:
É um sistema em que no mínimo um 
usuário e no máximo um usuário poderá 
ter acesso à base de dados. 
Isso significa que somente um usuário 
poderá, por meio do sistema, acessar a 
base de dados.
É um sistema em que vários usuários, si-
multaneamente, poderão acessar o ban-
co de dados.
É a forma em que o mercado, nos dias 
de hoje, tem projetado seus bancos de 
dados.
Monousuário Multiusuário
Funcionalidades, requisitos e elementos
As funcionalidades, requisitos e elementos de um SGBD podem ser observados a seguir:
A diferenciação entre os SGBDs é feita 
pelo conjunto de funcionalidades e re-
quisitos que eles oferecem, tais como: 
• Controle de concorrência. 
• Integridade. 
• Recuperação/tolerância a falhas. 
• Segurança.
Os SGBDs também sãoidentificados por 
possuírem elementos como: 
• “Motor de arranque” da base de da-
dos. 
• Subsistema de manipulação de da-
dos. 
• Subsistema de definição dos dados. 
• Administração de dados. 
• Subsistema de geração das aplica-
ções.
É importante que os SGBDs abranjam as funcionalidades específicas necessárias para 
que as tabelas das bases de dados possam se relacionar plenamente e para que haja 
interação entre os dados constantes nos bancos de dados.
29
Características e funções
 
Veja, na lista abaixo, as características mais importantes que um SGBD precisa ter:
• Controle de redundância de dados.
• Representatividade de associações complexas.
• Disponibilidade de dados.
• Várias interfaces.
• Controle de acesso aos dados.
• Recuperação de falhas.
• Restrições de integridade.
Agora, responda: você sabe para que servem os bancos de dados? Veja, na lista abaixo, 
alguns exemplos de dados que podem ser geridos pelos SGBDs:
• Listas de discussão.
• Informação financeira.
• Informação contábil.
• Dados oriundos de pesquisas científicas.
• Informações sobre clientes.
• Registros de pessoas.
• Informações acadêmicas.
Vantagens
E quais são as vantagens de um SGBD? Confira, a seguir:
• Maior segurança: permite que múltiplos usuários acessem os mesmos dados 
de forma isolada ou simultânea. Essa característica é, geralmente, vista como um 
benefício para o sistema.
• Maior disponibilidade: uma das grandes vantagens existentes em um SGBD é 
que a mesma informação encontrada na base de dados pode ser liberada para 
utilizadores diferentes, ou seja: compartilhamento de informações.
• Redundância minimizada: os dados existentes em um SGBD são mais concisos, 
pois, como regra, a informação aparece apenas uma única vez. Isso faz com que 
haja diminuição da redundância de dados. Como consequência, haverá redução 
significativa do custo de armazenamento de informações em discos rígidos e 
outros dispositivos de armazenamento.
30
• Programa e arquivo de consistência: com o uso de um SGBD, os formatos das 
tabelas e os programas do sistema obedecem a um padrão. Isso permite que as 
tabelas de dados sejam mais fáceis de serem mantidas, pois as mesmas diretrizes 
e regras se aplicam a todos os tipos de dados. O nível de consistência entre as 
tabelas e os programas também torna mais fácil o gerenciamento de dados quando 
vários programadores estão envolvidos no desenvolvimento de uma aplicação.
• Precisão: dados consistentes são um bom sinal de que há integridade dos dados. 
Os SGBDs caracterizam a integridade dos dados, uma vez que as atualizações e 
alterações dos dados só precisam ser realizadas em um só lugar.
Finalidades 
Você consegue listar as finalidades de um SGBD? Faça sua lista mental e, depois, confira 
com as finalidades detalhadas a seguir: 
Segurança da informação
Talvez essa seja a principal funcionalidade de um SGBD. 
É importante que os sistemas de gerenciamento de bancos de dados possuam 
regras para restringir e garantir o acesso somente de pessoas autorizadas ao 
banco de dados. Além disso, é preciso definir qual o nível de acesso que cada 
usuário irá possuir: escrita; alteração; leitura; exclusão. 
Outros pontos importantes que estão no contexto da segurança são a cópia e 
a recuperação de dados em caso de falhas, permitindo que informações sejam 
recuperadas a partir de outro local qualquer.
Controle de redundância de dados
Imagine um sistema sendo executado em diversos computadores. Esse siste-
ma certamente possui os dados armazenados em um único local (o servidor). 
O controle de redundâncias irá organizar o fluxo de acesso à base de dados no 
servidor, para que os dados inconsistentes não sejam armazenados, a fim de 
que uma série de regras sejam criadas visando a que os dados sejam armaze-
nados corretamente e não aconteça duplicação de dados e/ou dados inválidos.
31
Integridade de dados
Esse é um item que pode ser considerado como parte da segurança. O controle 
da integridade de dados deve impedir que aplicações ou acessos que possam 
comprometer a integridade dos dados sejam feitos. Sendo assim, o acesso 
ao sistema será permitido somente a pessoas autorizadas e, ainda, de acordo 
com os níveis de acesso.
Compartilhamento de dados
Todo SGBD deve possuir um controle de concorrência de dados para garantir 
a leitura e a escrita dos dados sem erros. É comum que os dados estejam 
sendo disponibilizados a mais de um usuário, e não pode haver prejuízos para 
nenhum deles.
Acesso
O controle de acesso é tido como um fator bem importante, pois colabora com 
a integridade dos dados. Como isso acontece? Com o SGBD é possível configu-
rar níveis de autoridade para cada usuário. Alguns usuários poderão ter acesso 
total às informações, enquanto outros poderão ter acesso a apenas algumas 
das funcionalidades previstas, como, por exemplo: leitura, escrita e atualização.
Interfaceamento
Permite uma forma de acesso gráfico ao ambiente, desenvolvido em lingua-
gem natural, menus de acesso e em SQL. Dessa forma, o banco de dados pode 
ser acessado diretamente, não tendo a necessidade de passar pela aplicação 
que utiliza.
Esquematização
Em um banco de dados a ser trabalhado, as tabelas se relacionam entre si, e, 
dessa forma, um SGDB deve fornecer meios para que haja compreensão des-
ses relacionamentos. 
32
Backups
As cópias de segurança são imprescindíveis para a segurança de qualquer infor-
mação em uma empresa, pois hoje a informação é o coração da empresa e, em 
um SGBD, isso é mais evidenciado. É fato que estamos sujeitos a falhas, tanto no 
componente de hardware como no desenvolvimento do software, e, por intermé-
dio de mecanismos previamente estabelecidos e ajustados, é possível recuperar 
as informações, minimizando as perdas.
Quem gerencia o SGBD?
Para realizar o gerenciamento do SGBD entra a figura do administrador, que pode ser de 
dois tipos:
Administrador de banco de dados (database administrator – DBA)
É a pessoa que fornece o suporte técnico necessário para implementação de decisões, como:
• Definir o esquema conceitual.
• Definir o esquema interno.
• Ligação com o usuário.
• Definir restrições de segurança e integridade.
• Definir normas de descarga e recarga.
Administrador de dados (data administrator – DA)
Toma as decisões estratégicas e de normas com relação aos dados da empresa, a saber:
• Que dados devem ser armazenados.
• Tratamento desses dados.
MIDIATECA
Acesse a midiateca da Unidade 1 e veja o conteúdo complementar indicado pelo 
professor sobre a importância de um SGBD, suas características e suas vantagens.
33
NA PRÁTICA
A questão da dificuldade no acesso aos dados é uma questão bem interessante 
e preocupante.
Temos o caso do banco Cicle S.A., que ainda não modernizou sua estrutura de 
dados e trabalha com o modelo de arquivos que armazenam as informações. 
O diretor de marketing do banco necessita encontrar os nomes de todos os 
clientes que vivem em uma rua da cidade com CEP 78733-001 para que seja 
ofertada uma campanha de empréstimo pessoal a esses correntistas. O diretor, 
então, solicita ao departamento de processamento de dados (TI da empresa) 
que gere tal relação. O problema é que, caso esse tipo de solicitação não tenha 
sido antecipado quando o sistema original foi projetado, não haverá nenhum 
programa/aplicativo disponível para fazê-lo. O máximo que a equipe de TI 
consegue é gerar uma lista de todos os clientes do banco, e o respectivo diretor 
terá agora duas saídas: ou ele pega a lista de clientes e extrai a informação 
necessária manualmente, ou pede ao departamento de processamento de 
dados para que um programador escreva o programa aplicativo necessário 
(o que demandará bastante tempo). Ambas as alternativas são obviamente 
insatisfatórias, mas, devido à falta de investimento em um bom banco de 
dados, isso é o que terá de ser feito.
34
Resumo da Unidade 1
Nesta unidade, você estudou toda a importância de se trabalhar com o SGBD.
Os bancos de dados são conjuntos de arquivos quefalam entre si, proporcionando o 
armazenamento de uma grande quantidade de dados: nomes, telefones, documentos, 
pagamentos, endereços, clientes, serviços etc. Daí sua importância. Os bancos de dados 
precisam ser configurados e administrados por meio das linguagens de programação, 
como, por exemplo: JavaScript; SQL; PL/SQL, entre outros.
Os modelos de banco de dados também são muito importantes, pois, de acordo com 
suas variações, permitirão que os desenvolvedores escolham um padrão que se adapte 
mais à realidade da empresa e do negócio que serão atendidos.
Por último, temos o entendimento de que os SGBDs são constituídos por um conjunto de 
programas para acesso aos dados. O principal objetivo de um SGBD é proporcionar um 
ambiente tanto conveniente como eficiente para a recuperação e o armazenamento das 
informações no banco de dados.
Nesta unidade, destacaram-se os conceitos fundamentais do que é um banco 
de dados e qual a sua importância, os diversos modelos de banco de dados 
existentes e as suas atuações frente ao mercado de trabalho. Por último, mos-
trou-se a necessidade e a importância de se ter um SGBD para poder admi-
nistrar o acesso, com segurança, a uma base de dados disponibilizada pela 
empresa para seus clientes.
CONCEITO
35
Referências 
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. São Paulo: Pearson, 2005. 
Biblioteca Virtual.
VICCI, C. Banco de Dados. São Paulo: Pearson, 2015. Biblioteca Virtual.
Modelo de Dados
UNIDADE 2
37
Nesta unidade, você vai estudar o conceito e a importância do SGBD dentro da pers-
pectiva teórica dos diversos usos desse sistema na empresa, bem como as respectivas 
aplicações e importâncias de seus princípios no gerenciamento da informação para a 
melhoria e segurança do negócio.
INTRODUÇÃO
OBJETIVO
Nesta unidade, você será capaz de:
• Desenvolver um modelo de dados a partir de um problema que represente 
uma situação real de desenvolvimento de sistemas.
38
UML 
Introdução
Sabe-se que uma imagem pode representar muito mais do que muitas palavras. Por 
isso, a diagramação em linguagem de modelagem unificada – UML foi desenvolvida. 
Esse tipo de diagramação tem o objetivo de estabelecer relação e/ou uma linguagem 
visual comum no ambiente de desenvolvimento de softwares. Além disso, ela também 
poderia ser interpretada por todos os usuários do mundo dos negócios e/ou qualquer 
outra pessoa que queira entender mais sobre a aplicação desenvolvida.
A UML foi desenvolvida para criar uma relação da linguagem de modelagem visual 
comum, semanticamente, para a arquitetura, design e implementação dos softwares 
mais complexos, tanto de forma estrutural como em termos de comportamentos. 
Ela não é uma linguagem desenvolvida para a programação de aplicativos. Existem 
outras ferramentas que podem e devem ser usadas para gerar códigos de programas em 
várias linguagens por meio de diagramas UML. É sabido que a linguagem de modelagem 
unificada tem um elo direto com a análise para o desenvolvimento do software e com o 
design da orientação a objetos.
Existem diversos modelos para a resolução de problemas na informática, que é o estudo de 
algoritmos e de dados. Diante disso, temos quatro modelos para a resolução de problemas: 
1. Linguagens funcionais.
2. Linguagens declarativas. 
3. Linguagens imperativas. 
4. Linguagens orientadas a objetos. 
Nas linguagens orientadas a objetos, temos os algoritmos (sequência lógica e estruturada 
de ações) determinados com a definição de objetos (representarão, no futuro, a tabela 
no banco de dados), e por meio da ligação dos objetos entre si. Esses objetos serão 
manuseados, e eles fazem parte do nosso mundo.
As linguagens orientadas a objetos estão cada vez mais dominando o universo da 
programação, pois elas têm o poder de modelar os objetos pertencentes ao nosso 
mundo real. 
39
A UML é uma interseção de várias notações orientadas a objetos, que são:
• Técnica de modelagem de objetos.
• Design orientado a objetos.
• Engenharia de software orientada a objetos.
A UML usa todos os pontos fortes das abordagens citadas acima para caracterizar 
uma metodologia mais robusta e de fácil utilização. Ela visa a representar as melhores 
práticas para o desenvolvimento e para a documentação de aspectos diferenciados da 
modelagem de um software e dos sistemas corporativos.
Um ponto importante a ser observado nesse processo é que há um balizador para que a 
UML possa caminhar de forma sólida e respeitosa, ou seja, temos a Object Management 
Group – OMG, que supervisiona e controla a definição e a manutenção das especificações 
da UML. Todo esse controle é deveras importante, pois permite que os engenheiros e 
programadores utilizem uma única linguagem para muitas finalidades durante todas as 
fases do ciclo de vida do software.
Saiba mais
A UML em funcionamento com as bases da OMG visa:
• Fornecer aos desenvolvedores de sistemas, engenheiros de software 
e arquitetos de software as devidas ferramentas de análise e design do 
software e a implementação para sistemas baseados em software, bem 
como a oferta de recursos para a criteriosa modelagem dos processos de 
negócios que o software possa demandar.
• Desenvolver os caminhos e as condições necessárias da indústria ao permitir 
a união de ferramentas de modelagem visual de objetos existentes nesse 
contexto. Diante disso, para que haja a troca fundamental de informações 
dos modelos a serem utilizados entre as ferramentas, é importante que 
haja um acordo sobre o uso da semântica e da notação.
Requisitos
A UML visa atender aos seguintes requisitos:
• Estabelecer uma definição formal de um metamodelo – MOF, baseado em metaob-
jetos que são comuns e que especificam uma sintaxe abstrata da UML. A sintaxe 
40
abstrata estabelece um conjunto de conceitos da modelagem UML. Isso porque 
os seus devidos atributos e respectivos relacionamentos, bem como as regras que 
foram definidas para unir esses conceitos para a construção de modelos UML par-
ciais ou completos, tratam da relação entre os objetos.
• Oferecer uma explicação minuciosa da semântica de cada conceito aplicado na 
modelagem UML. A semântica tende a definir, de forma independente, como os 
conceitos aplicados na UML devem ser tratados pelos computadores.
• Determinar os elementos de notações legíveis, utilizados pelos seres humanos, 
com o intuito de representar os reais conceitos da modelagem UML individual. Da 
mesma forma, determinar as regras para combiná-los em uma determinada varie-
dade de tipos de diagramas, correspondentes a diferentes aspectos utilizados dos 
sistemas modelados.
• Estipular algumas maneiras para que as ferramentas UML possam entrar em con-
formidade com essa especificação. Tudo isso é suportado por uma outra especifi-
cação baseada em XML, cujos formatos de modelos e de intercâmbio correspon-
dentes devem ser realizados por ferramentas que sejam compatíveis.
Modelagem por meio da UML
O desenvolvimento dos sistemas está concentrado em três modelos gerais e diferentes. 
Conheça-os a seguir:
Diagrama de 
caso de uso, 
que descreve 
de que forma a 
funcionalidade do 
sistema irá partir 
sobre a visão do 
usuário.
Diagrama de 
classes, que 
descreve como 
a estrutura do 
sistema ficará 
no que tange 
aos objetos, aos 
atributos, às 
associações e 
às respectivas 
operações.
Temos o uso de 
três diagramas: 
diagramas de 
máquinas de 
estados, diagramas 
de interação e 
diagramas de 
atividade, que 
servem para 
descrever o 
comportamento 
interno do sistema.
FU
N
C
IO
N
A
L
O
B
JE
TO
D
IN
Â
M
IC
O
41
Esses três modelos de sistemas são visualizados a partir de dois tipos diferentes de 
diagramas: o diagrama estrutural e o diagrama comportamental. Você vai conhecer 
cada um desses tipos mais adiante.
Orientação a objetos na UML
Os objetos na UML são tidos como entidades do mundo real. No desenvolvimento de um 
determinado software, os objetos podem ser utilizados para descrever ou para modelar 
o sistema que estáem desenvolvimento. Os objetos também devem permitir que, no 
processo de decomposição de sistemas complexos em componentes compreensíveis, 
haja uma peça de cada vez que pode ser criada.
Existem alguns conceitos importantes referentes à orientação a objetos. Vamos conhe-
cê-los?
Objeto: é a representação de uma entidade e um componente básico essencial.
Abstração: é o devido comportamento de uma entidade.
Herança: é o mecanismo para criar novas classes a partir de uma já existente.
Classe: é o modelo de um objeto.
Encapsulamento: é o mecanismo para unir os dados e escondê-los do mundo exterior.
Polimorfismo: define o mecanismo de utilização em diferentes formatos.
Tipos definidos de diagramas UML
A linguagem de modelagem unificada utiliza elementos e os associa de diversas maneiras, 
com o objetivo de formar diagramas que tenham representatividade e aspectos estáticos 
ou estruturais de um sistema. Com isso formam diagramas comportamentais, que 
fazem o registro dos aspectos dinâmicos do sistema. Já os diagramas estruturais 
referem-se aos aspectos estáticos do sistema. 
Como visto anteriormente, os diagramas podem ser do tipo estrutural ou 
do tipo comportamental. Na sequência, entenda melhor cada tipo.
42
Diagrama Comportamental: é aquele em que há a necessidade de alguma alteração de 
comportamento das classes mapeadas.
Diagrama Estrutural: é utilizado nos casos em que há a necessidade para visualizar, 
especificar, construir e documentar os aspectos estáticos existentes em um sistema.
Os diagramas UML do tipo comportamental são:
DIAGRAMAS 
DE 
SEQUÊNCIA
Demonstram como os objetos interagem entre si e, da mesma forma, 
demonstram a ordem de ocorrência. Fazem a representatividade 
das interações para um cenário específico.
Conheça um exemplo:
43
DIAGRAMAS 
DE CASO DE 
USO
DIAGRAMAS 
DE 
ATIVIDADE
Representam uma funcionalidade específica de um determinado 
sistema. Foram elaborados para demonstrar a forma como as 
funcionalidades se relacionam e os respectivos controladores 
internos e externos (denominados de atores).
Observe o exemplo:
São os fluxos de trabalho de negócios ou operacionais, 
representados de forma gráfica, para a exibição de uma atividade 
de qualquer parte ou componente de um respectivo sistema.
Veja um exemplo:
44
DIAGRAMAS 
DA VISÃO 
GERAL DA 
INTERAÇÃO
DIAGRAMAS 
DE MÁQUINA 
DE ESTADOS
DIAGRAMAS 
DE TEMPO
DIAGRAMAS 
DE CLASSES
DIAGRAMAS 
DA 
COMUNICAÇÃO
Nesses diagramas, cujo objetivo é exibir uma sequência em que 
eles próprios atuam, temos determinados sete outros tipos de 
diagramas de interação.
Há uma semelhança com os diagramas de atividade, pois 
descrevem como o comportamento dos objetos irá ocorrer, mas 
de maneira diferente em seu estado atual.
Assim como o diagrama de sequência, esse diagrama representa 
o comportamento de objetos em um período de tempo específico. 
Havendo um único objeto, o diagrama é bem simples. Havendo 
mais de um objeto, as interações entre eles são exibidas durante o 
período de tempo determinado.
São os mais usados por serem considerados a principal base de 
qualquer solução orientada a objetos. Esses diagramas definem 
as classes dentro de um sistema, os atributos, as operações e a 
relação entre cada classe. As classes são agrupadas para criar 
diagramas de classes quando há uma diagramação de grandes 
sistemas.
Veja um exemplo do diagrama de classes:
São similares aos diagramas de sequência, mas focam as 
mensagens transmitidas entre os objetos utilizados. A mesma 
informação tratada pode ser representada no seu todo usando um 
diagrama de sequência e outros objetos em questão.
Os diagramas UML do tipo estrutural podem ser divididos em:
45
DIAGRAMAS
 DE 
COMPONENTES
Mostram a relação estrutural de elementos do sistema de software. 
Na maioria das vezes, são utilizados quando se trabalha com 
sistemas complexos com múltiplos componentes. Os componentes 
têm a sua comunicação por meio de interfaces.
Observe um exemplo:
DIAGRAMAS 
DE 
ESTRUTURA 
COMPOSTA
São utilizados para demonstrar a estrutura interna de uma classe 
utilizada no diagrama.
DIAGRAMAS
 DE 
IMPLEMENTAÇÃO
Exibem o hardware utilizado no sistema e o seu respectivo software. 
São importantes quando uma determinada solução de software é 
implantada em diversos computadores com configurações únicas.
Veja um exemplo:
46
DIAGRAMAS 
DE 
OBJETOS
DIAGRAMAS 
DE 
PACOTES
Demonstram a relação existente entre os objetos, usando 
exemplos do mundo real, e retratam um sistema em um momento 
específico. É sabido que os dados estão disponibilizados dentro 
dos objetos, e eles podem ser usados para esclarecer as relações 
existentes entre objetos.
Nesse cenário, existem dois tipos especiais de dependências 
definidas entre os respectivos pacotes: 
• A importação do pacote. 
• A mesclagem do pacote. 
Para que haja o apontamento da arquitetura utilizada, os pacotes 
irão representar os diferentes níveis de um sistema. As respectivas 
dependências de pacotes podem ser marcadas para demonstrar 
o real mecanismo de comunicação entre os respectivos níveis.
MIDIATECA
Acesse a midiateca da Unidade 2 e veja o conteúdo complementar indicado 
pelo professor sobre UML.
47
Levantamento de requisitos 
Introdução
Dentro do cenário do desenvolvimento de um excelente banco de dados é fundamental 
que o levantamento de requisitos seja muito bem executado pelo analista 
responsável pelo projeto, pois por meio dele toda a modelagem UML será executada. 
Importante
O levantamento de requisitos e/ou informações com um ou mais usuários 
permitirá que o analista responsável tenha uma visão clara e objetiva do 
negócio proposto. 
Sabe-se que o início do desenvolvimento de um novo software para uma 
empresa é marcado pelo levantamento de requisitos. Essa atividade deve ser 
repetida de forma constante, e realizada até por outros analistas responsáveis, 
nas demais etapas da engenharia de requisitos.
É importante que o processo de levantamento e análise de requisitos contenha as 
seguintes atividades:
Compreensão do domínio: os analistas de sistemas devem desenvolver sua 
compreensão do domínio com relação à aplicação a ser desenvolvida.
Coleta de requisitos: é o processo de interagir com os parceiros do sistema para 
determinar seus requisitos. O entendimento do domínio desenvolve-se fortemente 
durante essa atividade.
Classificação: a atividade executada leva em consideração o conjunto não estruturado 
dos requisitos e os organiza em respectivos grupos com a devida coerência.
48
Resolução de conflitos: quando há vários parceiros envolvidos, os requisitos deverão 
apresentar conflitos. Essa atividade visa à solução desses conflitos.
Definição das prioridades: nos conjuntos de requisitos teremos alguns mais importan-
tes do que outros. Nesse momento há envolvimento e interação com os parceiros para 
a definição dos requisitos mais importantes.
Verificação de requisitos: os requisitos serão checados para descobrir se estão consis-
tentes e se estarão em consonância com o que os parceiros desejam para o sistema.
O levantamento e análise de requisitos é um processo interativo, com uma contínua 
validação de uma atividade para outra.
REQUISITOS
Fonte Status
Grupo de importânciaPonto de vista
Tipo
Agora que você já sabe a importância da etapa de levantamento de requisitos para a 
construção de um sistema, conheça as dificuldades que podem ser encontradas ao 
longo desse processo.
Dificuldades encontradas no processo de levantamento de 
requisitos
Não saber especificar, claramente, o que o sistema deverá fazer e/ou produzir é uma 
questão que acontece de longa data. Na maior parte das vezes os usuários são temerosos
49
com esse processo, pois acreditam que, com a chegada do novo sistema, o seu cargo 
estará ameaçado. Isso faz com que, muitas vezes, os usuários omitam informações 
importantes. Além disso, é fato que também nossos analistas de sistemas podem pecar 
em alguns processos. 
Entre as razões para o baixo graude satisfação dos usuários com relação aos sistemas, 
destacam-se:
• A fase de levantamento de requisitos, quando não é usada uma técnica adequada 
para extrair os requisitos do sistema.
• Falha do analista de sistema em não descrever os requisitos do sistema de modo 
claro e efetivo, sem uma atuação ambígua, de forma concisa e coerente com todos 
os aspectos significativos para o sistema proposto.
Dentre as mais variadas dificuldades encontradas na fase de levantamento de requisitos 
temos: 
• O usuário responsável pelo sistema não sabe o que deseja e quer que ele faça e não 
consegue passar adiante as informações pertinentes para o analista de sistemas.
• Requisitos que são identificados, mas não são realistas nem identificam os 
requisitos similares informados por pessoas diferentes.
• Um parceiro equivocado no processo fará com que haja perda de tempo e de 
dinheiro para ambas as partes envolvidas no desenvolvimento do sistema.
Podemos verificar que o levantamento de requisitos deve ser adequado e coerente, feito a 
partir de uma ótima definição do projeto, visando à aquisição de informações pertinentes 
e necessárias para o diagnóstico das necessidades do sistema e à proposição de 
soluções inteligentes.
Quando o levantamento de requisitos é inadequado, o resultado será um diagnóstico 
ruim, com conclusões comprometedoras, não caracterização das causas dos problemas, 
custos altamente elevados, prazos vencidos e/ou comprometedores, além da omissão 
dos processos fundamentais.
Técnicas importantes para o levantamento de requisitos
As técnicas utilizadas para o levantamento de requisitos têm por objetivo superar as 
grandes dificuldades relativas a essa fase tão importante. Todas as técnicas possuem
50
um conceito definido, que caracteriza suas respectivas vantagens e desvantagens, e 
podem ser utilizadas em conjunto com outras técnicas pelo analista de sistemas.
Na sequência, conheça oito técnicas que podem ser utilizadas no levantamento de requisitos.
1. Prototipagem
Essa técnica tem como objetivo fazer análises dos aspectos críticos dos requisitos 
de um determinado produto, implementando, de forma rápida e objetiva, um pequeno 
subconjunto de funcionalidades do produto que está sendo tratado. 
O protótipo tem como indicação básica:
• Estudo de alternativas de interface para o bem-estar do usuário. 
• Problemas de comunicação com os demais produtos.
• Viabilidade para o atendimento dos requisitos de desempenho. 
As técnicas utilizadas na elaboração do protótipo são várias. Dentre elas, podemos citar: 
• Interface de usuário.
• Relatórios gráficos.
• Relatórios textuais.
2. Levantamento orientado a pontos de vista
No desenvolvimento de sistemas, seja no âmbito de médio ou de grande porte, na maior 
parte das vezes, há diferentes tipos de usuários finais. Muitos usuários que fazem uso 
de um ou de outro processo têm algum tipo de interesse nos requisitos do sistema a 
ser desenvolvido. Dessa forma, mesmo para um sistema mais simples, existem muitos 
pontos importantes que diferem dos que devem ser considerados. 
Os vários pontos de vista a respeito de um determinado problema podem ser enxergados 
de diversas formas. Diante disso, as suas perspectivas não serão independentes, mas, 
de um modo geral, podem apresentar alguma duplicidade, de forma que teremos 
requisitos comuns.
51
O método VORD (viewpoint-oriented requirements definition, ou “definição dos requisitos 
orientados para o ponto de vista”) teve na sua essência de concepção a estruturação 
como um framework orientado a serviço para o levantamento e análise de requisitos.
Ele é definido em quatro etapas, detalhadas a seguir:
• Primeira etapa: sua conexão é com o ponto de vista que tem como objetivo 
identificar os possíveis pontos importantes a serem observados. Nesse momento, 
os analistas de sistemas responsáveis pelo projeto se reúnem com os respectivos 
parceiros e utilizam a tradicional abordagem de brainstorming para elencar os 
devidos serviços em potencial e as entidades que interagem com o sistema em 
desenvolvimento.
• Segunda etapa: é a estruturação de pontos de vista, com o objetivo de envolver e de 
agrupar os pontos de vista relacionados, de acordo com uma hierarquia. Serviços 
comuns estão localizados nos níveis mais altos da hierarquia e são herdados por 
pontos de vista existentes no nível inferior.
• Etapa de documentação: tem como objetivo aprimorar a descrição dos pontos de 
vista e dos serviços identificados pelos analistas.
• Mapeamento de sistema: conforme o ponto de vista, há um envolvimento e uma 
identificação de objetos em um projeto orientado a objetos, que se utilizam das 
informações e dos serviços que estão encapsulados nos pontos de vista.
A seguir, veja, graficamente, a estruturação das etapas:
Identificação de 
ponto de vista
Documentação de 
ponto de vista
Estruturação de 
ponto de vista
Mapeamento de 
sistema de ponto de 
vista
3. Etnografia
Essa técnica visa ao desenvolvimento de um olhar atento para o entendimento dos 
requisitos, ou seja, tem como objetivo ajudar o analista a compreender como se dá a 
política organizacional, bem como a cultura dos trabalhos realizados para que ele se 
familiarize com o sistema e sua história.
Na prática, o analista de sistemas insere-se no ambiente dinâmico de trabalho em que o 
sistema será usado. O trabalho realizado diariamente é observado e as tarefas reais são
52
anotadas para identificar o ponto de atuação do sistema. O principal objetivo é ajudar a 
descobrir requisitos que estejam implícitos no sistema, que possam refletir os processos 
reais, no lugar dos processos formais, em que algumas pessoas estão envolvidas.
A etnografia é eficaz na descoberta de dois tipos de requisitos:
• Aqueles oriundos da forma como as pessoas realmente trabalham, em vez da 
forma pelas quais as definições de processo dizem como elas deveriam trabalhar.
• Os oriundos da conscientização das atividades de outras pessoas.
4. Questionários
O uso de questionário é sempre recomendado, sobretudo quando há vários grupos de 
usuários que podem estar em locais diferentes do país.
Dessa forma, elaboram-se pesquisas extremamente específicas de acompanhamento, 
com usuários selecionados no processo, cuja contribuição em potencial pareça mais 
importante. Essa seleção prévia tem como objetivo evitar um grande número de entrevistas, 
pois não seria nada prático ter que entrevistar todas as pessoas em todos os locais.
Existem diversos tipos de questionários que podem ser utilizados no processo. Entre 
eles podemos elencar: múltipla escolha, lista de verificação e questões com espaços em 
branco. O questionário deve sempre ser desenvolvido de maneira a minimizar o tempo 
gasto em sua resposta.
5. Workshops
Trata-se de uma técnica aplicada para um grupo em uma reunião estruturada. Os 
analistas de sistemas devem estar envolvidos e deve ser feita uma seleção dos parceiros 
que melhor representam a organização e o contexto em que o sistema será utilizado, 
angariando assim um conjunto de requisitos bem estruturados.
O workshop tem por objetivo o acionamento do trabalho em grupo. Nele, existe a figura 
do facilitador, cujo papel é conduzir a técnica aplicada e promover a discussão entre 
os diversos grupos. As tomadas de decisão feitas durante o evento são baseadas em 
processos extremamente definidos e com o real objetivo de obter um processo de 
negociação, mediado pelo facilitador.
53
Uma técnica bastante usada em workshops é o brainstorming, que será detalhado mais 
adiante. 
Após a realização dos workshops, serão produzidas documentações que reflitam os 
requisitos e as decisões tomadas sobre o sistema a ser desenvolvido.
Aspectos importantes que precisam ser levados em conta: 
• A postura que o facilitador deve adotar é de ser mediador e observador. 
• A convocação a ser realizada deve conter: dia, hora, local, horário de início e término, 
o assunto que será abordado e a documentação a ser tratada.
6. JAD
Técnica que visaa promover cooperação, entendimento, integração e trabalho em equipe 
entre os diversos usuários desenvolvedores do sistema.
O uso dessa técnica visa a facilitar a criação de uma visão que será compartilhada por 
todos com base no que o produto de software deve ser. Com isso, os desenvolvedores 
de sistemas ajudam os demais usuários na formulação de problemas e na exploração de 
soluções. Dessa forma, todos os usuários ganharão um determinado sentimento de pura 
sinergia e envolvimento, além do desenvolvimento do sentimento de responsabilidade 
com o sucesso do produto a ser desenvolvido.
Princípios básicos da técnica:
• Dinâmica de grupo.
• Uso de técnicas visuais.
• Manutenção do processo organizado e racional.
• Utilização de documentação padrão.
7. Entrevistas
Técnica bem tradicional e muito simples de ser utilizada. As entrevistas produzem bons 
resultados na fase inicial de obtenção de informações. 
É importante que o entrevistador permita ao entrevistado expor suas ideias. Para tanto, 
é necessário ter um bom plano de entrevista, que evite a dispersão do assunto principal
54
e impeça que ela se alongue além do necessário, fazendo com que o entrevistado fique 
exausto e não produza bons resultados.
Para elaborar perguntas detalhadas, o entrevistador deve:
• Explicar a relação entre o que se quer discutir e as demais partes do sistema.
• Descrever o ponto de vista dos demais usuários com base no ponto em discussão.
• Descrever as informações que o analista de sistemas deseja obter.
• Verificar, com o usuário, se o ponto em questão está ligado a outro item. Dessa forma, 
poderá ser juntado com os requisitos comuns do sistema em desenvolvimento, 
permitindo que haja um escopo conciso.
8. Brainstorming
Técnica desenvolvida para geração de ideias. Essa técnica consiste em uma sequência 
de reuniões que permitirão que as pessoas envolvidas possam sugerir e explorar diver-
sas ideias. 
As principais etapas de condução de uma brainstorming são:
• Seleção minuciosa dos seus participantes.
• Explicação da técnica a ser utilizada, bem como as regras a serem adotadas.
• Produção de muitas ideias.
MIDIATECA
Acesse a midiateca da Unidade 2 e veja o conteúdo complementar indicado 
pelo professor sobre modelagem de dados tutorial.
55
Modelagem de dados 
A seguir serão apresentados alguns conceitos importantes para o entendimento da 
modelagem de dados. 
Instâncias
São definidas como um conjunto de informações quaisquer que estão armazenadas em 
um determinado banco de dados.
Independência de dados
É a capacidade de transformar a definição dos esquemas desenvolvidos em um 
determinado nível, sem afetar o esquema do nível superior. Pode ser classificada em 
dois tipos:
Independência física: capacidade de 
modificar o esquema físico projetado 
sem que, com isso, qualquer 
programa de aplicação precise ser 
refeito. As modificações exercidas 
no nível físico são importantes, 
principalmente para melhorar o 
desempenho da aplicação.
Independência lógica: capacidade de 
transformar o esquema lógico sem 
que, com isso, qualquer programa 
de aplicação precise ser refeito. 
As modificações no nível lógico 
são importantes sempre que uma 
estrutura lógica do banco de dados é 
alterada para a melhoria da aplicação.
É sabido que a independência lógica de dados é mais difícil de ser mensurada do que a 
independência física, pois os programas de aplicação são mais fortemente dependentes 
da estrutura lógica dos dados do que particularmente o seu acesso.
Os três níveis da arquitetura
A arquitetura ANSI/SPARC se divide em três níveis, conhecidos como nível interno, nível 
conceitual e nível externo. Os níveis foram definidos na Unidade 1, abaixo você pode ver 
como eles se relacionam graficamente:
56
Nível externo
Nível conceitual
Nível físico
Agora que você já está a par dos principais conceitos, vamos avançar no estudo da 
modelagem dos dados.
Modelagem de dados
A modelagem de dados é definida como uma técnica utilizada para a especificação das 
regras de negócio e as estruturas de dados que um banco de dados precisa ter para 
ser definido e/ou criado. Essa técnica está em sintonia com o ciclo de desenvolvimento 
de um sistema de informação para uma empresa e é de suma importância para o bom 
resultado de um projeto. 
Modelar os dados consiste em conceber/desenhar o sistema de informações a ser utilizado, 
concentrando-se nas entidades e nas dependências lógicas entre essas entidades.
A modelagem de dados pode ser conceituada, ainda, como uma técnica que envolve um 
conjunto de aplicações teóricas e práticas, com o objetivo de construir um modelo de 
dados consistente, robusto, não redundante e aplicável em qualquer SGBD.
Para que esse objetivo seja atingido, devemos considerar a definição de um conjunto 
de conceitos para a representação de dados. Como exemplos, podemos citar: entidade, 
tabela, atributo etc.
Modelos de representação de dados
Existem modelos para diferentes níveis de abstração de representação de dados:
A. Modelos conceituais.
B. Modelos lógicos.
C. Modelos físicos.
57
Os modelos físicos têm como características:
• Organização dos arquivos de dados em disco rígido (organização sequencial, uso 
de índices hashing ou b-trees). 
• Os dados não são manipulados por intermédio de usuários ou de aplicações que 
acessam o banco de dados, mas diretamente pelas ferramentas do próprio banco 
de dados.
• A caracterização sobre a importância e as decisões de implementação de cada 
SGBD para a gestão do banco de dados.
Na sequência, conheça, detalhadamente, os modelos de representação de dados e suas 
particularidades.
A. Modelo conceitual
O modelo conceitual está caracterizado pelo mais alto nível, e é importante que seja 
usado para envolver o cliente, pois o foco fundamental é tratar dos aspectos do negócio 
do cliente, e não da tecnologia em si. 
Os diversos exemplos de modelagem de dados tratados pelo modelo conceitual são 
fáceis de compreender, já que não existem limitações ou aplicação de uma tecnologia 
específica. O diagrama de dados que deverá ser construído pelo analista responsável é 
tido como o diagrama de entidade e relacionamento – DER. É importante que nesses 
diagramas sejam identificados, diante da necessidade do cliente, todas as entidades e 
os relacionamentos entre elas. Esse diagrama é a mola mestra para a compreensão do 
modelo conceitual de dados.
Algumas características importantes do modelo conceitual são:
• Modelam de forma mais natural os fatos do mundo real, suas propriedades e seus 
relacionamentos.
• São independentes do banco de dados.
• Possuem preocupação com a semântica da aplicação.
58
Exemplo
Exemplo
Observe um exemplo de modelagem conceitual:
Observe um exemplo de modelagem lógica de dados:
Alunos AlunosCursam
B. Modelo lógico
O modelo lógico leva em consideração algumas limitações no mapeamento das 
necessidades do cliente e implementa recursos como adequação de padrão e 
nomenclatura, definição das chaves primárias e estrangeiras, normalização, integridade 
referencial, entre outras. 
É importante que o modelo lógico seja criado levando em consideração a modelagem de 
dados criada no modelo conceitual.
Conheça, a seguir, algumas características importantes do modelo lógico:
• Também são chamados de modelo de banco de dados.
• São dependentes do banco de dados.
Podemos citar como exemplos de utilizações:
• O modelo relacional (tabelas). 
• O modelo hierárquico e XML (árvore).
• O modelo orientado a objetos (classes - objetos - complexos).
59
Percebe-se a ligação das tabelas Alunos e Cursos por meio dos seus respectivos 
campos Curso e Cod_Curso.
Dessa forma, há um elo entre as tabelas: uma determinada matrícula possui 
um curso, e esse curso está referendado na tabela Cursos..
Como suporte aos métodos de acesso à base de dados, o modelo lógico possui:
• Especificação dos conceitos do modelo (DDL):
– Dados, seus domínios, relacionamentos e restrições existentes.
• Manipulação de conceitosmodelados (DML):
– Esquema (lógico) de um banco de dados.
• Resultado da especificação dos dados de um domínio de aplicação em um modelo 
de banco de dados, conforme mostrado no esquema a seguir:
Requisitos da aplicação Modelo de banco 
de dados
Esquema lógico
60
C. Modelo físico
É realizada a modelagem física do esquema criado para o novo banco de dados. Dessa 
forma, são levadas em consideração as limitações impostas pelo SGBD escolhido, 
devendo ser criado com base nas modelagens de dados produzidos no modelo lógico.
O modelo físico irá partir do modelo lógico e descreve as estruturas físicas de 
armazenamento de dados, tais como: tamanho de campos, índices, tipo de preenchimento 
desses campos etc.
Agora que você já sabe como são os modelos de representação de dados, 
conheça as gerações dos modelos de banco de dados.
Geração dos modelos de banco de dados
Pode-se dizer que os modelos de bancos de dados possuem três gerações.
Primeira geração: 
modelos pré-
relacionais. Dentre 
os modelos 
pré-relacionais 
destacam-se 
os modelos 
hierárquico e de 
rede.
Terceira geração: 
modelos pós-
relacionais. Dentre 
os modelos 
pós-relacionais, 
destacam-se 
os modelos 
orientados a 
objetos, objeto-
relacional, 
temporal, 
geográfico.
Segunda geração: 
modelo relacional.
Conheça cada geração com mais detalhe, a seguir.
61
Modelos pré-relacionais:
• Modelos com várias limitações: não há representatividade de forma 
adequada.
• Os relacionamentos dos objetos no mundo real são do tipo hierarquias 
(1-1 ou 1-N).
• Problema de performance: varredura em estruturas em grafo (rede).
• Inexistência de uma linguagem de consulta declarativa.
• As consultas exigem programação pela aplicação:
– Há manipulação de um registro por vez.
– Existência de baixa performance de acesso às informações.
Modelo relacional:
• Foi criado no ano de 1970. Seu criador foi E. Codd – IBM/Califórnia.
• Esse modelo de dados possui uma sólida base formal, baseada na teoria 
dos conjuntos.
• É um modelo simples: com estruturas tabulares e poucos conceitos.
• Utiliza linguagens declarativas para a manipulação de dados na base de 
dados:
– Uso de álgebra relacional e cálculo relacional.
– Linguagem SQL, de uso comercial.
Modelos pós-relacionais:
• Banco de dados orientado a objetos utilizado para a linguagem Python. 
• Alto grau de transparência dos processos.
• Objetos atualizados por meio das interações normais dos objetos.
• Alto desempenho para tratar as informações e uso eficiente da memória.
Saiba mais
O modelo relacional
O modelo relacional é um modelo de dados representativo ou um modelo de 
implementação, pois se trata de um modelo subjacente de um SGBD, que se baseia na 
concepção de que todos os dados estão armazenados em tabelas. Esse conceito foi 
criado por Edgar Frank Codd no ano de 1970.
62
No âmbito da gerência de bases de dados (SGBD), o modelo relacional é tido como um 
modelo de dados baseado em lógica e na teoria de conjuntos.
Esse modelo é amplamente utilizado. Por isso, você vai conhecê-lo em detalhes na 
sequência.
Características do modelo relacional
• Organização dos dados:
 – Conceitos do modelo de dados:
 > Atributo, relação, chave.
• Integridade de dados:
 – Restrições básicas para dados e relacionamentos entre as tabelas.
• Manipulação de dados:
 – Linguagens formais e SQL.
Organização do modelo relacional
• O modelo apresenta cinco conceitos:
 – Domínio.
 – Atributo.
 – Tupla.
 – Relação.
 – Chave.
Entenda cada um desses conceitos, na tabela abaixo:
63
Conceito
Domínio
Atributo
Tupla
Relação
Detalhamento
• Conjunto de valores permitidos para um dado:
 – Tipos de dados:
 > Tipo inteiro, tipo string (domínios básicos).
 > Tipo data e hora (domínios compostos).
 > [0, 120], (‘M’, ‘F’) (domínios definidos).
• Em um domínio existem operações válidas:
 – Tipo inteiro (somar, dividir, i1 maior que i2).
 – Tipo data (obter o dia, obter o mês, d1 anterior a d2).
• Definição de domínios de dados:
 – DDL (indicação de tipos de dados).
• Um conjunto de pares (atributo, valor).
• Define uma ocorrência de um fato do mundo real ou de um 
relacionamento entre fatos.
• Valor de um atributo:
 – Deve ser definido no momento da criação de uma tupla.
 – Precisa ser:
 > Compatível com o domínio OU NULL (valor inexistente 
ou indeterminado).
 > Atômico (indivisível: não estruturado e monovalorado).
• Vejamos um exemplo: 
 – Tupla de aluno: {(nome, ‘João’), (idade, 34), (matrícula, 
03167034)}.
• Composto por um cabeçalho e um corpo.
• Cabeçalho:
 – Número fixo de atributos (grau da relação).
 – Atributos não ambíguos.
• Corpo:
 – Número variável de tuplas (cardinalidade existente na 
relação).
• Definição formal:
 – Subconjunto do produto cartesiano de todos os domínios 
(D1 X D2 X... X Dn) de atributos.
• Relação é um conjunto.
• Na prática, uma relação em um banco de dados é chamada 
de tabela, e uma tabela definida no banco de dados admite 
uma coleção de tuplas.
• Um item de dado do banco de dados.
• Possui um nome e um domínio:
 – Nome: string (tipo definido para o atributo).
 – Idade: [0,100] (intervalo de valores do atributo idade).
64
Chave
• Conjunto de um ou mais atributos de uma relação.
• Tipos de chaves:
 – Chave primária (primary key – pk).
 – Atributo(s) cujo (conjunto de) valor(es) identifica 
unicamente uma tupla em uma relação.
 – Notação para a pk de uma relação R: pk(R).
• Conceitos associados:
 – Chaves candidatas e chaves alternativas.
• Veja alguns exemplos:
 – Alunos: matrícula.
 – Cidades: (nome, estado).
A seguir, conheça outro tipo de modelo: o modelo entidade-relacionamento. Na sequên-
cia serão detalhados o modelo entidade-relacionamento, os tipos de entidades, os seus 
atributos e o que é relacionamento.
Modelo entidade-relacionamento
Consiste em mapear o mundo real do sistema em um modelo gráfico que irá representar 
o modelo e o relacionamento existente entre os dados. Hoje, sabemos que várias empre-
sas usam esse modelo por meio de conceitos de UML e do diagrama de classe.
A seguir, você vai conhecer as características que envolvem o modelo entidade-relacio-
namento para que todo o seu mapeamento seja criado da forma correta e atenda à de-
manda do usuário.
Tipos de entidades
No que diz respeito a entidades, ainda podemos classificá-las de duas formas: entidade 
forte e entidade fraca.
Entidade Fraca Entidade Forte
É uma entidade dependente da 
existência de alguma outra entidade, 
no sentido que ela não pode existir se a 
outra entidade também não existir.
É uma entidade que não é dependente 
da existência de alguma outra entidade.
65
Atributos
Todo objeto, para ser uma entidade, possui propriedades que são descritas por seus 
atributos e valores. Atributos e valores, juntos, descrevem as instâncias de uma entidade.
Os atributos podem ser:
Simples ou 
compostos
Chave
Chave 
primária
Chave 
estrangeira
Chave 
secundária
Chave 
candidata
Índice
Univalorado ou 
multivalorado
O atributo simples é único, já o atributo composto pode ser 
desmembrado em vários atributos (mais de um).
Designa o conceito de item de busca, ou seja, um dado que será 
empregado nas consultas à base de dados.
É o atributo da tabela que identifica univocamente uma tupla.
É o elo entre as tabelas.
Serve para definir uma segunda chave primária.
Uma tabela pode possuir alternativas de identificador único, ou seja, 
várias colunas ou concatenações diferentes de colunas podem ter 
essa propriedade.
É o recurso físico que visa a otimizar a recuperação de uma 
informação, via método de acesso. Seu objetivo principal está 
relacionado com a performance de um sistema.
Um atributo univalorado possui um único valor. Por sua vez, um 
atributo multivalorado possui vários valores.
Relacionamentos
As entidades envolvidas em um dado relacionamento são ditas participantes desse re-
lacionamento. O número de participantes em um dado relacionamento é chamado de 
cardinalidademáxima. O relacionamento é representado pelo losango.
66
O relacionamento é igual ao conjunto de associações que podem ser feitas entre as 
entidades. Observe o relacionamento abaixo:
Um relacionamento pode ser de três tipos diferentes:
• Um para um.
• Um para muitos. 
• Muitos para muitos.
A seguir, entenda melhor o conceito de cardinalidade.
Cardinalidade de relacionamentos
Uma propriedade importante de um relacionamento é quantas ocorrências de uma 
entidade podem estar associadas a uma determinada ocorrência por meio de um 
relacionamento. Essa propriedade é chamada de cardinalidade. Há duas cardinalidades 
a considerar: máxima e mínima.
Exemplo
Para exemplificar a cardinalidade máxima, considere a cardinalidade máxima 1 
e muitos, representada pela letra N.
Esse relacionamento expressa que uma ocorrência de disciplina pode estar 
associada a muitas ocorrências de nota. Além disso, expressa que uma 
ocorrência de nota pode estar associada a uma ocorrência de disciplina.
Alunos AlunosCursam
Matricula
Nome
Cod_Disciplina
Descricao
Disciplina NotaPossui1 N
Cod_disciplina
Descrição
Cod_Disciplina
Matricula
Nota
67
Agora, vamos conhecer mais detalhadamente os tipos de relacionamentos existentes.
Relacionamento binário (1:1)
Nesse grau de relacionamento, cada elemento de uma entidade relaciona-se com um e 
somente um elemento da outra entidade.
Exemplo
João é casado com a Maria.
Em que:
• João: elemento do conjunto de valores do atributo Nome da entidade Homem.
• Maria: elemento do conjunto de valores do atributo Nome da entidade Mulher.
• Casado: ligação entre um homem e uma mulher, sendo que um homem pode 
ser casado com uma e apenas uma mulher, assim como uma mulher pode 
ser casada com um e apenas um homem.
Graficamente, esse relacionamento pode ser expresso por:
Homem MulherCasado1 1
Faz-se necessário salientar que lemos o diagrama somente em um sentido, e 
isso está incorreto dentro do conceito de relacionamentos, pois eles não são 
unidirecionais. Devemos ler nos dois sentidos. Dessa forma:
Importante
Homem MulherCasado1 1
Homem MulherCasado1 1
68
Relacionamento de um para muitos (1:N)
Esse grau de relacionamento é o mais comum no mundo. É também chamado de 
relacionamento básico entre entidades. Esse tipo de relacionamento possui características 
específicas quanto ao sentido de leitura dos fatos e quanto à sua interpretação.
Exemplo
Pedro trabalha no Departamento Pessoal.
Em que:
• Pedro: elemento do conjunto de valores do atributo Nome da entidade 
Funcionário.
• Departamento Pessoal: elemento do conjunto de valores do atributo Nome 
do departamento da entidade Departamento.
• Trabalha: ligação entre um Funcionário e um Departamento, em que um 
funcionário pode trabalhar em um e somente um departamento e um 
departamento pode ter vários funcionários.
Graficamente, esse relacionamento pode ser expresso por:
Funcionário DepartamentoLotadoN 1
Importante
Devemos ter como regra geral que um relacionamento é do tipo um para muitos 
quando um sentido de leitura dos fatos nos apresenta esse grau de um para 
muitos e o sentido oposto apresenta obrigatoriamente o grau um para um.
69
Relacionamento de muitos para muitos (N:M)
Identifica-se essa cardinalidade pelo fato de que, em ambos os sentidos de leitura, são 
encontrados graus de um para muitos. Isso caracteriza um contexto geral de muitos para 
muitos. Quando isso ocorrer será criada uma nova entidade.
Exemplo
Antônio está inscrito na disciplina Banco de Dados.
Em que:
• Antônio: elemento do conjunto de valores do atributo Nome da entidade 
Aluno.
• Banco de dados: elemento do conjunto de valores do atributo Nome da 
disciplina da entidade Disciplina.
• Inscrito: ligação existente entre um aluno e uma disciplina, em que um 
aluno pode estar matriculado em várias disciplinas e cada disciplina pode 
ter vários alunos matriculados.
Graficamente, esse relacionamento pode ser expresso por:
Aluno DisciplinaInscritoN M
Agora que você já conhece os tipos de relacionamentos, entenda o que são seus atributos 
e conheça outras características dos relacionamentos.
Atributos do relacionamento
Quando um determinado relacionamento possui atributos, ele também é conhecido 
como relacionamento valorado. Essa situação ocorre apenas em relacionamento do 
tipo N:M. 
70
Exemplo
Pedro atua no projeto Alfa durante 30 horas.
Em que:
• Pedro: elemento do conjunto de valores do atributo Nome da entidade 
Funcionário.
• Alfa: elemento do conjunto de valores do atributo Nome do Projeto da 
entidade Projeto.
• Atua: ligação existente entre um funcionário e um projeto. Nesse caso, esse 
funcionário trabalha durante 30 horas nesse projeto, porém esse mesmo 
funcionário poderá trabalhar outro número de horas em outro projeto. 
Da mesma forma, outro funcionário trabalha outro número de horas no 
mesmo projeto Alfa. Portanto, podemos concluir que 30 horas é o atributo 
que pertence a Pedro no projeto Alfa.
Graficamente, esse relacionamento pode ser expresso por:
Funcionário ProjetoAtua
Horas
N M
Relacionamento ternário
Os relacionamentos entre múltiplas entidades expressam o fato de que todas as 
entidades que ocorrem simultaneamente, ou seja, todas as ocorrências envolvidas no 
relacionamento, possuem, sempre, ligações com todas as entidades envolvidas no 
relacionamento. Não pode existir um relacionamento triplo que, em um dado momento, 
transforme-se em duplo.
Observe o relacionamento a seguir:
71
Id_Aluno
Nome_Aluno
Dt_Matricula
Id_Disciplina
Nome_Disciplina
Id_Professor
Nome_Professor
Alunos
Professor
DisciplinaCursam
Na tabela abaixo, conheça os atributos de cada entidade:
Entidades
Relacionamento
Atributos
Atributos
Id Aluno
Id Aluno
Nome Aluno
Id Professor
Aluno
Cursam
Disciplina
Professor
Dt Matricula
Id Disciplina
Id Disciplina
Nome Disciplina
Id Professor
Nome Professor
Cardinalidade mínima
É o número mínimo de ocorrências de entidades que são associadas a uma ocorrência de 
uma entidade por meio de um relacionamento. Para fins de projeto de bancos de dados, 
consideram-se apenas duas cardinalidades mínimas: a cardinalidade mínima 0 e 1.
A cardinalidade mínima é anotada junto à cardinalidade máxima.
Veja no gráfico: 
72
Id_Pai
Nome
Id_Pessoa
Aluno
0:N 0:N
1:N
1:N
Professor
DisciplinaCursa
Leciona
Autorrelacionamento
Ocorre quando uma entidade possui um relacionamento com ela mesma. São, na verdade, 
representações de estruturas de hierarquia, como você pode observar no gráfico abaixo:
Pessoa
1
N
Tem pai
Na tabela abaixo, conheça os atributos de cada entidade:
Entidade Atributos
NomeId Pessoa Id Pai
Id Pessoa
PedroI-01
Nome
CarlosI-02 I-01
Pessoa
Id Pai
JoãoI-03 I-01
73
Exemplo
Observe um exemplo de autorrelacionamento.
Na tabela abaixo, conheça os atributos de cada entidade:
Funcionário
Produto
Composto
Gera
N
M
Entidade
Relacionamento
Atributos
Atributos
Id Pessoa
Cod Produto
Nome
Cod Produto composto
Pessoa
Compõe
Id Pai
Quantidade
Agregação
São relacionamentos dependentes de outros relacionamentos, ou seja, toda vez que 
existir um relacionamento do tipo muitos para muitos, ele irá gerar uma nova entidade 
que estará relacionada a outra entidade. Veja nos gráficos abaixo:
Meliante
Arma
VítimaAssassina
Usa
Nova entidade (retângulo cinza)
Cod_Arma
Local
Cod_Meliante CPF
74
Restrições para uso de agregação
Só podemos utilizar agregação quando temos um relacionamento de muitos para muitos. 
Observe no gráfico abaixo:
Meliante
Arma
VítimaAssassina
Usa
N
M
Generalização/especialização
Além de relacionamentos e atributos, propriedades podem ser atribuídas a entidades 
por meio do conceito de generalização/especialização. Com ele é possível atribuir 
propriedades particulares a um subconjunto de ocorrências (especializadas) de uma 
entidade genérica. 
A especialização é caracterizada pelo símbolo:
Observe o gráfico abaixo:
Conta Bancária
Pessoa física Pessoa jurídica
A generalização/especializaçãopode ser classificada em dois tipos, parcial ou total, 
de acordo com a obrigatoriedade ou não de cada ocorrência da entidade genérica 
corresponder a uma ocorrência da entidade especializada. Veja os casos a seguir:
Id_Conta Id_Conta
CPF CNPJ
Id_Conta
75
Conta Bancária
Pessoa física Pessoa jurídica
Funcionário
Motorista Secretária
Total
Indica que toda ocorrência da entidade cliente tem uma ocorrência em uma das 
especializações.
Parcial
Indica que nem todo funcionário é motorista e/ou secretária.
MIDIATECA
Acesse a midiateca da Unidade 2 e veja o conteúdo complementar indicado 
pelo professor sobre normalização de dados.
76
NA PRÁTICA
Uma empresa na área de metalurgia tem trabalhado com um sistema que opera 
suas funções com base em arquivos. Com o passar do tempo, a empresa veio 
perdendo informações e verificou que a consistência dos dados apresentados 
não era significativa. Assim, sua diretoria percebeu a necessidade de realizar 
a implantação de um banco de dados para trabalhar com o sistema existente 
e melhorar a performance do seu negócio. Diante disso, um database 
administrator – DBA foi contratado para apresentar algumas características e 
também exemplificar por que o banco de dados traria diferenciais significativos 
para o negócio.
As colocações feitas pelo DBA contratado foram:
• Eliminação de inconsistências – O armazenamento da informação é feito 
em um único local do banco de dados, com acesso descentralizado, e é 
compartilhado com vários outros sistemas. Dessa forma, os usuários estarão 
utilizando uma informação de confiança. A inconsistência de dados ocorre 
quando um mesmo campo possui valores diferentes em sistemas diferentes. 
Vejamos um exemplo: o estado civil de uma pessoa é solteiro em um sistema e 
casado em outro. Isso ocorre porque a pessoa em questão atualizou o campo 
em um sistema e não o atualizou em outro. Quando o dado é armazenado em 
um único local e compartilhado pelos sistemas, esse problema não ocorre.
• Restrições de segurança – Cada usuário possui um nível de acesso que 
permite:
 – Leitura.
 – Leitura e gravação.
 – Sem acesso ao registro ao arquivo e/ou campo.
Esse recurso impedirá que pessoas não autorizadas utilizem ou atualizem um
determinado arquivo ou campo.
• Compartilhamento dos dados – Permite que simultaneamente, e de forma 
segura, um dado seja acessado por mais de uma aplicação ou usuário, 
independentemente da operação que seja realizada. É importante observar, 
apenas, o processo de atualização concorrente, para que não haja geração 
de erros de processamento (atualizar simultaneamente o mesmo campo do 
mesmo registro). Os aplicativos são por natureza multiusuário, acessados por 
mais de um usuário ao mesmo tempo.
77
Resumo da Unidade 2
Nessa unidade, você estudou a importância de se utilizar a UML no desenvolvimento 
de soluções de software que estão ligadas à construção de uma ótima base de dados. 
Além disso, você verificou a importância de se trabalhar com afinco no levantamento de 
requisitos, etapa extremamente necessária para a criação do banco de dados, bem como 
para o futuro desenvolvimento das soluções sistêmicas. Para que você tenha condições 
de realizar essa tarefa, foram apresentadas as diversas técnicas de levantamento de 
requisitos existentes.
Por último, você conheceu, em detalhes, a etapa de modelagem de dados que está 
atrelada à construção do banco de dados e vislumbrou as representações gráficas que 
caracterizam a forma de criação de banco de dados. 
CONCEITO
Ao longo do estudo desta unidade, você teve contato com os conceitos 
fundamentais da UML, a necessidade do levantamento de requisitos para a 
construção do modelo de dados, os tipos de modelos de dados existentes no 
mercado e os mais empregados pelas grandes empresas de TI.
78
Referências 
MACHADO, F. N. R. Projeto e implementação de banco de dados. 3. ed. São Paulo: Érica, 
2014. Minha Biblioteca.
RAMARKRISHNAN, R. Sistemas de gerenciamento de banco de dados. 3. ed. Porto 
Alegre: AMGH, 2011. Minha Biblioteca.
Diagrama de classes
UNIDADE 3
80
Nesta unidade você vai estudar o conceito e a importância da UML na utilização de uma 
de suas representações, que é o diagrama de classe. Esse diagrama servirá para a reali-
zação da modelagem conceitual de um banco de dados.
INTRODUÇÃO
OBJETIVO
Nesta unidade você será capaz de:
• Construir um projeto lógico de banco de dados.
81
Conceito 
Introdução
Os diagramas de classe utilizados nos processos de modelagem de banco de dados estão 
entre os tipos mais úteis de diagramas UML (unified modeling language, ou “linguagem de 
modelagem unificada”), pois permitem o mapeamento de um determinado sistema de 
forma objetiva e clara, definido pela necessidade da empresa ao modelar suas classes, 
seus atributos, suas operações e suas relações entre objetos. 
Atualmente existem no mercado diversos softwares que permitirão criar esse tipo de 
diagrama e cada empresa seguirá uma tendência com relação a eles. Alguns exemplos 
de softwares de modelagem gratuitos são:
• Astha.
• Draw.io.
• Lucidchart.
• Gliffy.
• yUML.
• Creately.
Diagrama de classes em UML
É sabido que a linguagem de modelagem unificada – UML tem como objetivo ajudar na 
modelagem dos sistemas de diversas formas. Um dos tipos mais difundidos desse tipo 
de linguagem é o diagrama de classes. Ele é extremamente utilizado por engenheiros de 
software e analistas de sistemas para realizar a documentação da arquitetura do software 
a ser desenvolvido. Os diagramas de classe, na verdade, são um tipo de diagrama de 
estrutura, porque descrevem o que, especificamente, deve estar contido no sistema a ser 
modelado. 
A linguagem de modelagem unificada – UML teve seu desenvolvimento baseado em um 
modelo padronizado para descrever e tratar, de forma direcionada, uma abordagem para 
a programação orientada ao objeto, que, cada vez mais, vem se expandindo no mercado 
corporativo entre os desenvolvedores de soluções tecnológicas. Temos, nos dias de hoje, 
os próprios aplicativos para smartphone como um bom exemplo desse cenário. 
82
Os diagramas de classe são os componentes essenciais da linguagem de modelagem 
unificada, da mesma forma que as classes são os componentes básicos dos objetos. 
Nesse sentido, os diversos componentes de um diagrama de classe vão, na íntegra, 
representar as classes que serão realmente programadas, pois os principais objetos ou as 
interações entre classes e objetos caracterizam essa representatividade perante o modelo. 
A forma geométrica dada para a diagramação de classe em si consiste na figura de 
um retângulo com três linhas verticais. A linha superior define o nome da classe, a linha 
do meio representa os atributos da classe e a linha inferior expressa os métodos ou 
operações que a classe pode utilizar. As classes e as subclasses existentes no modelo 
serão sempre agrupadas, com o objetivo de mostrar a relação estática entre cada objeto.
Sobre os diagramas de classe, você precisa conhecer: a perspectiva a 
partir da qual eles devem ser construídos, seus componentes, se existe 
herança entre as classes e quais são os seus atributos de visibilidade. 
Entenda melhor cada uma dessas categorias na sequência.
Perspectivas
Os diagramas de classe podem ser construídos a partir de duas perspectivas, a saber:
Conceitual Implementação
É a forma abstrata de observação 
dos objetos a serem modelados. Isso 
independe da linguagem de programação 
a ser utilizada.
Nesse momento, o foco é para a reflexão 
de detalhes de implementação para a 
definição das classes e dos objetos.
Representa uma entidade, processo ou 
conceito do mundo real: 
Identidade: valor de uma característica que o 
identifica.
Atributo: qualidade e características.
Comportamento: habilidade para 
processamento.
Representa um módulo que recebe e produz 
dados:
Identidade: identificador para a linguagem a 
ser implementada.
Atributo: variáveis e seus respectivos tipos 
de dados.
Comportamento: funções ouprocedimentos. 
É sabido que os resultados obtidos 
determinam o comportamento do objeto.
83
Componentes de um diagrama de classe
O diagrama de classes, dentro do seu formato padrão estabelecido, é composto de três 
partes:
Nome da classe
Atributos
(caracte-
rísticas)
Operações
(compor-
tamentos)
Parte superior: vem com a informação do nome da classe. Essa parte é fun-
damental, pois terá a referência do classificador ou de um respectivo objeto.
Parte do meio: vem com a informação dos atributos da respectiva classe. 
Essa parte é utilizada para descrever com clareza as qualidades da classe. 
É fundamental para se descrever uma instância específica de uma determi-
nada classe.
Parte inferior: vem com a informação que incluirá as respectivas opera-
ções da classe (os métodos). Será mostrado em formato de lista. Cada ope-
ração terá a sua própria linha. As operações irão descrever como a classe 
interagirá com os demais dados.
Componentes adicionais dos diagramas de classes
Diante das tendências de modelagem, é sabido que as classes pertencentes a um 
respectivo diagrama de classes representarão os principais objetos do modelo, bem como 
as interações no aplicativo a ser desenvolvido ou as classes a serem programadas. Para 
isso, é preciso entender a composição básica e necessária de um diagrama de classes. 
No quadro a seguir estão detalhados os componentes de um diagrama de classes:
Classes
São caracterizadas por um template a ser definido para que haja a criação 
de objetos e a implementação de um comportamento em um referido sis-
tema. No cenário da UML, uma classe deverá representar um determinado 
objeto ou um conjunto de objetos que compartilham uma estrutura e um 
comportamento comum.
As classes são representadas graficamente pela figura de um retângulo, 
que inclui linhas referentes ao seu nome, seus respectivos atributos e suas 
operações. Quando for desenhar a classe em um diagrama de classes, é 
importante que fique claro que somente a primeira linha deve ser preenchi-
da com informações; as outras linhas são opcionais, caso queira fornecer 
mais detalhes para aquela classe.
84
Sinais
Tipos de dados
Pacotes
Interfaces
Enumerações
Objetos
Artefatos
São caracterizados pelos símbolos que trazem, em sua representatividade, 
as comunicações de forma unidirecional e assíncrona entre objetos ativos 
no modelo.
São denominados de classificadores e têm por objetivo definir os valores 
dos dados a serem utilizados. Os tipos de dados definidos modelarão os 
tipos primitivos e também as enumerações necessárias.
São vistos como formas projetadas para estruturar os classificadores rela-
cionados em um determinado diagrama de classes. Sua simbologia é de-
terminada por uma grande forma de retângulo com abas.
São estabelecidas por uma coleção de assinaturas de operações e/ou de-
finições de atributos que definem um conjunto íntegro e ajustado de com-
portamentos. Têm características semelhantes às classes, exceto que uma 
classe pode conter uma instância de seu tipo e uma interface precisa ter, 
pelo menos, uma classe para implementá-la.
São caracterizadas por representações dos tipos de dados definidos pelo 
usuário no processo de levantamento de requisitos. Uma enumeração, no 
seu processo de definição, incluirá os grupos de identificadores que repre-
sentam os valores da respectiva enumeração.
São caracterizados pelas instâncias definidas de uma determinada classe 
ou classes. Os objetos poderão ser inseridos em um diagrama de classes 
para representar instâncias concretas ou prototípicas.
São caracterizados pelos elementos do modelo que representarão as res-
pectivas entidades concretas em um sistema de informação.
85
A seguir, veja exemplos de diagramas de classe.
Observe os exemplos de diagramas de classe e suas aplicações:
Exemplo 1
ALUNO
nome: TipoNome
ra: TipoCodigo -nome [30]: char
+ra: int
<Entidade>
Alunos
DePacoteCadastro
CalculaMedia: TipoNota
+CalculaMedia(): double 
 Visão conceitual
Visão implementação
Observe o diagrama de classes para a classe voo e seus desdobramentos:
Lista de atributos da classe voo
A seção de atributos de uma classe tem, por definição, listar cada um dos 
atributos da classe em uma linha específica. A seção de atributos é uma opção, 
mas, se for usada, é preciso que contenha cada atributo da classe exibido na 
forma de lista, de acordo com o seguinte modelo: nome: tipo de atributo. Veja 
uma aplicação prática: numerovoo: numero inteiro (tipo de dado).
Exemplo 2
VOO
numerovoo: inteiro
datapartida: data
duracaovoo: minutos
atrasovoo (numero de minutos: inteiro) : data
horaaterrizagem () : data
Diagrama de classes – Classe voo
Nome da classe
Atributos
(características)
Operações
(comportamentos)
86
Dando sequência ao exemplo, podemos descrever os atributos de classe com 
as informações do tipo de atributo. Os nomes dos atributos da classe voo e 
seus respectivos tipos associados podem ser organizados da seguinte forma:
Lista de operações da classe voo
As operações das respectivas classes estarão devidamente documentadas 
no terceiro compartimento do retângulo do diagrama de classes, que, como 
já citado anteriormente, poderá ser opcional. Com os devidos atributos 
estabelecidos, as operações de uma respectiva classe são exibidas no modelo 
de lista, com cada operação definida em sua própria linha, de acordo com o 
seguinte modelo:
• Nome (lista de parâmetros): tipo de valor retornado.
A tabela acima informa que a operação atrasovoo tem um parâmetro de entra-
da, que é o numerodeminutos, do tipo minutos. Contudo, a operação atrasovoo 
não tem um valor de retorno. 
É importante ressaltar, ainda, que a operação atrasovoo não tem um valor de 
retorno, porque essa decisão foi tomada no momento de sua criação. Quan-
do em uma determinada operação houver parâmetros, eles serão colocados 
dentro dos parênteses da operação. Cada parâmetro usa o seguinte formato: 
nome do parâmetro : tipo de parâmetro.
Nome do atributo Tipo de atributo
numerovoo Número inteiro
datapartida Data
duracaovoo Minutos
Nome da operação Retorno de parâmetros Tipo de valor
atrasovoo N/A
horaaterrizagem N/A
Nome
numerodeminutos
Digite
minutos
Data
87
O código gerado a partir de um diagrama de classes precisa de classes cujos 
tipos de atributo sejam limitados aos tipos de atributos já existentes nas 
linguagens de programação que são tradicionais no mercado ou aos tipos 
incluídos no modelo que também serão implementados no sistema.
É sabido que, em alguns casos, faz-se necessária a atribuição de um valor 
padrão para um ou mais atributos.
A especificação contida na UML permite que a utilização da identificação do 
valor padrão do atributo seja feita na seção de atributos de acordo com a 
notação abaixo:
• nome: tipo de atributo = valor padrão
Exemplo:
saldoconta : real = 1000
Importante
Herança
Um conceito importante é o de herança entre as classes, que deriva a superclasse e a 
classe-filha. 
A herança trata da capacidade de uma classe (classe-filha) de herdar uma funcionalidade 
idêntica de outra classe (superclasse) e, na sequência, incluir uma nova funcionalidade 
própria. 
Para modelar a herança no respectivo diagrama de classes, é preciso usar a simbologia 
de uma linha sólida que é desenhada a partir da classe-filha (a classe que herda o 
comportamento da superclasse), com uma ponta de seta (ou um triângulo) fechada, não 
preenchida, apontando para a superclasse. 
Considere a figura abaixo. Ela demonstra como as classes-filha Professor e Coordenador 
herdam as funcionalidades da superclasse Funcionário.
88
Funcionário
Professor Coordenador
Atributos de visibilidade
Todas as classes mapeadas em um diagrama terão diferentes níveis de acesso, 
dependendo do modificador de acesso (visibilidade).
Entenda os níveis de acesso com sua respectiva simbologia:
• Público (+) – Indica que o atributo tem visibilidade liberada, sem restrições, para 
qualquer classe.
• Privado (-) – Indica que o atributo éacessado somente pela própria classe.
• Protegido (#) – Indica que o atributo é acessado por qualquer classe derivada.
• Pacote (~) – O atributo é acessado pelo relacionamento da classe com a classe que 
é externa.
MIDIATECA
Acesse a midiateca da Unidade 3 e veja o conteúdo complementar indicado 
pelo professor na mídia 1.
89
Relacionamento entre as classes 
Relacionamento
O relacionamento permite compartilhar informações e colaborar com a execução dos 
processos do sistema que foi modelado para atender a uma demanda. Ele descreve, 
de forma clara, o vínculo que ocorre, na sua essência, entre os objetos de uma ou mais 
classes que foram contemplados no diagrama de classes.
 
Observe o gráfico abaixo. Note que existem três tipos de relacionamento, com suas 
respectivas subdivisões internas:
Unidirecional
Bidirecional
Reflexiva
Classe de associação
Básica
Normal
Ternária
De composição
Restrita
Associação
AgregaçãoRelacionamentos
Generalização
90
A seguir, conheça cada um dos tipos de relacionamento.
Associações
Ao realizar a modelagem em um sistema, determinados objetos estarão relacionados 
entre si. Os relacionamentos entre esses objetos, por sua vez, também precisam ser 
modelados para que haja mais clareza e entendimento sobre todos os tipos de relação 
entre as classes.
Existem cinco tipos de associações que podemos modelar. Nesta unidade, no entanto, 
só trataremos das duas mais importantes, que são as associações unidirecionais e as 
bidirecionais. 
a. Associação unidirecional
Em uma associação unidirecional, duas classes são relacionadas, mas somente uma 
classe reconhece que o relacionamento existe entre elas.
Símbolo da associação unidirecional
Uma associação unidirecional é desenhada com base em uma linha sólida, 
com uma ponta da seta aberta. Note, no símbolo de associação unidirecional 
acima, que não pode ser utilizada uma ponta de seta fechada nem um triângulo. 
A ponta da seta sempre aponta para a classe reconhecida. 
Importante
Para a composição da associação, é importante que haja um nome da função e um valor 
de multiplicidade, que valem somente para a classe que é reconhecida.
91
Observe os exemplos de diagramas de classe e suas aplicações:
Repare que o nome da função vem escrito abaixo do símbolo da associação 
unidirecional (possui) e o valor de multiplicidade vem escrito logo acima (0..*).
Exemplo
Funcionário Dependente
numemat: int
nomefunc: string
salario: double
grauparentesco: string
manterfunc(): void
0..*
Possui
b. Associação bidirecional (padrão)
Uma associação bidirecional será uma ligação entre duas classes mapeadas no diagrama 
de classes. Nesses casos, ambas as classes estarão cientes de que pertencem ao 
relacionamento, a menos que você qualifique a associação como algum outro tipo.
Símbolo da associação bidirecional: 
Uma associação bidirecional é caracterizada por uma linha sólida que faz 
a ligação entre as duas classes. Repare que não existem setas nem outros 
símbolos na ponta da linha.
Em ambas as extremidades da linha, você colocará um nome para a função e 
um valor de multiplicidade.
Importante
92
Observe o exemplo abaixo. Nesse caso, ambas as classes se enxergam.
Repare que o nome da função vem escrito abaixo do símbolo da associação 
bidirecional (possui), e os valores de multiplicidade vêm escritos logo acima (1 
e 0..*).
Exemplo
Funcionário Dependente
numemat: int
nomefunc: string
salario: double
nome: string
grauparentesco: string
manterfunc(): void
1 0..*
Possui
Saiba mais
Valores de multiplicidade e seus indicadores
Indicador Significado
0..1 Zero ou um
0..* Zero ou mais
1..* Um ou mais
0..5 Zero a cinco
1 Somente um
* Zero ou mais
3 Somente três
5..15 Cinco a quinze
93
Além dessas duas, você vai conhecer também as associações reflexivas, 
as classes de associação e as associações ternárias.
c. Associação reflexiva
Até aqui você verificou que todos os nossos exemplos demostraram um relacionamento 
entre duas classes distintas. Também é provável que uma determinada classe se associe 
com ela própria, a partir da associação reflexiva. Isso pode até soar de forma estranha, 
mas é importante lembrar que as classes são, na verdade, abstrações. Quando uma 
determinada classe se associa com ela própria, isso não quer dizer que uma instância da 
classe esteja relacionada com ela própria, mas sim que uma determinada instância da 
classe está relacionada a outra instância da classe.
Veja o exemplo a seguir.
No relacionamento representado graficamente acima, uma instância da classe 
Funcionário pode ser o gerente de outra instância da classe Funcionário. Por 
outro lado, como a função de relacionamento “gerencia” tem uma multiplicidade 
de 0..*, pode acontecer de um Funcionário não ter nenhum outro Funcionário 
para gerenciar. 
Exemplo
Funcionário
codigo: int
nome: string
manterfunc(): void
1 
0..*
Gerência
d. Classe de associação
Na modelagem das associações, algumas vezes é necessário incluir outra classe (terceira 
classe), porque ela inclui informações de suma importância sobre o relacionamento em 
questão. Para isso, é necessário usar a chamada classe de associação a ser vinculada à 
associação primária. 
94
Uma classe de associação tem a sua representatividade no formato de uma classe normal. 
A única diferença existente é que a linha de associação entre as classes primárias faz 
uma interseção com uma nova linha pontilhada que se conecta à classe de associação.
Veja o exemplo abaixo:
Exemplo
Funcionário
Fornecimento
Produto
cnpj: int
nome: string
data: date
valor: double
codigo: int
tipo: string
valor: double
manterfunc(): void manterfunc(): void
Classe de associação
e. Associação ternária
A associação ternária permite a associação entre três classes. 
Esse tipo de associação é representada por um losango (diamante) e, ainda, suporta uma 
associação de classe ligada a ela. Nesse caso, desenha-se uma linha tracejada a partir 
do losango para a classe em que será feita a associação ternária.
95
Exemplo
Funcionário
Funcionário
Produto0..* 
1..* 
1..* 
Agregação
A atuação da agregação no diagrama condiz com um tipo especial de associação, usado 
para modelar um determinado relacionamento do “todo com as suas respectivas partes 
integrantes”. 
Nos relacionamentos denominados básicos, que possuem a necessidade do uso de 
agregação, o ciclo de vida de uma respectiva classe mapeada como “parte” é independente 
do ciclo de vida da classe mapeada como “todo”.
Vamos analisar um exemplo.
Considere um carro como uma entidade inteira e a porta do carro como uma 
parte do carro como um todo. A criação da porta pode ser realizada na fábrica 
semanas antes da construção do carro como um todo e pode ser estocada 
em um armazém e/ou galpão até ser colocada no carro durante o processo de 
montagem final do veículo. 
Dessa forma, poderemos verificar que a instância da classe “porta” tem um 
ciclo de vida totalmente independente da instância da classe “carro”. Contudo 
existem momentos em que o ciclo de vida da classe “parte” não é indepen-
dente do ciclo de vida da classe “todo”. Isso é o que denominamos de agre-
gação de composição.
Exemplo A
96
Imagine o relacionamento de uma empresa com seus respectivos 
departamentos. A empresa e os departamentos serão modelados como 
classes. Entretanto um departamento não poderá existir sem que, antes, a 
empresa exista. Nese caso, a instância da classe “departamento” depende da 
existência da instância da classe “empresa”.
Exemplo B
Na sequência, vamos explorar a agregação básica e a agregação de composição.
a. Agregação básica
A agregação básica existente em um modelo tem a finalidade de indicar que uma 
determinada classe fará parte de outra. Quando há esse tipo de relacionamento, a classe-
filha poderá ter uma vida maior do que a classe-pai (superclasse). 
Símbolo de agregação básica: 
Uma agregação básica é caracterizada por uma linha sólida que parte da classe-
pai (superclasse) para a classe-filha.Um losango não preenchido (vazio) deve 
ser desenhado na extremidade da associação da classe-pai (superclasse).
Importante
Exemplo
Funcionário Produto
cnpj: int
nome: string
codigo: int
tipo: string
valor: double
manterfunc(): void manterfunc(): void
97
b. Agregação de composição
O relacionamento de agregação de composição é mais uma forma de relacionamento de 
composição, mas, nesses casos, o ciclo de vida da instância da classe-filha depende do 
ciclo de vida da instância da classe-pai (superclasse).
Símbolo de agregação de composição: 
Uma agregação de composição é caracterizada por uma linha sólida que parte 
da classe-pai (superclasse) para a classe-filha. Um losango preenchido (cheio) 
deve ser desenhado na extremidade da associação da classe-pai (superclasse).
Importante
Veja o exemplo abaixo.
No relacionamento modelado no diagrama de classe acima, uma instância da 
classe Empresa sempre terá pelo menos uma instância da classe Departamento. 
Como o relacionamento em questão é um relacionamento de composição, se 
a instância de Empresa for excluída/removida, a instância de Departamento 
também será, de forma automática, excluída/removida.
Outro recurso de suma importância da agregação de composição é que a 
classe da parte somente pode estar relacionada a uma instância da classe-pai 
(como a classe Empresa citada no exemplo acima).
Exemplo
Empresa Departamento
cnpj: int
nome: string
codigo: int
tipo: string
manteremp(): void
98
Generalização 
A generalização é tida como um relacionamento entre um elemento geral e um outro 
mais específico. O elemento que se entende por mais específico possui todas as 
características do elemento geral e contém ainda mais algumas particularidades. 
Um objeto mais específico pode ser usado como uma instância do elemento mais 
geral. A generalização, também chamada de herança, permite a criação de elementos 
especializados em outros.
Existem dois tipos de generalização, que podem variar em sua utilização, a partir da 
situação em que serão empregadas: normal e restrita. Conheça cada uma delas, na 
sequência.
a. Generalização normal
Na generalização normal, a classe mais específica, chamada de subclasse, herda tudo 
da classe mais geral, a superclasse. Os atributos, as operações e todas as associações 
são herdados.
Símbolo de generalização normal: 
Exemplo
Conta Corrente Poupança
b. Generalização restrita
A generalização restrita se divide em: 
• Generalização de sobreposição – Quando as subclasses herdam de uma 
superclasse por sobreposição. 
99
• Generalização disjuntiva – Quando um objeto pertence a apenas um tipo de classe. 
Quaisquer outras subclasses criadas posteriormente poderão herdar de somente 
uma subclasse. 
• Generalização completa – Quando todas as subclasses possíveis foram enumeradas 
na hierarquia. 
• Generalização incompleta – Quando nem todas as subclasses foram enumeradas 
na hierarquia.
Veja os exemplos de generalização a seguir. 
Exemplo
Veículo
Sobreposição
Anfíbio
Carro Barco
100
Pessoa
Completa/Disjunta
Homem Mulher
Veículo
Incompleta
Carro Barco
MIDIATECA
Acesse a midiateca da Unidade 3 e veja o conteúdo complementar indicado pelo 
professor na mídia 2.
101
Modelando o diagrama de classes 
Os benefícios dos diagramas de classes
É sabido que a maior parte das organizações, no processo de desenvolvimento de seus 
bancos de dados, para atender a uma demanda de software, trabalhará fortemente 
com sua equipe no processo dos diagramas de classe, pois eles oferecem uma série de 
benefícios.
Conheça os benefícios trazidos pelos diagramas de classes UML:
• Ilustrar de forma clara os modelos de dados utilizados para a criação dos sistemas 
de informação, não importa o quanto são simples ou complexos.
• Entender de forma mais eficaz a visão geral dos esquemas de uma aplicação a ser 
desenvolvida.
• Expressar visualmente as referidas necessidades que devem ser tratadas em um 
sistema e também divulgar claramente essas informações para toda a empresa.
• Criar gráficos específicos, com detalhamentos que gerem destaque para qualquer 
código específico necessário para ser programado e implementado.
Agilidade x UML
A agilidade não está relacionada com a velocidade de produção de um software. Pelo 
contrário, ela se refere a produzi-lo com uma determinada velocidade, entregando-o no 
menor tempo possível e melhorando o processo de produção de forma contínua. Para 
ser ágil, é fundamental que haja eficiência. Não se pode falar em agilidade sem a devida 
eficiência. Além disso, não pode haver desperdício de tempo.
Nos projetos de softwares, desenvolvidos no âmbito das empresas, por equipe de analistas, 
temos que um dos maiores desafios é sempre a boa comunicação entre os participantes 
do projeto. Para que a dupla agilidade — eficiência funcione, é necessário que:
• Esteja claro o que se deseja.
• Todos na empresa saibam o que será entregue.
• Esteja claro como a produção do software vai acontecer. 
102
Todos sabem da complexidade da produção de um diagrama de classes, mas ele é uma 
ferramenta fundamental, pois, quando se entende um “requisito” da forma errada, há um 
custo para fazer errado, desfazer e refazer da forma como se deve. Esse tipo de erro 
custará muito mais caro do que se tivesse sido evitado da primeira vez.
Dessa forma, temos que o uso racional e coerente dos diagramas de 
classe com a perspectiva de transmitir ideias entre membros de um 
mesmo grupo é uma ferramenta que favorecerá muito a agilidade de 
produção e minimizará as possibilidades de erro.
Objetivo da utilização do diagrama
O diagrama de classes, como já citado, tem como objetivo principal a especificação dos 
componentes que farão parte da construção do sistema de informação e como esses 
componentes se interligam do ponto de vista estrutural.
Quando é necessário utilizar o diagrama de classes?
De acordo com Ventura (2018), o diagrama é uma ferramenta bem versátil quanto às 
possibilidades de aplicação prática para o desenvolvimento do software.
Temos desde os modelos estruturais mais simples até os modelos mais complexos, 
com arquiteturas que envolvem padrões de projetos diversos, modelos objeto-relacional, 
APIs de microsserviços e mil e uma outras coisas.
Diante do cenário, o importante é entender o contexto no qual o diagrama será aplicado, 
para então usá-lo da melhor forma possível e atender à devida demanda.
Ainda de acordo com Ventura (2018), levando-se em consideração as possibilidades de 
aplicação do diagrama de classes, ele poderá ser utilizado para diferentes finalidades no 
contexto de produção de software. Em destaque, temos:
• Design: será necessária a definição de um modelo a ser seguido para um software 
que ainda não foi concebido, assim especificando um modelo antes de efetivamente 
construir o software executável (diminuindo o desperdício).
103
• Engenharia reversa: é importante que haja uma reflexão na estrutura que já existe 
de um software, em que, a partir do código-fonte, faz-se uma leitura automática (ou 
não) das classes e das suas relações e se produz o diagrama (para entendimento 
da estrutura do software executável).
• Esboço de ideias: é importante que se desenhem modelos estruturais para troca de 
ideias e alinhamento entre os analistas de sistemas envolvidos no projeto.
Mapeando o diagrama de classes
O mapeamento do diagrama de classes envolve algumas etapas importantes. Veja o 
esquema abaixo com o passo a passo:
Regras úteis Como fazer a identificação?
Identificando 
as associações
Identificando 
as agregações
Identificando 
os atributos
Identificando 
os métodos
Identificando 
as 
generalizações
Agora veja detalhadamente cada uma das etapas.
Regras úteis
• É melhor mapear demais do que de menos.
• Não exclua entidades simplesmente porque os requisitos não indicam necessidade 
de guardar requisitos sobre elas.
• Comece fazendo uma relação das entidades candidatas.
• Considere os substantivos e frases nominais nas descrições textuaisdo domínio do 
problema como possíveis candidatos a entidades e/ou atributos.
Como fazer a identificação?
• Existem informações que devem ser analisadas e/ou informadas.
• Existem sistemas externos ao modelado?
 – Se existirem, eles deverão ser tratados como classe pelo sistema para que possa 
interagir com outros meios externos.
• Qual o papel dos atores no sistema?
 – Talvez o papel deles possa ver visto como uma classe.
104
Identificando as associações
• Foque nas associações cujos conhecimentos devem ser mantidos.
• Use nomes e expressões verbais que façam sentido quando forem lidas no contexto 
do modelo desenvolvido.
• Evite demonstrar o uso de associações deriváveis e restritas.
• É muito mais importante que haja a identificação dos conceitos do que das 
associações.
• Muitas associações tendem a gerar confusão no modelo em vez de torná-lo 
inteligível.
Identificando as generalizações
• A subclasse terá atributos adicionais de interesse?
• A subclasse terá associações adicionais de interesse?
• A subclasse se comportará de forma diferenciada da superclasse ou das outras 
subclasses?
• Criando superclasses:
– As subclasses com potencial representarão variações de um conceito similar?
– As subclasses satisfarão 100% da regra estabelecida?
– Todas as subclasses possuirão um atributo comum definido na superclasse?
– Todas as subclasses possuirão uma associação comum que se relacionará com 
a superclasse?
Identificando as agregações
• Verifique se algumas classes podem se agrupar em algum composto:
– Elas geralmente são criadas/destruídas no mesmo momento?
– Elas possuem relacionamentos comuns?
• Verifique se alguma classe pode ser subdividida em partes:
• As partes possuem tempo de vida limitado ao tempo de vida do composto?
• Elas possuem relacionamentos particulares e de interesse?
Identificando os atributos
• Atributos devem representar, preferencialmente, tipos primitivos de dados ou de 
valores simples.
• Atributos não podem ser usados para:
– Representar um conceito complexo.
– Relacionar conceitos (chaves estrangeiras).
105
Identificando os métodos
• Os métodos são acrescentados na perspectiva de implementação e são derivados a 
partir do diagrama de interação.
• É importante que haja distinção da operação de método.
• Operação é uma coisa que se evoca (chamada do procedimento). Para realizar uma 
operação, a classe implementa um método (corpo do procedimento).
• É fundamental identificar operações que alteram ou não o estado (os atributos) de 
uma classe.
• Não modificam: query, métodos e obtenção e getting methods.
• Modificam: modificadores, métodos de atribuição ou fixação, setting methods.
Uma classe que será definida no diagrama de classe da UML possuirá três 
compartimentos, sendo um para cada um dos itens a seguir: 
• Nome (primeiro).
• Atributos (segundo). 
• Operações (terceiro).
Quando fazemos o uso de diagramas de classe no dia a dia do desenvolvimento 
de um software, nem sempre é necessário e/ou relevante fazer a representação 
de cada classe no menor nível de detalhe, ou seja, com os três compartimentos, 
e com todo rigor nas especificações dos atributos e operações.
Saiba mais
Cozinha
PortaCozinha PortaQuarto
Quarto
Porta
Sala PortaSala
Modelo de um diagrama de classes
106
No diagrama acima, detalhado na obra de Ventura (2018), temos a definição dos 
relacionamentos de associação, agregação, composição e generalização (também 
vistos como herança). 
Explicação da construção do modelo:
• Cozinha pode ter ou não uma PortaCozinha, podendo existir se não tiver (agregação).
• PortaCozinha generaliza Porta, possuindo todas as características que Porta tem, 
além das suas específicas (generalização).
• Quarto deve ter PortaQuarto, não podendo existir se não tiver (composição).
• PortaQuarto generaliza Porta, que tem todas as características que Porta tem, além 
das suas específicas (generalização).
• Sala deve ter PortaSala, não podendo existir se não tiver (composição).
• PortaSala generaliza Porta, que tem todas as características que Porta tem, além 
das suas específicas (generalização).
• Sala pode ter ou não uma Porta que não seja uma PortaSala, mas, se tiver ou não, 
isso não fará diferença, pois Porta pode existir sem Sala, e Sala pode existir sem 
Porta (associação). 
MIDIATECA
Acesse a midiateca da Unidade 3 e veja o conteúdo complementar indicado 
pelo professor na mídia 3.
107
NA PRÁTICA
O senhor Paulo Freitas de Mello, há cinco anos, resolveu investir suas aplicações 
na criação de uma empresa que organiza festas infantis. Ele estabeleceu 
que o limite da idade a ser atendida seria de 13 anos. Com os investimentos 
realizados, Paulo conseguiu produzir uma boa quantidade de temas para a 
locação (em torno de 20 temas). Agora, com o crescimento do negócio, ele 
tem a necessidade de controlar com maior afinco os aluguéis das festas, pois 
está com um novo sócio. Para isso, Paulo demandará uma nova aplicação que 
lhe permita cadastrar: 
• Nome e telefone do cliente.
• Endereço completo da festa.
• Tema escolhido.
• Data da festa.
• Hora de início e de término da festa. 
Também há um detalhe que, para os clientes mais antigos (três anos de 
locação), Paulo vai proporcionar: uma política de descontos para potencializar 
ainda mais o negócio. Sendo assim, é preciso saber o valor realmente cobrado 
em um determinado aluguel de festa.
Dessa maneira, Paulo demandará da equipe de desenvolvimento contratada a 
representação de um diagrama de classes que atenda a essa nova necessidade. 
Veja o resultado a seguir.
108
Tema
Aluguel
Cliente
Endereco
Itemtema
nome: string
valor: double
data: date
horarioinicio: time
horariofim: time
valor: double
codigo: int
nome: string
logradouro: string
numero: int
complemento: string
bairro: string
nome: string
descricao: string
1..*
1..*
1
1
1
0..*
109
Resumo da Unidade 3
Nesta unidade você estudou a importância dos conceitos ligados ao desenvolvimento 
do diagrama de classes. Você viu, a partir de uma abordagem sucinta, a definição de 
classes e como se dá a sua representação dentro do modelo.
Você conheceu o conceito de relacionamento, estudou como ocorrem os relacionamentos 
entre as classes e as variações existentes: associação, agregação e generalização. 
Por fim, você foi apresentado a possíveis cenários importantes para a criação de um 
diagrama de classes, levando em consideração os questionamentos necessários para 
que haja um mapeamento correto com relação às necessidades levantadas.
CONCEITO
Ao longo do estudo desta unidade você teve contato com os conceitos funda-
mentais da UML, conceitos distintos sobre as classes, bem como as relações 
pertinentes aos relacionamentos estabelecidos entre as classes.
110
Referências 
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. São Paulo: Pearson, 2005. 
Biblioteca Virtual.
OLIVEIRA, A. J. F. de. Método para avaliação de risco operacional em banco de dados. 
São Paulo: Blucker, 2017. Biblioteca Virtual.
VENTURA, P. Entendendo o diagrama de classes da UML: modelo de classes com UML. 
Até o Momento. Belo Horizonte, 16 jul. 2018. Disponível em: https://www.ateomomento.
com.br/uml-diagrama-de-classes/. Acesso em: 23 mar. 2019.
VICCI, C. Banco de dados. São Paulo: Pearson, 2015. Biblioteca Virtual.
https://www.ateomomento.com.br/uml-diagrama-de-classes/
https://www.ateomomento.com.br/uml-diagrama-de-classes/
Normalização de dados
UNIDADE 4
112
Nesta unidade, você vai estudar o conceito e a importância do uso do processo de nor-
malização para que o banco de dados a ser utilizado na empresa esteja o mais correto e 
íntegro possível. Serão tratadas cinco formas de normalização que garantirão total inte-
gridade ao processo. 
INTRODUÇÃO
OBJETIVO
Nesta unidade, você será capaz de:
Construir um projeto de banco de dados por meio da aplicação das formas 
normais, otimizando os atributos de um modelo de dados.
113
Engenharia reversa 
Introdução
A engenharia reversa tem como missãoa realização de uma atividade que trabalhe com 
demandas de produtos que já estejam sendo executados (softwares, tabelas, periféricos, 
placas de computador etc.), em que o seu desafio será entender como esse software/
produto tem o seu mecanismo de funcionamento, o que ele exerce e como ele se comporta. 
A engenharia reversa se faz necessária quando temos o desejo de trocar ou de modificar 
uma peça/software/tabela por outro, com as mesmas características. Ela também é 
utilizada quando precisamos entender como uma peça/software/tabela executa as suas 
responsabilidades e não temos acesso, de alguma forma, à sua documentação, que trata 
de todas essas características.
É preciso entender que há uma diferença entre a engenharia reversa e a reengenharia. Veja:
Engenharia reversa Reengenharia
Consiste em apenas analisar 
o sistema de informação ou a 
ferramenta a ser utilizada para 
criar uma representação dela.
Esta vai mais além. Faz a análise do 
projeto, na sequência cria uma repre-
sentação dele e, diante dessa repre-
sentação, monta uma nova estrutura 
que funcione da mesma forma que a 
primeira, mas que não seja meramente 
cópia dela. É preciso que haja alguns 
diferenciais de modernização.
Por que a necessidade da engenharia reversa na informática?
As empresas trabalham com sistemas de informação que podem apresentar fragilidades, 
como:
• O sistema pode ser muito antigo (15 anos).
114
• O sistema tem muito pouco material em termos de documentação.
• A documentação existente não foi atualizada.
• Os analistas responsáveis pelo sistema deixaram a empresa e a nova equipe não 
sabe dar informações.
• Os processos decisórios que foram tratados não foram registrados.
• Surgimento da necessidade de migração de um sistema que trabalhe com tabelas 
para um banco de dados.
• Existência de vários programas que acessam as mesmas tabelas. Daí a necessi-
dade de criar um banco de dados integrado.
• O sistema é implementado em uma linguagem de programação antiga (Dbase, Ba-
sic, Cobol, Fortran, APL) para a qual não existem muitos mecanismos de atualização.
É sabido que o sistema de informação precisa evoluir conforme a necessidade de 
mercado:
• Ser adequado imediatamente às novas tendências e tecnologias.
• Ser reestruturado aos novos softwares (bibliotecas, APPs, novas linguagem de 
programação, novas ferramentas).
• Seguir novas regras regionais (por exemplo, o uso de nova moeda em todos os 
países da Europa).
• Disponibilizar, de forma imediata, novas funcionalidades que as empresas tendem 
a usar para serem mais competitivas.
Agora que você já sabe o que é engenharia reversa e como surge a ne-
cessidade de empregá-la, conheça os seus diferentes tipos.
Tipos de engenharia reversa
São três os tipos de engenharia reversa. Veja no gráfico abaixo:
Tipos de engenharia reversa
de software para o banco 
de dados
para o banco 
de dados de BI 
115
A seguir, conheça cada tipo de engenharia reversa.
1. Engenharia reversa de software
A engenharia reversa utilizada para o padrão de software está balizada em fazer a análise 
do sistema de informação para criar a representação do próprio sistema em um nível 
mais elevado de abstração.
Em alguns casos, essa atividade pode ser vista como “dar um passo atrás no ciclo de 
desenvolvimento do software”.
De forma prática, há dois tipos de engenharia reversa para o software:
A. Para o primeiro caso, temos o código-fonte (programa) disponível. Por outro lado, 
outros documentos mais formais não estão disponíveis: falta a documentação ou a 
documentação não está atualizada. Daí a necessidade de desvendar esses dados.
B. Para o segundo caso, o código-fonte (programa) do software não está disponível. 
Só existe o arquivo executável. Nesses casos, todos os esforços realizados 
pela equipe para desvendar um possível código-fonte para esse software são 
considerados uma forma de engenharia reversa.
2. Engenharia reversa para o banco de dados
O processo adotado para a engenharia reversa em banco de dados é considerado uma 
técnica por meio da qual a partir de um banco de dados já implementado (em pleno 
funcionamento na empresa) é criado o seu modelo de forma conceitual (modelo entidade-
relacionamento e/ou diagrama de classes). 
A engenharia reversa em banco de dados é um processo que possui quatro etapas. São elas:
116
A etapa 1 é dividida com base em três regras fundamentais: 
I. Chave primária da tabela composta por mais de uma chave 
estrangeira: isso se dá quando uma chave primária da tabela é 
composta por mais de uma chave estrangeira. Assim, podere-
mos caracterizar a necessidade do relacionamento n:n.
II. Chave primária completa da tabela forma uma chave estran-
geira: isso se dá quando todas as colunas de chave primária da 
tabela formam uma única chave estrangeira. Assim, teremos a 
especialização da referida entidade (tabela).
III. Outros casos: se dão no momento em que as regras 1 e 2 
não necessitam ser implementadas, e, assim, a tabela é consi-
derada uma entidade.
Na etapa 2, será realizado o tratamento para as chaves estran-
geiras que não se enquadrarem nas regras 1 e 2 referentes à 
etapa 1. O tratamento se dará da seguinte maneira:
• As que possuírem colunas que não fazem parte da chave pri-
mária.
• Também aquelas que façam parte de uma determinada chave 
primária e a referida chave primária não possua outras chaves 
estrangeiras, e sim colunas que não são chaves estrangeiras.
A etapa 3 faz referência à coluna que não é uma chave estran-
geira. Dessa forma, é definido um respectivo atributo na enti-
dade e/ou relacionamento na tabela “responsável” da coluna. 
Temos a divisão nos seguintes moldes:
• A coluna da chave primária que não é uma chave estrangei-
ra: é considerada como um atributo identificador da entidade 
(tabela) e/ou relacionamento a coluna que fizer parte da chave 
primária e que não seja uma chave estrangeira.
• A coluna da chave primária que é uma chave estrangeira: é 
considerada como um atributo identificador externo da enti-
dade (tabela) a coluna que fizer parte da chave primária e que 
seja também a chave estrangeira.
Na etapa 4, já se entende que o modelo conceitual abrange a 
conformidade das relações existentes entre as entidades ma-
peadas. Sempre haverá a relação entre as entidades, e os rela-
cionamentos serão o elo de ligação entre elas.
Identificação do 
modelo entidade-
relacionamento 
correspondente a 
cada tabela existente.
Mapeamento real dos 
relacionamentos 1:n e 
1:1 que se darão entre 
as tabelas.
 Mapeamento 
assertivo dos atributos 
de cada tabela.
Definição assertiva 
dos identificadores 
de entidades e de 
relacionamentos. 
117
A engenharia reversa em banco de dados traz uma série de vantagens: 
• Tende a facilitar a criação/manutenção da documentação do banco de dados. 
• Irá permitir a análise do sistema de informação. 
• Ajudará na manutenção do banco de dados.
• Permitirá o melhor entendimento do funcionamento do banco de dados.
• É possível recuperar as informações do banco de dados que tenham se perdido ao 
longo do tempo por falta da devida documentação.
3. Engenharia reversa para o banco de dados de BI (business 
inteligence)
Nos dias de hoje, com o grande volume de dados armazenados e a necessidade de se 
trabalhar fortemente com a mineração de dados por conta do crescimento do negócio, 
muitos bancos de dados de BI são criados dentro de um conceito e percebe-se, após 
algum tempo, que o seu crescimento orgânico não permite mais a modelagem correta. 
Como consequência, tem-se um banco de dados gigantesco sem a documentação 
adequada para a implementação dos relatórios necessários para os gestores, sejam eles 
novos ou não.
Uma solução para esse tipo de problema é o uso de repositórios de dados de BI. 
Esses repositórios são responsáveis por guardar os dados que serão necessários para 
as organizações apoiarem as tomadas de decisões pelos líderes dos negócios. Os 
repositórios de dados podem ser de quatro tipos:
• Big data.
• Data mart.
• ODS.• Data lake.
A criação dos repositórios de dados é incremental, isto é, o aumento de informações 
na base de dados é orgânico, acompanhando o crescimento da empresa e as diversas 
modificações de rumo conforme o negócio avança. Por outro lado, há um ponto de 
atenção. Modificações no planejamento estratégico da empresa ou modificações na 
equipe de analistas de BI, embora sejam ocorrências triviais, podem, de alguma forma, 
prejudicar a passagem de conhecimento da estrutura do repositório de dados de BI.
118
A complexidade do processo de ETL (tipo de integração de dados que se dá em três 
etapas — extração, transformação, carregamento — e é utilizado para combinar dados de 
diversas fontes, sendo muito usado para a construção de data warehouse), da modelagem 
dos dados e das constantes melhorias necessárias para o processo de BI faz com que, na 
maior parte das vezes, a documentação necessária seja deixada de lado e a transmissão 
do conhecimento ocorra na realização de workshops periódicos ou, simplesmente, em 
uma conversa.
Abaixo, algumas dicas para tratar a questão da engenharia reversa no BI:
• Separe os referidos assuntos dentro do seu banco de dados, assim você irá 
conseguir enxergar o relacionamento existente entre as tabelas e poderá trabalhar 
com minimodelos.
• É preciso identificar as tabelas que são corporativas, isto é, as tabelas que são 
utilizadas para cadastros e que são utilizadas em vários minimodelos.
• Saber fazer o aproveitamento da modelagem para identificar as melhorias no seu 
processo de ETL e fazer a documentação do ETL, assim podendo incluir a tabela de 
origem, a de transformação realizada e, por fim, a tabela de destino.
• Não permitir que a documentação pare. É preciso que haja uma atualização 
constante, isto é, o que irá mantê-la ativa e sempre pronta para a equipe e para os 
novos membros.
Existem ferramentas que facilitam o processo da engenharia reversa. O uso 
desse tipo de ferramenta é fundamental, pois tentar realizar tudo de forma 
manual, com prazo e qualidade, é humanamente impossível.
Dica
A seguir, entenda os aspectos legais que perpassam a engenharia reversa.
Aspectos legais
É preciso ter atenção com relação às questões legais, pois a engenharia reversa pode 
também trazer problemas de legalidade. Imagine uma empresa que tenha o desejo de 
criar uma cópia de um produto que tem muita aceitação no mercado, como, por exemplo, 
o Sistema SAP. Isso certamente, é um problema.
119
No entanto, a questão da legalidade irá variar de país para país. É sabido que há países 
que não fomentam nenhum ato de regulação sobre esse assunto.
O Digital Millennium Copyright Act dos Estados Unidos, que obteve sua aprovação no ano 
de 1998, trata, entre diversas medidas, da proteção dos direitos autorais na informática, 
e também faz algumas restrições no que tange à temática da engenharia reversa. A lei 
trata da permissão só para fins de análise de compatibilidade com outros softwares e/
ou hardwares.
Infelizmente, no Brasil, não há uma lei específica sobre a engenharia reversa. Caso haja a 
ocorrência da engenharia reversa, o padrão brasileiro trata o caso de duas formas: 
• Se a engenharia reversa não tiver como especificidade a questão da pirataria ou 
infração de algum direito autoral, não será considerado um crime. 
• Caso contrário, a Lei de Software e também a Lei dos Direitos Autorais protegerão 
seus autores.
MIDIATECA
Acesse a midiateca da Unidade 4 e veja o conteúdo complementar indicado 
pelo professor na mídia 1 sobre esse tema.
120
As três formas normais 
Introdução
A normalização de um banco de dados é muito importante para a construção do modelo 
físico do banco de dados. Veja um exemplo:
Imagine que um SGBD é construído com base no modelo relacional, tal como: 
Oracle e SQL Server. 
Isso significa que esse banco de dados obedece às regras definidas por Edgar 
Frank Codd, que foi o responsável pelo desenvolvimento do modelo de banco 
de dados relacional.
Exemplo
Na sua essência, a normalização dos dados é definida a partir de um conjunto de regras 
que determina a organização do banco de dados com o intuito de:
• Reduzir a redundância de dados.
• Garantir a integridade dos dados.
• Aprimorar o desempenho do banco de dados. 
Para que haja o processo de normalização do banco de dados, é preciso que sejam 
examinadas as colunas (atributos) de uma entidade e as relações existentes entre as 
entidades (tabelas), com o propósito de evitar irregularidades na inclusão, na exclusão e 
na alteração de registros em uma tabela.
Mesmo nos dias de hoje, ainda há muitos sistemas de informação rodando em empresas 
que ainda não utilizam banco de dados relacionais, esses sistemas são denominados de 
sistemas legados. Os dados oriundos desses sistemas são armazenados em arquivos 
e utilizam linguagens de terceira geração, como COBOL, PASCAL ou BASIC, ou, então, 
são armazenados em bancos de dados cujas características classificam-no como pré-
relacional.
121
Para que haja uma melhor adequação do banco de dados a ser projetado, é importante 
avaliar as cinco regras existentes, que são denominadas de formas normais. As formas 
normais são um conjunto de regras fundamentais para a simplificação e a adequação 
das tabelas a serem criadas no banco de dados. É dito que uma determinada tabela 
do banco de dados relacional está em uma certa forma normal quando ela satisfaz às 
condições exigentes. 
O trabalho original realizado por Edgar Frank Codd definiu três dessas formas, mas, 
atualmente, existem outras formas normais geralmente aceitas pelos desenvolvedores e 
pelos pesquisadores da área. 
Trataremos agora das três formas normais, em que cada uma delas representará uma 
condição mais forte das que a precedem na lista. Para a prática de mercado, considera-
se que, se as bases de dados estiverem normalizadas de forma adequada até a terceira 
forma normal, tem-se um cenário muito positivo para a utilização do banco de dados de 
forma íntegra.
A seguir, serão apresentadas as três primeiras formas normais.
Primeira forma normal - 1FN
A tabela na 1FN não pode conter tabelas aninhadas. Os atributos definidos na tabela 
precisam ser atômicos, ou seja, a tabela não pode conter valores repetidos nem atributos 
definidos que possuam mais de um valor. 
TABELA CLIENTE
ID + NOME + ENDEREÇO + BAIRRO + TELEFONES → São os atributos existentes 
da tabela CLIENTE.
CLIENTE = {ID + NOME + ENDEREÇO + BAIRRO + TELEFONES}. 
Porém, sabemos que uma pessoa qualquer poderá ter mais de um número 
de telefone (seja residencial, comercial e/ou celular), dessa forma o atributo 
“TELEFONES” é tido como “multivalorado” (possui mais de uma informação).
Para normalizar a tabela CLIENTE, é preciso:
Exemplo
122
CLIENTE
ID
ID
ID_TEL
1
1
1
2
3
1
1
Nome
Nome
CLIENTE_ID
Pedro
Pedro
1
1
1
Pedro
Pedro
Endereço
Endereço
TELEFONES
Rua Salvador, 36
Rua Salvador, 36
34788709
24789032
988764510
Rua Salvador, 36
Rua Salvador, 36
Bairro
Bairro
Méier
Méier
Méier
Méier
Telefones
34788709
24789032
988764510
TELEFONEPossui
1. Identificar qual é a chave primária da tabela e também qual coluna possui os 
dados repetidos (nesse caso é o atributo “TELEFONES”) e remover o atributo 
“TELEFONES” da tabela CLIENTE.
2. Construir uma nova tabela levando para ela o atributo em questão, 
“TELEFONES”. Mas não podemos nos esquecer que é preciso que haja uma 
relação entre a tabela CLIENTE e a nova tabela que está sendo criada. Para 
isso, o atributo ID da tabela CLIENTE será criado também na nova tabela e será 
considerado uma chave estrangeira.
Definição das duas tabelas: 
CLIENTE = {ID (chave primária) + ENDEREÇO} e 
TELEFONE (nova tabela) = {ID_TEL (chave primária) + CLIENTE_ID (chave 
estrangeira) + TELEFONE}.
TABELA CLIENTE (não normalizada)
Tabelas normalizadas na 1FN
CLIENTE
CLIENTE
123
Segunda forma normal - 2FN
Para que haja a segunda forma normal é fundamental que as regras da primeira 
forma normal estejam dentro do padrão. Nãoé possível ter a 2FN sem que haja 
a 1FN. 
Importante
A 2FN determina que os atributos normais da tabela, ou seja, aqueles que não são chaves, 
devem depender exclusivamente da chave primária da tabela. Dessa forma, as colunas 
que não são dependentes da chave primária devem ser imediatamente removidas da 
tabela principal. Além disso, é preciso criar uma nova tabela para realocar esses dados. 
Veja o exemplo abaixo:
TABELA PROFESSOR
ID_PROF + ID_CURSO + SALARIO + DESCRICAO_CURSO → São os atributos 
existentes da tabela PROFESSOR.
PROFESSOR = {ID_PROF + CURSO_ID + SALARIO + DESCRICAO_CURSO}
Fazendo uma análise da tabela, é possível constatar que o atributo “DESCRICAO_
CURSO” não depende unicamente da chave primária “ID_PROF” da tabela 
PROFESSOR, mas pertence somente ao conteúdo da chave “CURSO_ID”.
Para normalizar a tabela PROFESSOR, é preciso:
1. Identificar os dados que não são dependentes da chave primária da tabela 
PROFESSOR (nesse caso é o atributo “DESCRICAO_CURSO”) e remover da 
tabela PROFESSOR.
2. Criar uma nova tabela de nome CURSO e reorganizar os atributos nas duas 
tabelas com os referidos dados: 
a. PROFESSOR = {ID_PROF (chave primária) + CURSO_ID (chave estrangeira) 
+ SALARIO}.
b. CURSOS (nova tabela) = {CURSO_ID (chave primária) + DESCRICAO_CURSO}.
Exemplo
124
PROFESSOR
ID_PROF
CURSO_ID
ID_PROF
847
1
847
2
847
3
847
847
847
CURSO_ID
DESCRIÇÃO_CURSO
CURSO_ID
01
Ciência da Computação
01
Sistemas de Informação
02
Gestão da Tecnologia da Informação
03
02
02
SALÁRIO
SALÁRIO
400,00
400,00
1.100,00
2.689,99
1.100,00
2.689,99
DESCRIÇÃO_CURSO
Ciência da Computação
Sistemas de Informação
Gestão da Tecnologia da 
Informação
CURSOLeciona
TABELA PROFESSOR (não normalizada)
Tabelas normalizadas na 2FN
TABELA PROFESSOR
TABELA CURSO
125
Para que haja a 3FN é preciso que, antes, a 2FN tenha sido atendida na sua 
plenitude de acordo com as regras de normalização.
Importante
Terceira forma normal - 3FN
A 3FN tem por definição que todos os atributos da tabela devem ser mutuamente 
independentes uns dos outros, ao mesmo tempo eles precisam ser dependentes 
exclusivamente da chave primária da tabela. A 3NF foi projetada com o objetivo de 
melhorar o desempenho de processamento dos dados no referido banco de dados e 
assim minimizar os custos do armazenamento de informações. Veja dois exemplos de 
aplicação dessa regra:
TABELA FUNCIONARIO
ID + NOME + VALOR_SALARIO + VALOR_FGTS → São os atributos existentes 
da tabela FUNCIONARIO.
FUNCIONARIO = {ID + NOME + VALOR_SALARIO + VALOR_FGTS}
Na análise do cenário, podemos constatar que o valor do FGTS (atributo VALOR_
FGTS) é proporcional ao salário, logo esse atributo normal caracterizado de 
“VALOR_FGTS” é dependente do também atributo normal “VALOR_SALARIO”. 
Podemos constatar, ainda, que o valor do FGTS (calculado com base no salário) 
é um campo que depende do valor do SALARIO e não há qualquer ligação com 
a chave ID da tabela FUNCIONARIO.
Um outro ponto também a ser visto é se não há a existência de dependências 
transitivas ou indiretas. Uma dependência funcional transitiva ou indireta 
acontece quando uma determinada coluna, que não é chave primária, depende 
funcionalmente de outra coluna ou combinação de colunas que não sejam 
chaves primárias.
Para normalizar a tabela FUNCIONARIO, é preciso:
Exemplo 1
126
ID
ID
84716
84716
84717
84718
84717
84718
NOME
NOME
Carlos Augusto
Carlos Augusto
João Pedro
Marcos Paulo
João Pedro
Marcos Paulo
VALOR_SALÁRIO
VALOR_SALÁRIO
3.400,00
3.400,00
7.100,00
2.479,00
7.100,00
2.479,00
VALOR_FGTS
456,10
893,62
507,84
TABELA FUNCIONÁRIO (não normalizada)
Tabelas normalizadas na 2FN
1. Fazer a identificação dos dados dependentes de outros (nesse caso o 
atributo é o “VALOR_FGTS”).
2. Remover esse atributo da tabela FUNCIONARIO. O atributo “VALOR_FGTS” 
poderia ser definitivamente excluído e poderia ser deixado para a camada de 
negócio a responsabilidade pela execução de seu cálculo ou, quem sabe, ser 
direcionado para uma nova tabela e referenciar a principal (FUNCIONARIO).
Exemplo 2
COD_EMP
84716
84717
84718
NOME
Carlos Augusto
João Pedro
Marcos Paulo
CATEGORIA
01
02
03
SALARIO
5.900,00
3.200,00
6.679,00
TABELA EMPREGADO (já na 2FN)
127
COD_CAT
COD_EMP
01
84716
02
84717
03
84718
SALÁRIO
NOME
5.900,00
01
3.200,00
02
6.679,00
03
CATEGORIA SALARIO
01 5.900,00
02 3.200,00
03 6.679,00
Tabelas normalizadas na 3FN
TABELA EMPREGADO (já está na 2FN)
TABELA CATEGORIA
Observe que o atributo categoria passa a ser uma chave estrangeira.
MIDIATECA
Acesse a midiateca da Unidade 4 e veja o conteúdo complementar indicado 
pelo professor na mídia 2 sobre esse tema.
128
Forma normal Boyce-Codd 
Forma normal Boyce-Codd - FNBC
Para que essa forma normal seja atingida será necessário que não exista 
nenhuma dependência funcional não trivial de atributos em algo mais do que 
um superconjunto de uma chave candidata. Nessa fase, todos os atributos são 
dependentes de uma determinada chave, de uma chave inteira e de nada mais 
que uma chave.
É também considerada uma forma mais rígida da 3FN, pois trata de um tipo de 
atributo não considerado em outras formas normais: a chave candidata.
Importante
A chave candidata é aquela que é um atributo ou um conjunto de atributos de 
uma determinada tabela que identifica uma única linha na referida tabela. A chave 
primária é extraída a partir do conjunto de chaves candidatas de uma tabela.
Dica
Considerando o que foi exposto, é lógico ter a linha de pensamento em FNBC, quando:
• Uma determinada tabela tem várias chaves candidatas.
• Chaves candidatas serão compostas.
• Chaves candidatas se sobrepõem.
129
Outra definição de chave candidata é um identificador único que garante que nenhuma 
tupla (linha da tabela com informações dos dados referentes aos atributos) seja duplicada. 
Isso permitirá que seja criado um relacionamento em algo denominado multiconjunto, 
porque viola a definição básica de um conjunto. Já sabemos que uma chave pode ser 
composta, ou seja, formada por vários atributos. As chaves compostas ocorrem quando, 
em uma relação, existe mais de uma combinação de atributos para a identificação única 
do registro. Veja um exemplo:
Considere os seguintes dados: matrícula, CPF, RG, título de eleitor.
TABELA AULA
{Aluno, Curso} → Docente
Docente → Curso
Observe que não há dependência funcional transitiva, mas há uma 
dependência funcional em que os atributos da chave candidata {Aluno, Curso} 
não são determinantes.
Verificamos no contexto acima que:
• Há duas chaves candidatas: (Aluno, Curso), (Aluno, Docente).
• Se a chave primária escolhida for (Aluno, Curso), a tabela está na 3FN.
• Se a chave primária escolhida for (Aluno, Docente), a tabela está na 3FN.
• Contudo, tem-se uma DF que não possui chave candidata: 
 > Docente – Curso.
Exemplo 
João Pedro
Marco Cesar
Carlos Souto
Marcelo Pereira
Carla Cristina
Banco de Dados
Algoritmos
Banco de Dados
Estrutura de Dados
Banco de Dados
Carlos Rosa
Marcelo Sereno
Carlos Rosa
Maria Paula
Carlos Rosa
Aluno Curso Docente
130
• Se uma tabela estiver na FNBC, também estará na 3FN, mas o inverso 
não necessariamente poderá ser verdadeiro.
Algumas anomalias podem ser percebidas:
• Como se dá a inserção de um novo docente na tabela anterior?
• Se Marcelo Sereno deixa de ser professor é provável que qualquer menção 
a Algoritmos seja perdida.
A solução pode ser decompor as tabelas, criando-se tabelas que mantenham 
as chaves candidatas isoladas de alguma forma. Acompanhe:
Temos duas chaves candidatas definidas: (Aluno, Curso), (Aluno, Docente)
Se a chave primária for (Aluno, Curso), a relação está em 3FN. Se a chave 
primária for (Aluno, Docente), a relação também está em 3FN. Em ambos os 
casos, a relação não está em FNBC porque o determinante “Docente” não é 
uma chave candidata.
Esse cenário poderá gerar anomalias no momento da relação entre as tabelas:
• (Aluno,Docente) e (Aluno, Curso)
• (Curso, Docente) e (Curso, Aluno)
A melhor solução seria:
• (Docente, Curso) e (Docente, Aluno)
Violou a FNBC
Chave Candidata escolhida
Agora, veja como é o processo para obtenção da FNBC:
1. Identificar as dependências funcionais que violem a FNBC.
2. Para cada dependência funcional encontrada em 1, criar uma relação com a 
chave primária igual ao determinante.
3. As colunas que possuem seu valor determinado em 1 são excluídas da 
relação original.
131
TABELA AULA - ORIGINAL
Tabela normalizada na FNBC
TABELA ENSINO
TABELA LECIONA
Aluno
Aluno Docente
João Pedro
João Pedro
Marco Cesar
Marco Cesar
Carlos Souto
Carlos Souto
Marcelo Pereira
Marcelo Pereira
Carla Cristina
Carla Cristina
Curso
Banco de Dados
Algoritmos
Banco de Dados
Estrutura de Dados
Banco de Dados
Docente
Carlos Rosa
Carlos Rosa
Marcelo Sereno
Marcelo Sereno
Carlos Rosa
Carlos Rosa
Maria Paula
Maria Paula
Carlos Rosa
Carlos Rosa
Curso
Banco de Dados
Algoritmos
Banco de Dados
Estrutura de Dados
Banco de Dados
Docente
Carlos Rosa
Marcelo Sereno
Carlos Rosa
Maria Paula
Carlos Rosa
132
Na sequência, conheça mais duas formas normais.
Quarta forma normal - 4FN
Para que a quarta forma normal seja atingida é necessário que não exista 
nenhuma dependência multivalorada não trivial de conjuntos de atributo em 
algo mais do que um superconjunto de uma chave candidata.
A dependência multivalorada ocorre quando:
Um determinado atributo B tem múltiplas dependências de outro atributo A, 
se um valor do atributo A é associado a uma coleção de valores do atributo B.
Assim, podemos dizer que B é multidependente de A, representado dessa 
forma: (A→→B).
Importante
Uma relação estará na 4FN se não houver dependências multivaloradas nessa tabela.
Porém, o que é uma dependência multivalorada? Saiba mais a seguir.
Na sequência, acompanhe um exemplo de aplicação da 4FN.
Saiba mais
133
TABELA RELACAO_VENDA
ID_Vendedor → → {ID_Cliente, Nome_Cliente}
ID_Vendedor → → {Nome_Parente, Parentesco}
Para que uma tabela atenda à 4FN, é importante seguir as seguintes regras:
• Para cada grupo de repetição separado, gera-se uma nova relação 
correspondente contendo esse grupo de repetição e a chave primária da 
relação original.
• Determinar a chave primária da nova relação, a qual será a concatenação 
da chave primária da relação original com a chave para o grupo de 
repetição.
Observe as tabelas abaixo e suas relações:
Exemplo 
ID_VENDEDOR
1 100
1 100
2 101
3 102
ID_CLIENTE NOME CLIENTE NOME 
PARENTE
PARENTESCO
Carlos Lopes João Carlos Irmão
Carlos Lopes Marta Ceara Prima
Pedro Paulo Cesar Pires Irmão
Carla Souto Paulo Alcantara Pai
ID_VENDEDOR NOME_VENDEDOR
1
2
3
Cezar Rabelo
Roberto Ramos
Bruno Prado
TABELA VENDEDOR
134
ID_VENDEDOR
1 100
1 100
2 101
3 102
ID_CLIENTE NOME CLIENTE
Carlos Lopes
Carlos Lopes
Pedro Paulo
Carla Souto
TABELA VENDA
TABELA PARENTESCO
Se uma relação está na 4FN, então necessariamente está na FNBC.
ID_VENDEDOR
1
1
2
3
NOME PARENTE PARENTESCO
João Carlos Irmão
Marta Ceara Prima
Cesar Pires Irmão
Paulo Alcantara Pai
MIDIATECA
Acesse a midiateca da Unidade 4 e veja o conteúdo complementar indicado 
pelo professor na mídia 3 sobre esse tema.
135
NA PRÁTICA
Uma empresa da área de transporte aéreo recém-adquirida ainda trabalhava 
com um sistema antigo e com uma estrutura de arquivo que dificultava sua 
situação. Até em função da falta de tecnologia empregada, a empresa foi 
vendida para uma companhia aérea muito maior. 
A empresa compradora solicitou a presença do seu analista de TI para que 
verificasse a questão e pudesse apresentar um cenário melhor da estrutura de 
arquivo. O analista responsável prontamente fez uma análise e já desmembrou 
a tabela principal aplicando a primeira forma normal para poder entender melhor 
o que tinha em mãos e para que pudesse mais à frente fazer a integração com 
sua base de dados.
Como resultado de sua análise, ele apresentou:
folha¬_¬voo (num, data, destino, hora¬_saída, data_chegada, id_tripulante, 
cargo) 
Aplicando a 1FN:
folha¬_¬voo (num, data, destino, hora¬_saída, data¬_chegada)
tripulantes_voo (num_¬folha¬voo, id_tripulante, cargo)
136
Resumo da Unidade 4
Nesta unidade, você estudou a importância dos conceitos existentes em um processo de 
normalização de banco de dados.
Além do processo de criação do diagrama de classes e/ou modelo entidade-relacionamento, 
o processo de normalização, dentro do âmbito do modelo físico, proporciona a completa 
integridade e relação entre as tabelas existentes. Dessa forma, é possível garantir mais 
velocidade e integridade dos dados no processo de relacionamento das informações. 
Assim, tem-se a convicção de que as informações atenderão na íntegra o que se espera 
de um excelente banco de dados modelado.
Bons estudos!
CONCEITO
Ao longo desta unidade foram trabalhados três importantes conceitos, 
conforme descrito a seguir:
A engenharia reversa tem como missão a realização de uma atividade que 
trabalhe com demandas de produtos que já estejam sendo executados 
(softwares, tabelas, periféricos, placas de computador etc.), em que o grande 
desafio será entender como esse software/produto tem o seu mecanismo de 
funcionamento, o que ele exerce e como ele se comporta. 
A normalização de um banco de dados é muito importante para a construção 
do modelo físico do banco de dados. Na sua essência, a normalização dos 
dados é definida a partir de um conjunto de regras que determina a organização 
do banco de dados com o intuito de:
• Reduzir a redundância de dados.
• Garantir a integridade dos dados.
• Aprimorar o desempenho do banco de dados. 
137
As formas normais são um conjunto de regras fundamentais para a 
simplificação e a adequação das tabelas a serem criadas no banco de dados. 
É dito que uma determinada tabela do banco de dados relacional está em uma 
certa forma normal quando ela satisfaz às condições exigentes.
138
Referências 
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. São Paulo: Pearson, 2005. 
Biblioteca Virtual.
MACHADO, F. N. R. Projeto e Implementação de banco de dados. 3. ed. São Paulo: Éri-
ca, 2014. Minha Biblioteca.
MEDEIROS, L. F. de. Banco de Dados: princípios e prática. Curitiba: Intersaberes, 2013. 
Biblioteca Virtual.
VICCI, C. Banco de Dados. São Paulo: Pearson, 2015. Biblioteca Virtual.

Mais conteúdos dessa disciplina