Buscar

aula08

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

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

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

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

8ºAula
Modelagem de Dados
Objetivos de aprendizagem
Ao término desta aula, vocês serão capazes de: 
compreender o conceito e a importância da modelagem de dados;
desenvolver modelos de dados de sistemas;
entender as melhores práticas para definição dos modelos.
Prezados(as) alunos(as),
Nesta aula, vamos aprender os conceitos de modelagem 
de dados e entender, na prática, como projetar as estruturas de 
dados.
 
Bom Trabalho!
Bons estudos!
105
Análise de Sistemas I 50
Seções de estudo
1
1 – Projeto de sistemas
2 – Terminologia, a importância da padronização
3 – Modelos de dados
Um modelo de dados é uma coleção de conceitos 
matematicamente bem definidos que auxiliam a definição e a 
expressão das propriedades estáticas e dinâmicas dos objetos 
presentes em aplicações orientadas ao uso intensivo de dados. 
Aceita-se, em geral, que uma aplicação possa ser caracterizada 
por suas propriedades estáticas e dinâmicas e por restrições de 
integridade que as disciplinam. 
Stair (1998) afirma que “o propósito do projeto de 
sistemas é selecionar e planejar um sistema que satisfaça os 
requisitos necessários para obter a solução do problema”. São 
criados, para isso, alguns modelos de projetos para mostrar 
como o sistema deverá funcionar e quais resultados serão 
produzidos por ele. 
A análise estruturada tem igual preocupação com os 
processos e com os dados. Em relação a estes, ela os vê 
como entidades dotadas de atributos (campos), que serão 
representados através do 
relacionamento. Em relação aos processos, segundo a 
técnica da análise estruturada, bastam apenas quatro tipos de 
elementos para retratar a especificação de um modelo lógico: 
fluxo de dados, entidade externa (terminador), processo (ou 
função) e depósito de dados (arquivo). Tais elementos podem 
ser arranjados em uma configuração a que se dá o nome de 
2 - Terminologia, a importância da 
padronização
Embora não faça parte específica da engenharia da 
informação, a terminologia assume papel importante dentro do 
seu contexto, já que é uma forma básica e essencial para se 
manter o diálogo e o entendimento uniforme entre todos os 
participantes do projeto, desde os técnicos de processamento 
de dados até os dirigentes e usuários envolvidos.
É um investimento de retorno garantido e de máxima 
valorização, especialmente, se essa terminologia for definida 
de forma padronizada, única e de fácil identificação. 
Diferente do idioma, a Terminologia deve evitar ao máximo 
os sinônimos, pois, adotando esse princípio, tornará, entre 
outros benefícios, mais fácil a memorização e a associação 
com o conceito embutido.
Manter um padrão para os nomes dos objetos, das 
colunas e de todos os elementos do banco de dados é 
muito importante. Mesmo que você seja um desenvolvedor 
individual em um determinado projeto, futuramente, você 
pode precisar fazer alguma alteração no seu projeto, ou outras 
pessoas podem vir a trabalhar no seu projeto, se você mantiver 
um padrão, ficará mais fácil e rápido entender como o projeto 
foi feito.
Os nomes dos objetos que fazem parte do modelo de 
dados devem ser claros e objetivos, dessa forma, qualquer 
pessoa que olhar o projeto saberá o que determinado objeto 
quer dizer, baseado no seu nome que já identifica facilmente 
que tipo de informação estará armazenada ali. 
Por exemplo: Se vamos criar um local para guardar as 
informações dos clientes de uma loja, observe a estrutura a 
seguir:
CAMPO 2 JOSÉ DA SILVA
CAMPO 4 CAMPO GRANDE
CAMPO 5
Fonte: Acervo pessoal
Podemos ver, no exemplo acima, que os nomes 
escolhidos não nos dão uma boa ideia do tipo de informação 
armazenada ali. Mas, se observarmos o próximo exemplo, 
veremos que o nome claro e objetivo facilitará nosso 
entendimento a qualquer momento que precisarmos fazer 
uma consulta a este projeto.
NOME DA ENTIDADE: CLIENTES
CPF
NOME JOSÉ DA SILVA
ENDEREÇO
CIDADE CAMPO GRANDE
FONE
Fonte: Acervo pessoal
e, consequentemente, perderemos menos tempo nas futuras e 
Os termos usados dentro de todo o projeto de sistema 
podem facilitar muito o trabalho do analista quando são bem 
definidos, ou, ao contrário, podem causar muito transtorno e 
perda de tempo quando os nomes não são bem escolhidos, 
por isso é importante sempre cuidar da terminologia e da 
padronização das informações na hora de “desenhar” o 
sistema.
parte da modelagem de dados, saber qual a importância de 
3 - Modelos de dados
Os modelos de dados podem ser definidos como 
um conjunto de ferramentas conceituais para a descrição 
106
51
dos dados, dos relacionamentos entre eles e das restrições 
de consistência e integridade. Um modelo de dados é um 
conjunto de conceitos que podem ser utilizados para descrever 
a estrutura “lógica” e “física” de um banco de dados.
3.1 - DIAGRAMA ENTIDADE X 
RELACIONAMENTO (DER)
O modelo Entidade X Relacionamento foi criado por 
Peter, em 1976 e representa um modelo conceitual de alto 
nível. Esse modelo está mais próximo da visão do usuário. 
Por esse motivo a participação do usuário é intensa, haja vista 
que o entendimento se torna mais claro quanto às estruturas 
do sistema.
3.1.1 - OBJETOS DO MODELO ER
Entidade é uma estrutura estática que representa um 
objeto, concreto ou abstrato, do mundo real. Cada entidade 
possui um conjunto de propriedades que chamamos de 
atributos. Esses atributos formam a estrutura da entidade. 
Por exemplo, as entidades podem ser representações 
abstratas de funcionários da empresa, movimentos de vendas, 
produtos do estoque, alunos de uma escola, professores, 
notas etc.
As entidades são representadas por um retângulo, como 
mostra a figura 8.1.
ALUNO DISCIPLINA
Figura 8.1 – Representação das entidades
Fonte: Acervo pessoal
Posteriormente, quando o modelo ER for transformado 
em um Banco de Dados físico, essas entidades serão chamadas 
de TABELAS.
O Relacionamento é a associação entre as ocorrências 
das entidades. O relacionamento deve expressar o significado 
da associação no mundo real. 
Relacionamentos podem ser representados por uma 
“linha” na notação de James Martin ou por um “losango” na 
notação de Peter Chen.
Nas figuras 8.2 e 8.3 são mostrados exemplos de 
relacionamentos representados nas duas notações. As 
notações mudam a forma de representar a modelagem, 
porém as duas formas têm o mesmo significado. Em outras 
palavras, só muda o desenho do diagrama. As notações são 
formas diferentes de expressar a mesma ideia.
RELACIONAMENTO
ALUNO NOTA DO ALUNO
Figura 8.2 – Relacionamento na notação de James Martin
Fonte: Acervo pessoal
RELACIONAMENTO
ALUNO NOTA DO ALUNOtem
Figura 8.3 – Relacionamento na notação de Peter Chen
Fonte: Acervo pessoal
Relacionamentos podem ser obrigatórios (total) ou 
opcionais (parcial).
Os atributos formam a estrutura onde as informações 
serão armazenadas dentro da entidade ou do relacionamento. 
Os atributos caracterizam as entidades ou relacionamentos. São 
exemplos de atributos: 
INSTÂNCIA
As instâncias são as ocorrências dentro das entidades, ou 
seja, os dados que serão armazenados dentro dos atributos. 
São exemplos de instâncias:
(67) 9999-1234
As instâncias são o mesmo que os registros dentro das 
entidades e também podem ser chamadas de “tuplas”.
Domínio é o conjunto de valores que o atributo pode 
assumir. São exemplos de domínio:
M ou F
 - Os valores M e F fazem parte do domínio do 
