09 - Modelagem de Dados
09 - Modelagem de Dados
09 - Modelagem de Dados
Material Teórico
Banco de Dados
Revisão Textual:
Profa. Ms. Natalia Conti
Banco de Dados
OBJETIVO DE APRENDIZADO
· Apresentar o histórico e a evolução dos bancos de dados, suas utiliza-
ções, modelos e os principais bancos de dados em uso no mercado.
UNIDADE Banco de Dados
Um banco de dados pode ser tão simples quanto um arquivo de texto com
uma lista de nomes. Ou podem ser tão complexos quanto um grande sistema de
gerenciamento de banco de dados relacional, com ferramentas embutidas para
ajudá-los a manter os dados.
8
Em nosso cotidiano interagimos com bancos de dados em muitos momentos.
Uma lista de telefones on-line, por exemplo, definitivamente usaria banco de dados
para armazenar dados relativos à pessoas, números de telefone, outros detalhes de
contato, etc.
Importante! Importante!
SGBD é o nome dado aos softwares que gerenciam bancos de dados, e não o tipo do
banco de dados.
Hierárquico
O modelo hierárquico foi desenvolvido nos anos 60 para gerenciar grandes
quantidades de dados para projetos de fabricação complexos. Sua estrutura lógica
básica é representada por uma árvore de cabeça para baixo. A estrutura hierárquica
contém níveis ou segmentos.
Um segmento é o equivalente ao tipo de registro de um sistema de arquivos.
Dentro da hierarquia, uma camada superior é percebida como o pai do segmento
diretamente abaixo dele, que é chamado de filho. O modelo hierárquico descreve
um conjunto de relações um-para-muitos (1: M) entre um pai e seus segmentos
filhos. (Cada pai pode ter muitos filhos, mas cada filho tem apenas um pai.).
O editor de registro do Windows (figura 1) é um exemplo de um banco de
dados hierárquico.
9
9
UNIDADE Banco de Dados
Figura 1
Quanto às desvantagens:
• Implementação complexa
• Difícil gerenciamento
• Falta de independência estrutural
• Limitações de implementação
• Falta de normas e padrões bem definidos
Rede
Consideramos o SGBD um modelo em rede, quando este organiza os dados
em uma estrutura de rede. Isso geralmente resulta em complexas estruturas de
banco de dados. Comparando como o modelo hierárquico, no modelo em Rede, o
registro filho pode possuir diversos pais, pois em uma rede os nós podem ter tantas
conexões quanto possível.
10
Figura 2
Fonte: pixabay.com
Embora o modelo de banco de dados de rede seja pouco utilizado hoje em dia,
as definições de conceitos de banco de dados que surgiram com esse modelo ainda
são usadas por modelos de dados mais modernos. Alguns conceitos importantes
que foram definidos neste momento são:
• O esquema, que é a organização conceitual de todo o banco de dados visto
pelo administrador do banco de dados.
• O subesquema, que define a parte do banco de dados “visível” pelos programas
aplicativos que produzem as informações desejadas a partir dos dados contidos
no banco de dados.
• O Data Manipulation Language (DML), que é a linguagem que define o
ambiente no qual os dados podem ser gerenciados e para trabalhar com os
dados no banco de dados.
• O Data Definition Language (DDL), uma linguagem de definição de dados
de esquema que permite ao administrador do banco de dados definir os
componentes do esquema.
11
11
UNIDADE Banco de Dados
Quanto às desvantagens:
• Complexidade do sistema
• Falta de independência estrutural
Relacional
Esse tipo de SGBD define relações de banco de dados em forma de tabelas,
também conhecidas como relações. Ao contrário do SGBD de rede, o tipo relacional
não suporta relacionamentos do tipo muitos para muitos.
Tabela 1
Id Nome Rgm Sexo DtNasc
123 João 42315 M 13/03/1985
124 Maria 42888 F 21/08/1990
12
O SGBD-Relacional possui as seguintes vantagens:
• A independência estrutural
• Melhor simplicidade conceitual
• Projeto, implementação, gerenciamento e uso mais simples de banco de dados
• Sistema de gerenciamento de banco de dados poderoso
Orientado a Objetos
No SGBD orientado a objetos (SGBD-OO), tanto os dados como suas relações
estão contidos em uma única estrutura conhecida como objeto. Este modelo de
dados é outro método de representar objetos do mundo real. Considera cada objeto
no mundo como objetos e os isola uns dos outros.
13
13
UNIDADE Banco de Dados
Pessoa
+ Id
+ nome
+ email
+ telefone
+ imprimeDados()
Cliente Empregado
+ endereçoEntrega + endereçoEntrega
+ imprimeEndereço() + setor
+ cadastraCliente(pessoa: Pessoa ) + cargo
+ salário
+ cadastraEmpregado(pessoa: Pessoa )
Figura 3
Quanto às desvantagens:
• Falta de normas e padrões bem definidos
• Acesso complexo aos dados de navegação
• Curva de aprendizagem íngreme
14
A Importância dos Bancos de Dados
As informações são úteis para relatar a uma organização os resultados de suas
operações atuais e colaborar com a gestão de estratégias para os negócios.
Até breve.
15
15
UNIDADE Banco de Dados
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Livros
Sistemas de Banco de Dados
Livro: Sistemas de Banco de Dados - 6ª edição
Elmasri, Ramez; Navathe, Shamkant B.
Capítulos:
1 - Banco de dados e os usuários de banco de dados
2 - Conceitos e arquitetura do sistema de banco de dados
Dominando o Oracle 9i: modelagem e desenvolvimento
Livro: Dominando o Oracle 9i: modelagem e desenvolvimento
Fanderuff, Damaris
Capítulo: 1 - Introdução a bancos de dados
Banco de Dados: princípios e prática
Livro: Banco de Dados: princípios e prática
Luciano Frontino de Medeiros
Capítulo:1 - Introdução ao banco de dados
Leitura
Histórico dos Banco de Dados
https://goo.gl/4HT1Y8
Edgar Frank Codd e o Banco de Dados Relacional: uma contribuição para a História da Computação
https://goo.gl/sKRDdj
16
Referências
Elmasri, Ramez. Sistemas de Banco de Dados. 6. ed. São Paulo: Pearson Addison
Wesley, 2011.
17
17
Material Teórico
Etapas de um Projeto de Banco de Dados
Revisão Textual:
Profa. Ms. Natalia Conti
Etapas de um Projeto
de Banco de Dados
OBJETIVO DE APRENDIZADO
· Apresentar o conceito de modelagem de dados e seus níveis de
abstração, bem como a importância do levantamento de requisitos
e regras de negócio para o processo de desenvolvimento do projeto
de banco de dados.
UNIDADE Etapas de um Projeto de Banco de Dados
Se a ferramenta de software que você está usando para seus dados é o cérebro,
a modelagem de dados define como os neurônios se conectam uns aos outros.
As escolhas de modelagem de dados precisarão ser feitas no início de qualquer
implantação de software e terão grande impacto no sucesso geral do projeto.
Modelos de Dados
Como destacado por Cougo (1997), um modelo é a representação abstrata e
simplificada de um sistema real. No contexto da modelagem de dados, utilizamos
modelos para representar dados em um sistema, como são gerados, se relacionam
e se transformam. O caminho do dado até sua transformação em informação.
8
Explor
Qual a diferença entre Dados, Informação e Conhecimento: https://goo.gl/nrxvjD
Como um arquiteto que planeja uma casa, que ouve e discute com seu cliente
a disposição dos cômodos e todos os outros detalhes da futura casa, o analista
responsável pela modelagem de dados deve ter em mente que os processos de
levantamento e análise de dados são indispensáveis para o seu trabalho. Sendo
capaz de observar o mundo real e em seguida materializar o objeto observado em
um modelo de dados.
Mas afinal, por que o modelo de dados é tão importante? O modelo de dados,
como já mencionado, orienta e define como os dados se comportarão em um
sistema. Além disso, serve como um marco importante dentro do ciclo de evolução
do processo de modelagem, pois por meio desse artefato, os atores envolvidos no
processo podem validar o que está sendo projetado.
Em Síntese Importante!
9
9
UNIDADE Etapas de um Projeto de Banco de Dados
PetShop
Banho e Tosa
Loja &
Veterinário
Figura 1
Levantamento de Requisitos
e Regras de Negócios
Levantamento de Requisitos
Requisitos de sistemas são os artefatos que determinam o que o sistema deve
fazer. O objetivo do levantamento de requisitos é identificar a situação do mundo
real em detalhes suficientes para ser capaz de definir componentes de banco de
dados, coletando principalmente dois tipos de dados: dados naturais (entrada para
o banco de dados) e processamento de dados (saída do banco de dados).
10
• Definir quaisquer restrições de desempenho, integridade, segurança ou
administrativas que devem ser impostas ao banco de dados resultante.
• Especificar quaisquer restrições de projeto e de implementação, como tecno-
logias específicas, hardware e software, linguagens de programação, políticas,
padrões ou interfaces externas.
11
11
UNIDADE Etapas de um Projeto de Banco de Dados
Regras de Negócios
Uma regra de negócios é independente do paradigma de modelagem, software
ou hardware. Uma regra de negócios é uma declaração que define ou restringe
alguns aspectos do negócio.
12
Níveis de Modelagem: Modelos
Conceitual, Lógico e Físico
O processo de modelagem de dados começa com uma visão abstrata do ambiente
geral de dados (Modelo conceitual) e ganha detalhes (Modelos lógico e Físico) à
medida que o projeto se aproxima da implementação do banco de dados.
Modelo Conceitual
Um modelo de dados conceitual identifica as relações de nível mais alto entre as
diferentes entidades.
Compra Consulta
Produto Veterinário
Figura 2
Modelo Lógico
Um modelo de dados lógico descreve os dados com o máximo de detalhes
possível, independentemente do modo como será a implementação física no banco
de dados. As características do modelo de dados lógico incluem:
• Todas as entidades e relações entre elas.
• Todos os atributos para cada entidade especificados.
13
13
UNIDADE Etapas de um Projeto de Banco de Dados
Figura 3
14
Comparando o modelo de dados lógico, mostrado acima, com o diagrama do
modelo de dados conceitual, vemos as principais diferenças entre os dois:
• Em um modelo de dados lógico, chaves primárias estão presentes, enquanto
que em um modelo de dados conceitual, nenhuma chave primária está presente.
• Em um modelo de dados lógico, todos os atributos são especificados dentro
de uma entidade. Nenhum dos atributos são especificados em um modelo
conceitual de dados.
• As relações entre entidades são especificadas usando chaves primárias e cha-
ves estrangeiras em um modelo de dados lógico. Em um modelo de dados
conceitual, os relacionamentos são simplesmente declarados, não especifica-
dos, simplesmente sabemos que duas entidades estão relacionadas, mas não
especificamos quais atributos são usados para essa relação.
Modelo Físico
O modelo de dados físico representa como o modelo será construído no banco
de dados. Um modelo de banco de dados físico mostra todas as estruturas de
tabela, incluindo nome da coluna, tipo de dados da coluna, restrições de coluna,
chave primária, chave externa e relações entre tabelas. Os recursos de um modelo
de dados físicos incluem:
• Especificar todas as tabelas e colunas.
• Chaves estrangeiras são usadas para identificar relações entre tabelas.
• Considerações físicas podem fazer com que o modelo de dados físico seja
bastante diferente do modelo de dados lógicos.
• O modelo de dados físico será diferente para diferentes SGDBs. Por exemplo,
o tipo de dados para uma coluna pode ser diferente entre o MySQL, ORACLE,
FIREBIRD e o SQL Server.
15
15
UNIDADE Etapas de um Projeto de Banco de Dados
Figura 4
16
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Livros
Banco de Dados: Implementação em SQL, PL/SQL e Oracle 11g
Sandra Puga, Edson França e Milton Goya
Capítulo 2 - Requisitos de sistema de software
Leitura
Requisitos Funcionais x Regras de Negócios
https://goo.gl/6oLHsl
Regra de Negócio não é Requisito de Software
https://goo.gl/y5pB7L
Modelagem de Dados: Modelo Conceitual, Modelo Lógico e Físico
https://goo.gl/MSmYIM
17
17
UNIDADE Etapas de um Projeto de Banco de Dados
Referências
BARBIERE, CARLOS. Modelagem de Dados. Rio de Janeiro: Campus. 1997.
18
Material Teórico
Modelo ER - Parte 1
Revisão Técnica:
Prof. Me. Douglas Almendro
Revisão Textual:
Prof. Esp. Claudio Pereira do Nascimento
Modelo ER - Parte 1
• Introdução ao Modelo-ER
• Entidades, Entidades Fortes e Fracas
OBJETIVO DE APRENDIZADO
· Estudar o Modelo de Entidade relacional, o modelo de dados mais
utilizado no mercado. Nessa primeira parte veremos os conceitos de
entidades, entidades fortes e fracas.
UNIDADE Modelo ER - Parte 1
Introdução ao Modelo-ER
O Modelo entidade-relacionamento (Modelo-ER) é a técnica mais difundida e
utilizada para modelagem de dados (HEUSER, 2010). O modelo ER foi proposto
pela primeira vez por Peter Pin-Shan Chen, do Instituto de Tecnologia de
Massachusetts (MIT), na década de 1970, e descreve o modelo conceitual de um
banco de dados, apoiando-se principalmente na representação de entidades do
mundo real e as associações entre elas.
Importante! Importante!
8
Atributo
(0,n) Atributo
Relacionamento Entidade
Atributo
Atributo
(0,n)
Atributo
Entidade
Atributo
Atributo
Figura 1
9
9
UNIDADE Modelo ER - Parte 1
Uma entidade pode ser uma pessoa, lugar, evento, objeto ou um conceito que é
relevante para um determinado sistema para a qual estamos modelando o projeto
de banco de dados. Por exemplo:
• Pessoa: Estudante, Empregado, Cliente.
• Lugar: Cidade, Sala, Armazém.
• Evento: Festa, Casamento, Exposição, Feira.
• Objeto: Carro, Navio, Máquina, Produto.
• Conceito: Projeto, Conta, Curso.
Turma Histórico
Figura 2
Entidade Forte
Se uma entidade pode existir separadamente de todas as suas entidades
relacionadas, então essa entidade é classificada como uma Entidade Forte. Como
destaca Barbiere (1994), “além de independência de existência, normalmente
possuem independência de identificação dada por um ou mais atributos próprios”.
10
Importante! Importante!
Por exemplo, a entidade EMPREGADO é uma entidade forte, pois não depende
de outra entidade para que exista uma instância.
Empregado
Nome_Empregado
Id_Empregado
Figura 3
Entidade Fraca
Uma entidade fraca é uma entidade que depende da existência de outra entidade.
Em termos mais técnicos, ela pode ser definida como uma entidade que não pode
ser identificada por seus próprios atributos. Uma entidade fraca é aquela que atende
a duas condições:
• A entidade fraca é dependente da existência de uma instância da entidade com
a qual tem um relacionamento.
• A entidade fraca tem uma chave primária que é parcial ou totalmente derivada
da entidade-mãe no relacionamento.
11
11
UNIDADE Modelo ER - Parte 1
Id_Dependente
(1,1) (0,n)
Empregado Possui Dependente
Id_Empregado
Nome_Empregado Nome_Dependente
Id_Empregado
Figura 4
(0,n) Id_Pedido
(1,1)
Pedido Possui Itens_Pedidos Id_Produto
Id_ItemPedido
Nome_Dependente
ValorPedido
Id_Pedido
Figura 5
Entidade Associativa
Onde a entidade descreve uma conexão entre duas entidades com uma relação
de muitos para muitos, por exemplo, atribuição de Empregado a Projeto (um
Empregado pode ser atribuído a mais de um Projeto e um Projeto pode ser atribuído
a mais de um Empregado).
Empregado Id_Empregado
(1,n)
(1,n) Projeto
Id_projeto
Possui
Figura 6
12
Empregado Id_Empregado Projeto Id_Projeto
(1,1) (1,1)
Empregado_projeto
Possui
Horas_Trabalhadas
Id_Projeto
Id_Empregado
Figura 7
Leia mais sobre entidades no livro Banco de dados: Implementação em SQL, PL/SQL e
Explor
Oracle 11g - Capítulo 4.4 – Tipos de entidades – Acessível á partir da biblioteca virtual.
13
13
UNIDADE Modelo ER - Parte 1
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Sites
Modelo Entidade Relacionamento (MER) e Diagrama Entidade-Relacionamento (DER)
https://goo.gl/ezrwLk
Livros
Banco de Dados: Princípios e Prática
Luciano Frontino de Medeiros. Capítulo:2 – O modelo entidade-relacionamento (ER)
Banco de Dados: Implementação em SQL, PL/SQL e Oracle 11g
Sandra Puga, Edson França e Milton Goya. Capítulo 4.3 – Modelo Entidade
Relacionamento (MER)
Vídeos
Introdução Modelo Entidade-Relacionamento
https://youtu.be/miw6wEjc8ZE
14
Referências
BARBIERE, CARLOS. Modelagem de Dados. Rio de Janeiro: IBPI Press. 1994.
15
15
Material Teórico
Modelo ER – Parte 2
Revisão Técnica:
Prof. Me. Douglas Almendro
Revisão Textual:
Prof. Esp. Claudio Pereira do Nascimento
Modelo ER – Parte 2
• Introdução;
• Relacionamento;
• Atributo;
• Notações Gráficas ER.
OBJETIVO DE APRENDIZADO
· Apresentar os conceitos de relacionamento, atributos e as notações
gráficas para a representação do MER.
UNIDADE Modelo ER – Parte 2
Introdução
Nessa unidade daremos sequencia ao estudo do modelo entidade-relacionamento
(Modelo-ER), estudaremos os conceitos e características de relacionamentos,
atributos e um pouco mais sobre a notação gráfica criada por Peter Chen na
década de 1970.
Relacionamento
Um relacionamento descreve uma associação entre entidades. Isto é, um
relacionamento representa a quantidade de instâncias de uma entidade em relação
à outra entidade. Por exemplo, existe uma relação entre clientes e vendedores que
pode ser descrita da seguinte forma: um vendedor pode atender muitos clientes e
cada cliente pode ser atendido por um vendedor.
Figura 1
Trocando ideias...Importante!
Relacionamento é um conjunto de associações entre ocorrências de entidades
(HEUSER, 2010).
8
Grau de Relacionamento
O número de conjuntos de entidades que participam de um relacionamento
é chamado de grau de relacionamento. Os três graus mais comuns de um
relacionamento em um banco de dados são: unário, binário e ternário.
• Relação Unária: Uma relação unária R é uma associação entre duas instân-
cias do mesmo tipo de entidade (isto é, R ∈ E1 × E1). Por exemplo, todo
empregado em uma determinada empresa possui um supervisor, e todo super-
visor é um empregado.
Empregado Supervisor
Figura 2
• Relação binária: Uma relação binária R é uma associação entre duas instâncias
de dois tipos de entidade diferentes (isto é, R ∈ E1 × E2). Por exemplo, numa
loja, existe uma relação binária entre um vendedor (entidade VENDEDOR) e
um cliente (entidade CLIENTE): Um vendedor atende um cliente.
Figura 3
• Relação Ternária: Uma relação ternária R é uma associação entre três
instâncias de três diferentes tipos de entidade (isto é, R ∈ E1 × E2 × E3). Por
exemplo, considere um professor que leciona diversas disciplinas em diversas
turmas em uma Universidade. Neste caso, os tipos de entidade PROFESSOR,
TURMA e DISCIPLINA se relacionam entre si com relacionamentos ternários:
um professor leciona uma disciplina em uma turma.
Professor
Figura 4
9
9
UNIDADE Modelo ER – Parte 2
Cardinalidade
Quando dizemos cardinalidade de um relacionamento, queremos dizer a
capacidade de contar o número de entidades envolvidas nesse relacionamento.
Por exemplo, se instâncias das entidades A e B estiverem conectadas por uma
relação, então a cardinalidade máxima representa o número máximo de instâncias
da entidade B que podem ser associadas a qualquer instância da entidade A.
Trocando ideias...Importante!
Cardinalidade é uma propriedade que especifica a quantidade de ocorrências associadas
entre duas entidades dentro de uma relação.
Tabela 1
Conjunto A Conjunto B
Instância1
Instância1 Instância2
Instância3
Instância2 Instância4
Instância5
Instância3
Instância6
Instância4 Instância7
Considere que uma pessoa pode ter registrado em seu nome vários carros, contu-
do, um carro é registrado apenas em nome de uma pessoa. Desse modo, a pessoa
(“um”) está relacionada com carros (“muitos”). Para o seguinte exemplo, descreve-
mos a relação como “PESSOA possui CARRO” e representamos como 1:N.
Figura 5
10
Lemos esse diagrama como: “Uma pessoa pode possuir vários carros e um
carro pode ser registrado em nome de uma pessoa”.
Figura 6
Lemos esse diagrama como: “Um cliente pode possuir vários pedidos e um
pedido pertence a um cliente”.
Tabela 2
Conjunto A Conjunto B
Instância1
Instância1 Instância2
Instância3
Instância3
Instância2 Instância4
Instância5
Instância2
Instância5
Instância3
Instância6
Instância7
Instância5
Instância4
Instância7
Figura 7
11
11
UNIDADE Modelo ER – Parte 2
Figura 8
Lemos esse diagrama como “Um empregado pode trabalhar em vários projetos
e um projeto pode alocar vários empregados”.
Tabela 3
Conjunto A Conjunto B
Instância1 Instância2
Instância2 Instância3
Instância3 Instância4
Instância4 Instância1
Figura 9
12
Cliente 1 Possui 1 Login
Figura 10
Cardinalidade Mínima
O termo cardinalidade mínima refere-se ao número mínimo de instâncias de uma
entidade que deve estar associada a uma única instância de uma entidade relacionada.
Utilizamos a representação de cardinalidade mínima para expressar as restrições
mínimas de uma ocorrência em uma dada entidade. Ou seja, as cardinalidades
mínimas irão representar a obrigatoriedade ou não de uma ocorrência em uma
entidade. As cardinalidades mínimas possuem os seguintes valores possíveis: 0 e 1.
Pedido pertence à
(0,N)
Cliente Possui Pedido
(1,1)
Cliente possui um
Figura 11
13
13
UNIDADE Modelo ER – Parte 2
Trocando ideias...Importante!
O grau da cardinalidade de uma entidade é sempre representado ao lado oposto
da entidade.
Login pertence à
(1,1)
Cliente Possui Login
(1,1)
Cliente possui um
Figura 12
14
Atributo
Um atributo é uma propriedade ou característica de uma entidade, ou uma
relação. Por exemplo, o atributo Nome na ficha de um aluno é um atributo da
entidade ALUNO. Uma entidade pode ter tantos atributos quanto necessário. Em
um Diagrama de entidade-relacionamento (DER), representamos um atributo por
meio de uma elipse ou um circulo. No diagrama abaixo, temos um exemplo de
representação de atributos.
Entidade Atributo 1
Atributo 3
Atributo 4
Atributo 2
Figura 13
Atributos Descritores
Todo e qualquer atributo que seja capaz de identificar e representar uma carac-
terística de um objeto. Para Cougo (1997), todo atributo pode ser considerado um
atributo descritivo, o que faz o atributo ser classificado com outro tipo é a presença
de características funcionais adicionais, por exemplo, um atributo identificador.
Atributos Identificadores
Um identificador (ou atributo-chave) é um único atributo ou uma combinação
de atributos que identificam de forma única uma instância individual de um tipo de
entidade. Por exemplo, na entidade ALUNO temos o atributo RGM como atributo
identificador (ou atributo-chave), pois esse atributo, o RGM é único para cada Aluno
(instância). No DER abaixo, vemos a representação desse cenário.
NrCelular
Aluno
Endereço
Nome
RGM
Figura 14
15
15
UNIDADE Modelo ER – Parte 2
O atributo Nome, por exemplo, não pode ser um identificador porque dois
alunos podem ter o mesmo nome.
Nome Id_Empregado
Id_Empregado Id_Departamento
Figura 15
servirá para tornar mais rápida e eficiente a busca de informações referentes à entidade Forte,
que nesse contexto é a entidade EMPREGADO. Em uma futura pesquisa no banco de dados,
podemos nos deparar com a necessidade em se buscar informações do Empregado, contudo,
temos inicialmente apenas informações do Dependente, e por meio da chave composta,
podemos identificar o Empregado e diante disso, todas as outras informações necessárias.
16
Notações Gráficas ER
As notações gráficas para se desenvolver um Diagrama de entidade-
relacionamento mais comumente utilizadas são as notações criadas por Peter Chen
(1990). A seguir, apresentamos os principais símbolos utilizados em um DER.
Tabela 4
Símbolo Representa
Entidade Entidade
Entidade
Entidade
Entidade
Atributo
Atributo
Atributo
Atributo
Atributo Descritor
Identificador
Identificador
Identificador
Relação
Relação
Relação
Relação Relacionamento
17
17
UNIDADE Modelo ER – Parte 2
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Sites
Modelagem de Dados - Modelo Entidade-Relacionamento
https://goo.gl/Pasjev
Livros
Banco de Dados: Projeto e Implementação
MACHADO, F. N. R./Capítulo 4 - Modelo entidade-relacionamento, 4.3 Relaciona-
mentos, 4.4 Atributos
Sistemas de Banco de Dados
CARDOSO, Vírginia M./Capítulo 2 - O modelo entidade-relacionamento
Vídeos
Cardinalidade
https://youtu.be/bwvHTrTaYX4
18
Referências
CHEN, Peter. Modelagem de dados: Abordagem, Entidade – relacionamento
para projeto lógico. São Paulo: Makron Books, 1990.
19
19
Material Teórico
Implementando o Modelo Relacional
Revisão Textual:
Profa. Dra. Geovana Gentili Santos
Implementando o Modelo Relacional
• Normalização
OBJETIVO DE APRENDIZADO
· Estudaremos os conceitos de Normalização do modelo relacional,
suas regras de implantação e seus principais benefícios
UNIDADE Implementando o Modelo Relacional
Normalização
A normalização é um processo para avaliar e corrigir estruturas de tabela para
minimizar redundâncias de dados, reduzindo, assim, a probabilidade de anomalias
de dados. O processo de normalização envolve a atribuição de atributos a tabelas
com base no conceito de determinação.
Importante! Importante!
Um problema óbvio com informações redundantes é que usamos mais memória do que
é necessário. A redundância é um exemplo de uma anomalia que pode ocorrer em um
SGBD do modelo relacional.
A Necessidade de Normalização
Existem duas situações comuns em que os projetistas de banco de dados usam
a normalização:
• Ao projetar uma nova estrutura de banco de dados com base nos requisitos
de negócios dos usuários finais, o projetista de banco de dados construirá um
modelo de dados usando o diagrama de entidade-relacionamento (DER). Após
a conclusão do projeto inicial, o projetista pode usar a normalização para ana-
lisar as relações que existem entre os atributos dentro de cada entidade, para
determinar se a estrutura pode ser melhorada através da normalização.
• Alternativamente, os projetistas de banco de dados são frequentemente soli-
citados a modificar estruturas de dados existentes que podem ser na forma de
arquivos simples, planilhas ou estruturas de banco de dados mais antigas. No-
vamente, por meio de uma análise das relações entre os atributos ou campos
na estrutura de dados, o projetista de banco de dados pode usar o processo
de normalização para melhorar a estrutura de dados existente para criar um
projeto de banco de dados apropriado.
8
Anomalias
Existem três tipos de anomalias que ocorrem quando o banco de dados não é
normalizado. Estas são:
• Inserção;
• Atualização; e
• Anomalia de Exclusão.
Vamos a um exemplo para entender isso! Suponha que em uma empresa desen-
volvedora de software, as informações dos projetos executados são armazenadas
em uma tabela chamada Projetos. Vejamos essa tabela abaixo:
Tabela 1
ID_ Nome_ ID_ Nome_ Cargo_ Horas_
Valor_Hora
projeto Projeto Empregado Empregado Empregado Trabalhadas
Programador
001 Manhattan 1 João da Silva 40.00 50
Sênior
2 Paulo Farias Analista Sênior 40.00 30
Programador
3 Carlos Alberto 40.00 50
Sênior
4 Maria Fernanda Gerente 80.00 50
9
9
UNIDADE Implementando o Modelo Relacional
Para que uma tabela possa estar na 1FN, devemos seguir as seguintes regras:
1. Não devem existir colunas com dados repetidos ou similares;
2. Cada item de dados deve ser atômico (não possuir valores compostos);
3. Cada linha deve ser única, isto é, deve possuir uma chave primária;
4. Cada campo deve ter um nome exclusivo.
Importante! Importante!
‘Atômico’ é o termo usado para descrever que um item de dados é único e indivisível.
Tabela 2
Tabela Cliente
Id_Cliente Nome_Cliente Telefone1 Telefone2 Telefone3
123 João da Silva 1234-2356 8945-5689 2563-8996
Tabela 3
Tabela Cliente
Id_Cliente Nome_Cliente E-mail
123 João da Silva [email protected]; [email protected]
Por mais que a tabela acima possua um campo de chave primária (Id_Cliente)
e não existam dados repetidos, essa tabela não está na primeira forma normal
(1FN) porque, como podemos notar, o cliente possui dois endereços de e-mail
inseridos no campo “E-mail”. Desse modo, os dados inseridos neste campo não
são atômicos.
10
Levando em consideração que existe a possibilidade de o cliente possuir mais
que um (1) e-mail, a solução para esse cenário é criar uma nova entidade chamada
E-mail e usar o campo chave (Id_Cliente) como chave estrangeira para fazer a
ligação entre as duas entidades. Podemos observar o resultado nas tabelas abaixo.
Tabela 4
Tabela Cliente
Id_Cliente Nome_Cliente
123 João da Silva
125 José Ferreira
Tabela 5
Tabela E-mail
Id_Email Id_Cliente E-mail
1 123 [email protected]
2 123 [email protected]
3 125 [email protected]
Com essa solução, não há problemas quanto a inserir mais que um (1) e-mail por
cliente e confere a fácil extração de dados de e-mail, pois, além de existir apenas
uma coluna para e-mail, todos os dados são atômicos.
Podemos afirmar que essas tabelas estão na primeira forma normal (1NF), dado
que obedecem às seguintes regras:
• Cada tabela tem uma chave primária;
• Cada nome de campo é exclusivo;
• Os dados são atômicos;
• Não possui campos repetidos / redundantes.
Importante! Importante!
Dependência parcial ocorre quando uma coluna depende apenas de parte de uma chave
primária composta (HEUSER, 2010).
11
11
UNIDADE Implementando o Modelo Relacional
A razão dessa regra é garantir que não haja dados redundantes sendo armazenados
no banco de dados.
Tabela 6
Tabela Projeto
Id_Projeto Nome_Projeto
103 Manhattan
104 Houston
Tabela 7
Tabela Empregado
Id_Projeto ID_Empregado Nome_Empregado Cargo_Empregado Valor_Hora Horas_
Trabalhadas
103 1 João da Silva Programador Junior 30.00 50
103 2 Maria Fernanda Gerente 80.00 50
104 1 João da Silva Programador Junior 30.00 20
104 3 Paulo Farias Analista Sênior 40.00 10
104 4 Gustavo Fontes Analista Sênior 40.00 20
Para que a tabela Empregado passe para a segunda forma normal (2FN), deve-
mos dividir a tabela em duas novas tabelas, criando, assim, uma nova tabela cha-
mada Projeto_Horas_Trabalhadas. Podemos conferir o resultado abaixo:
Tabela 8
Tabela Projeto
ID_Projeto Nome_Projeto
103 Manhattan
104 Houston
TABELA PROJETO_HORAS_TRABALHADAS
ID_Projeto ID_Empregado Horas_Trabalhadas
103 1 50
103 2 50
104 1 20
104 3 10
12
Podemos afirmar que as tabelas acima estão na segunda forma normal (2FN)
porque todas as tabelas estão na 1FN e, além disso, os atributos não-chave de todas
as tabelas possuem dependência exclusiva da chave primária de suas respectivas
tabelas (sendo essas chaves primárias compostas ou não).
Importante! Importante!
Dependência transitiva ocorre quando uma coluna, além de depender da chave primária
da tabela, depende de outra coluna ou conjunto de colunas da tabela (HEUSER, 2010).
Desse modo, a tabela Empregado obtida na segunda forma normal (2FN), ainda
possui dados redundantes. Perceba, nessa tabela, que o valor de hora de trabalho
do empregado está vinculado ao seu cargo, ou seja, a informação do atributo “Va-
lor_Hora” depende da informação contida no atributo “Cargo_Empregado”.
Nesse contexto, para que a tabela Empregado passe para a terceira forma nor-
mal (3FN), devemos dividir a tabela em duas novas tabelas, criando, portanto, uma
nova tabela chamada Cargo. Podemos conferir o resultado abaixo:
Tabela 9
TABELA EMPREGADO
ID_Empregado Nome_Empregado Id_Cargo
1 João da Silva 1
2 Maria Fernanda 2
3 Paulo Farias 3
4 Gustavo Fontes 3
13
13
UNIDADE Implementando o Modelo Relacional
Tabela 10
TABELA CARGO
Id_Cargo Cargo_Empregado Valor_Hora
1 Programador Junior 30.00
2 Gerente 80.00
3 Analista Sênior 40.00
Tabela 11
TABELA PROJETO
ID_Projeto Nome_Projeto
103 Manhattan
104 Houston
Tabela 12
TABELA PROJETO
ID_Projeto ID_Empregado Horas_Trabalhadas
103 1 50
103 2 50
104 1 20
104 3 10
Assim, podemos concluir que as tabelas acima estão na terceira forma normal
(3FN), já que todas as tabelas estão na 2FN e, além disso, os atributos não-chave de
todas as tabelas não possuem dependência transitiva de outros atributos não-chave
em suas respectivas tabelas.
Uma tabela está na quinta forma normal (5FN) somente se estiver em 4NF e não
puder ser decomposta em qualquer número de tabelas menores sem perda de dados.
14
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Sites
Normalização de Bancos de Dados Relacionais
https://goo.gl/F6ytEQ
Livros
Banco de Dados: Implementação em SQL, PL/SQL e Oracle 11g
Sandra Puga, Edson França e Milton Goya
Capítulo 5 – Normalização
Vídeos
Normalizacao: Primeira Forma Normal - 1FN
https://youtu.be/3kJKJNKiaD4
Normalizacao: Segunda Forma Normal - 2FN
https://youtu.be/mHoZZUYVFzk
Normalizacao: Terceira Forma Normal - 3FN
https://youtu.be/EZvrGEpyNbs
15
15
UNIDADE Implementando o Modelo Relacional
Referências
COUGO, S. Paulo. Modelagem Conceitual e Projeto de Banco de Dados. Rio
de Janeiro: Campus. 1997.
16
Material Teórico
Ferramenta para Modelagem ER
Revisão Textual:
Profa. Dra. Geovana Gentili Santos
Ferramenta para Modelagem ER
• Introdução
• BrModelo
• Criando um Diagrama de Entidade-Relacionamento (DER)
• MySQL Workbench
OBJETIVO DE APRENDIZADO
· Estudar um pouco sobre duas ferramentas CASE que auxiliam no
desenvolvimento do projeto de Modelagem de dados: BrModelo e
MySQL Workbench.
UNIDADE Ferramenta para Modelagem ER
Introdução
Nessa unidade, estudaremos sobre duas ferramentas CASE que auxiliam
no desenvolvimento do projeto de Modelagem de Dados: BrModelo e MySQL
Workbench. Mas, afinal, o que são ferramentas CASE?
8
BrModelo
A ferramenta BrModelo é uma ferramenta freeware que possibilita o desenvol-
vimento de diagramas DER, modelo lógico, e exportar esses artefatos em formato
de script SQL para criação de tabelas no banco de dados (CÂNDIDO, 2007).
O software BrModelo 3.0 pode ser baixado e executado apenas nos sistemas operacionais
Explor
Windows: https://goo.gl/fxFXg1
Figura 1
9
9
UNIDADE Ferramenta para Modelagem ER
Figura 2
10
Figura 3
Figura 4
11
11
UNIDADE Ferramenta para Modelagem ER
Figura 5
Figura 6
12
Para representar os graus de relacionamento e sua as cardinalidades (mínimas e
máximas), utilizamos o objeto “Ligar Objetos”, destacado na imagem abaixo.
Figura 7
Figura 8
13
13
UNIDADE Ferramenta para Modelagem ER
Figura 9
Relembrando o cenário:
• Um funcionário deve possuir, no mínimo, zero dependente e, no máximo,
muitos dependentes.
• Um dependente deve pertencer, no mínimo, a 1 funcionário e, no máximo, a
1 funcionário.
(0,n)
Funcionário (0,n) Dependente
possui
Figura 10
14
Figura 11
Figura 12
15
15
UNIDADE Ferramenta para Modelagem ER
(1,1)
Funcionário (0,n) Dependente
possui
Figura 13
Onde:
• Um funcionário possui no mínimo zero e no máximo vários dependentes e;
• Um dependente está ligado, no mínimo, a um e, no máximo, a um funcionário.
Figura 14
16
Passo 10 – Clique no objeto “Atributo”, selecione o objeto “Atributo” e, em
seguida, clique na entidade FUNCIONARIO. Com o objeto “Atributo” selecionado,
altere a propriedade nome para: Nome e pressione “Enter” no teclado.
Figura 15
Figura 16
17
17
UNIDADE Ferramenta para Modelagem ER
Nome_Dependente
(1,1)
Funcionário (0,n) Dependente
possui Id_Dependente
Id_Funcionario
Nome
Figura 17
Figura 18
18
Essa ação irá gerar um esquema lógico que podemos observar na imagem abaixo.
Figura 19
Figura 20
Importante! Importante!
Caso queira gerar um script para banco de dados Oracle, deve-se alterar os tipos de
dados especificamente para Oracle e, assim, por diante.
19
19
UNIDADE Ferramenta para Modelagem ER
Para nosso estudo, iremos gerar o script SQL com os tipos de dados da confi-
guração padrão do BrModelo. Esse padrão gera scripts com a sintaxe do banco
de dados SQLite.
https://goo.gl/h1lcMc
Figura 21
Figura 22
20
Essa ação irá gerar um script SQL, que poderá ser salvo em um arquivo do
formato .sql.
Figura 23
Explor
Figura 24
Explor
21
21
UNIDADE Ferramenta para Modelagem ER
MySQL Workbench
A ferramenta MySQL Workbench é uma ferramenta CASE gratuita, que
oferece as seguintes funcionalidades:
• Desenvolvimento SQL: Funcionalidade para consultas MySQL. Permite
que o usuário se conecte a um banco de dados existente, edite e execute
consultas SQL.
• Modelagem de Dados: Permite a modelagem visual de banco de dados
(criação do modelo lógico e físico).
• Administração de Banco de Dados: Funcionalidade de administrador do
MySQL. Possui uma Interface gráfica para iniciar / parar servidores, criar
contas de usuário, editar arquivos de configuração etc.
O MySQL Workbench pode ser baixado pelo link a seguir, a ferramenta pode ser instalada
Explor
Figura 25
22
Na tela a seguir, clique no botão “Add Diagram”.
Figura 26
Figura 27
23
23
UNIDADE Ferramenta para Modelagem ER
Figura 28
24
Figura 29
Figura 30
25
25
UNIDADE Ferramenta para Modelagem ER
Figura 31
Figura 32
26
Para concluir, a configuração do atributo “id_Funcionario”, selecione as opções
“PK” e “NN”.
Passo 3 – Adicione o atributo “Nome”. Clique duas vezes com o botão esquerdo
mouse na célula abaixo do atributo “id_Funcionario”. Em seguida, altere o nome
do atributo para: nome.
Figura 33
Figura 34
27
27
UNIDADE Ferramenta para Modelagem ER
Figura 35
Figura 36
28
Figura 37
29
29
UNIDADE Ferramenta para Modelagem ER
Figura 38
Figura 39
30
Figura 40
Figura 41
31
31
UNIDADE Ferramenta para Modelagem ER
Figura 42
Por fim, é gerado um script SQL na sintaxe MySQL para criação das tabelas
referente ao modelo lógico criado pela ferramenta. O script gerado poderá ser
salvo em um arquivo do formato .sql.
Figura 43
32
Explor
Podemos testar o script gerado na plataforma SQLFiddle http://sqlfiddle.com
Figura 44
Explor
33
33
UNIDADE Ferramenta para Modelagem ER
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Sites
Manual oficial do MySQL Workbench (em Inglês)
https://goo.gl/oxFJAL
Livros
Banco de dados: Implementação em SQL, PL/SQL e Oracle 11g
Sandra Puga, Edson França e Milton Goya. Capítulo 7.1 - Introdução à linguagem SQL
Banco de dados: Implementação em SQL, PL/SQL e Oracle 11g
Sandra Puga, Edson França e Milton Goya. Capítulo 4.6 - Notação
Vídeos
Usando o brModelo
https://youtu.be/dk1-y0PnjuU
34
Referências
CÂNDIDO, C. H. BrModelo 2.0. 2007. Disponível em: <http://sis4.com/
brModelo/>. Acesso em abr. 2017.
35
35