Escolar Documentos
Profissional Documentos
Cultura Documentos
Modelagem
de dados
O objetivo deste tema é compreender e criar os modelos de
dados que permitem representar a realidade em uma apli-
cação de banco de dados. Como visto no tema anterior, o
Modelo de Dados é um conjunto de conceitos que permitem
ao profissional definir uma estrutura de banco de dados
que represente a realidade de um determinado ambiente.
O processo de criação do modelo de dados é chamado de
Modelagem de Dados, e compõe uma das etapas de todo o
processo da definição de uma aplicação de banco de dados.
Veremos as demais etapas no transcorrer deste tema.
Aplicação Exemplo
Modelo E-R
Entidade
É o objeto básico do Modelo E-R e representa “algo” do mundo
real (ELMASRI; NAVATHE, 2005). Pode ser um objeto de existência
física, como um carro, uma pessoa ou um funcionário, como também
um objeto com existência conceitual, como um curso de graduação.
Também consideramos como entidade, eventos que ocorrem no
mundo real, como por exemplo, uma venda. Começamos a defini-
ção de nosso Modelo E-R, identificando as entidades presentes em
nosso estudo de caso, fazendo uma leitura detalhada do estudo de
caso identificando “objetos” do mundo real. Para ajudar, devemos en-
contrar todas as “coisas” que possui características associadas. Por
exemplo, na passagem “Cada aluno está vinculado a apenas um curso,
sendo que cada aluno possui um número de matrícula único, nome,
data de nascimento, créditos cursados e média geral”, podemos iden-
tificar a entidade Aluno, o mesmo acontece na passagem “Os cursos
de graduação são coordenados por apenas um professor e possui um
código único, nome e total de créditos necessários para que um aluno
possa concluir o curso”, quando identificamos as entidades Curso e
Professor.
Atributos
Relacionamentos
Cardinalidade
Segundo Medeiros (2007), cardinalidade ou multiplicidade de-
fine a quantidade de elementos de uma entidade que se relaciona com
uma quantidade de elementos de outra entidade.
LEITURA COMPLEMENTAR
PARA REFLETIR
Para concretizar a nossa aprendizagem acesse o Ava e, junto com seus
colegas, identifique as entidades, os atributos e os relacionamentos,
com suas cardinalidades, do estudo de caso identificado como Estudo
de Caso 1.
73
Tema 2
Modelagem de Dados
2.2
MODELAGEM DE DADOS UTILIZANDO O MODELO DE
ENTIDADE-RELACIONAMENTO
Relacionamento Ternário
Este tipo de relacionamento ocorre quando identificamos três
entidades que juntas representam alguma informação. Por exemplo,
no fragmento do texto “Ao final do semestre, as disciplinas são asso-
ciadas aos alunos em um determinado período letivo”, observamos um
relacionamento ternário. Quando um aluno cursa uma disciplina, ele
obrigatoriamente deve ter cursado em determinado período letivo. Ou
seja, toda vez que falarmos que um aluno cursou uma disciplina de-
vermos obrigatoriamente dizer que ela foi cursada em determinado
ano/semestre (período letivo). Encontrar o relacionamento ternário
não é uma tarefa complicada, porém identificar a cardinalidade não
desfruta da mesma facilidade. Para encontramos as cardinalidades
temos que “ler” sempre a composição do relacionamento em relação
74
Banco de Dados I
Generalização/Especialização
Acontece quando uma entidade pode ser subdivida em outras
entidades que possuem características particulares, mas que se as-
semelham em outras características. Por exemplo, a entidade Arqui-
vo pode ter os subtipos Imagem, Áudio e Texto. Todos eles possuem
atributos comuns, como nome e tamanho, porém também possuem
atributos específicos. O arquivo de imagem tem a informação de di-
mensão, o de áudio possui a duração e o texto, a quantidade de carac-
teres. Desta forma, podemos fazer uma modelagem definindo a enti-
dade pai Arquivo e as entidades filhas Imagem, Vídeo e Áudio. Neste
caso todos os atributos definidos na entidade Arquivo serão comuns
a todos os seus filhos, enquanto que atributos definidos nos filhos se-
rão exclusivos de cada um. A figura 23 exibe a representação gráfica
de uma Generalização/Especialização.
77
Tema 2
Modelagem de Dados
Generalização/Especialização
Generalização/Especialização - Disciplina
78
Banco de Dados I
Entidade Associativa
Durante o desenvolvimento do Modelo E-R, podemos identificar
a necessidade de relacionar um relacionamento já definido com outra
entidade. Por exemplo, foi identificado que uma disciplina relaciona-
-se com um ou vários períodos letivos, formando o relacionamento
Oferta. Ou seja, este relacionamento representa as turmas que serão
disponibilizadas em um dado ano/semestre. Porém durante a análise
do estudo de caso foi identificado que para cada turma (uma discipli-
na em um período letivo) é necessário alocar um professor para mi-
nistrar a turma. Não podemos relacionar diretamente à disciplina, pois
o mesmo não irá ministrar a disciplina em todos os semestres, portan-
to a relação deve ser feita com o relacionamento Oferta. Para que seja
possível criar este tipo de relacionamento é necessário transformar o
relacionamento Oferta em uma entidade, sem que esta transforma-
ção exclua as características do relacionamento. Quando realizamos
esta transformação criamos uma Entidade Associativa (a figura 25
ilustra a representação gráfica deste elemento), que na verdade é uma
entidade combinada com um relacionamento.
79
Tema 2
Modelagem de Dados
Resposta 1: 0
Reposta 2: N
Resposta 3: 1
Resposta 4: 1
81
Tema 2
Modelagem de Dados
Com estas respostas formamos o par (1,1) que deve ser repre-
sentado no lado da entidade Curso. Agora podemos chegar a conclu-
são que um aluno só existe se estiver vinculado a curso (valor mínimo
1) e que não poderá estar vinculado a mais de um curso. Resumindo,
um aluno só poderá existir se o curso existir. A figura 26 exibe como
devemos escrever o par mínimo e máximo nos relacionamentos.
LEITURA COMPLEMENTAR
D ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de Banco de
Dados. 4. ed. São Paulo: Pearson Brasil, 2005.
A seção 4.2.1 deste livro traz mais detalhes sobre Especialização e Ge-
neralização de entidades. A leitura desta seção ajudará você a enten-
der como encontrar e definir especialização e generalização.
Na seção 2.6 desta obra o autor fala sobre entidades fracas. Não abor-
damos este conceito em nosso estudo preliminar, desta forma faça
a leitura desta seção para entender sobre entidade fraca e como ela
pode ser representada no DER.
PARA REFLETIR
Junto aos seus colegas, identifique situações no seu dia a dia que re-
presentem relacionamentos recursivos e ternários.
85
Tema 2
Modelagem de Dados
2.3
MODELO RELACIONAL
Tabela Alunos
86
Banco de Dados I
1. Restrições de Domínio
São restrições que atuam sobre os dados de uma coluna. A pri-
meira restrição imposta (esta faz parte dos princípios do modelo re-
lacional) é que uma coluna deve ter um valor Atômico, ou seja, cada
coluna deve armazenar um valor e não um conjunto destes valores.
Por exemplo, uma coluna que armazena o telefone de um aluno, deve-
rá armazenar apenas um telefone e não uma coleção. Outra restrição
de domínio diz respeito aos tipos de dados que podem ser atribuídos
a uma coluna. Durante a definição do modelo relacional precisamos
informar o tipo de valor que pode ser atribuído a cada coluna. Ou seja,
é preciso definir se a coluna terá valores do tipo inteiro, real, lógico, ca-
ractere, data, entre outros. Uma vez definido o tipo da coluna, todas as
linhas da tabela deverão ter valores do mesmo tipo, sendo responsa-
bilidade do SGBD garantir que valores que não sejam do tipo definido
não sejam atribuídos. Por exemplo, a coluna media da tabela Alunos
certamente deve ser definida com o tipo real, de forma que a atribui-
ção de um valor caractere deve ser rejeitada pelo SGBD, de forma a
garantir a restrição de domínio e manter a base de dados consistente.
Também é possível definir restrições condicionais, como por exemplo:
o atributo media da tabela Alunos deve ter valores maiores ou iguais
a 0 e menores ou iguais a 10.
87
Tema 2
Modelagem de Dados
3. Restrições de Chave
Uma tabela é um conjunto de linhas (ou, uma relação é um con-
junto de tuplas), por definição um conjunto não pode ter elementos
repetidos, desta forma todas as linhas que formam uma tabela devem
ser distintas, ou seja, duas linhas não podem ter a mesma combinação
de valores para suas colunas de forma que pelos menos um valor deve
ser diferente (ELMASRI; NAVATHE, 2005).
Inclusão (Insert)
Esta operação realiza a inserção de uma linha em uma determi-
nada tabela. Esta inclusão é feita informando as colunas e os valores
para cada coluna da tabela. Nesta operação, poderemos ter a violação
da restrição de domínio, de chave, de obrigatoriedade e de integridade
referencial.
Exclusão (Delete)
A única violação que pode acontecer é de integridade referen-
cial. Ocorre quando uma linha de uma tabela que é referenciada por
linhas de outras tabelas é excluída. Por exemplo, se a linha do curso
de código 4 fosse excluída, todos os alunos que fazem referência a
esta curso ficariam sem vínculo com o mesmo. Quando o SGBD de-
tecta esta situação ele pode realizar duas ações: rejeitar a operação
gerando uma mensagem de erro ou propagar a operação, realizando
também exclusões nas linhas que fazem referência a linha excluída.
Esta última operação é chamada de remoção em cascata (ELMASRI;
NAVATHE, 2005). Com esta operação o banco de dados manteria o
seu estado consistente. O SGBD não irá escolher a opção, na verdade
ela é definida no projeto lógico quando a estrutura do banco de dados
será implementada.
93
Tema 2
Modelagem de Dados
Alteração (Update)
LEITURA COMPLEMENTAR
PARA REFLETIR
Vimos que o SGBD pode rejeitar operações que violem as restrições
de integridade referencial ou simplesmente propagá-la através do
efeito “cascata” em eventos de alteração e exclusão. Debata com seus
95
Tema 2
Modelagem de Dados
2.4
PROJETO DE BANCO DE DADOS
Mapeamento de Entidades
Começamos o nosso projeto lógico realizando o mapeamento
das entidades e atributos. Cada entidade é transformada em uma ta-
bela (relação) e seus atributos transformados em colunas. Os atribu-
96
Banco de Dados I
algumas situações irão gerar novas tabelas. Veremos agora como re-
alizar este mapeamento.
Tabela de Cursos
Cursos
cod_curso nom_curso
10 Informática
12 Direito
Tabela de Disciplinas
Disciplinas
2 Metodologia 4 Normal
3 Algoritmo 8 Normal
Matrizes
10 2 1
10 3 2
12 1 4
12 2 1
100
Banco de Dados I
Tabela de Cursos
Cursos
cod_curso nom_curso
10 Informática
12 Direito
102
Banco de Dados I
Professores
1 Professor 01 10
2 Professor 02 12
3 Professor 03
Professores
1 Professor 01 10
2 Professor 02 12
3 Professor 03 10
Mapeamento do Autorrelacionamento
Disciplinas
1 Introdução ao 4 Normal
Direito
Historicos
2011 1 10 10 5,0
2011 2 10 12 10,0
2011 1 11 10 7,5
2010 2 10 10 8,0
Generalização/Especialização
Para mapear esta situação devem ser adicionados todos os atri-
butos de todas as entidades filhas na tabela pai. Desta forma, a tabela
pai terá todas as colunas necessárias para seus filhos. Por exemplo: no
nosso estudo de caso a entidade Disciplina é especializada em Estágio
e Normal, sendo que a entidade filha Estágio possui o atributo horas e
entidade Normal limite de faltas. Para mapear esta categorização, de-
vem ser criadas as colunas horas e limite_faltas na tabela Disciplinas,
os quais devem ser não obrigatórios. Para completar o mapeamento,
deve ser criada uma coluna adicional que indicará qual o tipo da disci-
plina. Esta coluna, que no nosso mapeamento chamamos de tipo_disc,
irá indicar o tipo da disciplina (estágio ou normal) e consequentemen-
te se o campo horas e limite_faltas devem ou não ser preenchidos. A
combinação de valores ficaria conforme a tabela 13:
106
Banco de Dados I
Disciplinas
1 Disc 01 Normal 18
2 Disc 02 Normal 1 18
3 Disc 03 Estágio 40
Alunos
Chave Mat_alu
Primária
LEITURA COMPLEMENTAR
D MACHADO, Felipe; ABREU, Maurício. Projeto de Banco de Da-
dos: Uma Visão Prática. São Paulo: Érica, 2007.
108
Banco de Dados I
ESTUDO DE CASO
No Ava está disponibilizado um estudo de caso e todos os documen-
tos que representam as etapas do projeto de banco de dados. Faça a
leitura deste estudo de caso e analise os documentos criados para fi-
xar os conhecimentos vistos neste conteúdo. Este estudo de caso está
identificado como Estudo de Caso 2.
PARA REFLETIR
Neste conteúdo falamos da forma de mapeamento das generaliza-
ções/especializações. Existem outras estratégias que podem ser utili-
zadas para realizar este mapeamento. Junto com seus colegas identi-
fique quais são estas estratégias realizando uma análise comparativa
com a que foi demonstrada neste conteúdo.
109
Tema 2
Modelagem de Dados
RESUMO
Neste tema tratamos sobre as etapas que envolvem a construção de
um banco de dados e o que devemos definir em cada uma delas. Vi-
mos que todo o processo inicia-se com o levantamento de requisitos,
onde um profissional entrevista o usuário para coletar todas as infor-
mações necessárias para construir o modelo. Com as informações co-
letadas são realizados o projeto conceitual, onde é definido o modelo
conceitual (DER), o projeto lógico, onde é realizado o mapeamento
para o modelo relacional e por último o projeto físico quando o modelo
relacional é implementado no SGBD.