Você está na página 1de 237

inteligência

Herman Hollerith
Cartão perfurado
Pessoas arquivando informações
Arquivos
Arquivo de aço
Sistemas de informação
Banco computadorizado
Edgar Frank Codd
Dr. Peter Chen
Componentes de um
sistema de banco de
dados
Cliente-server
NoSQL
https://db-engines.com/en/ranking
MODELAGEM DE DADOS

PROFESSOR: MÁRIO DE JESUS

Professor: Mário de Jesus


INTRODUÇÃO
⬡ Banco de Dados ou Base de Dados (BD) é uma coleção de dados relacionados
entre si. Com dados queremos dizer fatos conhecidos que podem ser
armazenados e possuem um significado implícito.
⬡ Exemplo (simples): coleção de nomes das pessoas que você conhece,
juntamente com o endereço e telefone de cada uma delas (podem ser
armazenados em uma agenda ou em um computador).
⬡ Outro exemplo (um pouco mais complexo): coleção de todas as fotos recolhidas
ao longo dos anos pelo programa espacial americano.

2
INTRODUÇÃO
⬡ Representa algum aspecto do mundo real;
⬡ Coleção logicamente coerente de dados com um significado inerente;
⬡ Projetado, construído e preenchido (instanciado) com dados para um propósito
específico. A ele está relacionado um grupo de usuários e aplicações de
interesse a esses usuários. Em outras palavras, um BD possui alguma fonte de
onde os dados são obtidos, um grau de iteração com eventos do mundo real e
um grupo de pessoas interessados no seu conteúdo.

3
HISTÓRIA
⬡ Antigamente as empresas armazenavam dados em fichas de papel que eram
organizadas em arquivos físicos através de pastas.

⬡ Extrair informações e manter esses arquivos organizado era uma tarefa muito
custosa. Além disso o acesso à informação dependia da localização geográfica
dos arquivos.

⬡ Enfim esses arquivos físicos evoluíram para arquivos digitais.

4
BD E SGBD
⬡ Banco de dados é uma coleção de dados inter-relacionados, representando
informações sobre um domínio específico.
Exemplos: Lista telefônica, controle do acervo de uma biblioteca, sistema de
controle dos recursos humanos de uma empresa.
SGBD (Sistema de Gerenciamento de Banco de dados) é um software com
recursos específicos para facilitar a manipulação das informações dos dados e o
desenvolvimento de programas aplicativos.
Um sistema de gerência de banco de dados (SGBD) é uma coleção de
programas que permite que usuários criem e mantenham bancos de dados.
5
BD E SGBD

6
EXEMPLOS DE SGBD

7
ESTRUTURA DE BANCO DE DADOS

⬡ Dado

8
ESTRUTURA DE BANCO DE DADOS - DADO
⬡ Dados podem ser considerados como fatos brutos, ou seja, que não são
apresentados de forma significativa e útil.
⬡ Os dados podem consistir em números, palavras ou imagens, as medições e
observações de um conjunto de variáveis; informações, registo que identifica
alguma coisa tanto objeto ou animal que não é o suficiente para uma tomada
de decisão
⬡ Também podemos descrever dado como elemento ou quantidade conhecida,
que serve de base à resolução de um problema, ou seja, elemento de
informação
9
ESTRUTURA DE BANCO DE DADOS

⬡ Informação

10
ESTRUTURA DE BANCO DE DADOS - INFORMAÇÃO

⬡ É o resultado do processamento, manipulação e


organização de dados, de tal forma que represente
uma modificação quantitativa, ou qualitativa no
conhecimento do sistema de pessoa, animal ou máquina
que a recebe.

11
ESTRUTURA DE BANCO DE DADOS - DADO X INFORMAÇÃO

12
ESTRUTURA DE BANCO DE DADOS - ENTIDADE
⬡ É um objeto que existe e é distinguível de outros objetos, tem algum significado, e
sobre o qual é necessário guardar informação.

⬡ As entidade representam objetos do mundo real e pode ser concreta, como uma
pessoa ou um livro, ou pode ser abstrata, como uma venda, um feriado ou um
conceito.

⬡ Podemos dizer que uma entidade é tudo que possamos definir através de
atributos
13
ESTRUTURA DE BANCO DE DADOS - ATRIBUTO
⬡ Uma entidade é representada por um conjunto de atributos.

⬡ Formalmente, um atributo é uma função que mapeia um conjunto


de entidades. Portanto, toda entidade é descrita por um conjunto
de pares (atributo, valor do atributo), sendo um par para cada
atributo do conjunto de entidades.

14
ESTRUTURA DE BANCO DE DADOS - ATRIBUTO
⬡ Uma entidade cliente é descrita pelo conjunto {(nome, Paulo Silva), (cpf,
123.456.789-00), (rua, XV de Novembro), (cidade, Campinas)}, que significa que
a entidade descreve uma pessoa chamada Paulo Silva, cujo CPF é
123.456.789-00, residente à rua XV de Novembro, em Campinas.

⬡ Possíveis atributos do conjunto de entidades cliente podem ser nome-


cliente, cpf, rua e cidade-cliente.

⬡ Possíveis atributos do conjunto de entidade conta são número-conta e saldo


15
ESTRUTURA DE BANCO DE DADOS - MINIMUNDO
⬡ Um banco de dados representa algum aspecto do mundo real, às vezes
chamado de minimundo ou de universo de discurso (UoD – Universe of
Discourse).”
⬡ Minimundo ou Universo de Discurso é a representação abstrata de uma
pequena parte do mundo real, que é de grande interesse para uma aplicação.

⬡ É o “problema” que devemos informatizar. É de vital importância conseguirmos


destrinchar o nosso minimundo de forma que consigamos extrair apenas as
informações mais importantes para a aplicação. 16
OBJETOS DO BANCO DE DADOS
⬡ Quando falamos de banco de dados, podemos descrever os objetos de duas
formas bem distintas, mas que são basicamente a mesma coisa.
⬡ Para entender do que estamos falando, precisamos compreender os seguintes
itens:
⬡ TABELA, COLUNA e LINHA.
⬡ Tabela = entidade
⬡ Coluna = atributo
⬡ Linha = Registro ou Tupla
⬡ Dados = Valor de atributo 17
OBJETOS DO BANCO DE DADOS
⬡ Tabela – É um conjunto de dados dispostos em número infinitos de colunas e número
ilimitados de linhas.

