Você está na página 1de 199

Banco de Dados

Aula Gravada de
14/08/2020
Temporada 1
Episódio 1
Olá alunos !!!
Carlos Renato Carneo

carlos.carneo@Hotmail.com
carlos.carneo@sumare.edu.br
Prof. Carlos Renato

- Processamento de Dados
- Pós Graduado em Docência para o
Ensino Superior
- Licenciatura em Filosofia
- Mestrado Profissional de Educação
- 38 Anos dedicados a gestão em TI
Regras / Lembretes

. Será importante e vital estudar o AVA antes de ir


para as aulas síncronas.
. Médias
Padrões da Instituição
ATV1 valerá 2,0
ATV2 valerá 2,0
Prova valerá 6,0

Totalizando uma nota de até 10 pontos para este


semestre.
Disciplina

MODELAGEM E ORGANIZAÇÃO DE DADOS

Dentro da disciplina, teremos várias


temporadas como a Temporada 1 e dentro
delas seus episódios.

Episódio1

Conceitos sobre
Banco de Dados
Episódio1
Ao final desta Unidade de Aprendizagem, você
deve apresentar os seguintes aprendizados:

Conceituar banco de dados.

Identificar os tipos de banco de dados.

Classificar as técnicas de modelagem.

Conhecer quais dados são relevantes dentro de


uma organização.
Episódio1
Olá!
Atualmente os sistemas de informação são desenvolvidos
juntamente com uma base de dados, que é responsável por
gerenciar a manipulação dos dados utilizados.

É fundamental para os profissionais da área de


desenvolvimento de sistemas ter o conhecimento adequado
sobre bancos de dados, para que seja possível integrar
sistemas e bancos de dados de maneira adequada.

Nesta Unidade de Aprendizagem, você irá entender a


definição de banco de dados, associando a exemplos. Além
disso, serão apresentados os tipos de banco de dados e
linguagem que é utilizada.
Modelagem e Organização de Dados

REFLEXÃO
Qual o seu conhecimento sobre a
disciplina de Modelagem e
organização de Dados, sua
história e evolução?
Modelagem e Organização de Dados

Vamos iniciar o nosso pensamento:


Você é um desenvolvedor de sistemas da
empresa LENS, que trabalha com a venda de
materiais de escritório. Em determinado dia, foi
solicitado à equipe de T.I. que realizasse a
implementação de um sistema para controlar os
pedidos realizados pelos clientes da empresa.
Você, como um dos desenvolvedores, precisa
definir quais as tabelas que serão utilizadas no
banco de dados desse sistema.
Como um primeiro pensamento, especifique
quantas tabelas você utilizaria nessa situação,
bem como quais as tabelas e os campos contidos
em cada uma das tabelas, mas antes vamos
entender alguns conceitos e pensamentos sobre
Banco de Dados.
Modelagem e Organização de Dados

Ainda dentro de nosso pensamento:

Vamos relembrar alguns conceitos


importantes sobre Banco de Dados!!

E na próxima aula entraremos em detalhes


sobre Modelagem e Organização de
Dados, conceitos e ferramentas utilizadas,
que é o nosso objetivo desta disciplina.
Modelagem e Organização de Dados

Um sistema de banco de dados deve garantir


uma visão totalmente abstrata do banco de
dados para o usuário, ou seja, para o usuário do
banco de dados pouco importa qual unidade
de armazenamento está sendo usada para
guardar seus dados, contanto que os mesmos
estejam disponíveis no momento necessário.

O infográfico desta Unidade de Aprendizagem


apresenta os três níveis de abstração de dados
relacionados ao contexto de banco de dados.
Modelagem e Organização de Dados
Modelagem e Organização de Dados

Este início da nossa formação de conhecimento


sobre esta disciplina, precisamos entender os
conceitos iniciais sobre Banco de Dados.

Qual o significado de Banco de Dados?

Segundo Korth, um banco de dados “é uma


coleção de dados inter-relacionados,
representando informações sobre um domínio
específico”, ou seja, sempre que for possível
agrupar informações que se relacionam e
tratam de um mesmo assunto, posso dizer que
tenho um banco de dados.
Modelagem e Organização de Dados

Podemos exemplificar situações clássicas como


uma lista de contatos telefônicos, um catálogo
de DVDs, filmes ou um sistema de controle de
RH de uma empresa.

Alguns Exemplos de Banco de Dados?


Oracle
SQL Server
DB2
PostgreSQL
MySQL
Access
Modelagem e Organização de Dados

SGBD – Sistemas de gerenciamento de Banco


de Dados

SGBDs são aplicações ou programas de


computadores para gerenciar os bancos de
dados de uma forma mais prática, com ele o
usuário poderá criar, alterar e excluir seus
componentes como campos, tabelas, etc.
Modelagem e Organização de Dados

Por último, temos que conceituar um sistema de


banco de dados como o conjunto de quatro
componentes básicos: dados, hardware,
software e usuários.

Date conceituou que “sistema de bancos de


dados pode ser considerado como uma sala de
arquivos eletrônica”.
Modelagem e Organização de Dados

Banco de Dados – Objetivos

Os objetivos de um sistema de banco de dados


são de poupar ao usuário sobre os detalhes
internos do banco de dados, isto é chamado de
“Abstração de Dados”, isto é, para o usuário
não importa onde estão os dados se está em
um servidor, na nuvem, etc., basta apenas estar
disponível para sua utilização.

Exemplos: Acesso ao caixa eletrônico, os dados


de alunos, etc.
Modelagem e Organização de Dados

Aplicações de Banco de Dados:


Para entendermos melhor as aplicações dos
bancos de dados, podemos afirmar que tudo que
fazemos em um computador, seja ele um desktop
ou mesmo um smartphone, estamos sempre
acessando um ambiente de dados controlados por
definições e aplicações que acessam esses dados
em um repositório: Banco de Dados.
Podemos citar muitos exemplos, mas desde um
sistema bancário, sistemas empresariais, redes
sociais e daí podemos entender a importância
desse tesouro que são as nossas informações,
disputadas seriamente por todas as organizações
independente de seu segmento de mercado.
Modelagem e Organização de Dados

Componentes de Banco de Dados

Definição:

Componentes de um banco de dados, são as


partes que compõe a estrutura de um banco de
dados, isto é, a estrutura necessária para
podermos armazenar os nossos dados ou
aqueles que queremos administrar.
Modelagem e Organização de Dados

Componentes de Banco de Dados


Principais Componentes
Tabelas
Campos
Atributos
Chaves Primárias ou Índices
Neste instante, vamos entender que um banco de dados está
dividido em alguns componentes, que veremos cada um
deles a partir de agora.
Tabelas:
Tabelas são um mapeamento dos conteúdos que farão parte
de um DataBase, possui colunas e linhas infinitas permitindo
assim demonstrar e planejar todas as necessidades de
armazenamento e assim monitorar os campos necessários.
Por exemplo: Tabela de Clientes, Alunos, Produtos, etc.
Modelagem e Organização de Dados

Campos:
Campos ou Fields são o detalhamento das tabelas visto
anteriormente, neste componente podemos definir o nome e
sua utilização, por exemplo: Dentro da tabela de clientes,
teremos os campos Código do Cliente, Nome do Cliente,
endereço, etc.

Atributos:
Atributos são o detalhamento das informações que irão
compor os Campos, como:
Tamanho do campo, se ele terá por exemplo 10, 20, 60, 300
posições ou dígitos.
Tipo do campo, se ele será um campo numérico que aceita
apenas números, alfanumérico que aceitará números, letras
ou caracteres especiais como # @, se o campo será lógico
como S (sim) ou N (Não), data, hora, etc.
Modelagem e Organização de Dados

Chaves Primárias ou Índices:

Chaves primárias ou índices deixamos em


destaque, pois apesar de ser um campo como
qualquer outro, tem uma função de ser chave
primária de acesso ou índice, isto é, segundo o
conceito de chave primária que se trata de um
campo único e não pode ser nulo, o mesmo facilita
o acesso direto a um determinado registro.

Por exemplo: quando acessamos o nosso cadastro


pelo CPF, não existe dois cpfs iguais e aí quando
acessamos o registro por este tipo, o SGBD traz
exatamente o que solicitamos de uma forma rápida
e direta.
Modelagem e Organização de Dados

Dados e Informação

Mas afinal, quais são suas


definições e diferenças.
Modelagem e Organização de Dados

No mundo da tecnologia da
informação, Dados e Informação
são vistos pela maioria das
pessoas como a mesma coisa,
mas veremos nesta aula que não,
entenderemos suas definições e
diferenças básicas.
Modelagem e Organização de Dados

Dados – o sentido da palavra

Do latim datum (“aquilo que se dá”), um dado é


um documento, uma informação ou um
testemunho que permite chegar ao
conhecimento de algo ou deduzir as
consequências legítimas de um facto, e que
serve de apoio. Fonte (conceito.de, 2012).
Modelagem e Organização de Dados

