Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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.
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
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.
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.
⬡ 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?
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 é 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.
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.
• 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
São eles:
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
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).
• https://materialpublic.imd.ufrn.br/curso/disciplina/3/73/2/7
• https://www.luis.blog.br/analise-de-entidade-atributos-simples-
compostos-multivalorados.html
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;
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.
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
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)
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
Objetivos:
Passo 1.
Configure com os valores default para memória, disco, e 2 processadores. (depende dos
recursos da máquina)
Passo 2.
Login: bitnami
Password: bitnami
Reconfigure a senha para bitnami1 para você não esquecer. Ou mantenha errando a senha
atual.
Passo 3.
Para isso precisamos mudar o prompt de usuário ($) para administrador (#).
Digite apt-get update para atualizar o repositório (lista de referência com as versões recentes)
3.2. Vamos instalar um editor de textos mais amigável que o vim ou vi.
3.3 E uma interface para facilitar nossa navegação no Linux (midnight commander)
apt-get install mc
Passo 4. (Segurança)
Passo 5.
Iniciar o servidor:
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
Passo 7.
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
TABLESPACE pg_default
EXEMPLO
Vamos importar os dados do arquivo . CSV (ailes.csv) (baixado do instacart Kaggle -> Dados)
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:
2. No bitnami
2.1 sudo su
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)
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)
Passo 1.
Configure com os valores default para memória, disco, e 2 processadores. (depende dos
recursos da máquina)
Passo 2.
Login: bitnami
Password: bitnami
Reconfigure a senha para bitnami1 para você não esquecer. Ou mantenha errando a senha
atual.
Passo 3.
Para isso precisamos mudar o prompt de usuário ($) para administrador (#).
Digite apt-get update para atualizar o repositório (lista de referência com as versões recentes)
3.2. Vamos instalar um editor de textos mais amigável que o vim ou vi.
3.3 E uma interface para facilitar nossa navegação no Linux (midnight commander)
apt-get install mc
Passo 4. (Segurança)
Passo 5.
Iniciar o servidor:
Com o NMAP vamos ver se o servidor está carregado e ouvindo na porta 5432 como esperado
Passo 6.
Vamos pegar as credenciais para acessá-lo: Pelo mc pode utilizar o f3 para visualizar login e
senha do banco de dados
Passo 7.
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:
TABLESPACE pg_default
Vamos importar os dados do arquivo . CSV (ailes.csv) (baixado do instacart Kaggle -> Dados)