⬡ Coluna - São tipicamente consideradas os campos da tabela, e caracterizam os tipos de


dados que deverão constar na tabela (numéricos, alfanuméricos, datas, coordenadas, etc.).
O número de linhas pode ser interpretado como o número de combinações de valores dos
campos da tabela, e pode conter linhas idênticas, dependendo do objetivo.

⬡ Linha - Também chamado de registro. Cada linha formada por uma lista ordenada de
colunas representa um registro, ou tupla.
18
OBJETOS DO BANCO DE DADOS - NULIDADE
⬡ Os registros não precisam conter dados em todas as colunas, podendo assumir
valores nulos(null) quando assim se fizer necessário.

⬡ O que é NULL?

⬡ NULL em banco de dados é usado quando um dado a ser cadastrado é


desconhecida ou não é aplicável.

19
OBJETOS DO BANCO DE DADOS – NULIDADE (NULL)
⬡ Na tabela abaixo temos alguns exemplos de quando usar e quando não usar NULL:

20
OBSERVAÇÕES SOBRE NULIDADE(NULL)
⬡ – NULL não é zero: Azimute tem 0 filhos, porém para Josemar essa informação é
desconhecida. Então usamos NULL

⬡ – NULL não é espaço em branco: Espaço em branco é o que temos na observação de


Azimute entre as palavras “atualizar” e “telefone”. O caractere espaço é um caractere
como qualquer outra letra, já a expressão NULL significa vazio.

⬡ – NULL não é ausência de caracteres: A observação de Josemar está em branco. É como


se tivesse sido preenchida e depois apagada. A observação de Jonival, no entanto, está
vazia, ou nula.

⬡ – NULL é palavra chave: Null deve ser escrito sem aspas, pois se escrito com aspas será
entendido como um texto qualquer. 21
OBJETOS DO BANCO DE DADOS
⬡ Pra entendermos esses objetos apresentados, se faz a seguinte constatação:
⬡ Tabelas = entidades
⬡ Atributos = colunas
⬡ Valor de atributo = dado (O dado é inserido no cruzamento da linha com a
coluna. Sendo assim, na célula)
⬡ Registro ou tupla = Informação (Uma linha horizontal com os dados inseridos)

22
BANCO DE DADOS – CHAVE
⬡ As tabelas relacionam-se umas as outras através de chaves. Uma chave é um
conjunto de um ou mais atributos que determinam a unicidade de cada
registro.

⬡ Por exemplo, se um banco de dados tem como chaves Código do Produto e ID


Sistema, sempre que acontecer uma inserção de dados o sistema de
gerenciamento de banco de dados irá fazer uma consulta para identificar se
o registro já não se encontra gravado na tabela. Neste caso, um novo registro
não será criado, resultando esta operação apenas da alteração do registro
existente. 23
BANCO DE DADOS – CHAVE PRIMARIA
⬡ (PK - Primary Key) é um identificador exclusivo de todas as informações de cada
registro dando-lhe unicidade. A chave primária nunca se repetirá.
⬡ Cada registro, ou tupla, deverá conter um atributo com valor único para identificar
de forma exclusiva essa linha.

24
BANCO DE DADOS – CHAVE PRIMARIA
⬡ O modelo anterior apresenta uma chave primaria que foi definida pelo usuário,
por isso o exemplo P1 e P2. Porém, e fortemente recomendado que na
elaboração do banco de dados, tal elemento seja definido como auto
incrementável e deixado a cargo do próprio SGBD para ser gerenciado. Assim,
evita se que ocorra inconsistência de dados.

25
BANCO DE DADOS – CHAVE ESTRANGEIRA
⬡ (FK - Foreign Key) é a chave formada através de um relacionamento com a chave
primária de outra tabela. Define um relacionamento entre as tabelas e pode
ocorrer repetidas vezes.

26
REFERÊNCIAS
• VEIGA, F.J.D.A., (2006) - Evolução dos sistemas de informação, Departamento de Engenharia
Informática – FCTUC.

• Alves, W.P., (2014) – Banco de dados, 1° Edição, São Paulo, Editora Erica.

• Ricardo, (2006) – História dos bancos de dados – DevMedia.

• DATE, C. J. Projeto de Banco de Dados e Teoria Relacional: Formas Normais e Tudo o Mais. São
Paulo: Novatec, 2015.

• ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados: Fundamentos e Aplicações. 7 ed. São
Paulo: Pearson, 2019.
MODELAGEM DE DADOS

PROFESSOR: MÁRIO DE JESUS

Professor: Mário de Jesus


PROJETO DE BANCO DE DADOS
PROJETO DE BANCO DE DADOS
RESUMO DAS ETAPAS PROJETO DE BD
1°) Modelo conceitual: Entender o
que está sendo pedido na
abstração e gerar o desenho (DER)

2°) Modelo Lógico: Definir os


RESUMO
dados, funções e regras com o
(MER)
DAS ETAPAS
PROJETO BD
3°) Modelo Físico: Implementar em
um banco de dados
MODELO CONCEITUAL
MODELO CONCEITUAL
O modelo conceitual utiliza a análise de requisitos por base, sendo
um grupo de hipóteses que leva em conta os aspectos do mundo real,
indicando as regras de negócio do sistema.

O modelo conceitual deve implementar um sistema que possua


informações precisas e alinhadas ao projeto de desenvolvimento de
um programa específico, atendendo, assim, à finalidade do cliente.
MODELO CONCEITUAL NÃO FOCA EM:
TÉCNICAS DO MODELO CONCEITUAL
TÉCNICA PARA CONSTRUIR
MODELOS CONCEITUAIS DE BASE
DE DADOS
- Técnica de modelagem de dados mais
difundida e utilizada.

- Criada em 1976 por Peter Chen.

- O Modelo Relacional (ER) é