atributo SEXO, pois estes são os valores que podem ser 
armazenados no espaço reservado para guardar a informação 
do SEXO.
 - O conjunto de siglas que representam os Estados 
brasileiros são o domínio do campo UF, pois este campo 
só poderá receber um valor que esteja dentro das siglas 
pertencentes a esse conjunto. Se tentarmos usar uma sigla, 
por exemplo, SS, estaremos tentando armazenar um valor que 
está fora do domínio do atributo, portanto não será aceito 
como válido.
menores que a data atual
 - Nesse exemplo, utilizamos a definição de um 
domínio como uma regra de validade da informação, ou seja, 
indicamos que fará parte do domínioda Data de Nascimento 
todas as datas válidas que sejam menores que a data atual. 
Significa que não poderei cadastrar ninguém cuja data de 
nascimento seja igual à data de hoje. Esse tipo de domínio 
também pode ser chamado de regra de validação.
A obrigatoriedade de um atributo indica que ele não 
pode existir dentro da entidade sem ter um valor preenchido, 
ou seja, o atributo não pode ficar vazio ou com valor nulo. A 
107
Análise de Sistemas I 52
obrigatoriedade dos atributos pode variar de acordo com os 
objetivos do projeto. 
Alguns atributos devem ser obrigatórios por definição, 
sem que isto precise ser informado pelo usuário. Por exemplo: 
na entidade ALUNO, o NOME do aluno não pode ficar vazio, 
por esse motivo ele é dito como atributo obrigatório, pois não 
faz sentido cadastrar um aluno sem o nome. Outra situação 
que pode fazer com que o campo deva ser obrigatório é a 
necessidade em atender os objetivos do negócio da empresa, 
por exemplo: Em uma loja de departamentos, um cliente 
não pode ser cadastrado sem que o seu número de CPF seja 
informado, portanto, o atributo CPF é obrigatório na entidade 
CLIENTE.
É a quantidade de relacionamentos das ocorrências de 
uma entidade com outra. A cardinalidade dos relacionamentos 
pode ser classificada como:
 – quando cada ocorrência de uma 