Dados para Tecnologia da Informação

Podemos definir que dados são a matéria prima


da informação. Em nossa vida cotidiana
utilizamos constantemente o termo dados e
normalmente, são palavras ou números que
servem como referência para algo, por
exemplo, o PIN de um telefone, o número de
um documento de identidade ou as senhas
bancárias, entre outros que fazem parte do
cotidiano.
Modelagem e Organização de Dados

Dados para Tecnologia da


Informação
Na área da informática, utilizam-
se os dados para entender a
realidade que nos rodeia como
dados estatísticos, gerenciais, ou
qualquer outro índice econômico
ou social presente nos meios de
comunicação. Fonte (conceitos.com, 2017).
Modelagem e Organização de Dados

Dados para o nosso cotidiano


Precisamos pensar que tudo que fazemos em
um computador, quando colocamos
informações dentro de um banco de dados,
estamos inserindo dados para serem utilizados
de uma forma ordenada ou sob alguma
consulta.
Podemos mencionar como exemplo, um
cadastro bancário, de alunos, redes sociais,
pois tudo que informamos ou melhor em cada
campo que digitamos estamos adicionando
dados.
Modelagem e Organização de Dados

Informação
Informações são dados tratados para que
tragam os resultados esperados
condensados, isto se dá através de
processamento transformando os dados
em informações que possuem algum
significado, tais significados podem nos
levar a tomada de decisões ou fazer
afirmações considerando essas
informações, por exemplo: o agrupamento
das notas fiscais geradas e emitidas por
uma empresa, podem nos dar o volume de
faturamento de um mês, ano, etc.
Modelagem e Organização de Dados

Dados e Informação
Desta forma, devemos diferenciar as
duas situações ou em que momento
estamos falando de dados ou
informação. Mas o resultado é que
geramos algo de vital importância
para todos nós:
O Conhecimento.
Modelagem e Organização de Dados

Conhecimento
O Conhecimento que os dados
processados e transformados em
informações, alimenta a nossa visão do
conhecimento para boas e más utilizações
e aplicações, pois de posse das
informações teremos o conhecimento
necessário para a tomada de decisões em
nossas vidas, trabalho.
Portanto, cuidado com o domínio desse
conhecimento e aplique sempre para obter
resultados positivos e com valores éticos.
Modelagem e Organização de Dados

Então o nosso
pensamento,
deve considerar
as necessidades
das organizações
empresariais e as
tecnologias
disponíveis no
mercado atual.
Modelagem e Organização de Dados

O banco de dados coleta, processa e


armazena toda e qualquer informação ali
inserida, além de permitir que esses
dados sejam examinados a qualquer
momento.

Um banco de dados pode também ser


considerado um software estruturado
para coletar e armazenar informações
pertinentes e que necessitem ser
consultadas ou utilizadas posteriormente.
Modelagem e Organização de Dados

Seguindo a nossa sequencia de


aprendizado, vocês devem assistir as
aulas on-line, para finalizarmos o nosso
conhecimento deste episódio.
Modelagem de Banco de Dados - Conceitos

Aula Gravada de
18/08/2020
Temporada 1
Episódio 2
Modelagem de Banco de Dados - Conceitos

Episódio 2
Modelagem de Banco de Dados - Conceitos
Agora que sabemos que atualmente os sistemas de
informação são desenvolvidos juntamente com uma base de
dados, que é responsável por gerenciar a manipulação dos
dados utilizados.

Os profissionais que atuarão nesta área, deverão aprender a


modelar e organizar os dados, dentro de suas necessidades,
sempre com o pensamento de otimiza-los.

Nos dias de hoje, temos tecnologias que nos trazem grandes


espaços de armazenamento, porém é indispensável esse
pensamento encurtando os caminhos de acesso aos dados
armazenados.
Modelagem de Banco de Dados - Conceitos

Episódio 2

Neste episódio, você irá entender os


conceitos para a modelagem de dados e
como organiza-los de uma forma eficiente
e principalmente deixar um ambiente leve
para que todos os dados, após
transformados, tragam informações
eficientes.
Modelagem de Banco de Dados - Conceitos

A modelagem de dados é uma etapa importante e


essencial em qualquer projeto de desenvolvimento ou
manutenção de software.

Seu público principal são os desenvolvedores de


aplicações que precisam obter um entendimento de
alguma das atividades críticas realizadas por um DBA.

Este entendimento deve levar ao conhecimento do que


um DBA faz e por que faz, ajudando a estabelecer uma
ponte de comunicação reduzindo a distância existente
entre esses dois papéis fundamentais no
desenvolvimento de software (desenvolvedor e DBA).
Modelagem de Banco de Dados - Conceitos

O que é modelagem de dados?


Modelagem de Banco de Dados - Conceitos

Modelagem de dados é o ato de explorar


estruturas orientadas a dados. Como outros
artefatos de modelagem, modelos de dados
podem ser usados para uma variedade de
propósitos, desde modelos conceituais de alto
nível até modelos físicos de dados. Do ponto de
vista de um desenvolvedor atuando no
paradigma orientado a objetos, modelagem de
dados é conceitualmente similar à modelagem
de classes.
Modelagem de Banco de Dados - Conceitos

Com a modelagem de dados identificamos tipos


de entidades da mesma forma que na
modelagem de classes identificamos classes.
Atributos de dados são associados a tipos de
entidades exatamente como associados
atributos e operações às classes.

Existem associações entre entidades, similar às


associações entre classes – relacionamento,
herança, composição e agregação são todos
conceitos aplicáveis em modelagem de dados.
Modelagem de Banco de Dados - Conceitos

Como modelos de dados são usados na prática?

Embora as questões de metodologias sejam abordadas


depois, precisamos discutir como modelos de dados
podem ser usados na prática para melhor entendê-los.
Provavelmente, iremos nos deparar a três estilos
básicos de modelos de dados:

Modelos de Dados Conceituais

Modelos Lógico de Dados (MLDs)

Modelos Físicos de Dados (MFDs)


Modelagem de Banco de Dados - Conceitos

Como modelos de dados são usados na prática?

Modelos de dados conceituais: esses modelos, algumas


vezes chamados modelos de domínio, são tipicamente
usados para explorar conceitos do domínio com os
envolvidos no projeto.

Em equipes ágeis, modelos conceituais de alto nível são


normalmente criados como parte do esforço inicial do
entendimento dos requisitos do sistema, pois eles são
usados para explorar as estruturas e conceitos de
negócio estáticos de alto nível. Em equipes tradicionais
(não ágeis), modelos de dados conceituais são
normalmente criados como precursores aos modelos
lógicos de dados (MLD) ou suas alternativas.
Modelagem de Banco de Dados - Conceitos

Modelos Lógico de Dados (MLDs): MLDs são usados


para explorar os conceitos do domínio e seus
relacionados. Isso pode ser feito para o escopo de um
simples projeto ou para uma empresa inteira. MLDs
descrevem os tipos de entidades lógicas, tipicamente
referenciadas simplesmente como tipos de entidades,
os atributos de dados que descrevem essas entidades e
os relacionamentos entre as entidades.

MLDs são raramente usados em projetos ágeis apesar


de normalmente estarem presentes em projetos
tradicionais (onde eles raramente adicionam muito valor
na prática).
Modelagem de Banco de Dados - Conceitos

Modelos Físicos de Dados (MFDs): MFDs


são usados para projetar o esquema
interno de um banco de dados,
descrevendo as tabelas de dados, as
colunas de dados das tabelas e o
relacionamento entre as tabelas. MFDs
normalmente são bastante úteis em
projetos ágeis e tradicionais, por isso este
será o foco deste artigo: modelagem física
dos dados.
Modelagem de Banco de Dados - Conceitos

Um simples modelo lógico de dados


Modelagem de Banco de Dados - Conceitos

Um simples modelo físico de dados.


Modelagem de Banco de Dados - Conceitos

Como modelar dados

É crucial para um desenvolvedor de aplicação ter uma


noção dos fundamentos de modelagem de dados não
apenas para ler os modelos de dados, mas também para
trabalhar efetivamente com os DBAs responsáveis pelos
aspectos relacionados aos dados do projeto. O objetivo
ao ler esta seção não é aprender como se tornar um
modelador de dados, mas sim obter uma apreciação a
respeito do que é envolvido nesta tarefa.
Modelagem de Banco de Dados - Conceitos

Como modelar dados

As seguintes tarefas são realizadas de forma iterativa:

Identificar os tipos de entidade;


Identificar atributos;
Aplicar convenção de nomes;
Identificar relacionamentos;
Associar chaves;
Normalizar para reduzir a redundância dos dados;
Diversificar para melhorar o desempenho.
Modelagem de Banco de Dados - Conceitos

Identificar os tipos de entidade

Um tipo de entidade, ou simplesmente entidade, é