representado graficamente pelo
Diagrama Entidade Relacionamento (DER).
ENTIDADE
ENTIDADES
- Formam um conjunto de “coisas” com conceitos comuns às quais
desejamos armazenar os dados.
- Entidades podem ser pessoas, lugares, organizações, objetos
físicos, entre outros. Podendo ser concreta como pessoa, livro ou
abstrata como venda ou feriado.
- As entidades são representadas através de um retângulo com o
nome da entidade escrito em seu centro.
ENTIDADE
Representada por meio de um retângulo.
Retângulo contém o nome da entidade.
Para referir um objeto particular fala-se em instância ou
ocorrência da entidade.
ENTIDADES FORTES E ENTIDADES FRACAS

As entidades fortes possuem um alto grau de independência de existência de identificação.


Geralmente, outras entidades podem depender dela para serem identificadas.

As entidades fracas possuem dependência de existência e/ou identificação. São sempre


ligadas a outras tabelas através de relacionamentos. Podemos tomar como exemplo a
entidade “AGENCIA”, onde a existência e identificação da mesma estão vinculadas a outra
entidade forte, no caso o “BANCO”
ATRIBUTO
ATRIBUTOS
Dados ou informações que são
associados a cada ocorrência de uma
entidade ou de um relacionamento.
TIPOS DE ATRIBUTOS
Há alguns tipos de atributos especiais usados para
demonstrar a estrutura das informações que eles
representam de modo a facilitar a busca dessas
informações ou o relacionamento entre as entidades.

São eles:

- Simples; Composto; Multivalorado; Determinante;


ATRIBUTO SIMPLES
Não possui qualquer característica especial. A maioria dos
atributos serão simples. Quando um atributo não é composto, recebe
um valor único como nome, por exemplo e não é um atributo chave,
então ele será atributo simples.

A maioria dos atributos são considerados simples.


ATRIBUTO COMPOSTO
O seu conteúdo é formado por vários itens menores.
Exemplo: Endereço. Seu conteúdo poderá ser dividido em vários outros atributos,
como: Rua, Número, Complemento, Bairro, Cep e Cidade. Este tipo de atributo é
chamado de atributo composto.
Os atributos compostos serão tratados com mais detalhes na normalização de
dados;
ATRIBUTO MULTIVALORADO
O seu conteúdo é formado por mais de um
valor;

Exemplo1: Telefone. Uma pessoa poderá ter


mais de um número de telefone ex. de casa, do
trabalho, celular, entre outros;

Exemplo2: Habilidades. Uma pessoa ter uma


lista de habilidades. Exemplo: boa comunicação,
bom relacionamento interpessoal;

Os atributos multivalorados serão tratados com


mais detalhes na normalização de dados.
ATRIBUTO DETERMINANTE PK
Identifica de forma única uma entidade, ou seja, não pode haver
dados repetidos.
Chave primária: atributo ou conjunto de atributos que identifica
unicamente uma tupla (registro) em uma entidade. É expresso com
um círculo preenchido
ATRIBUTO ESTRANGEIRA FK
Chave estrangeira: atributo que implementa o relacionamento
entre entidades e permite o controle da integridade referencial, isto
é, é um atributo que, fazendo parte da chave primária em uma
entidade, é incluído em outra entidade ou relacionamento,
implementando as ligações entre elas.
RELACIONAMENTOS
RELACIONAMENTOS
Conjunto de associações entre entidades, sobre as
quais deseja-se manter informações na base de dados.
RELACIONAMENTOS
O relacionamento entre entidades em um diagrama
ER é representado através de um losango que liga as
entidades relacionadas
GRAU DE RELACIONAMENTOS
O grau de um relacionamento é o número de
entidades que dele participam.
Um relacionamento de grau dois é chamado binário,
enquanto um relacionamento de grau três é chamado
ternário.
FORMAS DE RELACIONAMENTOS
Note que para identificar como cada entidade se relaciona com as demais é
importante realizar algumas perguntas durante a fase de levantamento de
requisitos. Exemplo:
Como um empregado está relacionado com um departamento?
Um empregado pode trabalhar em apenas um departamento?
Um departamento possui mais de um empregado?
Dependendo do tipo de resposta fornecida, um relacionamento poderá ser definido
de três formas:
- Um-para-um
- Um-para-muitos
- Muitos-para-muitos
RELACIONAMENTO UM-PARA-UM
O relacionamento um-para-um é usado quando uma entidade A se relaciona com
apenas uma entidade B e vice-versa.
Esse relacionamento é representado pelo sinal: 1:1

Você deve observar que o fato de o Departamento ser gerenciado por apenas um
Empregado é uma restrição da empresa na qual você realizou a entrevista na fase de
levantamento de requisitos.
RELACIONAMENTO UM-PARA-MUITOS
O relacionamento um-para-muitos é usado quando uma entidade A pode se
relacionar com uma ou mais entidades B.
Esse relacionamento é representado pelo sinal: 1:N

Esse é um relacionamento um-para-muitos porque a entidade Empregado possui


vários Dependentes. Por outro lado, cada Dependente possui apenas um
Empregado responsável por ele.
RELACIONAMENTO MUITOS-PARA-MUITOS
O relacionamento muitos-para-muitos é usado quando várias entidades A se
relacionam com várias entidades B.
Esse relacionamento é representado pelo sinal: N:N ou N:M

Temos o relacionamento muitos-para-muitos Empregado (entidade) e Projeto


(entidade), porque a entidade Empregado trabalha em vários (M) Projetos. Por
outro lado, cada projeto possui (N) empregados.
CARDINALIDADE
CARDINALIDADE
A cardinalidade é um conceito importante para ajudar a definir
o relacionamento, pois ela define o seu número de ocorrências.
Para determinarmos a cardinalidade, devemos fazer algumas
perguntas relativas ao relacionamento em ambas as direções.

Tipos de cardinalidade:
Máxima;
Mínima;
CARDINALIDADE MÁXIMA E MÍNIMA
A cardinalidade máxima trata o número máximo de instâncias
de entidade que podem participar em um relacionamento. Pode
ser 1 ou N (Muitos).

A cardinalidade mínima trata o número mínimo de instâncias