entidade se relaciona com apenas uma ocorrência da outra 
entidade;
 – quando cada ocorrência de 
uma entidade se relaciona com várias ocorrências da outra 
entidade;
 - quando cada ocorrência 
de uma entidade se relaciona com várias ocorrências da outra 
entidade e vice-versa. Por exemplo: Num sistema acadêmico, 
um curso tem várias disciplinas, e uma disciplina (língua 
portuguesa, por exemplo) pode aparecer em vários cursos.
Rui Barbosa
Castro Alves
Café Filho
Fernando Pessoa
Alunos
BIM 1 – 7,5
BIM 2 – 8,5
BIM 1 – 4,5
BIM 2 – 9,0
BIM 3 – 7,0
BIM 1 – 8,0
BIM 1 – 6,5
Notas
1 n
Figura 8.4 – Representação das cardinalidades
Fonte: Acervo pessoal
No exemplo da figura 8.4, cada aluno pode estar 
relacionado a várias notas. Isso caracteriza um relacionamento 
1 para N (muitos) entre ALUNOS e NOTAS, ou seja, um 
aluno pode ter várias notas.
É o relacionamento entre ocorrências da mesma entidade. 
No exemplo da figura 8.5, cada empregado está relacionado 
com o chefe do setor onde trabalha, mas o chefe do setor 
também é um empregado, por isso, um empregado pode estar 
relacionado com outro empregado.
EMPREGADO Supervisiona
Figura 8.5 – Auto-relacionamento
Fonte: Acervo pessoal
A chave da entidade serve para identificar as instâncias 
(registros, ocorrências) dentro da entidade, conhecida como 
chave primária. A chave serve também para relacionar 
uma entidade a outra, conhecida como chave estrangeira 
ou secundária. Por exemplo, dentro da entidade ALUNO 
podemos ter várias instâncias, ou seja, vários registros de 
alunos. No entanto, podem existir alunos com o mesmo 
nome, o que dificulta a identificação de um ou outro. Assim, 
cada instância dentro da entidade precisa de um identificador 
que o diferencia de todos os outros. A esse identificador 
chamamos de CHAVE.
As chaves podem ser formadas por um ou mais atributos, 
dependendo da necessidade da identificação da entidade.
Existem dois tipos de chaves: Chave Primária e Chave 
Estrangeira.
Também conhecida como Chave Principal, serve para 
identificar cada instância (tupla) dentro da entidade. 
Em uma mesma entidade não podem existir duas tuplas 
idênticas, por esse motivo as chaves não podem se repetir. A 
chave serve para dar unicidade à tupla, é ela que diferencia 
uma tupla de todas as outras. Todos os campos da entidade, 
exceto a chave, podem se repetir. 
A chave primária de uma entidade é formada por um ou 
mais atributos. Quando é formada por apenas um atributo, a 
chamamos de chave simples, quando é formada por dois ou 
mais atributos, a chamamos de chave composta.
Exemplo:
A entidade aluno possui a seguinte estrutura:
NOME
ENDEREÇO
BAIRRO
CIDADE
UF
CEP
E-MAIL
CPF
RG
FONE
Na estrutura existente, deve-se escolher um ou mais 
campos que irão compor a chave. Para isso, é necessário 
observar algumas regras para a criação da chave da entidade, 
108
53
que valem para qualquer entidade do sistema:
a. os atributos de uma chave nunca podem ficar vazios, 
são sempre obrigatórios;
b. uma chave não pode nunca se repetir. Se ela serve 
para dar unicidade à tupla, significa que não podem existir na 
mesma entidade duas chaves com conteúdos iguais;
c. ao escolher uma chave, devemos adotar o princípio 
da minimalidade, ou seja, a chave deve ser composta por 
um conjunto mínimo de atributos que sejam suficientes para 
formar a chave e para garantir que ela seja única dentro da 
entidade.
Na estrutura do exemplo, o campo NOME não pode 
ser escolhido como chave porque podem existir alunos 
com nomes iguais. O mesmo acontece com ENDEREÇO, 
pois pode haver dois alunos morando no mesmo endereço 
e assim por diante. O atributo CPF não se repetirá nunca, 
pois não existem dois CPFs iguais, mas antes de escolher o 
CPF como chave, temos que observar a regra da letra “a” 
citada anteriormente, que diz que uma chave não pode ser 
vazia. Isso significa que o CPF só poderá ser chave se todos 
os alunos tiverem um CPF. 
Se puder existir ao menos um aluno que não tenha 
CPF, esse atributo não poderá ser escolhido como chave. 
Poderíamos, então, optar por formar a chave com mais de 
um atributo. Poderíamos escolher o CPF e o nome para 
formarem juntos a chave. Nesse caso, poderíamos pensar que 
não haveria problema do CPF ficar vazio porque a chave seria 
formada pelos dois atributos juntos e o nome não ficaria vazio, 
mas, novamente, teremos problemas, mas os campos que 
formam a chave são todos obrigatórios, ou seja, não podem 
ficar vazios. Devemos observar também as recomendações a 
seguir:
1º: É recomendado evitar o uso de campos de texto 
como parte da chave, pois alguns gerenciadores de banco de 
dados trabalham mais lentamente quando a chave é formada 
por campos de texto;
2º: Pode também acontecer de termos dois alunos com 
o mesmo nome e que não tenham CPF. Isso faria com que 
tivéssemos duas chaves iguais.
A chave primária de uma entidade pode ser chamada de 
natural ou artificial. A chave será natural quando for formada 
por atributos que já fazem parte da entidade, ou seja, não é 
necessário “criar” nenhum atributo (como um “código”) para 
formar a chave.
A chave primária será chamada de artificial quando for 
formada por algum atributo que não faça parte da entidade 
modelada, ou seja, quando nenhum dos atributos já existentes 
na entidade, ou uma combinação desses atributos, não são 
necessários para que a chave seja única. Nesses casos em que 
a entidade não possua atributos suficientes para formar uma 
chave única, criamos uma chave artificial, que geralmente 
é um código ou número sequencial. Sendo ele sequencial, 
nunca irá se repetir.
A boa prática da modelagem de dados orienta que sempre 
de campos que não fazem parte do negócio que está sendo 
É claro que podemos pensar que um código sequencial irá facilitar, 
O princípio da minimalidade também orienta que uma 
chave primária artificial poderá ser usada quando o conjunto 
de atributos naturais que formam a chave for muito grande 
e essa entidade fizer relacionamento com várias outras 
entidades, ou seja, quando é necessário usar uma combinação 
de muitos atributos dentro da entidade para se ter uma 
chave única, pode-se criar uma chave artificial para facilitar 
o relacionamento com as outras entidades. Mas as chaves 
artificiais devem ser usadas com critério, para que não se 
tornem uma prática comum com o intuito apenas de criar 
uma chave “mais fácil”.
Como vimos acima, existem casos em que os atributos 
não são suficientes para formar uma boa chave. Quando isso 
acontece, teremos que criar um novo atributo identificador 
para ser a chave da entidade. No nosso exemplo, criaremos 
um atributo CÓDIGO para ser a chave, mas vale lembrar que 
só se deve criarum atributo identificador se a entidade não 
possuir atributos suficientes para formar a chave. A entidade 
ALUNO com a definição da chave ficará assim:
# CÓDIGO
NOME
ENDEREÇO
BAIRRO
CIDADE
UF
CEP
E-MAIL
CPF
RG
O campo-chave CÓDIGO está marcado com o símbolo 
“#”, para indicarmos que ele é a chave da entidade.
Também chamada de Chave Externa ou Chave 
Secundária, é usada sempre que há um relacionamento entre 
entidades. A chave estrangeira em uma entidade sempre se 
referencia a uma chave principal em outra entidade, ou seja, o 
relacionamento é feito sempre através da chave principal. Se 
uma chave principal de uma entidade for composta (por mais 
de um atributo), a chave estrangeira que se relaciona com ela 
em outra entidade também será composta, ou seja, elas devem 
ser compatíveis para a relação.
109
Análise de Sistemas I 54
primária da outra entidade, portanto, elas têm que ter obrigatoriamente 
a mesma estrutura e os campos devem ser dos mesmos tipos e 
A chave estrangeira, diferentemente da chave principal, 
não serve para identificar as tuplas da entidade, mas sim para 
relacionar as tuplas de uma entidade com as tuplas de outra.
Figura 8.6 – Representação de chave primária e estrangeira
Fonte: Acervo Pessoal
No exemplo acima, o código do aluno que aparece na 
entidade MATRÍCULA é uma chave estrangeira que está 
relacionada com o código do aluno na entidade ALUNO. 
A chave estrangeira deve ter o mesmo tipo e tamanho que a 
chave principal a que se refere. Diferente da chave principal, 
a chave estrangeira não precisa ser obrigatóriamente, a menos 
que as necessidades do projeto exijam que ela o seja.
Uma entidade pode ter mais de uma chave estrangeira, 
dependendo da quantidade de relacionamentos que ela terá 
com outras entidades.
A entidade pode ser classificada como Forte e Fraca.
 o Sua existência não depende de outra entidade
 o Sua chave é composta apenas por atributos 