conceitualmente similar ao conceito de orientação a
objeto de uma classe – um tipo de entidade representa
uma coleção de objetos similares. Um tipo de entidade
pode representar uma coleção de pessoas, lugares,
coisas, eventos ou conceitos. Exemplos de entidades
em um sistema de vendas incluiria: Cliente, Endereço,
Venda, Item e Taxa. Se estivéssemos modelando
classes, esperaríamos descobrir classes exatamente
com esses nomes.
Modelagem de Banco de Dados - Conceitos

Identificar os tipos de entidade

No entanto, a diferença entre uma classe e um tipo de


entidade é que classes possuem dados e
comportamentos, enquanto que tipos de entidade
possuem apenas dados.

Idealmente, uma entidade deveria ser normal,


descrevendo de forma coesa uma informação do mundo
real. Uma entidade normalmente descreve um conceito,
tal como uma classe coesa modela um conceito. Por
exemplo, cliente e venda são claramente dois conceitos
diferentes, portanto, faz sentido modelá-los como
entidades diferentes.
Modelagem de Banco de Dados - Conceitos

Identificar atributos

Cada tipo de entidade terá um ou mais atributos de


dados. Por exemplo, na Figura 1 podemos ver que a
entidade Cliente possui atributos como Primeiro Nome e
Sobrenome e na Figura 2 que a tabela TCLIENTE possui
colunas de dados correspondentes
CLI_PRIMEIRO_NOME e CLI_SOBRENOME (uma coluna
é a implementação de um atributo de dados em um
banco de dados relacional).
Modelagem de Banco de Dados - Conceitos

Identificar atributos

Atributos devem ser coesos do ponto de vista do


domínio da aplicação. Na Figura 1 decidimos que
queríamos modelar o fato de pessoas possuírem
primeiro nome e sobrenome em vez de apenas um nome
(ex: “Cláudio” e “Dias” VS. “Cláudio Dias”). Usar o nível
de detalhe correto pode ter um impacto significativo no
esforço de desenvolvimento e manutenção.

Refatorar uma simples coluna de dados em várias


colunas pode ser difícil, o que pode resultar em
construir o sistema com elementos desnecessários e,
portanto, provoca um maior custo de desenvolvimento e
de manutenção do que realmente necessário.
Modelagem de Banco de Dados - Conceitos

Aplicar convenções de nome

Sua organização deve dispor de normas e diretrizes


aplicáveis à modelagem de dados, algo que você deve
ser capaz de obter dos administradores da empresa (se
não existir você deve fazer algum lobby para incluí-lo).

Essas diretrizes devem incluir as convenções de


nomenclatura para a modelagem lógica e física, as
convenções de nomenclatura lógica devem ser focadas
na capacidade de leitura de humanos, enquanto as
convenções de nomenclatura física refletirão
considerações técnicas. Você pode ver claramente que
diferentes convenções de nomenclatura foram aplicadas
nas Figuras 1 e 2.
Modelagem de Banco de Dados - Conceitos

Aplicar convenções de nome

A ideia básica é que desenvolvedores sigam um


conjunto comum de padrões de modelagem em um
projeto de software. Tal como é importante seguir
convenções comuns de codificação, um código limpo
que segue as diretrizes escolhidas é mais fácil de ser
compreendido. Isso funciona da mesma forma para as
convenções de modelagem de dados.
Modelagem de Banco de Dados - Conceitos

Identificar relacionamentos

No mundo real, entidades possuem relacionamentos


entre elas. Por exemplo, clientes FAZEM compras,
clientes MORAM EM endereços e itens de venda SÃO
PARTE DAS vendas. Todos esses termos em maiúsculo
definem relacionamentos entre entidades. Os
relacionamentos entre entidades são conceitualmente
idênticos aos relacionamentos (associações) entre
objetos.
Modelagem de Banco de Dados - Conceitos

Identificar relacionamentos

Na figura abaixo, descreve um MLD parcial para um


sistema de compra online. A primeira coisa a se notar
são os vários estilos aplicados aos nomes dos
relacionamentos e papéis – diferentes relacionamentos
requerem diferentes abordagens. Por exemplo, o
relacionamento entre Cliente e Venda possui dois
nomes, compra e é comprado por, mesmo o
relacionamento entre essas entidades sendo apenas
um.

Neste exemplo, tendo um segundo nome no


relacionamento, a ideia seria especificar como ler o
relacionamento em cada direção. O ideal seria colocar
apenas um nome por relacionamento.
Modelagem de Banco de Dados - Conceitos
Modelagem e Organização de Dados

Seguindo a nossa sequencia de


aprendizado, vocês devem assistir as
aulas on-line, para finalizarmos o nosso
conhecimento deste episódio.
Modelagem de Banco de Dados - Conceitos

Próxima aula continuaremos a


nossa aula.

Associar chaves;
Normalizar para reduzir a
redundância dos dados;
Diversificar para melhorar o
desempenho.
Modelagem de Banco de Dados - Conceitos

Aula Gravada de
25/08/2020
Temporada 1
Episódio 3
Modelagem de Banco de Dados - Conceitos

Como modelar dados


(Continuação)
Episódio 3
Modelagem de Banco de Dados - Conceitos

Um simples modelo lógico de dados


Modelagem de Banco de Dados - Conceitos

Um simples modelo físico de dados.


Modelagem de Banco de Dados - Conceitos

Como modelar dados

As seguintes tarefas são realizadas de forma iterativa:

Identificar os tipos de entidade;


Identificar atributos;
Aplicar convenção de nomes;
Identificar relacionamentos;
Associar chaves;
Normalizar para reduzir a redundância dos dados;
Diversificar para melhorar o desempenho.
Modelagem de Banco de Dados - Conceitos

Episódio 3
Modelagem de Banco de Dados - Conceitos
Agora que sabemos que atualmente os sistemas de
informação são desenvolvidos juntamente com uma base de
dados, que é responsável por gerenciar a manipulação dos
dados utilizados.

Os profissionais que atuarão nesta área, deverão aprender a


modelar e organizar os dados, dentro de suas necessidades,
sempre com o pensamento de otimiza-los.

Nos dias de hoje, temos tecnologias que nos trazem grandes


espaços de armazenamento, porém é indispensável esse
pensamento encurtando os caminhos de acesso aos dados
armazenados.
Modelagem de Banco de Dados - Conceitos

Episódio 3

Neste episódio, você irá entender os


conceitos para a modelagem de dados e
como organiza-los de uma forma eficiente
e principalmente deixar um ambiente leve
para que todos os dados, após
transformados, tragam informações
eficientes.
Modelagem de Banco de Dados - Conceitos

Associar chaves;

Normalizar para reduzir a


redundância dos dados;

Diversificar para melhorar o


desempenho.
Modelagem de Banco de Dados - Conceitos

Associar chaves

Existem duas estratégias fundamentais para


associar chaves às tabelas.

Primeiro, podemos associar uma chave natural


que é um ou mais atributos de dados existentes
que são únicos para o conceito do negócio.
Imaginemos uma tabela Cliente, por exemplo. Ela
possui de imediato duas chaves candidatas, as
colunas NumeroCliente e CPF.
Modelagem de Banco de Dados - Conceitos

Associar chaves

Existem duas estratégias fundamentais para associar


chaves às tabelas.

A segunda forma é introduzindo uma nova coluna,


chamada chave substituta, que é uma chave que não
possui qualquer significado para o negócio. Um exemplo
disso seria uma coluna idEndereco de uma tabela
Endereco. Endereços não possuem uma chave natural
“trivial” porque seria necessário usar todas as colunas
da tabela Endereco para formar uma chave. Assim,
introduzir uma chave substituta é uma opção muito
melhor neste caso.
Modelagem de Banco de Dados - Conceitos

Associar chaves

O debate entre "natural vs. substituta" é um das


grandes questões religiosas na comunidade de
banco de dados. O fato é que não existe
estratégia perfeita, e com o tempo percebemos
que na prática algumas vezes fazem sentido usar
chaves naturais e em outras situações é mais
adequado o uso de chaves substitutas.
Modelagem de Banco de Dados - Conceitos

Normalizar para reduzir redundância de dados

Normalização de dados é um processo no qual


atributos de dados em um modelos de dados são
organizados para aumentar a coesão dos tipos
de entidade. Em outras palavras, o objetivo da
normalização de dados é reduzir e até eliminar
redundância de dados, uma questão importante
para desenvolvedores, pois é incrivelmente
difícil armazenar objetos em um banco de dados
relacional que mantém a mesma informação em
vários lugares.
Modelagem de Banco de Dados - Conceitos

Normalizar para reduzir redundância de dados

A Tabela abaixo resume as três principais regras


de normalização descrevendo como aumentar os
níveis de normalização em tipos de entidade.

Com respeito à terminologia, um esquema de