de entidade que devem obrigatoriamente participar em um
relacionamento. Sendo que 0(zero) é participação opcional e
1(um) obrigatório.
NOTAÇÃO PARA CARDINALIDADE
(PETER CHEN)
NOTAÇÃO PARA CARDINALIDADE
(PÉ DE GALINHA)
PÉ DE GALINHA X PETER CHEN
TIPOS DE RELACIONAMENTO BINÁRIO
Tipos de relacionamentos binários:
1:1
1:n
n:n
RELACIONAMENTO BINÁRIO 1:1
RELACIONAMENTO BINÁRIO 1:1
RELACIONAMENTO BINÁRIO 1:1
USANDO NOTAÇÃO PETER CHEN
RELACIONAMENTO BINÁRIO 1:N
RELACIONAMENTO BINÁRIO 1:N
RELACIONAMENTO BINÁRIO 1:N
USANDO NOTAÇÃO PETER CHEN
RELACIONAMENTO BINÁRIO N:M
RELACIONAMENTO BINÁRIO N:M
RELACIONAMENTO BINÁRIO N:M
USANDO NOTAÇÃO PETER CHEN
CARDINALIDADE
Dado um relacionamento entre Departamento e Empregado, pode-se fazer as
seguintes perguntas:
•Pergunta: Um departamento possui quantos empregados?
•Resposta: No mínimo 1 e no máximo N.
•Pergunta: Um empregado está alocado em quantos departamentos?
•Resposta: No mínimo em 1 e no máximo em 1.
Com isso chegamos a resposta abaixo. Um departamento possui N empregados
(1:N) e Um empregado só pode trabalhar em um departamento (1:1)
GENERALIZAÇÃO
GENERALIZAÇÃO
Permite atribuir propriedades particulares a um subconjunto
das ocorrências (especializadas) de uma entidade genérica.
Conceito de herança
ENTIDADE ASSOCIATIVA
ENTIDADE ASSOCIATIVA
Também denominada
agregação, trata-se de
uma abstração pela
qual os relacionamentos
são tratados como
entidades de nível
superior.
DER
DIAGRAMA ENTIDADE
RELACIONAMENTO
DER (DIAGRAMA ENTIDADE RELACIONAMENTO
O diagrama Entidade Relacionamento é composto por um conjunto de objetos
gráficos que visa representar todos os objetos do modelo Entidade-Relacionamento
tais como entidades, atributos, atributos chaves, relacionamentos, restrições
estruturais, entre outros. O diagrama ER fornece uma visão lógica do banco de
dados, fornecendo um conceito mais generalizado de como estão estruturados os
dados de um sistema
PROJETO DE
BANCO DE DADOS
INÍCIO PROJETO DE BD
MINIMUNDO “AGENCIA”
ABSTRAÇÃO
Em uma agencia são cadastrados seus usuários que
possuem cpf, nome e endereço. Esses usuários podem ter
mais de um cartão contendo o número e senha.
INÍCIO MODELO CONCEITUAL
Devemos separar os as entidades e seus atributos
marcando os que são determinantes.
DER DO “AGÊNCIA”
Vamos passar nosso esboço da nossa parte
inicial do modelo conceitual para o diagrama
entidade relacionamento DER.
PRÁTICA
Entre no site: https://www.brmodeloweb.com/lang/pt-br/index.html e
faça seu cadastro
PRÁTICA
Volte para fazer seu login e crie um minimundo chamado agencia. Deixe marcado
a opção modelo conceitual
PRÁTICA
Arraste uma entidade para dentro do seu cenário e altere o nome dela para usuario
PRÁTICA
Arraste mais uma entidade chamada cartao, clique no usuario para aparecer uma
seta, clique na seta e arraste ela para o cartao
PRÁTICA
Altere a cardinalidade do relacionamento entre as entidades
clicando no ícone i da cor azul
PRÁTICA
Arraste os atributos simples, compostos e determinantes para nosso cenário e faça
a ligação nas entidades especificas. E chegamos ao fim do nosso cenário.
PRÁTICA
Salve seu projeto
RESUMO
Entendendo as partes que compõem um DER. Na próxima aula vamos abordar o
último tópico desse diagrama que são as cardinalidades.
RESUMO
ATIVIDADE
Crie um minimundo chamado “PetShop” no brModelo. Gere o diagrama abaixo.
Faça a engenharia reversa e descreva como foi feito o processo de abstração
(fluxo entre as entidades com seus atributos). Como seria a leitura desse diagrama?
REFERÊNCIAS
• https://materialpublic.imd.ufrn.br/curso/disciplina/3/73/2/5

• https://materialpublic.imd.ufrn.br/curso/disciplina/3/73/2/7

• https://www.luis.blog.br/analise-de-entidade-atributos-simples-
compostos-multivalorados.html

• ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados: Fundamentos e


Aplicações. 7 ed. São Paulo: Pearson, 2019.
MODELAGEM DE DADOS

PROFESSOR: MÁRIO DE JESUS

Professor: Mário de Jesus


FASES DO PROJETO DE UM BANCO DE
DADOS.
MODELO LÓGICO
TÉCNICA PARA CONSTRUIR
MODELOS CONCEITUAIS DE BASE
DE DADOS
- O Modelo Relacional (MR) foi introduzido por
Edgar Frank Codd em 1970.

- Representa os dados em um banco de dados


como uma coleção de relações (tabelas).

- Cada linha é denominada tupla; uma coluna é


chamada de atributo; a tabela é chamada de
relação.
TÉCNICAS DO MODELO LÓGICO
TABELA
TABELA
- Toda a informação de um banco de dados relacional é armazenada em tabelas.
Compostas de:
Linhas; Colunas; Chaves Primárias ou candidata
Termo sobre chave candidata: quando mais de um atributo possui identificação
única. Ex. Aluno: cod, cpf, matricula.
Valor do campo deve ser atômico (Não pode se repetir):
Simples (não é divisível);
Monovalorado (só possui um valor).
TABELA
- Onde a entidade pessoa vai se tornar a tabela pessoa.
CAMPOS
- Atributos são todas as informações que existem em uma tabela. Essas
informações são chamadas informalmente de campos ou colunas.
- Exemplos: Nome, CPF, Rua, Bairro, Telefones, CEP, Data de Nascimento, entre
outros.
TUPLAS
- As tuplas representam os valores de uma tabela. Esses valores
podem ser chamados de registros.
CHAVES
- No modelo relacional são consideradas as chaves:

candidatas;

primárias;

alternativas ou alternadas;

estrangeiras.
CHAVE PRIMÁRIA
- Coluna ou combinação de colunas cujos valores
distinguem uma linha das demais dentro de uma
tabela.

Propriedades:

Única;

Campos obrigatórios (not null);

Irredutível.
CHAVE PRIMÁRIA
Candidatas;
Primárias;
Alternativas ou alternadas.
CHAVE ESTRANGEIRA
Coluna ou combinação de colunas, cujos valores aparecem na
chave primária (candidata) da tabela referenciada.

Mecanismo que permite a implementação de relacionamentos


em um banco de dados relacional.
CHAVE ESTRANGEIRA
Quando definimos a cardinalidade mínima como zero, isso vai permitir
que o registro de ligação (chave estrangeira) seja definido como null.
No caso abaixo tanto a pessoa quando o computador podem receber
uma chave estrangeira e no processo de cadastro essa chave pode
receber o valor null
CHAVE ESTRANGEIRA
Perceba que a pessoa recebeu a chave estrangeira e um dos registros (tupla)
está registrada como null
RESTRIÇÕES DE INTEGRIDADE
É uma regra de consistência de dados que é garantida
pelo próprio SGBD.
Restrições de Integridade Básicas;
Integridade de Domínio;
Integridade de Vazio;
Integridade de Chave;
Integridade Referencial;
Integridade de Unicidade;
Integridade de Entidade.
São garantidas automaticamente pelo SGBD Relacional.
O programador não precisa implementá-las.
RESTRIÇÕES DE INTEGRIDADE
Integridade de Domínio:
Define os valores que podem ser assumidos pelos campos de
uma coluna.
Integridade de Vazio:
Especifica se os campos de uma coluna podem ou não ser
vazios.
Integridade de Unicidade:
Define que o valor do campo ou campos são únicos.
RESTRIÇÕES DE INTEGRIDADE
Integridade de Chave:
- Define que os valores da chave
primária e alternativa devem ser únicos.
Integridade de Entidade:
- Define que nenhum valor da chave
primária pode ser nulo (obrigatório).
RESTRIÇÕES DE INTEGRIDADE
Integridade Referencial:
Define que os valores
dos campos que aparecem
numa chave estrangeira
devem aparecer na chave
primária (candidata) da tabela
referenciada.
CARDINALIDADE 1:1
CARDINALIDADE 1:1
Quando definimos a cardinalidade mínima como zero, isso vai permitir que o
registro de ligação (chave estrangeira) seja definido como null. No caso
abaixo a pessoa caio não usa nenhum computador.
CARDINALIDADE 1:1
O contrário também pode acontecer, ou seja, no processo de cadastro do
computador não está sendo usado por ninguém. No caso abaixo o NetBook HP
não está vinculado a nenhuma pessoa.
CARDINALIDADE 1:1
Agora quando eu restrinjo a cardinalidade mínima para pelou menos
1, você traz a obrigatoriedade do registro dessa informação. No caso
abaixo o netbook deixou de existir porque o computador precisa ser
usando por pelou menos uma pessoa obrigatoriamente.
CARDINALIDADE 1:1
Na diagramação abaixo uma pessoa pode usar 0 ou 1 computador,
então temos o registro do caio que não utiliza nenhum computador
OBRIGANDO UMA PESSOA A TER UM
COMPUTADOR
CARDINALIDADE 1:1
Agora colocamos a cardinalidade 1:1 no computador, ou seja, uma
pessoa precisa ter pelou menos um computador para ser cadastrada. Com
isso o registro do caio desaparece.
CARDINALIDADE 1:1
Agora é o computador que pode receber informações nulas da
pessoa.
CARDINALIDADE 1:N
CARDINALIDADE 1:N
No caso abaixo uma pessoa pode usar vários computadores, então preciso
registrar quem usou aquele equipamento mandando a chave do 1 para o N
CARDINALIDADE 1:N
Com a cardinalidade mínima como zero, podemos registrar o uso de algum
computador como null
CARDINALIDADE 1:N
Obviamente não podemos registrar o uso de um computador por uma
pessoa que não existe ou não está cadastrada na tabela pessoa.
CARDINALIDADE 1:N
Agora sim temos um registro válido
CARDINALIDADE 1:N
Podemos registrar um atributo no relacionamento do modelo conceitual,
e na passagem para o modelo lógico verificar qual das entidades deve
ficar com esse campo.
RELACIONAMENTO IDENTIFICADOR
O relacionamento identificador vai nos mostrar para onde devemos
levar nossa chave, para melhor identificar os registros. No caso a
Pessoa é responsável por um ou vários dependentes.
CARDINALIDADE N:M
CARDINALIDADE N:M
Em um relacionamento n:m devemos criar uma terceira tabela
que deve possuir uma chave primaria composta, ou seja, a chave
primaria dessa terceira tabela é composta de duas chaves
primárias das outras tabelas.
CARDINALIDADE N:M
Se o relacionamento possuir um atributo no relacionamento n:m
no modelo conceitual devemos colocar esse atributo nessa terceira
tabela que foi criada.
CARDINALIDADE N:M
Veja outro exemplo
AUTO RELACIONAMENTO
AUTO RELACIONAMENTO
Normalmente um relacionamento associa entidades
diferentes. Há um caso especial no qual há um
relacionamento entre a mesma entidade.
Nesta situação surge o conceito de PAPEL que
identificará o relacionamento.
CARDINALIDADE 1:1 NO AUTO
RELACIONAMENTO
No auto relacionamento 1:1 o campo que recebe a chave
primária da mesma tabela não pode ter repetições, ou seja, deve
ser único ou vazio.
CARDINALIDADE 1:N NO AUTO
RELACIONAMENTO
No auto relacionamento 1:N o podemos ter repetições no campo
que recebe a auto relação
CARDINALIDADE N:M NO AUTO
RELACIONAMENTO
No auto relacionamento N:M devemos criar uma nova
tabela, sendo que a composição da chave primária deve
ser feita pelos campos da entidade auto relacionada
RELACIONAMENTO TERNÁRIO
RELACIONAMENTO TERNÁRIO
No relacionamento ternário temos a criação de uma
quarta tabela que recebe a chave primária de todas as
entidades envolvidas.
GENERALIZAÇÃO/ESPECIALIZAÇÃO
HERANÇA
HERANÇA
No relacionamento de herança devemos criar todas as pessoas e atribuir as
entidades médico e engenheiro o cpf da pessoa castrada junto com seu
campo especifico.
HERANÇA
Em uma eventual consulta vamos ter:

Resultado de uma consulta


ESPECIFICAÇÃO DE BANCO DE DADOS
ESPECIFICAÇÃO
Cada tabela é listada pelo seu nome.
Após o nome da tabela e entre parêntesis são listados os
nomes das colunas, separados por vírgula.
A coluna ou colunas que contém a chave primária são
sublinhadas.
Após a definição da tabela são listadas as definições das
chaves estrangeiras que aparecem na tabela.
Se a chave estrangeira é formada por várias colunas, elas
são declaradas separadas por vírgulas.
ESPECIFICAÇÃO
Cada tabela é listada pelo seu nome.
Após o nome da tabela e entre parênteses são listados os nomes das
colunas, separados por vírgula.
A coluna ou colunas que contém a chave primária são sublinhadas.
TRANSFORMANDO ER EM MR
TIPOS DE DADOS
Na passagem do modelo ER para o MR precisamos especificar o tipo da
informação que seja armazenada. Segue uma lista dos tipos mais utilizados:
ESPECIFICAÇÃO
Exemplo de como transformar o projeto conceitual (Modelo Entidade e
Relacionamento – ER) em projeto lógico (Modelo Relacional – MR), ou seja,
como mapear os conceitos de entidades e atributos do modelo ER para os
conceitos de tabelas, chaves primárias e tuplas do Modelo Relacional MR.

DER MER
PRÁTICA
COMO UTILIZAR O DBDESIGNER FORK
CRIANDO A TABELA TB_USUARIO
Arraste uma tabela para seu cenário, crie a tabela tb_usuario com os campos
cpf int not null auto incremente pk, nome varchar 40, rua varchar 100, bairro
varchar 50 e numero int e por fim aperte ok.
CRIANDO A TABELA TB_CARTAO
Arraste mais uma tabela para seu cenário, crie a tabela tb_cartao com os
campos numero int not null auto incremente pk, senha varchar 8 e por fim aperte
ok.
CRIANDO RELACIONAMENTO 1:N
Clique no relacionamento 1:N no menu de itens, clique no usuário e depois no
cartão para criar o relacionamento. Perceba que a chave estrangeira já vai
aparecer na tabela cartão. Esse fenômeno tem uma regra que aprendemos mais
a frente.
MUDANDO OS DADOS DO RELACIONAMENTO
Clique duas vezes sobre o relacionamento para alterar o nome do
racionamento e o nome da chave estrangeira que foi criada automaticamente
pela ferramenta. Veja o resultado.
ATIVIDADE
Desenvolva o MER abaixo utilizando a ferramenta dbDesigner Forker
REFERÊNCIAS
• https://materialpublic.imd.ufrn.br/curso/disciplina/3/73/2/5

• https://materialpublic.imd.ufrn.br/curso/disciplina/3/73/2/7

• https://www.luis.blog.br/analise-de-entidade-atributos-simples-
compostos-multivalorados.html

• ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados: Fundamentos e


Aplicações. 7 ed. São Paulo: Pearson, 2019.
MODELAGEM DE DADOS

PROFESSOR: MÁRIO DE JESUS

Professor: Mário de Jesus


NORMALIZAÇÃO
ANOMALIAS
Antes de falar sobre normalização, vamos entender o problema de anomalia de
inserção, de remoção e de atualização. Anomalias são mudanças em dados que
podem gerar uma inconsistência no banco de dados relacional.
Uma inconsistência é geralmente representada por situações em que dados que
deveriam ser iguais, apresentam valores diferentes em várias tabelas do banco de
dados.
Por exemplo, o valor de compra de um produto deve ser o mesmo valor
armazenado nas tabelas recibo e nota fiscal. Desse modo, se os valores forem
diferentes, entende-se geralmente que existe uma inconsistência.
NORMALIZAÇÃO
Normalização consiste da decomposição de esquemas para evitar
anomalias de atualização.

“Bom design” evita redundância de dados e anomalias de atualização.

Mecanismo formal para analisar esquemas de relações baseado nas


suas chaves e nas dependências funcionais entre seus atributos.

Projeto conceitual bem feito resulta naturalmente em esquemas


normalizados.
NORMALIZAÇÃO
O processo de normalização foi proposto por Dr. E. F. Codd como uma
forma de evitar as anomalias. Assim, o objetivo da normalização é
remover a duplicação de dados e, consequentemente, minimizar a
redundância.
Segundo Powell (2006), a remoção da duplicação de dados permite:
• Reduzir o espaço físico necessário para armazenar o banco de dados;
• Melhorar a organização dos dados;
• Reduzir o impacto de atualizações, inserções e remoções nos dados do
banco de dados.
FORMAS DE NORMALIZAÇÃO
1FN (1°FORMAR NORMAL)
PRIMEIRA FORMA NORMAL (1FN)
Foi definida para não permitir atributos multivalorados, atributos
compostos e suas combinações.

Uma relação está em 1FN se e somente se todos os seus atributos


contêm apenas valores atômicos, ou seja, cada atributo pode ter
apenas um valor por registro (tupla), (simples, indivisíveis).”
PROCEDIMENTOS DA (1FN)

a) Identificar todos os atributos que são compostos ou multivalorados;