próprios
 o Sua existência depende de outra entidade
 o Não possui atributos próprios suficientes para 
montar a chave.
ALUNO NOTA DO ALUNO
1 n
Figura 8.7 – Entidade forte e fraca
Fonte: Acervo Pessoal
No exemplo da figura 8.7, as ocorrências da entidade 
NOTA DO ALUNO só poderão existir no sistema se houver 
o ALUNO correspondente.
Quando a ocorrência de uma entidade (fraca) depender 
da ocorrência de outra entidade (forte), ocorrera a dependência 
existencial. Como foi visto anteriormente, uma entidade fraca 
depende de outra entidade para existir. É o mesmo que dizer 
que uma ocorrência de NOTA DO ALUNO só existirá se 
houver o ALUNO, ou seja, não pode existir uma nota lançada 
para um aluno se este aluno não estiver cadastrado no sistema. 
Se por um descuido um aluno for excluído do sistema, as 
notas desse aluno ficariam “perdidas”, sem relacionamento 
com ALUNO, ou seja, haveria uma quebra da integridade.
ALUNO NOTA DO ALUNO
1 n
Figura 8.8 – Integridade referencial
Fonte: Acervo Pessoal
Retomando a aula
importantes sobre modelagem de dados e algumas 
1 – Projeto de sistemas
Aprendemos, nesta seção, que projetar um sistema é 
criar modelos e definições que irão resultar em um sistema 
que esteja de acordo com o que o usuário espera, conforme 
suas necessidades e visando sempre resolver os problemas 
pelos quais foi solicitada a criação de um sistema.
Nesta seção, pudemos perceber a importância de se usar 
termos padronizados para facilitar o entendimento do projeto. 
Quando se faz um sistema, não devemos pensar apenas em 
facilitar o trabalho durante o projeto, é preciso enxergar mais 
à frente e tentar sanar problemas que ainda não aconteceram. 
Mas se os problemas ainda não apareceram, como vamos 
saber que eles poderão ocorrer? A resposta é muito simples: 
construir um projeto sem se preocupar com a padronização e 
com o uso de nomes e termos significativos irá, com certeza, 
dificultar o entendimento quando for necessário fazer alguma 
manutenção ou nova implementação. Portanto, podemos 
afirmar que a falta da padronização certamente causará um 
transtorno no futuro, por isso podemos evitá-lo antes que ele 
ocorra.
3 – Modelos de dados
Na terceira seção, aprendemos os conceitos básicos sobre 
modelagem de dados. Vimos também as regras e orientações 
para a criação das chaves das entidades e a importância de se 
ter uma preocupação especial com essas chaves na hora de 
projetarmos nossa estrutura de dados.
110
55
Disponível por www em: <http://www.youtube.com/
Disponível por www em: <http://www.youtube.com/
watch?v=0n_NX6-bXlk>. Acesso em 20/10/2013.
Vale a pena assistir
www em: <http://www.devmedia.com.br/introducao-a-
modelagem-de-dados/24953>. Acesso em 12/07/2013.
compostas. Disponível por www em: <http://www.
plugmasters.com.br/sys/materias/349/1/Modelagem-
de-Dados%3A-Chaves-Simples-e-Chaves-Compostas>. 
Acesso em 30/10/2013.
Vale a pena acessar
Vale a pena
Minhas 
111

Outros materiais

Perguntas Recentes