dados é considerado estar em um nível de
normalização do seu tipo de entidade menos
normalizado. Por exemplo, se todos os tipos de
entidade estão na segunda forma normal (2NF)
ou maior, então dizemos que o esquema de
dados está na 2NF.
Modelagem de Banco de Dados - Conceitos
Modelagem de Banco de Dados - Conceitos

A Figura 6 descreve um esquema de banco de dados na ONF


enquanto que a Figura 7 descreve um esquema normalizado na 3NF.

Por que normalização de dados? A vantagem de ter do esquema de


dados altamente normalizado é que a informação é armazenada em
um lugar apenas, reduzindo a possibilidade de dados inconsistentes.
Além disso, esquemas de dados altamente normalizados em geral
são conceitualmente mais próximos dos esquemas orientados a
objeto, pois os objetivos da orientação a objetos de promover alta
coesão e pouco acoplamento entre as classes resulta em soluções
similares (ao menos do ponto de visa de dados). Isso geralmente
torna mais simples mapear os objetos para o esquema de dados.
Infelizmente, a normalização normalmente traz um custo para o
desempenho.
Modelagem de Banco de Dados - Conceitos

A Figura 6 descreve um esquema de banco de dados na ONF


enquanto que a Figura 7 descreve um esquema normalizado na 3NF.

Com o esquema de dados da Figura 6 todos os dados para uma


venda estão armazenados em uma linha (assumindo que vendas
poderão ter até dois itens), simplificando o acesso. Com o esquema
de dados da Figura 6 podemos rapidamente determinar a quantidade
total de uma venda lendo uma única linha da tabela. Para fazer o
mesmo com o esquema de dados da Figura 7, precisamos ler dados
a partir de uma linha na tabela Venda, dados a partir de linhas na
tabela ItemVenda para aquela venda e dados a partir das linhas
correspondentes na tabela Item. Para esta consulta, o esquema de
dados da Figura 6 provavelmente obtém melhor resultado.
Modelagem de Banco de Dados - Conceitos

Um esquema de
dados inicial para
Venda (notação
UML).
Modelagem de Banco de Dados - Conceitos

Um esquema
normalizado em
3NF (notação UML).
Modelagem de Banco de Dados - Conceitos

Diversificar para melhorar desempenho

Esquemas de dados normalizados, quando


colocados em produção, normalmente sofrem
problemas de desempenho. Isso faz sentido – as
regras de normalização focam em reduzir
redundância de dados, não em melhorar
desempenho do acesso aos dados. Uma parte
importante da modelagem de dados é
Diversificar porções do esquema de dados para
melhorar tempo de acesso aos dados.
Modelagem de Banco de Dados - Conceitos

Diversificar para melhorar desempenho

Observe que se o projeto inicial e


normalizado dos dados atinge o
desempenho necessário para a aplicação,
nada precisa ser feito. A Diversificação
deve ser aplicada apenas quando os testes
de desempenho mostram que temos um
problema com os objetos, revelando que
precisamos melhorar o tempo de acesso
aos dados.
Modelagem de Banco de Dados - Conceitos

Modelagem de dados evolucionária/ágil

Modelagem de dados evolucionária é a modelagem de


dados realizada de forma incremental. Modelagem de
dados ágil é a modelagem de dados evolucionária feita
de forma colaborativa.

Apesar de nem todos pensarem assim, a modelagem de


dados pode ser uma das mais desafiantes tarefas que um
DBA pode estar envolvido em um projeto de
desenvolvimento ágil.
Modelagem de Banco de Dados - Conceitos

Modelagem de dados evolucionária/ágil

Como você pode melhorar suas habilidades de


modelagem de dados? Prática, prática, prática.
Se você tiver a chance, você deve trabalhar
próximo a DBAs, se ofereça para trabalhar na
modelagem de dados e pergunte sobre o
andamento do trabalho. Isso fará com que um
profissional sempre evolua seu conhecimento na
área, tanto na modelagem lógica como na
modelagem física.
Modelagem de Banco de Dados - Conceitos

Modelagem de dados evolucionária/ágil

Além de tudo isso, é preciso estar sempre


atualizado lendo informações sobre a área.
Este artigo é um bom ponto de partida,
apresentando uma breve introdução sobre
o tema.

No entanto, é importante ler muito mais


informações sobre o assunto para se
tornar um especialista.
Modelagem de Banco de Dados - Conceitos

Mas veremos esse vídeo que irá


nos orientar no próximo
conhecimento.

https://www.youtube.com/watc
h?v=W2Z1STnjNJo
Modelagem de Banco de Dados - Conceitos

Próxima aula continuaremos com


alguns conceitos importantes.

MER – Modelo de Entidade e


Relacionamento.

DER – Diagrama de Entidade e


Relacionamento.
Modelagem de Banco de Dados - Conceitos

Aula Gravada de
1/09/2020
Temporada 1
Episódio 4
Modelagem de Banco de Dados - Conceitos

Episódio 4

MER – Modelo de Entidade e


Relacionamento.

DER – Diagrama de Entidade e


Relacionamento.
Modelagem de Banco de Dados - Conceitos

Antes de falarmos sobre esses modelos, vamos entender


o nosso papel como DBAs, seus pensamentos e
atividades que irão otimizar o nosso banco de dados.

DBA vem de Database Administrator, ou seja, um


administrador de banco de dados. Este profissional é
responsável por manter o banco de dados seguro, além
de gerenciar, monitorar, efetuar backups, aprimorar a
performance, dentre outras tarefas.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Compreender as Necessidades
das Políticas de Manutenção
de Banco de Dados
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Os bancos de dados, assim como outras


aplicações, necessitam de um cuidado
especial. Esse cuidado exige manutenções
programadas, emergenciais e, até mesmo,
manutenções automatizadas. Assim, em um
ambiente organizado é muito menor a
incidência de problemas não previstos e o
tempo de manutenção melhor controlado e
otimizado.
Nesta Unidade de Aprendizagem, você vai
compreender as necessidades das políticas
de manutenção de banco de dados.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Ao final desta Unidade de Aprendizagem,


você deve apresentar os seguintes
aprendizados:

Reconhecer as necessidades de
manutenção do banco de dados.
Aplicar métodos de manutenção do
banco de dados.
Identificar formas de ofertar a
manutenção do banco de dados.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Vamos iniciar o nosso pensamento sobre esse


episódio do AVA:
Márcia, que é o SysDba da loja Eletrônicos Billy,
depara-se com um imenso problema ocasional: após
determinado número de produtos serem colocados
em promoção no site da loja, percebeu-se que, além
deles, outros produtos também apareciam com
desconto para os clientes, de forma incorreta.
Diversos clientes aproveitaram o "bug" do site da loja
para comprar produtos com valores bem reduzidos.
Considere que cada minuto do site online gera mais
prejuízos para a empresa.
Marcia pode realizar as seguintes operações de
manutenção:
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Com o objetivo de evitar prejuízos para a


empresa, qual o procedimento Márcia
deverá adotar para solucionar o
problema imediatamente? Descreva
como Márcia deve agir considerando as
opções existentes dentro dos conceitos
de manutenção de banco de dados e
justifique o motivo da sua escolha.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Acompanhe o infográfico e compreenda as


necessidades das políticas de manutenção de
banco de dados.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Acompanhe a leitura do capítulo


Compreender as necessidades das
políticas de manutenção de banco de
dados da obra "Administração de Banco
de Dados", no qual você vai ver os
problemas mais comuns ocorridos nos
bancos de dados e as principais rotinas
de manutenção que devem ser feitas
para evitá-los.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Na Dica do Professor, você estudará


aspectos relacionados à manutenção de
banco de dados, tais como as
necessidades do banco de dados, a
manutenção em tabelas, a manutenção
em SGDBs e as políticas de backup.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Veja na prática quais os procedimentos


que o DBA de uma empresa de
tecnologia realiza para cuidar da
manutenção do banco de dados.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Tarefas de um DBA:
Planejar a infraestrutura;
Instalar o SGBD e ferramentas de suporte;
Configurar os componentes físicos e lógicos;
Realizar modificações propostas pelo desenvolvedor;
Criar usuários e definir seus perfis de acesso;
Controlar e monitorar o acesso dos usuários;
Monitorar a performance do banco de dados;
Auditar as atividades no banco de dados;
Suporte à equipe de desenvolvimento;
Implementar a estratégia de Backup e Recovery.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Planejar a infraestrutura
Antes da implantação de um banco de dados, é
importante que o DBA conheça a demanda de
informação da empresa, com a finalidade de
definir uma infraestrutura que a contemple. Isso
irá assegurar um ambiente computacional
compatível com o esperado, evitando surpresas.
Por exemplo, o investimento de hardware e
software pode não suportar a demanda de
recursos do sistema em produção. Também é
importante que o DBA conheça e configure o
sistema operacional de acordo com as
necessidades do sistema gerenciador de banco
de dados (SGBD) utilizado.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Instalar o SGBD e ferramentas de suporte