b) Criar novas tabelas para separar esses campos


PRIMEIRA FORMA NORMAL (1FN)

Endereco Telefone
DEPENDÊNCIA FUNCIONAL
Em uma tabela relacional, diz-se que uma coluna C2 depende
funcionalmente de uma coluna C1 ( ou que uma coluna C1 determina
a coluna C2) quando, em todas as linhas da tabela, para cada valor
de C1 que aparece na tabela, aparece o mesmo valor de C2.
C1 → C2
DF (Dependência funcional) deve ser explicitamente definida por
alguém que conheça a semântica dos atributos de uma relação.
DEPENDÊNCIA FUNCIONAL
DEPENDÊNCIA FUNCIONAL
DEPENDÊNCIA FUNCIONAL
DEPENDÊNCIA FUNCIONAL
2FN (2°FORMAR NORMAL)
SEGUNDA FORMA NORMAL (2FN)
Uma relação encontra-se na 2FN se e somente se já estiver na 1FN e
não contém dependências parciais.
Dependência Parcial: ocorre quando uma coluna depende apenas de
uma parte de uma chave PRIMÁRIA COMPOSTA.
Uma relação para estar na 2FN não deve possuir atributo não-chave
funcionalmente determinado por parte da chave primária.
Resumindo: Todos os atributos não chave podem ser obtidos somente
através da chave primária.
PROCEDIMENTOS DA (2FN)