Além de definir o produto de software e a
plataforma de hardware, o DBA deve cuidar
da instalação e atualização do SGBD. Antes
de uma atualização de versão, é necessário
analisar o impacto que pode ser causado
nos sistemas que utilizam o banco.
Na mesma direção, as ferramentas de
suporte podem ser um diferencial na
qualidade do serviço prestado pelo
administrador. O ideal é escolher um
conjunto de ferramentas que aliviem o DBA
das atividades rotineiras e sujeitas a erro.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Configurar os componentes físicos e


lógicos

O objetivo é reduzir a contenção de


recursos e os gargalos, definindo
corretamente a distribuição de arquivos
físicos do banco, estrutura de tabelas,
tipos de dados, índices, entre outros.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Realizar modificações propostas pelo


desenvolvedor
Em muitos casos a necessidade de alteração no
banco de dados é causada pela falta de
planejamento adequado, sendo uma medida
reativa. Se isso acontecer, o ideal é mapear o
problema como um todo, diminuindo novas
solicitações de alteração no futuro.
Além disso, o DBA, antes de efetuar qualquer
modificação, deve realizar uma análise de
impacto, a fim de não introduzir outras
complicações ao sistema. Vale notar que as
soluções proativas sempre são mais eficientes.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Criar usuários e definir seus perfis de


acesso

Estar de acordo com a política de


segurança da empresa e definir padrões
de acesso que garantam a integridade
dos dados é um requisito para o
administrador. Essa tarefa inclui a
definição dos recursos que cada usuário
poderá acessar.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Controlar e monitorar o acesso dos


usuários

É função do DBA acompanhar e controlar


o acesso aos dados, procurando por
situações atípicas. O objetivo é detectar
possíveis falhas de segurança nas
aplicações ou ações mal intencionadas.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Monitorar a performance do banco de dados


O monitoramento, seja de usuário ou de
performance, é uma atividade diária. Cabe ao
DBA analisar comportamentos não esperados,
incluindo redução de desempenho e consultas
ineficientes, bem como condições gerais do
SGBD e do sistema operacional.
Entre os objetivos dessa rotina está a detecção
de problemas potenciais, como verificar que
existe um número crescente de acessos
simultâneos aos dados. Nesse caso particular, o
administrador deve tomar medidas para diminuir
a degradação da performance de acesso,
evitando uma futura interrupção do sistema.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Auditar as atividades no banco de dados

Entende-se por auditoria, nesse caso,


como a atividade de investigar ações
efetuadas por usuários. Por exemplo,
identificar qual usuário excluiu dados, em
que data, hora e por qual aplicação.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Suporte à equipe de desenvolvimento


Com o domínio do SGBD, o administrador
pode dar suporte aos desenvolvedores, para
que os recursos sejam utilizados de forma
racional. Ele pode atuar na codificação de
consultas consideradas críticas e na
construção de procedimentos armazenados
no banco de dados.
Dependendo do tipo de aplicação, o DBA
pode ter um papel muito próximo do
desenvolvimento, ficando responsável por
todo o back end do sistema.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Implementar a estratégia de Backup e Recovery


Informações como disponibilidade do banco
durante essa atividade, tempo de recuperação
em caso de desastre e período no qual as
informações antigas devem ser mantidas são
alguns entre os diversos parâmetros que o DBA
deve analisar para implantar o sistema de
Backup e Recovery.
Sendo a pessoa responsável pela integridade das
informações da empresa, o administrador deve
se preocupar em efetuar testes regulares sobre o
sistema de backup, comprovando sua eficácia.
Modelagem de Banco de Dados - Conceitos

MER – Modelo de Entidade e


Relacionamento.

DER – Diagrama de Entidade e


Relacionamento.
Modelagem de Banco de Dados - Conceitos

Quando se inicia o desenvolvimento de um novo


sistema, ou mesmo de uma nova funcionalidade
para um sistema existente, um dos primeiros passos a
ser executado é o estudo e levantamento dos
requisitos necessários para a construção do produto
final.
Durante essa análise, identifica-se as principais partes
e objetos envolvidos, suas possíveis ações e
responsabilidades, suas características e como elas
interagem entre si.
A partir das informações obtidas, pode-se
desenvolver um modelo conceitual que será utilizado
para orientar o desenvolvimento propriamente dito,
fornecendo informações sobre os aspectos
relacionados ao domínio do projeto em questão.
Modelagem de Banco de Dados - Conceitos

Modelo Entidade Relacionamento


O Modelo Entidade Relacionamento (também
chamado Modelo ER, ou simplesmente MER), como o
nome sugere, é um modelo conceitual utilizado na
Engenharia de Software para descrever os objetos
(entidades) envolvidos em um domínio de negócios,
com suas características (atributos) e como elas se
relacionam entre si (relacionamentos).
Em geral, este modelo representa de forma abstrata a
estrutura que possuirá o banco de dados da
aplicação. Obviamente, o banco de dados poderá
conter várias outras entidades, tais como chaves e
tabelas intermediárias, que podem só fazer sentido
no contexto de bases de dados relacionais.
Modelagem de Banco de Dados - Conceitos

Observação: Nem sempre criaremos modelos para


um sistema completo, pois isso poderia resultar em
um modelo muito extenso e difícil de interpretar.
Dependendo da magnitude do que estaremos
desenvolvendo, podemos criar modelos apenas para
uma parte do sistema, um módulo, ou mesmo uma
funcionalidade. Imagine, por exemplo, um sistema
ERP de grande porte que contemple vendas,
finanças, recursos humanos, etc.
Várias entidades estão presentes em mais de uma
parte do sistema, mas não seria muito interessante, e
provavelmente nem mesmo necessário, criar um
único modelo para todo o sistema, por isso pode-se
dividir a modelagem em várias partes menores.
Modelagem de Banco de Dados - Conceitos

Entidades
Os objetos ou partes envolvidas um domínio, também
chamados de entidades, podem ser classificados como
físicos ou lógicos, de acordo sua existência no mundo real.
Entidades físicas: são aquelas realmente tangíveis, existentes
e visíveis no mundo real, como um cliente (uma pessoa, uma
empresa) ou um produto (um carro, um computador, uma
roupa).
Já as entidades lógicas são aquelas que existem geralmente
em decorrência da interação entre ou com entidades físicas,
que fazem sentido dentro de um certo domínio de negócios,
mas que no mundo externo/real não são objetos físicos (que
ocupam lugar no espaço). São exemplos disso uma venda
ou uma classificação de um objeto (modelo, espécie,
função de um usuário do sistema).
Modelagem de Banco de Dados - Conceitos

As entidades são nomeadas com


substantivos concretos ou abstratos que
representem de forma clara sua função
dentro do domínio. Exemplos práticos de
entidades comuns em vários sistemas são
Cliente, Produto, Venda, Turma, Função,
entre outros.

Podemos classificar as entidades


segundo o motivo de sua existência:
Modelagem de Banco de Dados - Conceitos

Entidades fortes: são aquelas cuja existência


independe de outras entidades, ou seja, por si só
elas já possuem total sentido de existir. Em um
sistema de vendas, a entidade produto, por
exemplo, independe de quaisquer outras para
existir.
Entidades fracas: ao contrário das entidades
fortes, as fracas são aquelas que dependem de
outras entidades para existirem, pois
individualmente elas não fazem sentido.
Mantendo o mesmo exemplo, a entidade venda
depende da entidade produto, pois uma venda
sem itens não tem sentido.
Modelagem de Banco de Dados - Conceitos

Entidades associativas: esse tipo de entidade surge


quando há a necessidade de associar uma entidade
a um relacionamento existente.
Na modelagem Entidade-Relacionamento não é
possível que um relacionamento seja associado a
uma entidade, então tornamos esse relacionamento
uma entidade associativa, que a partir daí poderá se
relacionar com outras entidades.
Para melhor compreender esse conceito, tomemos
como exemplo uma aplicação de vendas em que
existem as entidades Produto e Venda, que se
relacionam na forma muitos-para-muitos, uma vez
que em uma venda pode haver vários produtos e um
produto pode ser vendido várias vezes (no caso,
unidades diferentes do mesmo produto).
Modelagem de Banco de Dados - Conceitos

Em determinado momento, a empresa passou a


entregar brindes para os clientes que comprassem
um determinado produto. A entidade Brinde, então,
está relacionada não apenas com a Venda, nem
com o Produto, mas sim com o item da venda, ou
seja, com o relacionamento entre as duas entidades
citadas anteriormente.
Como não podemos associar a entidade Brinde com
um relacionamento, criamos então a entidade
associativa "Item da Venda", que contém os atributos
identificadores das entidades Venda e Produto, além
de informações como quantidade e número de série,
para casos específicos. A partir daí, podemos
relacionar o Brinde com o Item da Venda, indicando
que aquele prêmio foi dado ao cliente por comprar
aquele produto especificamente.
Modelagem de Banco de Dados - Conceitos

Relacionamentos
Uma vez que as entidades são identificadas, deve-se
então definir como se dá o relacionamento entre
elas. De acordo com a quantidade de objetos
envolvidos em cada lado do relacionamento,
podemos classifica-los de três formas:
Relacionamento 1..1 (um para um): cada uma das
duas entidades envolvidas referenciam
obrigatoriamente apenas uma unidade da outra. Por
exemplo, em um banco de dados de currículos,
cada usuário cadastrado pode possuir apenas um
currículo na base, ao mesmo tempo em que cada
currículo só pertence a um único usuário cadastrado.
Modelagem de Banco de Dados - Conceitos

Relacionamentos
Relacionamento 1..n ou 1..* (um para muitos): uma
das entidades envolvidas pode referenciar várias
unidades da outra, porém, do outro lado cada uma
das várias unidades referenciadas só pode estar
ligada uma unidade da outra entidade.
Por exemplo, em um sistema de plano de saúde, um
usuário pode ter vários dependentes, mas cada
dependente só pode estar ligado a um usuário
principal. Note que temos apenas duas entidades
envolvidas: usuário e dependente. O que muda é a
quantidade de unidades/exemplares envolvidas de
cada lado.
Modelagem de Banco de Dados - Conceitos

Relacionamentos
Relacionamento n..n ou *..* (muitos para muitos): neste tipo
de relacionamento cada entidade, de ambos os lados,
podem referenciar múltiplas unidades da outra. Por exemplo,
em um sistema de biblioteca, um título pode ser escrito por
vários autores, ao mesmo tempo em que um autor pode
escrever vários títulos.
Assim, um objeto do tipo autor pode referenciar múltiplos
objetos do tipo título, e vice versa.
Os relacionamentos em geral são nomeados com verbos ou
expressões que representam a forma como as entidades
interagem, ou a ação que uma exerce sobre a outra. Essa
nomenclatura pode variar de acordo com a direção em que
se lê o relacionamento. Por exemplo: um autor escreve
vários livros, enquanto um livro é escrito por vários autores.
Modelagem de Banco de Dados - Conceitos

Atributos
Atributos são as características que descrevem cada
entidade dentro do domínio. Por exemplo, um cliente
possui nome, endereço e telefone. Durante a análise
de requisitos, são identificados os atributos relevantes
de cada entidade naquele contexto, de forma a
manter o modelo o mais simples possível e
consequentemente armazenar apenas as
informações que serão úteis futuramente.
Uma pessoa possui atributos pessoais como cor dos
olhos, altura e peso, mas para um sistema que
funcionará em um supermercado, por exemplo, estas
informações dificilmente serão relevantes.
Modelagem de Banco de Dados - Conceitos

Atributos
Os atributos podem ser classificados quanto à sua
função da seguinte forma:
Descritivos: representam característica intrínsecas de
uma entidade, tais como nome ou cor.
Nominativos: além de serem também descritivos,
estes têm a função de definir e identificar um objeto.
Nome, código, número são exemplos de atributos
nominativos.
Referenciais: representam a ligação de uma
entidade com outra em um relacionamento. Por
exemplo, uma venda possui o CPF do cliente, que a
relaciona com a entidade cliente.
Modelagem de Banco de Dados - Conceitos

Atributos
Quanto à sua estrutura, podemos ainda classificá-los como:
Simples: um único atributo define uma característica da entidade.
Exemplos: nome, peso.
Compostos: para definir uma informação da entidade, são usados vários
atributos. Por exemplo, o endereço pode ser composto por rua, número,
bairro, etc.
Alguns atributos representam valores únicos que identificam a entidade
dentro do domínio e não podem se repetir. Em um cadastro de clientes,
por exemplo, esse atributo poderia ser o CPF. A estes chamamos de
Chave Primária.
Já os atributos referenciais são chamados de Chave Estrangeira e
geralmente estão ligados à chave primária da outra entidade. Estes
termos são bastante comuns no contexto de bancos de dados.
Mantendo o exemplo anterior, a entidade cliente tem como chave
primária seu CPF, assim, a venda possui também um campo “CPF do
cliente” que se relaciona com o campo CPF da entidade cliente.
Compreender as Necessidades das Políticas de Manutenção de Banco
de Dados

Para a próximo episódio, veremos com


detalhes o modelo DER e os refinamentos
que precisamos entender para a
administração de um banco de dados.
Modelagem de Banco de Dados - Conceitos

Aula Gravada de 8/09/2020


Temporada 2
Episódio 1
Modelagem de Banco de Dados - Conceitos

Temporada 2
Episódio 1

DER – Diagrama de Entidade e


Relacionamento.
Modelagem de Banco de Dados - Conceitos

Conceito de diagrama entidade relacionamento DER

Um diagrama entidade relacionamento (ER) é um tipo de fluxograma


que ilustra como “entidades”, p. ex., pessoas, objetos ou conceitos,
se relacionam entre si dentro de um sistema.

Diagramas ER são mais utilizados para projetar ou depurar bancos de


dados relacionais nas áreas de engenharia de software, sistemas de
informações empresariais, educação e pesquisa. Também
conhecidos como DERs, ou modelos ER, usam um conjunto definido
de símbolos, tais como retângulos, diamantes, ovais e linhas de
conexão para representar a interconectividade de entidades,
relacionamentos e seus atributos.

Eles espelham estruturas gramaticais, onde entidades são


substantivos e relacionamentos são verbos.
Modelagem de Banco de Dados - Conceitos

.
Modelagem de Banco de Dados - Conceitos

Diagramas ER estão relacionados com


diagramas de estrutura de dados (DEDs),
que incidem sobre as relações de
elementos dentro de entidades em vez de
relações entre as próprias entidades.

Diagramas ER são também muitas vezes


utilizados junto com diagramas de fluxo de
dados (DFDs), que mapeiam o fluxo de
informações para processos ou sistemas.
Modelagem de Banco de Dados - Conceitos
Modelagem de Banco de Dados - Conceitos

Histórico de modelos ER

Peter Chen (também conhecido como Peter Pin-Shan Chen),


atualmente membro do corpo docente da Carnegie-Mellon
University, em Pittsburgh, EUA, desenvolveu a modelagem ER
para o design de bancos de dados na década de 1970.
Enquanto professor assistente na Sloan School of Management,
do MIT, Peter publicou um artigo inovador em 1976 intitulado
“O Modelo entidade relacionamento: uma visão unificada de
dados” (em tradução livre).

Num sentido mais amplo, a representação da


interconectividade das coisas remonta à Grécia antiga, com
as obras de Aristóteles, Sócrates e Platão. Mais recentemente,
é representada em trabalhos do século 19 e 20 de filósofos-
lógicos como Charles Sanders Peirce e Gottlob Frege.
Modelagem de Banco de Dados - Conceitos

Na década de 1960 e 70, Charles Bachman


(acima) e A.P.G. Brown trabalhavam a
abordagem de Peter Chen. Bachman
desenvolveu um tipo de diagrama de estrutura
de dados, batizado de diagrama de Bachman.
Brown publicou trabalhos sobre modelagens de
sistemas do mundo real. James Martin
acrescentou refinamentos aos DERs. Os trabalhos
de Chen, Bachman, Brown, Martin e outros
também contribuíram para o desenvolvimento
da Linguagem de modelagem unificada (UML,
Unified Modeling Language, em inglês),
amplamente utilizada em design de software.
Modelagem de Banco de Dados - Conceitos

Usos de diagramas entidade relacionamento

Design de banco de dados: diagramas ER são usados para modelar


e criar bancos de dados relacionais, em termos de regras lógicas e
de negócio (em um modelo lógico de dados) e em termos da
tecnologia específica a ser implementada (em um modelo físico de
dados.) Na engenharia de software, um diagrama ER é muitas vezes
um passo inicial na determinação de requisitos para um projeto de
sistemas da informação. Também é usado para modelar certos
bancos de dados. Um banco de dados relacional possui uma tabela
relacional equivalente, e pode potencialmente ser expressado dessa
forma, conforme necessário.

Solução de problemas de bancos de dados: diagramas ER são


usados para analisar bancos de dados existentes para encontrar e
resolver problemas de lógica ou de implementação. Ao desenhar o
diagrama, o erro deverá ser revelado.
Modelagem de Banco de Dados - Conceitos

Usos de diagramas entidade relacionamento