a) Identificar dependências da parciais de chaves compostas;

b) Criar novas tabelas para separar esses campos


SEGUNDA FORMA NORMAL (2FN)

CHAVE
COMPOSTA
3FN (3°FORMAR NORMAL)
TERCEIRA FORMA NORMAL (3FN)
Uma relação está em 3FN se e somente se estiver na 2FN e nenhum
atributo não-primo (isto é, que não seja membro de uma chave) for
transitivamente dependente da chave primária.
Dependência Transitiva: ocorre quando uma coluna, além de depender
da chave primária, também estiver dependendo de outra coluna ou
conjunto de colunas da tabela.
Uma relação para estar na 3FN não deve ter um atributo não-chave
determinando ou dependendo de outro atributo não-chave.
PROCEDIMENTOS DA (3FN)
a) Identificar todos os atributos que são funcionalmente dependentes
de outros atributos não chave;
b) Removê-los ou criar novas tabelas;
EXEMPLO DE REMOÇÃO (3FN)

Considerando ainda a nossa tabela Venda, veremos que a mesma não está na
terceira forma normal, pois o subtotal é o resultado da multiplicação Quant X
Valor_unit, desta forma a coluna subtotal depende de outras colunas não-
chave. Por isso devemos eliminar essa coluna.
EXEMPLO DE CRIAÇÃO 3FN
ATIVIDADE 01
Dada a Tabela abaixo, identifique possíveis anomalias que podem ocorrer.
Depois normalize essas informações nas 3 formas normais.
ATIVIDADE 02
Normalize a estrutura mostrada na imagem abaixo, mostrando, passo a passo,
como normalizar para a 1FN, depois para a 2FN e por fim para a 3FN.
ATIVIDADE 03
Dada a estrutura das tabelas abaixo, normalize-as de modo que ela fique na
3FN.
REFERÊNCIAS
• https://materialpublic.imd.ufrn.br/curso/disciplina/3/73/2/5