Sistemas de informação de negócios: os diagramas são usados para
criar ou analisar bancos de dados relacionais utilizados em processos de
negócios. Qualquer processo de negócio que use dados padronizados
envolvendo entidades, ações e interação pode potencialmente se
beneficiar de um banco de dados relacional. Ele pode agilizar os
processos, revelar informações mais facilmente e melhorar os resultados.
Reengenharia de processos de negócio (RPN): diagramas ER ajudam na
análise de bancos de dados utilizados na reengenharia de processos de
negócio e na modelagem de uma nova configuração de bancos de
dados.
Educação: bancos de dados são o método atual de armazenamento de
informação relacional para fins educacionais e sua posterior
recuperação. Portanto, diagramas ER podem ajudar no planejamento
dessas estruturas de dados.
Pesquisa: como muitas pesquisas baseiam-se em dados estruturados,
diagramas ER podem desempenhar um papel fundamental na criação
de bancos de dados úteis para analisar dados.
Modelagem de Banco de Dados - Conceitos

Componentes e funcionalidades de um
diagrama ER
Diagramas ER são compostos de entidades,
relacionamentos e atributos. Eles também
descrevem a cardinalidade, que define as
relações em termos de números:
Entidade
Algo que pode ser definido e que pode ter dados
armazenados sobre ele como uma pessoa, um
objeto, conceito ou evento. Pense em entidades
como substantivos. Exemplos: um cliente,
estudante, carro ou produto. Normalmente
representado como um retângulo.
Modelagem de Banco de Dados - Conceitos

Entidade
Modelagem de Banco de Dados - Conceitos

Tipo de entidade: um grupo de coisas definíveis, como estudantes ou


atletas, ao passo que a entidade seria um estudante ou atleta
específico. Outros exemplos: clientes, carros ou produtos.

Conjunto de entidade: assim como um tipo de entidade, mas


definido em um determinado ponto no tempo, tal como estudantes
matriculados em um curso no primeiro dia de aula. Outros exemplos:
clientes que fizeram compras no mês passado, carros atualmente
registrados na Flórida. Um termo relacionado é ‘instância’, em que a
pessoa ou carro específico seria uma instância do conjunto de
entidade.

Categorias de entidades: entidades são categorizadas como forte,


fraca ou associativa. Uma entidade forte pode ser definida
unicamente pelos seus próprios atributos, enquanto uma entidade
fraca não pode. Uma entidade associativa junta entidades (ou
elementos) dentro de um conjunto de entidades.
Modelagem de Banco de Dados - Conceitos
Modelagem de Banco de Dados - Conceitos

Chaves de entidades:

Refere-se a um atributo que define exclusivamente uma entidade


dentro de um conjunto de entidades. Chaves de entidades podem
ser super, candidata ou primária. Superchave: um conjunto de
atributos (um ou mais) que, juntos, definem uma entidade em um
conjunto de entidades.

Chave candidata: uma superchave mínima, o que significa que tem


o menor número possível de atributos para ser uma superchave. Um
conjunto de entidades pode ter mais de uma chave candidata.

Chave primária: uma chave candidata escolhida pelo designer do


banco de dados para identificar exclusivamente o conjunto de
entidades. Chave estrangeira: identifica o relacionamento entre
entidades.
Modelagem de Banco de Dados - Conceitos

Relacionamento

Como entidades atuam umas sobre as outras ou estão associadas


uma com a outra. Pense em relacionamentos como verbos. Por
exemplo, o estudante pode se inscrever em um curso. As duas
entidades seriam o aluno e o curso, e o relacionamento descrito é o
ato de matricular-se, assim conectando as duas entidades.
Relacionamentos são tipicamente representados por diamantes ou
etiquetas diretamente sobre as linhas de ligação.

Relacionamento recursivo: a mesma entidade participa mais de uma


vez na relação.
Modelagem de Banco de Dados - Conceitos

Atributo

A propriedade ou característica de uma


entidade, muitas vezes representada por um oval
ou círculo.
Modelagem de Banco de Dados - Conceitos

Cardinalidade

Define os atributos numéricos da relação entre duas entidades ou


conjuntos de entidades. Os três principais relacionamentos cardinais
são um-para-um, um-para-muitos e muitos-para-muitos. Um
exemplo de um-para-um seria um estudante associado a um
endereço de correspondência. Um exemplo de um-para-muitos (ou
muitos-para-um, dependendo do sentido da relação): um estudante
se inscreve para vários cursos, mas todos esses cursos têm uma
única linha que leva de volta ao aluno.

Exemplo de muitos-para-muitos: estudantes como um grupo são


associados a vários membros do corpo docente, e membros do
corpo docente, por sua vez, são associados a vários alunos.
Modelagem de Banco de Dados - Conceitos

Cardinalidade
Modelagem de Banco de Dados - Conceitos

Mapeamento de linguagem natural


Componentes de ER podem ser equiparados a partes do
discurso, como demonstrado por Peter Chen. Isso mostra
como um diagrama ER se compara a um diagrama de
gramática:
Substantivo comum: tipo de entidade. Exemplo: estudante.
Nome próprio: entidade. Exemplo: Sally Smith.
Verbo: tipo de relacionamento. Exemplo: matricula-se. (Tal
como em um curso, o que seria um outro tipo de entidade.)
Adjetivo: atributo para a entidade. Exemplo: aluno do segundo
ano.
Advérbio: atributo para o relacionamento. Exemplo:
digitalmente.
Modelagem de Banco de Dados - Conceitos

Na próxima
aula,
veremos:
Ferramentas para
desenvolvimento
de modelagem de
dados.

MySQL
Workbench
Modelagem de Banco de Dados - Conceitos

Aula Gravada de 15/09/2020


Temporada 2
Episódio 2
Modelagem de Banco de Dados - Conceitos

Temporada 2
Episódio 2

Ferramentas para desenvolvimento


de modelagem de dados.

MySQL Workbench
Modelagem de Banco de Dados - Conceitos

Você já fez a modelagem completa do seu


Banco de Dados? E o projeto? Já sabe todos
os relacionamentos existentes entre as
tabelas? Como o seu sistema irá se
comportar? Quais são as chaves primárias?
Essa lista vai longe. Pois é…
É BÁSICO, FUNDAMENTAL e ESSENCIAL ter o
seu banco de dados modelado através de um
diagrama ER. Isso que diferencia os
profissionais dos amadores. Se você não fizer
a modelagem do seu sistema, eu tenho
certeza que o DBA ou desenvolvedor que
herdar o seu projeto irá usar o seu nome em
conjunto com termos proibidos.
Modelagem de Banco de Dados - Conceitos

Ninguém quer ser lembrado como o cara que


construiu o banco de dados da gambiarra né?
Portanto, faça um diagrama ER, realize o
planejamento do seu Banco de Dados antes de
executar qualquer comando CREATE.
“Ahhh, mas vai dar muito trabalho!”
Não, é mais fácil do que parece! Hoje em dia,
existem diversas ferramentas gratuitas e pagas
para desenvolver diagramas ER que irão facilitar
muito a sua vida. Contudo, muitos
desenvolvedores, DBAs e gerentes de projetos
ainda possuem muitas dúvidas sobre qual
ferramenta utilizar na etapa de diagramação ER,
de um projeto de banco de dados.
Modelagem de Banco de Dados - Conceitos

Vamos listar as 5 principais ferramentas


que você pode utilizar para construir
diagramas ER em seu próximo projeto:
Modelagem de Banco de Dados - Conceitos

1. MySQL Workbench:
Desenvolvida exclusivamente para se trabalhar com o
SGBD MySQL, é uma das ferramentas gratuitas mais
conhecidas e mais utilizadas para quem trabalha com
este SGBD, tanto para modelagem ER, como para
execução de scripts SQL.
Sua principal característica é a facilidade de se trabalhar
com o SGBD MySql, onde seu foco está na modelagem
física. É a ferramenta ideal para pequenos e médios
projetos, bem como, para quem está iniciando ou já tem
experiência com modelagem de banco de dados.
A ferramenta possui versões para os sistemas Windows,
Linux e Mac e pode ser baixada através do site oficial do
MySQL.
Modelagem de Banco de Dados - Conceitos
Modelagem de Banco de Dados - Conceitos

2. Astah Professional
O Astah é muito conhecido por
desenvolvedores Java e por aqueles que
trabalham com UML. A ferramenta,
atualmente, disponibiliza duas versões:
Professional (paga)
Community (gratuita)
É ideal para profissionais que já estão
inseridos no mundo Java e, por sua vez,
não desejam migrar de ferramenta apenas
para elaborar o diagrama ER.
Modelagem de Banco de Dados - Conceitos

2. Astah Professional
Além disso, é uma ferramenta bastante útil para quem
deseja trabalhar também com outros tipos de diagramas,
como o de casos de uso ou diagrama de classes.
Infelizmente, com essa ferramenta, os diagramas ER só
podem ser criados na versão professional…
… mas se você é estudante universitário, poderá tentar
uma licença por um período gratuito estendido ou baixar
o “famoso” trial. O Astah está disponível para sistemas
Windows, Linux e Mac.
Para mais informações e download, visite o site oficial do
Astah
Modelagem de Banco de Dados - Conceitos
Modelagem de Banco de Dados - Conceitos