• https://materialpublic.imd.ufrn.br/curso/disciplina/3/73/2/7

• https://www.luis.blog.br/analise-de-entidade-atributos-simples-
compostos-multivalorados.html

• ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados: Fundamentos e


Aplicações. 7 ed. São Paulo: Pearson, 2019.
Infra-Estrutura de Backend – Prof. Silvio Barbieri – Fatec COTIA
Requisitos: Bitnami – Postgres – OVA (Open Virtual Appliance)

Objetivos:

Principal: Configurar o servidor de banco de dados PostgreSQL em uma máquina virtual,


utilizando Linux.

Secundário: Configurar o PGADMIN (cliente de banco ou gerenciador de Banco de Dados) e


conectá-lo ao bitnami Postgres.

Passo 1.

No VMware na segunda opção, Carregar uma VM

Aponte para o local onde está o arquivo .OVA (bitnami-postgresql-versão-linux-debian-10-


x86_64-nami.ova)

Importe a máquina virtual pré-configurada

Configure com os valores default para memória, disco, e 2 processadores. (depende dos
recursos da máquina)

Passo 2.

Inicialize a máquina recém criada. Sua tela deve se parecer assim:

Login: bitnami

Password: bitnami
Reconfigure a senha para bitnami1 para você não esquecer. Ou mantenha errando a senha
atual.

Passo 3.

Vamos instalar algumas dependências como o gerenciador de pacotes das distribuições


DEBIAN apt-get:

Para isso precisamos mudar o prompt de usuário ($) para administrador (#).

Digite: sudo su <Enter>

Digite apt-get update para atualizar o repositório (lista de referência com as versões recentes)

3.1 Port scan nmap

apt-get install nmap

Confirme com Y maiúsculo

3.2. Vamos instalar um editor de textos mais amigável que o vim ou vi.

apt-get install nano

3.3 E uma interface para facilitar nossa navegação no Linux (midnight commander)

apt-get install mc

Passo 4. (Segurança)

Verificar o IP DO WINDOWS com o comando ipconfig:

Vamos configurar o postgres para “escutar” no IP local na porta 5432


Procure a pasta /opt/bitnami/postgresql/conf

Vamos editar o pg_hba.conf (f4)

Escolha a opção de editar como o NANO(1)

Adicione o range de IP para expandir o último octeto (/24), obtido do IPCONFIG

Salve com control “O”

Passo 5.

Vamos editar o postgres.conf

E Remover o comentário(#) e colocar “*” para usar o IP válido

Também remover o comentário (#) na porta 5432

Salve com control ‘O’

Iniciar o servidor:

# service bitnami restart postrgesql

Vamos liberar o firewall (ufw) para liberar acesso à porta 5432

ufw allow 5432

Com o NMAP vamos ver se o servidor está carregado e ouvindo na porta 5432 como esperado
Sucesso! (até aqui)

Passo 6.

Vamos pegar as credenciais para acessá-lo: Pelo mc pode utilizar o f3 para visualizar login e
senha do banco de dados

Anote em um papel, ou fotografe.

Passo 7.

Configure o PGADMIN no Windows

Como o botão direito sobre um Server group (crie se não existir)

Dê um nome e abra a aba “Connection”


Salve e conecte:

Agora:

Vamos criar com o DML gerado do projeto INSTACART as estruturas de dados que modelamos
(retirar os constraints e references para permitir a carga (artigo postado na tarefa anterior))

Exemplo:
CREATE TABLE public.aisles

aisle_id integer NOT NULL,

aisle character varying(128) COLLATE pg_catalog."default"

TABLESPACE pg_default

COMO REMOVER A INTEGRIDADE PARA FAZER INSERT/UPDATE/DELETE

EXEMPLO

“ALTER TABLE Aisles DROP CONSTRAINT PK_1 ;”

O manual do postgres é uma ótima referência para o tema integridade.


https://www.postgresql.org/docs/current/ddl-constraints.html
OBSERVAÇÃO: Para este exemplo, não vamos entrar em detalhes sobre integridade agora.
Para focarmos em criar uma infraestrutura capaz de suportar a execução de comandos DDL
(data definition language) e o DSM (Desenvolvimento de Software Multiplataforma)

Vamos importar os dados do arquivo . CSV (ailes.csv) (baixado do instacart Kaggle -> Dados)

O arquivo tem Header, é preciso pular a primeira linha:


Proceder assim para as demais tabelas.

CRIANDO A API REST (Access point do seu futuro projeto


multiplataforma)

1. Segurança - No Pgadmin: Criar um “papel” (regra) dentro do banco para não acessarmos via
usuário postgres que é o principal e tem todos os direitos:

create role web_anon nologin;

grant usage on schema public to web_anon;

grant select on public.aisles to web_anon;

create role authenticator noinherit login password 'passwd';

grant web_anon to authenticator;

2. No bitnami

2.1 sudo su

2.2 wget https://github.com/PostgREST/postgrest/releases/download/v10.0.0/postgrest-


v10.0.0-linux-static-x64.tar.xz

Descompactar na pasta postgrest (crie uma pasta pelo mc com f7) (dê um <Enter> no mc sobre
o arquivo tar.xz use o f5 para copiar descompactando)

2.3 cat > tutorial.conf


db-uri = "postgres://authenticator:passwd@127.0.0.1:5432/postgres"
db-schemas = "public"
db-anon-role = "web_anon"

2.4 ufw allow 3000

2.5 ./postgrest tutorial.conf


No Windows: Obs: checar qual o seu IP, o meu ficou final 112

Daqui:

Você pode fazer funções CRUD no banco com nomes para “invocar” em sua aplicação.
Infra-Estrutura de Backend – Prof. Silvio Barbieri – Fatec COTIA
Requisitos: Bitnami – Postgres – OVA (Open Virtual Appliance)

Objetivos: 1. Criar infraestrutura para executar os modelos de bancos de dados propostos em


classe.

2. Configurar o servidor de banco de dados PostgreSQL em uma máquina virtual, utilizando


Linux.

3. Configurar o PGADMIN (cliente de banco ou gerenciador de Banco de Dados) e conectá-lo


ao bitnami Postgres.

Passo 1.

No VMware na segunda opção, Carregar uma VM

Aponte para o local onde está o arquivo .OVA (bitnami-postgresql-versão-linux-debian-10-


x86_64-nami.ova)

Importe a máquina virtual pré-configurada

Configure com os valores default para memória, disco, e 2 processadores. (depende dos
recursos da máquina)

Passo 2.

Inicialize a máquina recém criada. Sua tela deve se parecer assim:

Login: bitnami

Password: bitnami
Reconfigure a senha para bitnami1 para você não esquecer. Ou mantenha errando a senha
atual.

Passo 3.

Vamos instalar algumas dependências como o gerenciador de pacotes das distribuições


DEBIAN apt-get:

Para isso precisamos mudar o prompt de usuário ($) para administrador (#).

Digite: sudo su <Enter>

Digite apt-get update para atualizar o repositório (lista de referência com as versões recentes)

3.1 Port scan nmap

apt-get install nmap

Confirme com Y maiúsculo

3.2. Vamos instalar um editor de textos mais amigável que o vim ou vi.

apt-get install nano

3.3 E uma interface para facilitar nossa navegação no Linux (midnight commander)

apt-get install mc

Passo 4. (Segurança)

Verificar o IP DO WINDOWS com o comando ipconfig:


Vamos configurar o postgres para “escutar” no IP local na porta 5432

Procure a pasta /opt/bitnami/postgresql/conf

Vamos editar o pg_hba.conf (f4)

Escolha a opção de editar como o NANO(1)

Adicione o range de IP para expandir o último octeto (/24), obtido do IPCONFIG

Salve com control “O”

Passo 5.

Vamos editar o postgres.conf

E Remover o comentário(#) e colocar “*” para usar o IP válido

Também remover o comentário (#) na porta 5432


Salve com control ‘O’

Iniciar o servidor:

# service bitnami restart postrgesql

Vamos liberar o firewall (ufw) para liberar acesso à porta 5432

ufw allow 5432

Com o NMAP vamos ver se o servidor está carregado e ouvindo na porta 5432 como esperado

Sucesso! (até aqui)

Passo 6.

Vamos pegar as credenciais para acessá-lo: Pelo mc pode utilizar o f3 para visualizar login e
senha do banco de dados

Anote em um papel, ou fotografe.

Passo 7.

Configure o PGADMIN no Windows

Como o botão direito sobre um Server group (crie se não existir)


Dê um nome e abra a aba “Connection”

Salve e conecte:
Agora:

Vamos criar com o DML gerado do projeto INSTACART as estruturas de dados que modelamos
(retirar os constraints e references para permitir a carga (artigo postado na tarefa anterior))

Exemplo:

CREATE TABLE public.aisles

aisle_id integer NOT NULL,

aisle character varying(128) COLLATE pg_catalog."default"

TABLESPACE pg_default
Vamos importar os dados do arquivo . CSV (ailes.csv) (baixado do instacart Kaggle -> Dados)

O arquivo tem Header, é preciso pular a primeira linha:


Proceder assim para as demais tabelas. FIM

Você também pode gostar