3. DBDesigner 4
Se você está buscando por alguma ferramenta
alternativa e gratuita porque achou o MySQL Workbench
muito complexo ou deseja simplesmente explorar
ferramentas novas, o DBDesigner 4 é perfeito para você.
Também desenvolvido para projetos voltados ao MySQL,
ele basicamente é o antecessor do MySQL Workbench.
Trata-se de uma ferramenta mais simples e fácil de utilizar
para modelagem ER, é ideal para quem está iniciando e
deseja uma ferramenta voltada apenas para
modelagem de banco de dados.
Também está disponível para Windows, Linux e Mac.
Para mais informações e download, acesse o site do
fabricante.
Modelagem de Banco de Dados - Conceitos
Modelagem de Banco de Dados - Conceitos

4. SQL Power Architect


Para agregarmos peso a nossa lista de
ferramentas, nada mais justo que citarmos o
SQL Power Architect. Além do nome que
carrega, a ferramenta realmente é “power”.
Trata-se de uma ferramenta extremamente
poderosa para se trabalhar com modelagem
de dados. É voltada para projetos grandes,
em termos de modelagem ER, a ferramenta
faz basicamente tudo o que você precisar (na
versão paga, é claro).
Modelagem de Banco de Dados - Conceitos

4. SQL Power Architect


O SQL Power Architect trabalha com os
principais SGBDs (PostgreSQL, Oracle, MS SQL,
MySQL e mais). Se você está ou irá trabalhar
em um projeto gigante, vale a pena conferir
esta ferramenta que possui uma versão
gratuita e três versões pagas.
Como os outros, também está disponível para
Windows, Linux e Mac.
Para mais informações sobre o SQL Power
Architect, acesse o site oficial.
Modelagem de Banco de Dados - Conceitos
Modelagem de Banco de Dados - Conceitos

5. Draw.io

E por último, mas não menos importante, a


ferramenta utilizada em nosso curso de
Banco de Dados e linguagem SQL, o
draw.io.

Trata-se de uma ferramenta web de fácil


acesso e utilizada para o desenvolvimento
de diversos diagramas (incluindo,
obviamente, o diagrama ER).
Modelagem de Banco de Dados - Conceitos

5. Draw.io
Talvez não seja uma ferramenta tão
conhecida quanto as demais apresentadas,
mas ela se destaca justamente pela sua
facilidade de uso e acesso, onde não há a
necessidade de realizar downloads, podendo
ser utilizada de qualquer ambiente, o único
requisito para acessá-la é ter internet,
portanto, salve nos seus favoritos, pois você
poderá precisar dela em algum momento
futuro.
Essa ferramenta está disponível a todos
através do site oficial do draw.io
Modelagem de Banco de Dados - Conceitos
Modelagem de Banco de Dados - Conceitos

Qual é a melhor ferramenta?


Voltando às ferramentas, não há A MELHOR
FERRAMENTA! Tudo irá depender do seu
projeto:
Você é iniciante e está trabalhando com o
SGBD MySQL, opte pelo tradicional MySQL
Workbench;
Cansou do MySQL Workbench e quer algo
mais simples, dê uma chance ao
DBDesigner 4;
Modelagem de Banco de Dados - Conceitos

Qual é a melhor ferramenta?


Já desenvolve em Java há anos e não
pensa em mudar, use o Astah;
Você acaba de ser incluído em um projeto
gigantesco, em Oracle ou qualquer outro
SGBD, opte pelo SQL Power Architect e não
se arrependa;
Está em busca de uma ferramenta de
acesso rápido e com excelentes
funcionalidades na web, draw.io é a sua
ferramenta!.
Modelagem de Banco de Dados - Conceitos

Sendo assim, fica a dica:

Identifique as reais necessidades do


seu projeto e busque a ferramenta que
melhor supre essas necessidades. Você
não precisa escolher sempre a mais
completa, muitas vezes, isso irá
atrapalhar mais do que ajudar.
Modelagem de Banco de Dados - Conceitos

Vamos passo a passo criar um ER


dentro do MySQL Workbench.
Modelagem de Banco de Dados - Conceitos

Passo 1 – Tela Inicial


Modelagem de Banco de Dados - Conceitos

Passo 2.

Duplo click para


mudar o nome do
Banco de Dados

Mudar o nome do
Banco de Dados
Modelagem de Banco de Dados - Conceitos

Passo 3. Criar as tabelas,


campos e atributos
Modelagem de Banco de Dados - Conceitos

Passo 4.

Criar os campos e
atributos
Modelagem de Banco de Dados - Conceitos

Passo 5.

Criar um nova ER
Modelagem de Banco de Dados - Conceitos

Passo 6.

Arrastar as tabelas
para dentro do
espaço em branco
Selecionar a
relação e unir as
tabelas
Modelagem de Banco de Dados - Conceitos

Ah está ficando bem legal né?

Na próxima aula estaremos


conectando o nosso banco de
dados e fazendo as primeiras
inserções de dados.
Modelagem de Banco de Dados - Conceitos

Aula Gravada de 22/09/2020


Temporada 2
Episódio 3
Modelagem de Banco de Dados - Conceitos

Temporada 2
Episódio 3
Neste aula estaremos conectando o
nosso banco de dados e fazendo as
primeiras inserções de dados, mas
antes devemos aprender a criar e
conectar o nosso primeiro banco de
dados com as ferramentas
adequadas.
Modelagem de Banco de Dados - Conceitos

Seguindo uma sequencia de


aprendizado, vamos utilizar além do
MySQL Workbench, o XAMPP.
Modelagem de Banco de Dados - Conceitos

O XAMPP é um pacote com os principais


servidores de código aberto do mercado,
incluindo FTP, banco de dados MySQL e
Apache com suporte as linguagens PHP e Perl.
Com ele, é possível rodar sistemas como
WordPress e Drupal localmente, o que facilita
e agiliza o desenvolvimento. Como o
conteúdo estará armazenado numa rede
local, o acesso aos arquivos é realizado
instantaneamente.
O pacote de servidores é baixado cerca de
600 mil vezes por mês, de acordo com dados
do SourceForge.
Modelagem de Banco de Dados - Conceitos

Atualmente, o XAMPP está disponível


para quatro sistemas operacionais:
Windows, Linux, Mac OS X e Solaris. Não é
necessário instalá-lo: basta extrair o
arquivo compactado (de preferência
para a pasta raiz do seu disco rígido ou
um local de fácil acesso) e executar o
aplicativo que inicia os servidores.
No Windows, o executável possui o nome
xampp_start.exe. Um painel de controle
(xampp-control-3-beta.exe) também fica
disponível e permite iniciar ou parar
servidores individuais.
Modelagem de Banco de Dados - Conceitos
Modelagem de Banco de Dados - Conceitos

Iniciaremos a conexão dos Bancos


MySql instalando primeiramente o
seguinte esse aplicativo.

Baixar o XAMPP
Você pode baixar sua última versão
no site do Apache:
www.apachefriends.org
Modelagem de Banco de Dados - Conceitos

Nessa
aplicação,
vc terá as
ferramentas
necessárias
para a
conexão
dos nossos
bancos de
dados.
Modelagem de Banco de Dados - Conceitos

Depois de baixar, inicie a instalação


e no final irá aparecer uma tela
para vc ativar os serviços
necessários, por exemplo:
Modelagem de Banco de Dados - Conceitos

Caso exista algum conflito


de portas, vc deve verificar
se alguma aplicação está
usando a mesma

Percebam que está em


verde demonstrando que o
serviço está ativo
Modelagem de Banco de Dados - Conceitos

Feito isso vamos agora fazer a nossa


primeira conexão.
Dar o
nome da
conexão

As informações circuladas são padrão e após é


só clicar em Ok, que ficará da sequinte forma.
Modelagem de Banco de Dados - Conceitos

Duplo click na conexão e vamos criar o nosso


Banco.
Modelagem de Banco de Dados - Conceitos

Confirma.
Modelagem de Banco de Dados - Conceitos

Click com o botão direito para criar um novo


Schema
Modelagem de Banco de Dados - Conceitos

Altere o nome do Banco e tecle em Apply


Modelagem de Banco de Dados - Conceitos

Apply novamente.
Modelagem de Banco de Dados - Conceitos

Finish.
Modelagem de Banco de Dados - Conceitos
Modelagem de Banco de Dados - Conceitos

Vamos verificar agora no XAMPP, clicando agora no


Admin
Modelagem de Banco de Dados - Conceitos

Perfeito !!!!
Modelagem de Banco de Dados - Conceitos

Agora vamos criar um banco de dados a partir do


MySql
Para executar a criação do banco, clique neste
símbolo e acompanhe as mensagens abaixo.
Modelagem de Banco de Dados - Conceitos

Muito simples não é ????.

Na próxima aula veremos como


criar tabelas e campos
Modelagem e Organização de Dados

Bons Estudos e até a nossa aula síncrona


sobre esse conteúdo.

Você também pode gostar